Do you want to understand in detail what's happening? => Arduino UNO
Is the UNO too small/slow? => Arduino Due
Still too small or you really just want a small computer running Linux but with GPIO-Pins? => Raspberry PI
Do you want to understand in detail what's happening? => Arduino UNO
Is the UNO too small/slow? => Arduino Due
Still too small or you really just want a small computer running Linux but with GPIO-Pins? => Raspberry PI
It's worth noting that while you can ease your way into programming with the functions available within the Arduino IDE, there are libraries for many of the special functions of the chips, and all of the special function registers are exposed, so you can make full use of your hardware capabilities if desired.
As for choosing a microcontroller, I'm generally tempted to start by choosing a development tool, because I'll be spending more of my time in code development and testing than in any other activity.
I'm interested in synths (and teensies) and would be interested to see it.
I statically compile the loader. On BSD at least, no 3rd party libs are needed. Then all I need is avr-gcc. I can do everything from the command line. No closed source tools. No requisite graphics layer (e.g., Windows OS). No large interpreters (Python, etc.).
https://raw.githubusercontent.com/PaulStoffregen/teensy_load...
Can anyone recommend other boards where everything can be done like this, i.e., without needing closed sorce tools, graphics layer, or installation of interpreters and scripting libraries?
The MSP430-based TI Launchpads.
The various ESP-something WLAN boards have open toolchains and programming over serial as well as far as I know.
I got it to the point of booting (very slowly) up to the command line prompt and processing basic commands, but unfortunately I never figured out how to make the screen work, so that's where the project stalled. The hardware's since been broken up and repurposed.
All in C and hand-written assembly tied together with a makefile, using tools that are in Debian. The standard flash tool (also in Debian) is really easy to use and even supports JTAG debugging over USB. (Also the MSP430 has a lovely assembly instruction set if you want to work with that sort of thing.)
Can't comment about AVR or ESP; never used them.
And of course the RISC-V HiFive1, though it's still very new and in sampling quantities.
I wonder what your definition of "understand in detail what's happening" is if you recommend an Arduino for that.
It doesn't have to get as far as https://www.youtube.com/watch?v=UJHeDvr_doM (something that I recommend every should try at least once if they claim to know how things really work) but I think reading the datasheet and using the bare MCU with Asm is a good start, things which those staying within the limits of the Arduino ecosystem wouldn't be doing.
Along the same lines as that, there's also https://www.youtube.com/watch?v=8ZYMrcHm91s for those who claim to understand I2C.
After you have done all of that it might be a good idea to start soldering the AVR on your own boards.
The quality of the libraries is higher(written by professionals), you have a wider selection of supported mcu's if you'd need to port, some mcu's support the mbed, easy to-use low-power api(an event driven framework that automatically puts the mcu to sleep when it isn't needed), ARM has put a lot of work in the security of the device and that's something that's very hard to replicate.
And like the arduino, if something isn't optimal - you can always write your own.
The only major drawback is the mbed is a bit more complex. For example, you need to use pointers, unlike the Arduino, where it's not a necessity.
The Atmega8 (and entire series of attiny/atmegas) is totally suitable for commercial applications - just stick the chip directly on your PCB. AVRs are pretty ubiquitous in consumer products.
A PicKit 2 and a 16F series Microchip microcontroller would be a much better starting point just to get up and running without feeling overwhelmed.
I also remember we did a board for writing the program in the pic because it was too expensive in my country.
The original article is not written for absolute beginners, but for people who would go through the pain of soldering 100 pins to a self-designed PCB and failing 5 times before getting a working version.
Sure, if you never programmed a small device, by all means, start with an Arduino. But after you do light up that LED, please learn more. Go bare metal, learn about interrupts, state machines, entering sleep states -- without those things you'll stay forever in the toy world. In the real world, if you work with battery-powered devices, you never have the comfort of busy waiting for your UART/I2C transmission to finish, or calling analogRead() and getting immediate results (because ADC takes time and you want to do it asynchronously).
It's my pet peeve: I'm very happy that Arduino has been such a success, but I think too few people progress beyond that, and many believe this is how one programs embedded devices.
As for RPI, it's neither a production device, nor a learning tool for embedded programming. The complexity involved means there is no way a beginner can understand everything that's going on.
You don't seem to actually disagree.
You said: >Sure, if you never programmed a small device, by all means, start with an Arduino.
And the OP said advice "for real beginners", i.e., people who have never programmed a small device. I didn't read anything that hinted that the OP was suggesting people never advance beyond Arduino.
Again your disagreeing with things the OP never said.
You: >As for RPI, it's neither a production device, nor a learning tool for embedded programming.
OP: >you really just want a small computer running Linux but with GPIO-Pins?=> Raspberry PI
You can actually do everything you need in the Arduino IDE and then leave the IDE, compile and upload your own program written from scratch to the UNO. All that while staying compatible to the dozens of hardware extensions out there.
The "Arduino" part is not the destination, it's three quarters of the path to the destination and that path is already paved.
The RPI is a useful production device in some niche applications, thanks to the Compute Module. There are a lot of circumstances where you need a powerful SoC, but you don't have the time or the budget to deal with a dense BGA; the RPI Compute Module replaces a lot of difficult design work with a standard SODIMM slot. Obviously it's no use in a mass-market consumer product, but it makes a ton of sense for a small-volume industrial device.
I absolutely agree that an Arduino shouldn't be the core of a consumer electronics device, but for anyone not familiar enough with the field to know that already, it's probably at about the right level.
Nonsense. This device: http://nanthealth.com/vitality/, which was a "big deal" to telemedicine folks (and is still a good product, please somebody reproduce it for cheap), and resulted in a MASSIVE exit for the people who founded it, was built around an atmega328p.
I would be good money that it was prototyped on an arduino.
This: https://www.industrialshields.com/ is based on an arduino. Like an actual, blue, retail arduino.
I've personally built one-offs for advertising installations (products for sure, but probably not exactly what you meant), that are full of arduinos.
>doesn't let you make progress beyond "oh look, I lit up an LED!".
This is wrong enough to make me think that you either don't actually know what a microcontroller is, or are being deliberately misleading.
The system is designed to work with their cloud interface, but everything is open source and you can run offline if you need to. What's particularly neat about Particle is that if you decide that you want to make a product, they've got extensive guides on how to do it.
Do you need wifi: Wemos D1 mini
Do you need bluetooth low energy: light blue bean
ESP is production ready. But doesn't have bluetooth (esp32 is not ready for prime time yet). What are other considerations?
Wemos D1 mini or NodeMCU :).
There are some rough edges, but its already very useable, especially since the new silicon came out. Got anything specific in mind?
If that's the case, then it's basically just supply chain issues that's left. It's still hard to get batches and it's probably still pretty expensive compared to the 8266?
But I wouldn't go recommend Atmega328 for new designs unless its extremely simple, so when I say "Arduino" I mean something similar, like a Teensy 3+ or Olimex STM32 or Adafruit Feather M0