logoalt Hacker News

ryukopostingyesterday at 12:01 PM0 repliesview on HN

> If you want to learn programming microcontrollers, then locking yourself into Arduino's abstractions is probably counterproductive.

Arduino isn't a pipeline from zero to professional embedded dev. It's a stepping stone, and a crucial one at that. I'd know. I'm an embedded firmware engineer. Got my first Arduino when I was 11.

Arduino's success comes from the legibility of their API and the simplicity of their tooling. It allows kids or a novice to get comfortable with core principles of the trade (GPIO, other basic peripherals, limited memory, etc) without the cognitive overhead of makefiles and JTAG adapters. You aren't getting "locked in" by anything, you're building skills that you'll need for the next step.

If all you're doing is twiddling some GPIOs, as is the case with most beginner/educational projects, RPi isn't teaching you any skills that translate to industry. So there's one niche: Arduino is a practical educational tool.

That simple tooling and API also make Arduino great for small side projects that don't demand a sophisticated uC. Once that project is finished, you can plop an ATMega328 onto a piece of perfboard with a crystal and a couple caps, and your Arduino is free to use on whatever your next project will be. Can't do that with a Pi.

Also, I'd much rather just plug an Arduino into my PC and throw some code on it, than clear off half my desk to make way for a monitor and keyboard for the Pi. Point Arduino.