master
PicoCalc "southbridge" custom BIOS
This is my personnal rewrite of the original PicoCalc STM32F103R8T6 firmware.
Some detailed wiki pages are available.
The primary objectives of this firmware are to be more efficient both functionally and electrically. This include:
- drastic reduction in the STM32's electricity consumption when running (~3.5 mA),
- switch backend lib stm32duino to STM32HAL. It's help reducing binary size (~25 KB) and allow more features to be implemented that way,
- added configuration saving solution (using internal flash, including backlight option),
- internal RTC access through dedicated I2C registers,
- main MCU (pico) reset using power button (Shift + short press on PWR button),
- lighten components drivers,
- auto wake-up using RTC (WIP)...
Tools version
- ARM GNU GCC: 14.3-rel1_arm-none-eabi
Compile
This source code can be compiled using ARM gcc toolchain in path and using make program.
git clone --recurse-submodules https://git.jcsmith.fr/jackcartersmith/picocalc_BIOS.git
cd picocalc_BIOS
make -j
Programming
- Unplug the picocalc and disconnect the batteries.
- Open the picocalc to access the DIP switch (SW701), put the 1 pin to ON.
- Connect the USB from the motherboard to the computer and press the power button.
- Open STM32CubeProgrammer, look for the UART access and connect.
- Use the compiled .bin/.elf firmware in the build folder and flash it on the STM32.
- Put the 1 pin of SW701 to OFF.
- Power reset everything like step 1.
TODO
- Add a Pico test program for registers/features implemented
Important notes
The current implementation of this firmware is subject to change until the v1 release.
Some features can be unstable or buggy and are marked as pre-release. A test program will be developped soon to provide some regression testing.
The permanent settings (EEPROM) save can be broken between 0.x version, it is recommanded to make a full flash erase before updating, as EEPROM configuration survives update.
Credits
Languages
C
91.3%
CMake
4.1%
Assembly
2.7%
Makefile
1.9%