To build, develop and debug the firmware for the STM32L432. This will work for Solo Hacker, the Nucleo development board, or your own homemade Solo.
Install the latest ARM compiler toolchain for your system. We recommend getting the latest compilers from ARM.
You can also install the ARM toolchain using a package manager like
but be warned they might be out of date. Typically it will be called
solo-python usually with
pip3 install solo-python. The
solo python application may also be used for programming.
Obtain source code and solo tool
Source code can be downloaded from:
solo tool can be downloaded from:
- from python programs repository
pip install solo-python
- from installing prerequisites
pip3 install -r tools/requirements.txt
- github repository: repository
- installation python enviroment with command
make venvfrom root directory of source code
stm32l4xx target directory.
Now build Solo.
build-hacker recipe does a few things. First it builds the bootloader, with
signature checking disabled. Then it builds the Solo application with "hacker" features
enabled, like being able to jump to the bootloader on command. It then merges bootloader
and solo builds into the same binary. I.e. it combines
If you're just planning to do development, please don't try to reprogram the bootloader,
as this can be risky if done often. Just use
Building with debug messages
If you're developing, you probably want to see debug messages! Solo has a USB
Serial port that it will send debug messages through (from
printf). You can read them using
a normal serial terminal like
DEBUG=2 to your build recipe, like this.
make build-hacker DEBUG=1
If you use
DEBUG=2, that means Solo will not boot until something starts reading
its debug messages. So it basically waits to tether to a serial terminal so that you don't
miss any debug messages.
We recommend using our
solo tool as a serial emulator since it will automatically
reconnect each time you program Solo.
solo monitor <serial-port>
Building a Solo release
To build Solo
If you want to build a release of Solo, we recommend trying a Hacker build first just to make sure that it's working. Otherwise it may not be as easy or possible to fix any mistakes.
If you're ready to program a full release, run this recipe to build.
This outputs bootloader.hex, solo.hex, and the combined all.hex.
all.hex will cause the device to permanently lock itself. This means debuggers cannot be used and signature checking
will be enforced on all future updates.
Note if you program a secured
solo.hex file onto a Solo Hacker, it will lock the flash, but the bootloader
will still accept unsigned firmware updates. So you can switch it back to being a hacker, but you will
not be able to replace the unlocked bootloader anymore, since the permanently locked flash also disables the DFU.
Read more on Solo's boot stages.