Comment by babl-yc

Comment by babl-yc 7 days ago

5 replies

There's still relevance in making it stupidly easy to make an LED blink and make basic apps on circuit boards. Education + weekend hardware hackers might look for something different in a framework than a professional.

But certainly for pro use cases the hardware specific frameworks are way more powerful (but also complex).

I wrote up a bit on Arduino vs ESP-IDF here https://bitclock.io/blog/esp-idf-vscode

estimator7292 7 days ago

The native AVR libraries are really good. It's not quite as idiomatic as Arduino, but it's really not all that different.

Beginners can learn frameworks more complicated than Arduino and I think they should. Before Arduino, beginners were expected to write plain C or assembly, and the industry got along just fine. There were still countless hackers and weekend tinkerers. They just had to learn more, which is not a bad thing

  • BenjiWiebe 7 days ago

    If by native AVR, you mean avr-libc, it's nothing at all like Arduino.

    Instead of analogRead, you need to write your own busy loop watching certain bits in a register (or ISR), you need to twiddle bits in several registers to set up the ADC the way you want it, etc.

    Serial.write? Nope, gotta read the docs, twiddle some bits again, and then you actually do get to use printf.

    Those two right there are big hurdles to someone new to microcontrollers. In fact, they're a hurdle to me and I've read AVR datasheets for fun.

    • rramadass 6 days ago

      This is exactly right.

      Nobody has done embedded MCU programming as simple as Arduino. There is so much open source code libraries in the Arduino Ecosystem to do almost anything that much of your programming becomes plug-and-play and accessible to all. You can then ship it as long as your power/performance budgets are met.

      A few years ago they went professional with their "Arduino PRO" industrial hardware and a good Cloud IoT platform. Again they gave you a simple software interface to easily program your nodes and add them to your own IoT application/services.

      I think Qualcomm has a winner on their hands here if they can encompass all their offerings within the Arduino Software Ecosystem so any hobbyist/maker/developer/professional can easily develop applications/systems.

    • estimator7292 7 days ago

      I think these things are entirely reasonable for a beginner to learn about. It teaches you about the machine, about the very real cost of a UART write. That saves you from inevitably spending hours and days to figure out that too many printf is what's making your program slow.

      A beginner should be introduced to the processor, not C++ or python abstractions. Those abstractions are good and useful in the general sense, but you really should be aware of what your abstractions actually do to the physical processor.

danhor 7 days ago

> There's still relevance in making it stupidly easy to make an LED blink and make basic apps on circuit boards. Education + weekend hardware hackers might look for something different in a framework than a professional.

This group is has been moving to circuitpython, which is much less performant, but even easier to use. The more serious cross-platform development environments, like Zephyr, have also become much better.