Comment by chpatrick
Comment by chpatrick 7 days ago
ESP stuff is so damn cheap and capable now I'm not sure what you would use Arduino for these days.
Comment by chpatrick 7 days ago
ESP stuff is so damn cheap and capable now I'm not sure what you would use Arduino for these days.
What's hard about programming an ESP32?
I plug the USB in and its the same as an Arudino, can even use Arduino IDE, but I prefer VS Code with the PlatformIo extension. You can even use the Arduino Library (#import <Arduino.h>
And a ESP32C board with wifi/bluetooth is like $8 https://www.amazon.com/Seeed-Studio-XIAO-ESP32C3-Microcontro... (and thats from amazon, on alibaba its like couple bucks if that)
As a side note, you can power this with your IPhone's USB C which was surprisingly cool.
It is basically the same thing, don't understand either why it would harder.
The only thing is to add the ESP32 module on the addons since it doesn't come enabled by default. Arduino isn't good for projects with more than 5 source code files, it is an awful IDE beyond the basic things you can pack on a single source code file.
Always had so many difficulties handling the IDE defects, basically it can crash when starting and every now and then will just refuse to upload the firmware. The other part are libraries, really difficult to setup all the needed libraries for larger code bases.
On that sense, Visual Code with PlatformIO went far beyond. Just open the project there and the libraries are taken care. The connection to boards is more robust. I'm not so sure how to feel with this sale to Qualcomm, it just feels that it is going there to die.
Quite the difference from the early days where Arduino had such energy and the tools would bring almost anyone into microntrollers with such ease.
As a complete beginner to hardware stuff, I do find the Arduino Cloud thing to be pretty compelling. Being able to push out updates over the cloud is nice! Buuuut.. once I'm mostly done with a project, there's just no need at all for it anymore. The Arduino I'm using for a receipt printer is just sitting there and now the cloud bit doesn't do anything for me.
And the problem I have is that ESP32s aren't much more difficult to set up nowadays, are wildly cheaper, and I'm soso excited to start messing around with ESP-NOW which I don't think Arduino has? But having like 10 ESP32s for messing around freely is more valuable than the cloud thing for me. And there are some super fun projects for ESP32 also like the Cheap Yellow Display thing. I ordered what I thought was one display, except it was 3, and I thought I would have to provide my own ESP32s but nope, they come with them. And these three CYDs were cheaper than a single Arduino it's actually crazy.
Yeah, ESPnow is pretty good. I'm using it more than LoRa because all ESP32 come with it and is really cheap, whereas with LoRa is all the trouble with an additional module that costs 3x more than an ESP32.
That yellow display is pretty good. I've built a tiny operating system for it, it is an unbelievable hardware for the cost of the material.
I got introduced to microcontrollers through the original Arduino board. It took me only a year to switch to bare metal atmega/attiny (zero external components!), and to this day, those are my favourite micros despite all their shortcomings. Theyare extremely well documented, and them being 8-bit with a simple instruction set makes it very easy to learn assembly (or even opcodes). At the same time, they are compatible with 5V logic (and can be abused!) which makes them almost perfect for beginners.
Would I have been able to learn assembly with ESP32? Probably not. You couldn't even find proper manuals for ESP8266 back in the day because they either didn't exist, weren't in English or weren't released to the general public...
Well which board do you select then? ESP32 boardfiles do not come with the Arduino application per default.
Sure, to you and me this may seem trivial, you paste the URL into the prefs, but there are people who will get stumped by this and with an Arduino there is one less step you can forget, not know about or do wrong.
As someone who teaches those things at an University level I can assure you that does make a difference for at least 50% of my students if I let them try to do this unguided.
(psa: Arduino IDE 1.x works flawlessly for tons of non-Arduino boards, including Pi Pico, ESP32 devkits, etc. Most Arduino users aren't even able to consider processor implementation specifics, never signed an NDA in life, and don't even know where generated binaries go, so those boards are almost "binary compatible" with each others, all in _very_ positive sense)
It's not about whether it's hard for you.
Lots of people don't program.
More people don't know how to program than do know how to program.
In that way, just because I can't imagine it being hard, doesn't mean I understand everything there is to understand.
This creates a gap and opportunity for products to make technology more approachable for the majority, instead of the minority (programmers).
Making things accessible to more people instead of less people seems to increasingly be the way.
>> Lots of people don't program.
Cathy Woods says we are all programmers now, so this shouldn't be a problem anymore.
Trouble is, this kind of trivial throwaway application is all that Arduino is really good for. Because the framework is designed to support thousands of chips, it supports none of them well. Any arduino code you write is easily 5x more terse than any of the native libraries, but it's also 10x slower. If you don't care, you don't care. But if you do care, Arduino is the least appropriate way to make a microcontroller go.
Besides that, IMO hiding hardware details from the developer is the worst thing about Arduino. The hardware details matter and it's far too easy to get footgunned by some implementation detail hidden from you.
But really, esp-IDF isn't that much more complex, nor are most of the other native frameworks. It's a bit more verbose, but esp-IDF provides helper libraries that replace almost everything Arduino provides, but in a way that is actually designed for the hardware and doesn't have to do things like lookup pin numbers in a giant table for each and every gpio call.
> Besides that, IMO hiding hardware details from the developer is the worst thing about Arduino. The hardware details matter and it's far too easy to get footgunned by some implementation detail hidden from you.
Wasn't Arduino not for developers, but for hobbyists? People who aren't super technical but want to do something neat with basic microcontroller functionality?
You're complaint kinda seems like saying "BASIC isn't great language, it's got a lot of problems when used for enterprise applications." It's not really meant for that.
IMO Mbed was just as easy for hobbyists but had a far better designed API that could support professional work as well. Arduino is just badly designed.
Unfortunately the Mbed guys stuck to their crap web-based IDE for waaaay too long, and when they finally realised it couldn't cut it, they pivoted to Yotto, which was a terrible Python based build too. When that failed they finally made Mbed Studio which was based on Theia (same as Arduino is now) but by then it was too late.
I think they also lacked an obvious "start with this" board like the Arduino Duo.
I think if they have blessed one of the Neutrino boards (which were incredibly cheap and powerful compared to Arduino) with their branding, and switched to Theia like 5 years earlier they might have had a chance.
Real shame because it really was a far superior software system.
The pin mapping shenanigans are another annoying footgun with Arduino. Even in native development you're dealing with a physical pin number and the logical assignment (PA5, PA6, etc), but now Arduino maps that all again to an Arduino board pin number, and it's all shuffled to ensure the peripherals are in the right place to enable I2C, ADC, and PWM pins to function as expected.
Of course they did that. It's a HAL (hardware abstraction library).
That also means that simple projects are abstracted from the hardware. Means I can go across a dozen different CPU arch and board/pin layouts, and I change nothing in my source. I only change my target and it just works.
I did that when I went from a board operating at 16MHz/atmel to a STmicro running 50MHz. No change in my source. And that's really valuable in rapid prototyping.
Once I settled in on a board and everything, I could do it the "right way" aka the old waterfall-gile embedded approach and get things tweaked and optimized.
I would argue the RP2040/2350 fills that niche. Cheap, available, easy to program, flexible peripherals, fast enough for many projects, good documentation, and good community support.
arduino was supposed to be learning opportunity and training grounds for people who wanted to work in the field in the future, there was small arduino boards (similar to pi pico) for integration with actual projects, but still arduino was for hobbyists and students in the first place
On the other hand, their competitors haven't been sleeping either.
Companies like Adafruit and Sparkfun sell dozens of tailor-made dev board variants, and their I2C module system allows you to mix & match a whole bunch of peripherals.
The code? A handful of lines of Python, which you can drag&drop onto it like it's a flash drive. Or use a browser-based IDE if you want one-click library install and serial logging.
Arduino's IDE was groundbreaking in 2010, but these days there are easier (and cheaper!) alternatives for beginning hobbyists, and better alternatives for power users.
Good on the Arduino folks for getting acquired, then. They still have a niche and a brand with name recognition, even if that niche might be stable at best, collapsing at worst.
Even if you like the Arduino programming environment (and I do), there seems to be little reason to use Arduino hardware unless it’s for compatibility with other hardware you have? For example, there is a very nice unofficial port of Arduino for the Raspberry Pi Pico. There are also many fine Arduino-compatible single-board computers from Adafruit. The Arduino board form factor seems big and clunky in comparison.
I don’t even use the Ardiuino IDE anymore; I've switched to VS Code using PlatformIO.
It’s great that all these microcontroller boards and peripheral breakout boards can be programmed using the same basic API’s, but I don’t think it helps Arduino the company very much.
There's a wealth of easy projects that a person can get started with using an Arduino.
Without any opportunities for getting bogged down in anything extra at all, they can follow a simple recipe and quickly begin to blink an LED at the rate of their choosing.
The Arduino was developed to be a teaching tool, and it allows for a person to take little baby steps.
(Whether this placement is good or bad for Arduino as a business entity isn't something that I find particularly important.)
> I've used the ESP32 native tools and they are a lot more complex than Arduino.
How so? All of that is abstracted away from the users just like it is for Arduinos. In fact you can use the Arduino IDE to develop for most ESP32 chips.
If anything Arduino is holding back everyone with their horrible IDE. Their Board and Library managers are painfully slow and having no way to store configuration with your sketch means that you're taking a screenshot of a drop down menu if you have to make any changes.
Eventually people want to write their own libraries to make their code more manageable and the Arduino IDE makes it difficult for someone who knows what they're doing.
> But I used an Arduino, with 5V tolerant outputs, to light up Halloween costumes for years.
I have yet to encounter a piece of hardware that doesn't respect 3.3v as signal high. All of the neopixel variant's data pins work off 3.3v and most people have moved on to 12v and even 24v for larger projects while still raw dogging 3.3v on the data pin without issue.
Arduino's insistence on 5v logic levels is for maintaining backward compatibility which is honestly unnecessary.
I'm an amateur with this stuff and honestly find the ESP experience significantly more pleasant than Arduino. I'm sure there are footguns I haven't encountered, but I get so much more bang for the buck out of random ESP builds + the incredible line of various bundled ESP devices that come with touchscreens, sensors, etc. for incredibly low prices.
I know a million people have replied to you, and while I don't want to be jumping on the dog pile, I just want to say that along with PlatformIO (which automates the setup of ESPIDF and/or Arduino for the ESP, (and it also does it for a ton of other micros)) and Expressif having their own Arduino Core for their chips with integrates into Arduino's IDE, Expressif have also released their own extensions for VSCode and Eclipse that greatly aid the end user in getting ESPIDF setup and configured.)
You no longer have to break your back going from zero to blinking an LED. I remember when I first got into espressif chips and it was a right pita back then. But no more!
Personally I'm a fan of PlatformIO because its not just because of the wide selection of platforms it supports and that it uses VSCode which is my IDE of choice.
I use arduino ide to build esp projects. I have not found it much different than the arduino as a beginner, except much cheaper and faster. I like not having to do all the shield stuff. But will admit, it was helpful to start on arduino as its built in pins helped me get going as I tried to avoid soldering and breadboarded everything. That only lasted a short time before I realized I had to solder some things if I wanted to grow the project. I still like the idea of breakout boards for specific things but I usually solder them in now.
You can make the argument that esp32 supports Arduino but you can quickly run into “here be dragons” which sends most people for a loop. Arduino has a fantastic reputation for a very good reason.
What do you think about the Arduino professional line? They have industrial PLC equipments and other high end boards etc.
Not the OP, but have had some experience with the Arduino Opta around this time twelve months ago (Oct 24) through a professional development course I took at my local university on industrial control systems programming.
While it's nice to have exposure to PLC programming at an Arduino price point, the IDE, and PLC firmware was VERY rough around the edges. It took lots of resets and fiddling to even get the units connected over their USB serial, and you'd come back the next day and you'd have to repeat the process. Lots of "hold your tongue the right way while pressing this button". The IDE was also very buggy (though it may have improved in the last 12 months), but once you got things going, it did the job.
Doesn't look bad, but the Arduino name is a serious drawback. It's a brand focusing on DIY tinkering, how are you going to sell that to your boss who only finds a bunch of shady hobbyist stuff when he Googles it?
Besides, what's the market? The non-pro hardware is fine for prototypes, but you don't want a bowl of spaghetti in production, so porting it to the pro is pointless. If you want a generic compute board, why not a Raspberry Pi? If you want a PLC, why not go for a proper PLC?
There's perhaps a market for the shadow IT equivalent of electronics projects where an Arduino sketch is suddenly a load-bearing part of the company, but that's about it.
Military drones maybe? The trend is now on local AI features and they are practically throwaway.
ESP stuff is very cheap and works well, but the Arduino Uno is a great board/ecosystem for beginners and simple projects. Being 5V is more convenient for a lot of things, and having the pin headers already on the board that you can just start plugging things in with jumper wires is great.
The Arduino IDE is awesome for an extremely quick setup time. You can very easily download libraries and add them to your project, you don't have to create a blank source file, you just have to fill in setup() and loop(). The Arduino IDE makes it very easy to set up a new board and download code to it.
Much of this also applies to the Arduino IDE with and ESP32, but what I really appreciate about the whole Arduino ecosystem is if you want to do something really simple, like say, activate a servo when some sensor reaches a certain value, you literally only have to type 5-6 lines of code. You're not messing around with SDKs and Makefiles and git cloning repositories etc etc etc. You can get kits for $70 that have an Arduino clone, and a bunch of different sensors, servos, steppers, etc. It's absolutely fantastic for teaching basic programming and electronics.
Various ESP dev boards, Arduino, Pi Pico -- any of these are good places to get started from on the road towards doing useful things with microcontrollers, I think.
Arduino is just a familiar name with a long (~20 year!) history. There's a plethora of pre-existing projects that a person with no prior programming or electronics experience can implement easily to get their feet wet.
Some manner of ESP32 (or STM or MSP or RP2...) may be a good choice for a project for someone with some experience, but if you put a reasonably-motivated person in a room with a computer and an Arduino starter kit then they'll successfully be building simple things in no time.
It remains a friendly place to start doing stuff, and that was always the primary intent.
Yes. That's one way. It works fine if a person knows enough to find that board on AliExpress and buy it and is able to gather the resources to get themselves started with it. (I, myself, typically use cheap no-name dev boards...but I've been around the block a few times.)
Another other way is a ~$100 Arduino starter kit. It includes a printed instruction book and enough useful parts to sit down and begin doing stuff immediately. Anyone with a sufficiently-large pocketbook can buy it for themselves (or for someone else).
One of these things is like buying individual Lego bricks, or maybe lumber and fasteners from the hardware store, with a specific goal in mind. It's creative by necessity, and for those who know how to get where they're going then it's really quite lovely to have marketplaces like AliExpress and Ace Hardware available to satisfy our whims.
The other is more like a buying a packaged Lego kit or Meccano or an erector set that includes instructions for building several different things using the included parts. If a person (including a child) doesn't yet have any idea how to get started, then this can help them get the clues they need to go further with building other things.
---
I could buy a Chinese D1 mini dev board and a bag of assorted resistors, LEDs, transistors, and a breadboard and put it all in a nice box and give it to a kid, but I expect that they'll have a hard time figuring out what comes next. ["Now just draw the rest of the owl."]
Or, I could buy an packaged Arduino starter kit for a kid and have a reasonable expectation that they'll soon be telling me all about the neat -- if simple -- stuff they've done with it. They might not even realize the things they've learned along the way, but it'll stick with them well-enough if they want it to. And then they can move on to using VS Code with PlatformIO and start hammering out RP2040 PIO assembler when that time comes. If that's something they choose to be interested in, then they'll have a good foundation for the independent projects that may come later.
The whole is sometimes greater than the sum of its parts.
Yeah I'm kind of puzzled by what Qualcomm is getting out of this.
Arduino has so little presence in production devices and is largely an enthusiast and hobbyist product. To be clear, this is good! Having well-supported high-quality enthusiast products is awesome.
But it just doesn't... seem to overlap with the bulk of Qualcomm's business, which is large-scale silicon sales to consumer and industrial clients.
To be selling shovels for the gold rush of AI-enabled embedded devices.
Is it going to happen? I don't know. But ollama on an SBC is a sandbox I'd play in.
The earlier up the product development stream you can place your product, the bigger share you'll have down the road. There's the saying about planning for 1 year, rice, 20 years, trees, 100 years schools. Windows is the leader because most kids grow up using windows in elementary school and blindly continue on. If you own arduino, maybe they start on ardunio, continue on to qualcomm products, and they're already trained in the qualcomm ecosystem before they've started engineering school. Adobe famously was very lax on closing Photoshop cracks in the early 2000s and trained up an entire generation on their product with great success.
I run a medialab at an university. ESP32 is great, but there are some downsides that are all not dealbreakers, but can in some cases lead me to recommend a classic Arduino-type device:
1. Lack of 5V tolerant pins. Beginners may or may not be aware of the possibility of destroying the device or the need to level-shift signals.
2. Tooling may not work out of the box. As of today the tooling step boils down to pasting a URL into a field in the preferences, but that is something you need to know. You need to select the right uploading options which are much more complex than with arduino type devices.
3. IMO less clear naming of different dev boards, thus also harder to find docs.
4. Examples may not work out of the box, simple Arduino examples may fail with hard to debug issues (for beginners) where they don't know whether it is a hardware issue, wrong board/uploader setup or a pinout issue (e.g. if the onboard LED pin differs).
These are all examples of issues students had when they used the ESP32 boards without my guidance, so not just my opinion or a theory. And as I said none of these are dealbreakers, but depending on the patience, stress levels, perceived skill etc. of the student this might make me recommend an Arduino over an ESP32.
I use it for learning and play with my kids. I load the program on the board then we wire the components together and get all excited about blinking LEDs or a LCD.
The lack of features (notably Wifi on our boards) and somewhat larger size are benefits for us.
The ATMega AVR devices are not cost effective for what they deliver. However, the new ATtiny 0/1/2-series devices are worthwhile for applications the Cortex-M devices aren't a good fit for. The Arduino ecosystem doesn't really acknowledge these parts.
Exactly. I dunno why you’d ever use anything but an esp for “maker stuff” at this point. They are cheaper, more capable, and have the same DX (largely, setting aside 3.3v vs 5v).
Well you might go Nordic for the power efficiency, but I agree capital-A Arduino wouldn't even cross my mind as an option these days.
It's not the hardware but the ecosystem, libraries and support which is available. Sure there are alternatives like platformio but when you're learning most of the stuff out there eg youtube use Arduino IDE and libs. And just try and get an LLM to produce code based on Espressif libraries not Arduino lols...
Arduino is an ecosystem of pushing solutions. This is likely what is partially the appeal.
My hope and wish is Arduino sincerely remains accessible as it's always been and not solely drift into B2B or enterprise spaces.
There is a lot of chip building and delivery capacity being aligned this year.
Cheap fun, if you acquired a box of Arduinos from a defunct makerspace or startup in the mid 2010s
this. esp 32 supermini is $3 and has wifi and bluetooth. Arduino stopped being useful many years ago
you are comparing apple to orange, Arduino is not MCU. In fact, the uno r4 has a variant with esp32 module on it.
It's like saying AMD Cpu is so much better, why do you need Linux.
That's probably why these AI-capable Qualcomm boards are being introduced.
Don't look at just the specs. You also need to look at the board design and programming environment. I've used the ESP32 native tools and they are a lot more complex than Arduino. But I'm an embedded firmware developer, so it's kind of what I expect. But I used an Arduino, with 5V tolerant outputs, to light up Halloween costumes for years. I do it in 1 page of code that's I write in their IDE. I don't have to set up an SDK. And the Arudino API hides all the details I don't care about. Especially if I'm really just slinging solder and wiring something up quick.