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

Pin Allocation

Clock Tree Configuration

Clock Tree

Source Code Structure

  • /Core: (Auto-generated by STM32CubeMX, except for main.c and stm32f0xx_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.