Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programming smaller microcontrollers could be much harder (and unfamiliar). You have to use C and C++ only, in which you don't have standard C library. You have to use either Arduino as an OS, and it has no multitasking and perverted TCP/IP stacks (built on top of single-thread everything-blocking paradigm); or RTOSes, which are cryptic (again, no libc and no posix TCP/IP stack) and you have to write or port your own implementation of everything, including software serial and i2c. Debugging is hard, usually you print messages to serial port.

This is in contrast to Raspberry Pi, which runs linux and you can program in any language and everything is like on your main PC.

Maybe latest model is overkill for anything except desktop PC or home server, but there are simpler models. I think it's pretty normal to use, for example, Raspberry Pi Zero for IoT, because good luck implementing HomeKit on avr/esp8266/stm32.

I hate commercical electronics manufacturers putting fancy desktop-level ARM controllers on everything, but let hobbyists use them without hesitation even if the only reason is support of python.



I think you are understating the current power of microcontrollers. They can run Python. You get a REPL. The days of 8 bit micros for hobbyists are over; 32 bit micros that are hundreds of times more powerful in terms of CPU, memory, flash, and APIs cost the exact same amount.

https://learn.adafruit.com/welcome-to-circuitpython/what-is-...

Here is a HomeKit device on a nrf52:

https://github.com/adafruit/Adafruit_nRF52_Arduino/blob/mast...

The library situation is pretty good these days. You can talk to TLS-enabled web servers. You can talk to Bluetooth devices. You can integrate sensors with a couple lines of code. It isn't trivial but it isn't hard either.

The advantage of using a microcontroller is that you don't have to stress out about all the other things that a computer is going to be doing. You don't have to write systemd configurations to start your application at boot. You don't have to prevent syslog from ruining your SD card. You don't have to update the Linux kernel when there is a 0day. You don't have to work hard to power the machine from a battery. (I have a Bluetooth-based temperature/humidity/pressure logger + epaper clock that runs off a 100mAh LiPo battery. A Raspberry Pi that isn't even turned on would suck that thing dry in 3 hours, not counting power loss in the boost converter that would be required.)

The advantage of using a Raspberry Pi is that you get a ton more CPU power and all the advantages of a computer. Your GPIO sensors can show their data on 2 4k screens. You can browse the web with Chrome. You can run complex software trivially.

They are both great for different use cases. I think someone that wants to make a tiny robot or blinky light would be better served by an $8 M0-based Arduino clone. I think someone that wants to run image recognition on a video feed would be better served by a Raspberry Pi. The power level of the Pi is greater than a micro. Getting something simple working perfectly without any future maintenance is easier on a micro.


> You have to use C and C++ only, in which you don't have standard C library.

I run micropython on my esp8266 because I didn't like the lua that it shipped with. If this is a problem, then it's specific to Arduino.

Edit: lua, not node.js


The term "Arduino" is for the ecosystem; it doesn't refer to any singular microcontroller.

At one time, long ago, it did - mainly the ATMega8 platform that was at the heart of the Wiring project, which ultimately begat the original Arduino (and Processing).

But the ecosystem expanded; first via different Atmel microcontrollers (many which became so-called "official" platforms), then eventually to other microcontroller platforms (and Microchip, maker of the venerable PIC microcontroller platform, eventually purchased Atmel).

The ESP8266 is a part of that ecosystem today, along with other so-called "ESP" controllers:

https://github.com/esp8266/Arduino

https://www.esp8266.com/wiki/doku.php?id=start-with-esp-12-a...

https://github.com/espressif/arduino-esp32

It wouldn't surprise me to find out there is a core available for the Raspberry Pi - or at least for the SOC on the board...

Hmm:

https://github.com/me-no-dev/RasPiArduino

I looked to see if I could find any kind of "real" core for the Raspberry Pi or Broadcom SOCs but I didn't find anything other than the above, which seems to be in active development. Honestly, though, you wouldn't really use a Raspberry Pi that way; more likely you would use the Raspberry Pi as a development platform for an Arduino ecosystem platform, that would likely be attached to the Pi via USB or some other method.

People, especially beginners, are often confused by what the name "Arduino" means; as I've noted, today it's an ecosystem composed of many different platforms, some "official", but many more that are not.

...and this of course doesn't get into the whole "real" vs "knockoff" vs "counterfeit" debate (which is a whole 'nother story).




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: