Earlier quoted context omitted.
STM32 is available with more, and better peripherals and interfaces than the ESP32. Embedded microcontrollers perform a wide variety of tasks, aside from simple digital communication. [0] I am an embedded engineer who works with STM32 and bluetooth modules
So this is totally off-topic and a bit you are going to think I am very rude for intruding: I was just looking around whether it is possible to create custom apps (on phones) to sync with smart watches (generic ones from places like aliexpress). I have no experience with bluetooth, but is there anything that would prevent you from making something like that? Even if it is just for myself, I don't need to release or a…
Updating STM32 Over-The-Air using ESP32
41–50 of 63 posts
Re: Updating STM32 Over-The-Air using ESP32
#42Earlier quoted context omitted.
A datasheet is a contract, not just documentation. If they put something on the datasheet, they need to write the document, then test the parameter, and guarantee that performance. If I receive 10k of a part that does not satisfy specified performance parameters, I will return the reels, and never design that manufacturer's parts into any future product.
Oh, surely they're not contracts. They're full of disclaimers like: "MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND [..], RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE." And then they publish 50 pages errata including: "Ethernet functionality in 64-pin packages is not available." ...
Re: Updating STM32 Over-The-Air using ESP32
#43Earlier quoted context omitted.
I generally recommend going for the highest-spec board that suits your requirements. The STM32L4+, STM32L5, and STM32H7 are all amazing microcontrollers.
I'm playing with STM32 Cube IDE right now. I got surprised that it works well on Linux (ok, I did only basic stuff, but did not have any trouble setting it up). However I was wondering what would be totally open source toolchain and development setup? That might be too advanced for me now (and I'm happy with graphical peripheral selection in ST tools), but would like to try it in the future
There are plenty of open source projects for STM32
There is https://www.openstm32.org
Also there are plenty of Open Source RTOS projects that come with a HAL, so you can write code that is vendor independent.
Zephyr is probably the largest full-featured RTOS, it's backed by the Linux Foundation and several hardware vendors (NXP, Nordic, Intel, Ti and SiFive), but the community provides support for other vendor's chips too.
RIOT-OS is more popular in the academic sector, targeting sensor networks.
NuttX tries to bring a POSIX environment to your MCU and of course STM32 is supported there too.
there is of course ARM Mbed, but that feels more like a framework than an integrated OS.
Heck you can even run Linux on the larger STM32s (M4, M7) if you attach some external RAM - kernel support was provided by ST themselves.
Re: Updating STM32 Over-The-Air using ESP32
#44Earlier quoted context omitted.
A datasheet is a contract, not just documentation. If they put something on the datasheet, they need to write the document, then test the parameter, and guarantee that performance. If I receive 10k of a part that does not satisfy specified performance parameters, I will return the reels, and never design that manufacturer's parts into any future product.
Oh, surely they're not contracts. They're full of disclaimers like: "MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND [..], RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE." And then they publish 50 pages errata including: "Ethernet functionality in 64-pin packages is not available." ...
Working with same54 has taught me to always also read the Errata Sheet when checking out a feature, I can only guess that there was a bit of a shake-up with the acquisition by Microchip that so many errors slipped in.
But those are at least consistent across chips.
Re: Updating STM32 Over-The-Air using ESP32
#45Earlier quoted context omitted.
On RIOT we’ve put quite some work into implementing the peripheral APIs on the esp8266/esp32 just like on any other supported platform. So no matter if you are on stm32, esp* or ATmega, you can run the same code.
Would I be able to build something that leverages Bluetooth mesh functionality with RIOT and ESP32? Is this use-case supported well?
https://api.riot-os.org/group__cpu__esp32.html#esp32_feature...
You could do a mesh with ESP-Now and RPL though.
Re: Updating STM32 Over-The-Air using ESP32
#46Sorry if this question sounds stupid but why not just use the ESP32 for whatever the STM32 is being used for? It can even update itself over the air.
Better support, documentation, and peripherals. The ESP32 datasheet is 62 pages. The STM32F4 datasheet is 1729 pages, and that's not counting the reference manuals. The ESP32 datasheet contains about 3 paragraphs about the ADC, which basically say that it has an accuracy of +/-6%, see example code for ways to calibrate it (which probably amounts to a linear interpolation between two sample counts with the pin pulled…
I'm not certain I would consider this a 'feature'.
I have been forced to use F042 and F767 for work, and I must say, I have never seen such convoluted peripheral implementations in my life. There is complexity for complexity's sake, it seems to me. I could write a booklet about this, with each bloated, twisted peripheral as a chapter.
Re: Updating STM32 Over-The-Air using ESP32
#47Earlier quoted context omitted.
Weirdly, no, a lot of the time. It's $1 for an STM32F0 or $2.65 for an STM32F4 with a quantity of ten 12-bit 2.4 MSPS ADCs included, but a single-channel SOT23-5 ADC chip is also $1, and if you wanted 10 single-ended channels at 2 MSPS you're looking at $8 per device. You typically don't use an off-chip ADC peripheral when most every MCU has a few channels of ADC on-board unless you've got special requirements (like…
To be clear, there is a quantity of one ADC in the STM32F4, with a multiplexer in front. You could emulate this with an analog switch like 74HC4051, which costs pennies in quantity.
STM32 models with more than one ADC, they can typically be interleaved to increase effective sampling speed. In the case of the STM32F405/F415, the three 2.4 MSPS ADCs can be interleaved for up to 7.2 MSPS.
The STM32 ADCs are also quite accurate with proper board layout in my experience, so you actually get close to the 12 bits. Some newer STM32 models also support hardware oversampling to effectively get close to 16 bits.
[1]: https://www.st.com/en/microcontrollers-microprocessors/stm32...
Re: Updating STM32 Over-The-Air using ESP32
#48Earlier quoted context omitted.
Better support, documentation, and peripherals. The ESP32 datasheet is 62 pages. The STM32F4 datasheet is 1729 pages, and that's not counting the reference manuals. The ESP32 datasheet contains about 3 paragraphs about the ADC, which basically say that it has an accuracy of +/-6%, see example code for ways to calibrate it (which probably amounts to a linear interpolation between two sample counts with the pin pulled…
If you're throwing an ESP on there anywhere, wouldn't an I2C or SPI ADC be way cheaper than a whole nother MPU for the same performance?
You can get a small STM32 with multiple multiplexed 12bit ADC channels, with ~2MSPS sampling speed and 256x hardware oversampling (~16bit), for less than half a buck (per 1000)[1].
Cheapest independent 12bit ADC with >500kSPS I could find on DigiKey were all over a buck (per 1000)[2], and they were all single-channel parts.
Now keep in mind that the ADC only does ADC, while the STM32G030 has several 16bit hardware timers and other peripherals.
[1]: https://www.digikey.com/product-detail/en/stmicroelectronics...
[2]: https://www.digikey.com/products/en/integrated-circuits-ics/...
Re: Updating STM32 Over-The-Air using ESP32
#49Re: Updating STM32 Over-The-Air using ESP32
#50Earlier quoted context omitted.
Would I be able to build something that leverages Bluetooth mesh functionality with RIOT and ESP32? Is this use-case supported well?
I'm afraid Bluetooth for esp32 hasn't been implemented yet (only WiFi and ESP-Now - patches welcome…). https://api.riot-os.org/group__cpu__esp32.html#esp32_feature... You could do a mesh with ESP-Now and RPL though.
Concerning the contribution of code for adding Bluetooth support - if a company would want to allocate some time and a person for this cause, would there be someone who can guide them in the process? Perhaps the challenge could be broken down into smaller components?
Assume that you get a rational human being at the input, they know various programming languages (including C and C++), but have no experience with RIOT whatsoever - would this work out?