back to menue

CForth with STM32C011J6 (SO8case) on support PCB

It is a little bit funny idea, to create a Forth interpreter for such a tiny processor module with only 4 - or max 5 user available I/O pins. I have built some interesting modules with ATtiny 8 pin processors, so I wanted to check out the newer STM32C011 processor for similar tasks and have my fun.

The biggest problem was to configure a really working Segger Embedded Studio project, the built-in support by Segger is very bad and the STM support (CubeMX) is even worse.
The next challenging problem was to build a solution to switch the STM32C011 system configuration and option bytes for pin4 between NRST and PA1, to get an additional I/O but still be able to make a reset for reprogramming with STM32 Cube Programmer.
These two difficult tasks would have been necessary even for a most simple standalone project with STM32C011.
The CForth interpreter was ported rather easily ported from my CForth Low Power projects, because some of the processors used there have very similar memory resources and the peripheral registers of the different processors are organized very similarily.

Below the line, now I have a comfortable development platform to work on more practical tiny projects, like small stand-alone sensor driven motor applications, battery chargers or alarm beepers.
For this reason the proposed Veroboard compatible PCB layout is made of three parts: left hand standard power connector and manual reset button, middle the processor kernel and user I/O, right hand the terminal interface.
photo of the C011 SO8 module on Veroboard PCB

For later practical applications, the middle part may be cut out. This is preempted by two jumpers, which disconnect the CForth necessary add-ons from the processor kernel and application I/O. By Forth commands, the terminal USART Tx can be reprogrammed as additional user I/O, commands can be sent via terminal, but no feedback. At any time the USART Tx can be reativated by CForth command.

The CForth command set for STM32C011 is almost the same as for standard STM32F042:
      Detailled CForth Operating Manual (PDF file).

Due to some differences in memory structure and the low-pin restrictions, following differences have to be taken into account:

A hardware DIY Construction Manual for STM32C011J6(SO8 case)  (HTML file) is provided here.

Downloads:
The subsequently downloadable material is copyrighted (c)2025 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.

Firmware "CForth-C011-48.hex"
SysClock = 48MHz HSI (CPU internal RC oscillator)
(06 December 2025 - first release)

Firmware "CForth-C011-3.hex"
SysClock = 3MHz HSI (CPU internal RC oscillator)
(06 December 2025 - first release)

Source code "CForth-C011-v1.zip"
(state 06 December 2025) This source code is provided as complete "Segger Embedded Studio 8.24" project (ZIP file, 974 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.)


This project is programmed directly on register level, no external libraries (except "cmsis" and startup code), no external drivers or HAL are used.


back to menue


* State of information December 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.