31 ms·
We're in an amazing technical availability era. For the nearly same price and form-factor size you can either have a 4 MHz low-power microcontroller working in
by pp19dd 8y ago
We're in an amazing technical availability era. For the nearly same price and form-factor size you can either have a 4 MHz low-power microcontroller working in your custom TV remote controller or a (headless) machine capable of running RetroPie and C-64 games.
And the part that stands out to me is the draw toward the obvious path of least resistance. Why program any of that in assembly, when you can put together a few bash scripts with LIRC?
- floatboth 8y agoThat, by the way, is what's great about Arduino. Super low power microcontrollers, native C/C++ code, and a "least resistance" experience — well documented, popular, easy to use libraries for all peripherals. Having a full unix-like OS can actually add "resistance" compared to that :)
- pp19dd 8y agoAbsolutely. I see nothing but benefits from having both options (incidentally was thinking PIC due to power requirements) for a project. But the "hmmm" thought was about complexity of a system as time goes on. Was imagining dozens of unpatched Linux-based devices put on top of other dozens of devices in a system and the maintenance aspect took on a new tone. It's like you can send an email with a single line of PHP code, which turns into 673 lines of system calls, which turns into thousands of assembly instructions and that's not even counting what happens after it's passed to a mailer - and at some point the complexity of being able to account for every action of a part becomes untenable.
- dancek 8y agoThat's pretty much true, but I have to nitpick a bit. Arduino tends to mean an 8-bit AVR chip, say ATmega328. That's actually not very low-power and things get difficult once you need just a tiny bit of performance. Luckily there are alternatives so you can choose the right tool for the job.
- floatboth 8y agoYeah, the most common boards (cheap Uno/Leonardo clones on eBay/Aliexpress) are AVR, but newer Arduino boards (M0) are based on Cortex-M cores, and there's things like the ESP32 that can be used with Arduino IDE…
- hexagon5un 8y agoWhy Linux? Sometimes it's nice to have an OS to take care of all the BS for you. Why not? Power budget, simplicity, security. I also have a light hammer, a medium sized hammer, and a sledgehammer in my basement.
- dancek 8y agoIt always depends on your goal. If you want a quick prototype and are good with javascript, get a board that you can program easily with javascript. But maybe you want to learn how things really work on a low level. Or maybe you prefer to run on batteries for a long, long time. Or perhaps you need the system to have a constant low latency. It's like, why use other programming languages when $lang is so good. But there's always a possible reason. In the end everything is a compromise.