Comment by xg15

7 days ago

I wonder if even inside the hobbyist space, Arduino got obsoleted by the Raspberry Pi and its clones/compatible devices.

Basically, if you already got the skills to work with "bare" microcontrollers, you won't need all the simplification and handholding that Arduino provides and you can just buy the individual chips and fully utilize the tiny form factor and low power requirements.

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

On the other hand, if you do want to just combine different ready-made modules, focus on programming and don't want to worry too much on the low-level stuff, you will probably use a raspberry pi or similar: The form factor is only slightly larger than an arduino, but you get a full-fledged PC instead of a microcontroller.

So I don't really see a niche there.

> Arduino got obsoleted by the Raspberry Pi and its clones/compatible devices.

Not entirely. Arduino was always targeted at the "casual DIY" segment - artists, school robotics clubs, and other folks who wanted automation without a steep learning curve. This was a notch below the "serious hobbyist" tier where you could save a lot of money by just buying a bare-metal version of the same chip and write some code in C (or Rust). Or the pro tier, where there's way you're paying $20+ for a glorified breakout board.

Casual DIY always had a ton of inertia. It's also the reason why every other design for an analog guitar pedal or whatever is using components that are 50 years old: ancient designs are just copied-and-pasted forever. So I don't think Arduino is dead there, although other platforms are definitely eating some of their lunch.

  • I designed a consumer product based on a respun Uno, that has sold >500k units. The toolchain and hardware remains pretty capable, and can run super low power with care (~1 microamp most of the time).

    • But why? You can have the same chip for much less. The "toolchain" is just a bit of syntactic sugar around existing languages and tools, but more to the point, nothing stops you from using it with your own hardware.

      I'm not doubting you, just sincerely curious.

      4 replies →

  • > Not entirely. Arduino was always targeted at the "casual DIY" segment - artists, school robotics clubs, and other folks who wanted automation without a steep learning curve.

    Exactly. But my point was that this demographic would today get a more powerful and more accessible platform for their projects by buying a Raspberry Pi.

    • This is true up until it really REALLY isn't.

      The main strength of microcontroller-based hobby boards (I hesitate to say "bare-metal", but something like that) is that tuning them for long operation on a small pouch cell is pretty straightforward. There is no such easy path to prolong battery life on a Raspberry Pi (not including the RPI Pico). After that, with microcontrollers, you have direct visibility into most interrupts you may need to use. You do not have that in the standard Raspbian linux distro.

      They are foundationally different items, and it does not take a tremendously complicated project to reach the boundary between them. Need a robust wifi stack or to run a camera? You need something with at least an RTOS (like an ESP), or an actual operating system. Need to service a rapidly spinning rotary encoder without missing clicks or blocking other operations? You need a microcontroller.

      Its certainly true that you can make a Raspberry Pi do everything an arduino can (and mostly vice versa), but in terms of what's accessible to a early-intermediate hobbyist, they are different tools for different tasks.

    • They are entirely different. By Arduino, i assume you mean Arduino hardware ? They are usually just a breakout board for a given MCU.

      Raspberry pi, is a full ledge computer, with boottime measured in seconds

    • Let’s see… use the Arduino IDE, plug it in via USB, and press Upload. Your program starts on boot, every time, reliably and quickly.

      OR buy an SD card, learn what the heck “writing images” is, find a spare keyboard and monitor so you can see the RPi, learn how to use Linux for your first time, figure out how to copy files between your Macbook and Linux, figure out how to setup Wi-Fi, figure out how to run a program, then restart your RPi to find that your program didn’t start on its own, then figure out the million different ways in Linux to start a program on boot, only to find it takes forever before your program starts when you plug the RPi back in, then it turns out Linux screws up your timings so your LED art project doesn’t even work…

Getting a full-fledged PC is an anti-feature for a small project. I don't want to fart around with a Linux install just to set the thing up. I don't want to worry about SD card longevity or power supply compatibility. And I definitely don't want to spend $50+. I'll buy a cheap Arduino-compatible board that will immediately run whatever code I load it with. I've built several Arduino projects and RPi would have been more annoying and much more expensive.

The RPi Pico looks great for this, but that's pretty much an Arduino equivalent. You can even used the Arduino IDE with it.

I feel like the raspberry pi pico is more of a competitor to the arduino than the raspberry pi - there's quite a few applications where having a whole linux operating system is a hindrance compared to running on bare metal, especially anything that needs real time control of signals. (Although you can get around this on the pi by connecting peripherals via USB/serial/i2c which themselves might use MCUs).

Then again, one of the more accessible (IMO) ways of using pi picos is with the arduino environment, or its cousin platformio. I do think that even if in some ways the arduino abstractions can be limiting in some ways, in practice it's often a big timesaver for more casual (and not so casual) applications. It gives you easy access to a large ecosystem of libraries across a lot of hardware platforms.

Perspective: Former college robotics team member a while ago (2022) (IEEE SoutheastCon)

I definitely see niches for both. Even if you've got some experience an Arduino uno or mega is just an atMEGA with good software support and IO headers.

We'd usually use an RPI and Arduino - connect our 'out of the box' modules to the pi, pi to arduino via uart serial, and wire arduino to the meat and potatoes. The RPI's IO was generally not as good in terms of latency but also if the wrong wire gets crossed suddenly we'd have a dead Pi but the Arduino would shrug it off.

> 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.