back to menue

NucleoSynth - Audio Synthesizer based on STM32 Nucleo-F446

This is a DIY construction manual for a digital 10 voices polyphonic Audio Synthesizer
based on STM32 Nucleo-F446, which is plugged onto a specific low-tech PCB described here.

The instrument is controlled completely digitally. Internal digital data are transformed to an analog output signal using the internal DAC of the STM32F446 processor and finally amplified to headphone impedance with an audio amplifier IC.
For comfortable handling, a local operator panel with LCD display, 4 pushbuttons, 1 encoder, 2LEDs and flexible wire connection with the base board is added.
To play the instrument and for external configuration, communication is possible via USB and USART. MIDI and RS-232 modes are selectable with a dual DIP switch.

To save space and supply current, the standard version uses the Nucleo with cut-off ST-Link part and 8MHz crystal oscillator added. A modified firmware for an unmodified Nucleo module to fit on the standard hardware is provided. For a first test or as "embedded instrument" without operator panel, a minimal hard- and firmware design for an unmodified Nucleo is available.

NucleoSynth hardware foto
NucleoSynth built into aluminium box and the complete hardware pulled out of the box

A design intention was to keep the additional hardware technology as low as possible. For most people, making a PCB is the biggest barrier. For this reason a completely 2.54mm Veroboard compatible design is proposed here. It can be wired manually or manufactured as a one layer PCB too. Smallest PCB wire width is 0.8mm, smallest distance between wires etc. is 0.4mm, optimized for most simple PCB production technologies.

Most essential features of the NucleoSynth:

At the version with unmodified Nucleo board and minimal additional hardware, the keyboard is connected via legacy MIDI IN. Configuration is made with ASCII text via the virtual USB COM port provided by the ST-LINK part of the Nucleo board --- or less comfortable with MIDI Control Change and Program Change messages. Down- and upload of dumps and user waves is made via virtual ST-LINK COM port. Apart from these limitations, the features of the synthesizer engine are the same as the standard version.

minimal hardware

A detailled Operation Manual is provided here (PDF file),
and >a detailled hardware DIY Construction Manual is provided here (PDF file).

Downloads:
The subsequently downloadable material is copyrighted (c)2019-23 by Wolfgang Schemmert.
Assembly and use of the device is permitted for free by everybody for any purpose ("freeware").
All information is based on best knowledge, but "as is" and without any warranty. Any responsibility is excluded.

Veroboard compatible PCB layout for the "base board"
(1:1 TIF format, BOTTOM layer as well as component placement view "from component side"(as needed for PCB production)

Veroboard compatible PCB layout proposal for the "operator panel"
(1:1 TIF format, BOTTOM layer as well as component placement view "from component side" (as needed for PCB production)

Firmware "nucleosynth39-cutoff.hex" for the NucleoSynth with operator panel. ST-LINK part cut off from the Nucleo module
(Version 3.9, 11 January 2023) -- MIDI commands for parameter configuration reorganized, minor bugfixes

Firmware "nucleosynth39-orig.hex" for the NucleoSynth with operator panel. Nucleo module unmodified.
(Version 3.9, 11 January 2023)
USART1 works as legacy MIDI IN. USART2 is activated for additional communication and configuration via the ST-LINK USB (virtual COM port). USB communication with STM32F446 onboard peripheral. Else same additional hardware and synthesizer engine with same features as tbe "cutoff" version.

Firmware "nucleosynth39-minhw.hex" for minimal additional hardware
(Version 3.9, 11 January 2023)
Minimal hardware add-on for unmodified Nucleo. The STM32F446 onboard USB is not used. Instead USART2 is activated for communication and configuration via the ST-LINK USB (virtual COM port). USART1 works as legacy MIDI IN. Else synthesizer engine with same features as tbe "cutoff" version.

Source code "nucleosynth39.zip"
(status 11 January 2023) This source code is provided as complete "EmBitz 1.11" project (ZIP file, 4.383 kB). Can been compiled and has been coarsely tested with Embitz 2.41.
Parts published by EmBitz are under license of EmBitz, parts published by STM are under license of STM, parts programmed by me are provided under GNU GPL3 license.)

My own help file:
"waves14bit.zip" archive contains source code for a Windows console app to design and calculate user waveforms based on simple mathematical models. Furthermore a set of example userwaves (MIDI SysEx conformant .syx files) is included, generated with this software.
(status 12 July 2019) It generates the corresponding SysEx (.syx) files for direct upload to NucleoSynth. Furthermore, C-Code compatible source code snips of waveform data are generated. Developed with good old Dev-C++ 9.9.9.2, other compilers may require changes.


back to menue


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