I struggle to understand the appeal of these more premium ESP32 boards. I’m gonna throw the same code on it. It’s an ESP32 either way. What exactly am I buying here for that 3x price
People who don't want to mess around with low level configuration. For me, using an Arduino is the equivalent of prototyping a software in Python instead of doing it in C.
I haven't used any Expressif product, but is easy to find a problem or a bug while programming a MCU if you're new with it, and you don't know exactly what registers you need to edit to configure to set up the hardware correctly, or if there are hardware details, like the use of multiplexing in pins, to deal with.
With Arduino you can forget a lot of the smaller details, and you only have to know what pins to use, how you want to use them, what devices use, and the simple functions Arduino gives to you to use them (which are commom across most of boards).
This has not been my experience at all. Random cheapie ESP32 board bought off Alibaba performs/is exactly the same as expensive one with better marketing bought off Adafruit, Sparkfun, etc.
- You don't get any documentation, whereas with something more official you will have a complete schematic (so you know which support components will be used), pinout, information about power supplies etc.
- You can't rely on being able to buy the same thing again. Even if you find something with the same pinout, small changes to the power supply or usb-serial converter can ruin your day.
- Shipping will probably take a while (or you're buying from a local re-seller, increasing the cost). Your company probably doesn't have a process for buying from aliexpress, but orders from digikey all the time.
- I've not had a problem with development boards, but plenty of cheap electronics in the same category are really badly designed; a random memorable example: https://www.aliexpress.com/item/1005001621800502.html . They have had their issues, but arduino stuff does tend to be well designed, and vendor development boards are usually reliable too.
- Stuff like the feather ecosystem can be genuinely helpful when prototyping if the cost isn't an issue.
I chance the cheap stuff for personal projects, but if work is paying I'd go for something more expensive every time (and probably wouldn't have a choice).
Totally agree in general, but in the specific case of ESP32s my experience is very different.
The first-party ESP32 documentation from Espressif is excellent. The ESP-IDF has comprehensive documentation, examples, and an active engineering team on the public github bugtracker.
The modules (e.g. ESP-S3-WROOM-1) purchased directly from Espressif (or via Aliexpress or Digikey) are all the same.
Sure, there are tons of "devboards" that slap on a voltage regulator and uart chip (and not much else), both from random aliexpress sellers, to Adafruit, Olimex, and now Adruino. These are all such a thin wrapper around the ESP32 that even the janky ones are equivalent to the ESP32-S3-DevKitC from Espressif.
This devboard in particular is a devboard by Arduino (!), containing a module by u-blox (!), containing a chip from Espressif. That seems like a lot of unnecessary vendor layers to me!
Yeah, i agree that the ESP32 docs are good, and what you're going to be using most of the time while using these things.
That wasn't what i was talking about though -- if you have a look at the datasheet for this board ( https://docs.arduino.cc/static/4260b2f8de0b7abc50d3773839dee... ), there's plenty of board-specific info in there that's useful, and also plenty of stuff that's technically duplicated from the ESP32 documentation, but harder to find if you're a noob.
I can't get mad about the unnecessary layers, sorry. Using the ublox module is quite reasonable: it's smaller than any of the available modules from espressif (necessary for this form-factor), probably because they have licensed a fancy antenna design (the same one that rpi uses, i think). Using a module in general is a good idea, as it means you don't have to take on the cost and risk of doing the RF design yourself. If you buy a board using a 3rd-party module, there are probably going to be three vendors involved.
Another thing i didn't mention -- as far as i know this is the first ESP32 board you can actually buy in the same form factor as the arduino nano, which is handy if you want to switch an existing project over to ESP32.
In general I fail to understand why people are so salty about this. I see engineers using this kind of thing all the time, and they aren't stupid. It's perfectly fine to spend a bit more money to get something even marginally better.
Yes, the relative price difference is huge, but $20 makes no difference in a lot of situations.
You would always make a custom board for an actual mass appeal product. If it's not a mass made product why do you care? Pick the easiest one regardless of cost.
This is essentially a dev kit. With the ability to easily mess with it. You don't care about the cost here because it's not really an expense when amortized.
I think they're asking, why would you spend $20+ on a board like this when something like a Lolin S2 Mini[1] is $4? There are millions of ESP32s out there... What makes one from Arduino™ any better?
Because the difference between $20 and $4 is nothing if you're prototyping for a real product and you may prefer to have business partners in Europe.
Many companies easily drop a $10,000+ premium for a prototyping kit every day of the week to get support from a preferred vendor. If you give one employee making 150k/yr a 10% productivity boost, you're saving money. Prototyping cost is often mostly labor. Unit cost doesn't really matter as much until you're talking about the production BOM.
Some rough math, for an employee with a 200k fully loaded cost working 1800/hr/yr, the difference in the price of those boards is about 8-9 minutes of labor. So if it's 10 minutes quicker to get the documentation for the Arduino -- it's cheaper.
Are Aruinos really aimed at the professional prototyping market? I’ve always had the impression they are aimed at students and hobbyists. These two groups are generally more price sensitive but do also value ease of use.
For these non-professional groups, what are the benefits of a $20 Arduino ESP32 vs. one of the many $4 ones?
People use arduinos in real professional prototypes, yes. Some prototypes are held together with pieces of string inside.
Edit: if you want an example industry, the one I can remember is a bean to cup coffee machine. I guess having multiple small systems that need controlling in consumer appliances is a good fit for something like an Arduino
It sounds like you're saying price doesn't matter while prototyping, so choose what's convenient. But what's better for prototyping? A Raspberry Pi Pico W has a better SDK and better documentation, so why not go with that? (It's also $6.)
It doesn't even have on chip wireless and the drivers are proprietary. Also external flash that can't be protected using fuses. If's fine for hobby level stuff, but that's about it. If you want to make a product and not have it cloned and the firmware copied, good luck. Also the ESP32 has a power management coprocessor allowing it to.operate on batteries, wake up and do stuff, then go to sleep.
The RP2040's highlight is the PIO and the ease of deployong the firmware, although I find flashing the ESP chips much more straightforward.
Anyway, there are still issues with the official 1.20 and 1.19 micropython esp32 spiram images throwing random guru meditation error messages from esp-idf. I'm using it them with several ESP32 WROVER modules, they all crash in the same ways. Maybe I waste 19€ plus shipping on a Nano ESP32 to see if it still crashes on the U-blox module.
Everyone is talking specs, which might be a reason someone picks a product over another, but I'll offer another anecdote:
The last time I bought some prototyping gear, there were a half-dozen options that met my technical criteria. The option we ended up choosing was the first place to answer the phone, discuss our specific needs, and give us a delivery date.
There's a lot of good prototyping boards out there, I'd bet a lot of buyers are making decisions based on how quickly they can get back to business, rather than taking a fine-tooth comb to a spec sheet.
I haven't dealt with Arduino the company, but even for two entirely identical products, there may be reasons why someone would choose one vendor over another. It really depends on the purchaser's specific priorities and requirements. A significant benefit could even be something a simple as "they have the same business hours"
Hi, just asking, I'm interested in embedded but as an outsider I fail to understand how would I go about making custom board? I googled a lot, but I still fail to grasp how do you make the board? How do you program the chip? How can you test your board? How can you prototype on an arduino, if you'll use different architecture STM vs Atmega, etc...
I've done some arduino projects using VSCode and Platformio and I want to level up my skill level, however I've been struggling to find a resources that goes throught the process of actually making the product from scratch (starts with nothing and ends with a programmed product on custom board). For example, I have this project of mine where I make smart watches using an arduino and e-ink paper display. I would like to read / watch a resource where I learn to design a board that has custom STM32
I am probably about in the same spot that you are. I've been slowly working my way through this course from Andre LaMothe, I think pieces of it might be applicable for you. It's a Udemy course, so it goes on sale for ~$20ish pretty often, I think it's really well done and I've learned a lot so far.
You could start by doing an io board for one of your stm32 board. You start by doing the schematic in kicad eeschema, debug on the breadboard and then you route the actual pcb in kicad pcbnew. There are a lot of tutorial on YouTube on how to use kicad.
After that you can have it fabricated and assembled in China. It's not a necessity but it is really convenient for surface mounted parts and it is surprisingly inexpensive.
Once your comfortable doing io boards, try to replicate one of your stm32 board.
That will give you an idea about the bare minimum circuit one needs to build a functioning board (crystal, power regulator, boot select buttons, and so on)
First, make a schematic. This covers which things are electrically connected together so it's easier to see what connections there are. There's always "boilerplate" circuitry, so you'll want to start with an existing schematic. Eg https://stm32-base.org/assets/pdf/boards/original-schematic-...
Then you design the board. You take the schematic, and then actually draw the actual wires (traces) on a board, and tell it which parts go where. The output from this step is a series of Gerber files. They look something like https://info.ewmfg.com/hubfs/Gerber-file-East-West-MFG.png
Finally, you send the board files off to a fab for them to make the board, and optionally solder all the parts on. You used to be able to make it yourself but these days, a pcb house, or manufacturing facility is the way to go.
KiCad is the preferred hobbyist software package these days.
/r/PrintedCircuitBoard/ has some good resources for this process.
> How do you program the chip?
These days, via USB. Circuitry is so cheap these days that the easiest thing to do is have a USB port, and a 'program' button, so when you hold the button down, and power up the device, it boots into a special mode where it can be programmed. There are other techniques but they're mostly harder.
Back in the day, you would have a chip programming device where you would burn the code into a chip, and then have to physically put that chip into your circuit. In order to erase it, you would need to uncover a hole in the top of the chip, and then shine UV light on it.
> How can you test your board?
Depending on the level of debugging you need, a multimeter, a oscilloscope or a digital logic analyzer, in addition to printf debugging and using a debugger, possibly via JTAG.
A multimeter is good enough for simple low/high testing. Like why is this single LED not on, it should be one.
An oscilloscope is useful for graphing simple signals that a multimeter can't catch. If you're turning the LED on and off 50 times a second, it'll be dimmer than if it's just on the whole time (PWM), and an oscope is good for looking at those 50 times.
Finally, a digital logic analyzer. If you're using a bus, like I²C or SPI, and are sending bytes and bytes of data, you can read those off an oscilloscope; low, high, low low is a 4, but that gets old real quick. A digital logic analyzer will interpret the signals on the wire and just tell you the bytes.
Most chips will have a serial port so you can do printf/console.log-grade debugging. You may need additional circuitry to talk to this port, or it may happen over USB.
Finally some microcontrollers support in-circuit emulation (ICE) debugging methods. The two big ones are JTAG and SWE. These let you connect your computer to the microcontroller, and then step through your code, line by line, using a debugger.
> How can you prototype on an arduino, if you'll use different architecture STM vs Atmega, etc...
To be clear, that's not recommended. You're writing in C, not assembly so the code you write is largely portable, so it's just a matter of copying your code to a different configuration, updating the code that interacts with the chip's hardware, and then recompiling.
Updating the code may or may not be trivial though. And personally it's not especially fun. I'd just use the same chip for prototyping as I'd want in my production run. If you have your heart set on using an STM32, just use a dev kits for that to prototype with eg https://www.digikey.com/en/products/detail/stmicroelectronic... instead of an Arudino.
And of course, these days, and on the linked article, you can program in MicroPython instead of C, which is easier.
This was a great answer but the mashup of wildly varying abstraction levels made me chuckle a little. “Debugging? You’ll need printf()… and an oscilloscope.”
chip on it, e-ink display sawthered on and etc, just get me from my prototype to a full on product. Basically, I want to advance my skills to the next level, but I struggle to find how :/ .... you seem to have experience in this kind of stuff, could you please answear some of these questions?
Ps: accidentally posted before I finished the comment and using mobile client without ability to edit comments :d
Ps2: these comments are kinda out of context, but it's something that's bothering me for more than a month now.
In theory you can play with KiCad and draw something up. There's lots of tutorials on KiCad. There's always ESP32 layouts online you can start from too. You can probably figure out how to connect the memory bus to your peripherals correctly but there's always mistakes to be made. That's why it's slightly harder than a minor hobby imho since you really want a full electronics bench including logic analyzer. So it's a big expensive hobby.
If you really want a custom board I'd honestly prototype with a dev kit board like the above and then contract out what you really want to a board design company, showing them your hacked up prototype. Expect $30k for an ESP32 layout that precisely does what you want with no fluff and minimal expense. You then send that off to a PCB maker for the first run and test when it gets back. If all is well you send it off again for a larger more cost effective run.
This looks to have better software with it though. I get that you can probably port between but i'm happy to pay a few dollars to save my own time here.
We're talking $4 vs $16 for a board for engineers that cost much more than that an hour. Pick whatever you like. In fact go buy both and play with both the above and this. The cost is literally nothing. These boards are not what goes into a large production run product.
That has not been my experience at all as a user. ESPHome is even easier than Arduino and I haven’t touched firmware code in years.
The price makes a huge difference when you have dozens of them operating which is trivial with a decent hydroponics and smarthome setup. I also have a dozen boards just sitting idle ready to be called up to replace a failed one or use for a new project because they’re so cheap.
Who actually uses Arduino in production? Everyone just uses modules (for ESP32) or rolls their own using the Arduino board as a reference. They’re so simple the NRE is definitely worth the unit cost if you’re already rolling a daughter board at 1k units.
> This looks to have better software with it though. I get that you can probably port between but i'm happy to pay a few dollars to save my own time here.
There's no porting involved, you'd literally just flash the chip the same way you would if you were updating the firmware.
As a hobbyist, the price difference matters when I want to put 5 or 10 boards around the house, or inevitably fry some.
Since this is an Arduino product it would presumably be compatible with existing Arduino code and would be easier to get started with than the cheaper ones since it would have built in support within the Arduino IDE. If you’re teaching an Arduino class or have a setup that already uses an Arduino this could be easier to teach people to use than the regular ESP32, in addition to expecting higher quality QC processes and support from both the general Arduino community and the manufacturer. Obviously if you know what you are doing and have appropriate expectations for a $5 ESP32 board that would work well for your use case and can set it up easily without special instructions or a user guide you may want to use those for most of your use cases, but there is a reason people buy the more premium brand name options, especially businesses.
Same deal as the raspberry pi- the Pi isn’t as powerful as a lot of other boards and is more expensive than other boards in its class, but people use it because of the support.
I haven't used any Expressif product, but is easy to find a problem or a bug while programming a MCU if you're new with it, and you don't know exactly what registers you need to edit to configure to set up the hardware correctly, or if there are hardware details, like the use of multiplexing in pins, to deal with.
With Arduino you can forget a lot of the smaller details, and you only have to know what pins to use, how you want to use them, what devices use, and the simple functions Arduino gives to you to use them (which are commom across most of boards).