Firmware¶
The source code of the firmware is listed here.
Use the Firmware¶
You can download the precompiled firmware from the following link and flash it to the STM32: DOGlove.hex
Build from Source Code¶
To build the firmware from source:
git clone https://github.com/doublehan07/DOGlove_Firmware.git
cd DOGlove_Firmware
make
💡 Note: You may need to install arm-none-eabi-gcc to compile the firmware.
Notes for Advanced Developers¶
To modify the firmware or view pin configurations, open the DOGlove.ioc file using STM32CubeMX.
Pin Allocation¶
Clock Tree Configuration¶
Source Code Structure¶
/Core: (Auto-generated by STM32CubeMX, except for
main.c
andstm32f0xx_it.c
)main.c: System initialization, LRA control, and encoder data packaging.
stm32f0xx_it.c: SysTick handler used for system-level scheduling.
/Drivers: STM32 HAL drivers (auto-generated)
/Users: Custom drivers and application code.
ads1256.c: ADC driver for the ADS1256 chip.
drv2605l.c: Haptic driver for the DRV2605L chip.
tca9548a.c: I2C multiplexer driver for the TCA9548A chip.
fsr.c: Reads power supply voltage via STM32’s internal ADC.
delay.c: Implements precise millisecond-level delay.
lra_control.c: LRA control logic and UART RX event callback.