Zero vs Due vs Blue Pill (STM32F103) vs ???

I have a small (hardware) project that will not fit in a Pro Mini memory (flash). I will be using a breakout board of some kind as for only one device making a PCB is not practical.

My first alternative attempt was a Blue Pill (as I had some). I found it a little finicky to program and the new STM32 core (V1.7.0) needs ST's CubeProgram (Suite?).

As it seems the Blue Pill is moving more to the ST IDE and less to arduino I thought I would look elsewhere.

My needs are modest:

  • Run at 3.3v
  • I2C
  • SPI
  • 9 I/O pins
  • Speed is not an issue, the Pro mini 8Mhz could handle the speed but not enough memory
  • Size is not an issue but I prefer to keep the board small

My only other consideration is the DUE or Zero.

My Question:

  1. Is the DUE/Zero stable and well supported in the Arduino IDE?
  2. Any issues that would make one a better choice
  3. Other recommendations?

I've only looked quickly but the NodeMCU seems to fall short on the I/O.

Thanks

John

the new STM32 core (V1.7.0) needs ST's CubeProgram (Suite?).

Really? I thought an advantage of moving STM32 Arduino support to ST-based repositories was that it removed any restrictions there might have been about 3rd parties distributing ST code. (ie: installing the STM32 core should install all of the needed ST packages as well. "Cube" may be present, but is invisible to the users.)

SAMD21 seems well supported by a number of vendors and a bunch of form factors (MKR, Nano33, Feather, ItsyBitsy, Mini, Qwiic, Trinket, Playground Express...), and some SAMD21 board would probably be my first choice for "popularity and support."
The SAM3X in Due is a bit old and less well supported.

There are Teensy and a few non-Arduino SAMD51 boards, for higher performance.

The Blue Pill and/or "Maple Mini" are the only boards I know of that show up in ultra-cheap Chinese versions.

Thank for the reply. I think I’ll go with the SAM21.

“Cube” may be present, but is invisible to the users

I didn’t save the actual error, however today I updated from 1.5.0 to 1.7.0 and went from being able to program the BluePill with the FTDI232 to receiving the error… couldn’t find xxxxCLI.exe. So the CubeProgrammer software is required to program after STM32 core 1.5.0

The Blue Pill and/or “Maple Mini” are the only boards I know of that show up in ultra-cheap Chinese versions.

That’s why I purchased a handful of Blue Pills a long time ago figuring at the price I could just keep them until I found a use. However it doesn’t take much aggravation to offset the $10 cost difference :slight_smile:

There are a few samd21 boards around which are "small". Price is around £8~£10, so still more than twice the price of pro Mini.

I have been testing Protoneer NanoARM recently, which seems ok. There are also the "Wemos" samd21 mini boards, AdaFruit itsy bitsy M0, and recently some clones of the Sparkfun samd21 breakout board.

Sparkfun samd21 breakout clone:


AdaFruit itsy bitsy M0:

Protoneer NanoARM:
258px-NANO-ARM-Top1.jpg
Wemos samd21 mini:
s-l300 (35).jpg

Have you considered an esp32 board?

258px-NANO-ARM-Top1.jpg

s-l300 (35).jpg

I didn’t save the actual error, however today I updated from 1.5.0 to 1.7.0 and went from being able to program the BluePill with the FTDI232 to receiving the error… couldn’t find xxxxCLI.exe. So the CubeProgrammer software is required to program after STM32 core 1.5.0

Blink compiled fine (for “generic STM32F1xx”) after I installed 1.7 via the board manager on my Mac, without anything else installed… (I didn’t have any ST code previously installed, and I don’t have a board handy to actually upload to, but if it were going to require Cube, it would have complained, I think…)

[edit] Ah. I see. The upload method now defaults to the STM32Cube Programmer, which I guess isn’t included. If you select the maple bootloader or HID bootloader, it should work the way it used to…

/Applications/Arduino-1.8.9 copy.app/Contents/Java/portable/packages/STM32/tools/STM32Tools/1.3.1/tools/macosx/stm32CubeProg 0 /tmp/NewArduBuild/Blink.ino.bin -g 
STM32_Programmer_CLI not found.
Please install it or add '<STM32CubeProgrammer path>/bin' to your PATH environment:
https://www.st.com/en/development-tools/stm32cubeprog.html
Aborting!

I have no problems programming BluePill boards using a generic ST Link v2 via SWD. No need to install ST Cube software. This does not use the BluePill USB port or bootloader. The programming is done via the SWD pins.

Upload Method: STM32CubeProgrammer(SWD)

There are many similar or identical devices sold by different vendors at different prices. This one is $6-7 and is the one I have.

In my case, the IDE complained that the ST Link firmware was too old. The ST Link V2 firmware can be upgraded easily. After upgrading the IDE can upload sketches to the BluePill via SWD.

No need to install ST Cube software. ...
Upload Method: STM32CubeProgrammer(SWD)

Ok, so how did you get the STM32_Programmer_CLI program that that upload method seems to want to use?
Ah - just install the "Cube Programmer" tool from STM32CubeProg - STM32CubeProgrammer software for all STM32 - STMicroelectronics ?
There are instructions: Upload methods · stm32duino/wiki Wiki · GitHub
Of course, NOT requiring an actual programmer has always been on of the advantages of the Arduino IDE...

There are multiple Alduino “cores” that support the blue pill. The Roger Clark/lib maple core uses an open source “stmflash” binary to flash the board while the st micro core now requires stm32cube which is an additional installation step as per post #6.