back to menue

CForth for STM32F411 Black Pill and Nucleo (STM32L476 or STM32F411)

Though the STM32F411 processor is quite "slim" compared with STM32G4xx and STM32L476 (no DAC!! and less optional peripheral features), the Black Pill standalone board offers a very attractive pinout to be used as a "heart" of really working user applications.
 
Because a breadboard setup is not stable enough for a longtime working application, I have designed this support circuit board. The old-fashioned RS-232 interface is very comfortable for CForth interactive programming, because any CPU reset demands a new start of the virtual COM terminal software (general USB problem). Unfortunately the STM32F411 has no built-in feature to send inverted USART TX output - in contrast to the other CPUs used for CForth. So an external TxD inverter is necessary on the support circuit board.
 
The optional MIDI and DMX512 interface is probably less interesting for most users, the board size can be reduced as needed. For a practically useable application an off-set USB connector however provides more design freedom than the onboard USB connector. The Veroboard design is an advantage against etched, when a good expansion idea comes later.
 
This triggered me to adopt this design for my own projects. The result is the simplified STM32G4xx LQFP48 based "Grey Pill". Made with home-maker's technology, the USB connector, reset and BOOT0 button didn't fit on the board (another reason to design this support board).

Black Pill support Veroboard assembly photo
Assembly of the Black Pill support circuit board with optional MIDI and DMX512 interface (top and solder side view).

A detailled CForth Operating Manual (PDF file), and
A hardware DIY Construction Manual for Black Pill /Grey Pill support board" (HTML file) is provided here.

The STM32L476 Nucleo version
is a longtime result of an older project, which has an ASCII / MIDI based command set, but no possibility to create a time-based action flow.
The DIP switch and red part of the dual LED are no essential parts in CForth context, may be used for user I/O.
DMX is not supported by this board.

Nucleo Veroboard assembly photo
Assembly of the Nucleo Veroboard (top and solder side view).

A basic firmware version for an unmodified STM32L476 Nucleo is provided, too.
 
A good tool for Forth source code upload is my DTerm Windows terminal software. It is surely not the best terminal emulator, but has been developed over the years for best fitness with my actual projects.

Downloads:
The subsequently downloadable material is copyrighted (c)2020-25 by Wolfgang Schemmert.
Assembly of the devices, programming and use of the software is permitted for free by everybody for any purpose ("freeware"). For commercial use, restrictions of third-party software contributors (Segger GmbH, STM) must be respected.
All information is based on best knowledge, but "as is" and without any warranty. Any responsibility is excluded. Use for dangerous, life-threatening and medical applications is forbidden.
 
The actual firmware is programmed with "Segger Embedded Studio 5.44".
 
These firnware versions have essentially the same features as the standard STM32G431 version.

Veroboard layout for the Black Pill support board
(A download for PCB layout 1:1 TIF format is provided there. The same board is used for STM32G4xx LQFP48 "Grey Pill")

DiY manual with Veroboard layout for STM32L476 Nucleo "base board" (PDF file). Here, the RS-232 USART transmitter is simply a directly inverted CPU I/O output, but has been tested to work reliably.
For this reason, the firmware for STM32L476 Nucleo is programmed with internally inverted USART TX output. This Nucleo board can be used by STM32F411, too. An external TxD inverter is needed then or terminal communication is only possible via USB.
Download the layout for the Nucleo "base board" as 1:1 TIF file for PCB production
(BOTTOM layer as well as component placement view are "from component side", i.e. BOTTOM layer shown mirrored "through the PCB" (as needed for PCB production)

Firmware "CForth-F411-blackpill.hex" for STM32F411 BlackPill standalone unit with or without support board.
The F411 on-chip USB and USART is supported for communication.
(12 February 2025 - code improvement and minor bugfixes)

Firmware "CForth-F411-blackpilldmx.hex" for STM32F411 BlackPill standalone unit with DMX512 transmitter on support board.
The F411 on-chip USB and USART is supported for communication and DMX.
(12 February 2025 - code improvement and minor bugfixes)

Firmware "CForth-F411Nucleo-cutoff.hex" for a Nucleo board with the ST-LINK module cut off.
The F411 on-chip USB and USART is supported for communication, but an external RS-232 TxD inverter is necessary.
(12 February 2025 - code improvement and minor bugfixes)

Firmware "CForth-F411Nucleo-orig.hex"
reduced version for an unmodified STM32F411 Nucleo-64 board.
Terminal communication exclusively via ST-Link USB.
(12 February 2025 - code improvement and minor bugfixes)

Source code "CForth-F411-v3.zip"
(state 12 February 2025) This source code is provided as complete "Segger Embedded Studio" project (ZIP file, 653 kB).
Parts published by Segger GmbH are under license of Segger&|Rowley, parts published by STM are under license of STM, parts programmed by me are provided under GNU GPL3 license.



Firmware "CForth-L476Nucleo-cutoff.hex" for a Nucleo board with the ST-LINK module cut off.
The L476 on-chip USB and USART is supported for communication.
Else features almost the same as CForth-G4xx-48.
(12 February 2025 - code improvement and minor bugfixes)

Firmware "CForth-L476Nucleo-orig.hex"
reduced version for an unmodified STM32 Nucleo L476 board.
Terminal communication exclusively via ST-Link USB.
(12 February 2025 - code improvement and minor bugfixes)

Source code "CForth-L476-v33.zip"
(state 12 February 2025) This source code is provided as complete "Segger Embedded Studio" project (ZIP file, 545 kB).
Parts published by Segger GmbH are under license of Segger&|Rowley, parts published by STM are under license of STM, parts programmed by me are provided under GNU GPL3 license.

These projects are programmed directly on register level, no external libraries (except "cmsis", startup code and Segger system code), no external drivers or HAL are used.


back to menue


* State of information February 2025.
* Right of technical modifications reserved. Provided 'as is' - without any warranty. Any responsibility is excluded.
* This description is for information only. No product specifications are assured in juridical sense.
* Trademarks and product names cited in this text are property of their respective owners.