What is proper board name for NUCLEO MB1180 rev c with stm32 F103C8T6 written on chip?


I’m trying to get PlatformIO on OSX Catalina to work with yet another
NUCLEO board, viz one that says

(on the board):

MB1180 Rev C

and on the chip printed:


----- 0 -----

I’m trying the thing with platformio.ini containing:


platform = ststm32

framework = arduino

board = nucleo_f103rb

build_type = release

upload_protocol = stlink

----- 0 -----

I get the dreaded

Warn : UNEXPECTED idcode: 0x2ba01477
Error: expected 1 of 1: 0x1ba01477

from OpenOCD

and when I apply the workaround of making changes in

so that
set _CPUTAPID 0x2ba01477


a subsequent message of unable to recognize board as stm32 family occurs.

Any idea what the proper board name for this board might be?


This doesn’t match anything in the datasheet… MB1180 is supposed to be a Nucleo-32 reference board with one of the following chips

Do you have a buy link for the board?

But if you say it has a STM32F103C8T6 chip, that’s all it matters – just search for this chip name on PlatformIO Registry. You can use board IDs like bluepill_f103c8 (STM32Duino Arduino core) or genericSTM32F103C (maple core).

Hello -

I did notice from that datasheet that the chip wasn’t represented, which I thought strange.


has the same result without the workaround in stm32f1x.cfg and with it reports

----- 0 -----

xPack OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev (2019-07-17-15:21)
Licensed under GNU GPL v2
For bug reports, read
OpenOCD: Bug Reporting
debug_level: 1

none separate

target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08002b80 msp: 0x20010000
** Programming Started **
Warn : Cannot identify target as a STM32 family.
Error: auto_probe failed
embedded:startup.tcl:449: Error: ** Programming Failed **
in procedure ‘program’
in procedure ‘program_error’ called at file “embedded:startup.tcl”, line 508
at file “embedded:startup.tcl”, line 449
*** [upload] Error 1
----- 0-----

I have tried to get a buy link for the board and will pursue that further - the board was loaned
to me and the owner may be able to shed some light.

Thanks once again.


Ah my bad, I forgot about something: The difference in expected and actual ID code explains it completely. The “STM32F103C8” chip on your board is actually a chinese fake / clone chip called the CS32F103C8T6. These clones have a different internal ID code.

This was already discussed in the PlatformIO forums – keep the board = bluepill_f103c8 and add as a new platformio.ini option the lines

upload_flags = -c set CPUTAPID 0x2ba01477

that will make openocd stop complaining about the fake chip.

Also see original thread Cannot upload to STM32 Bluepill board over STLink-V2 - #22 by John

I have found a fix - this is all due to my not realizing that the nucleo boards have an order code
as mentioned in the datasheet you linked for MB1180. In my case

  1. The order code is NUCLEO-L432KC which is mentioned both in the datasheet and on a sticker
    on the board. (For others with this issue, the sticker is just the L432KC and is stuck to the metal on the usb receiver on the board with a small dymo like label.)

  2. The part number on the chip is F103CBT6, not F103C8T6. High magnification was required to
    detect the B not 8. This is a current part number.

Bottom line is that there is a
board = nucleo_l432kc
which matches the order code and which
makes everything work properly.

Sorry to lead you down the wrong path with my misreading of the part number, and thanks again
for all the help.


1 Like

Aahh, okay I get it 100% now. Both chip are present on the board.

Top layout

The STM32F103CBT6 on the bottom of the board is the ST-Link flasher. Yes, the ST-Link is just that chip with a special firmware, that’s all it is (docs)


The actual target microcontroller on the board is the STM32L432KC, residing on the top side of the board.

So you’re not wrong to read the chip number STM32F103CBT6 on the board, but it’s not the right chip :laughing:.

Great that everything’s resolved now.


That is too funny - I just took a look and went for the larger one figuring it must be the “more
important”. Live and learn.

Thanks very much for the pointer to all the docs - now all is clear.