| ▼ docs | |
| ▼ daqapp | |
| daqapp_overview.drawio.png | |
| daqapp_threads.drawio.png | |
| ▼ firmware | |
| ▼ can_library | |
| ► canpiler | |
| build.py | |
| canpiler.drawio.png | |
| codegen.py | |
| dbcgen.py | |
| faultgen.py | |
| linker.py | |
| load_calc.py | |
| mapper.py | |
| parser.py | |
| utils.py | |
| validator.py | |
| configs | |
| ► source | |
| can_init.c | CAN library initialization, IRQ setup, and filter setup |
| can_rx.c | Common CAN RX queue, task, and callback handling |
| can_tx.c | Common CAN TX queue, task, and callback handling |
| faults_common.c | Event-based FIDR system |
| can_codec.h | Force-inlined helpers for generated CAN signal packing and unpacking |
| can_common.h | Common functions and data structures used in every node in the CAN library |
| can_rx_logic.drawio.png | |
| can_tx_logic.drawio.png | |
| fault_fsm.drawio.png | |
| faults_common.h | Event-based FIDR system |
| stale_detection.drawio.png | |
| ▼ common | |
| ► amk | |
| amk.c | Modernized AMK driver |
| amk.h | Modernized AMK driver |
| ► bangbang | |
| bangbang.c | Generic bang-bang controller with hysteresis and minimum switch interval |
| bangbang.h | Generic bang-bang controller with hysteresis and minimum switch interval |
| ► heartbeat | |
| heartbeat.c | Shared heartbeat task implementation for status LEDs |
| heartbeat.h | Shared heartbeat task implementation for status LEDs |
| ► izze_imu | |
| izze_imu.h | |
| ► lerp_lut | |
| lerp12_vs_exp.png | |
| lerp_lut.c | Linear interpolation lookup table (LUT) |
| lerp_lut.h | Linear interpolation lookup table (LUT) |
| ► nextion | |
| nextion.c | Nextion display driver interface |
| nextion.h | Nextion display driver interface |
| ► phal_F4 | |
| ► adc | |
| adc.c | |
| adc.h | |
| ► can | |
| can.c | |
| can.h | |
| ► crc | |
| crc.c | Hardware CRC32 w/ software fallback |
| crc.h | Hardware CRC32 w/ software fallback |
| ► dma | |
| dma.c | Basic DMA Peripheral HAL library for setting up DMA transfers |
| dma.h | |
| ► flash | |
| flash.c | |
| flash.h | |
| ► gpio | |
| gpio.c | |
| gpio.h | GPIO Driver for STM32F4 Devices |
| ► pwm | |
| pwm.c | |
| pwm.h | |
| ► rcc | |
| rcc.c | |
| rcc.h | RCC Configuration Driver for STM32F4 Devices |
| ► rtc | |
| rtc.c | |
| rtc.h | RTC Configuration Driver for STM32F4 Devices |
| ► spi | |
| spi.c | PER Serial Peripheral Interface Device driver for STM32F4 |
| spi.h | |
| ► usart | |
| usart.c | |
| usart.h | |
| phal_F4.h | |
| ► phal_G4 | |
| ► adc | |
| adc.c | G4 ADC public API implementation. All register-level detail lives in adc_priv.c; this file only coordinates the ADC with its DMA channel |
| adc.h | G4 ADC public API. DMA-only, DMA-first conversions |
| adc_priv.c | Register-level implementation of the STM32G4 ADC PHAL |
| adc_priv.h | Private register-level API for the STM32G4 ADC PHAL |
| ► crc | |
| crc.c | STM32G4 CRC public-layer implementation |
| crc.h | STM32G4 CRC public API |
| crc_priv.c | STM32G4 CRC register-level implementation |
| crc_priv.h | STM32G4 CRC register-level implementation interface |
| ► dma | |
| dma.c | G4 DMA Peripheral public API implementation |
| dma.h | G4 DMA Peripheral public API implementation |
| dma_priv.c | G4 DMA Peripheral private/register level implementation |
| dma_priv.h | G4 DMA Peripheral private/register level implementation |
| dma_wiring.h | G4 DMA Peripheral wiring configuration and definitions |
| ► fdcan | |
| fdcan.c | G4 FDCAN public API implementation |
| fdcan.h | G4 FDCAN public API implementation |
| fdcan_priv.c | G4 FDCAN private/register level implementation |
| fdcan_priv.h | G4 FDCAN private/register level implementation |
| ► flash | |
| flash.c | STM32G4 internal-flash public-layer implementation |
| flash.h | STM32G4 internal-flash public API |
| flash_priv.c | STM32G4 internal-flash register-level implementation |
| flash_priv.h | STM32G4 internal-flash register-level implementation interface |
| ► gpio | |
| gpio.c | G4 GPIO public API implementation |
| gpio.h | G4 GPIO public API |
| gpio_priv.c | G4 GPIO private/register level implementation |
| gpio_priv.h | G4 GPIO private/register level implementation |
| ► pin_defs | |
| g474ret6.h | Common G4 pin definitions for RET6 package |
| ► pwm | |
| pwm.c | Public PWM driver interface for STM32G4 |
| pwm.h | PWM driver for STM32G4 |
| pwm_priv.c | Private STM32G4 PWM register implementation |
| pwm_priv.h | Header file for private STM32G4 PWM register implementation |
| ► rcc | |
| rcc.c | G4 RCC public API implementation |
| rcc.h | G4 RCC public API implementation |
| rcc_priv.c | G4 RCC private/register level implementation |
| rcc_priv.h | G4 RCC private/register level implementation |
| ► spi | |
| spi.c | G4 SPI |
| spi.h | G4 SPI public API |
| spi_priv.c | G4 SPI Peripheral private/register level implementation |
| spi_priv.h | Internal G4 SPI helpers and DMA configuration macros |
| ► usart | |
| usart.c | |
| usart.h | |
| usart_priv.c | |
| usart_priv.h | |
| ► usb | |
| usb.c | Validation and state for the public STM32G4 USB API |
| usb.h | STM32G4 USB full-speed device API |
| usb_priv.c | STM32G4 USB register and packet-memory implementation |
| usb_priv.h | Register-level interface used by the STM32G4 USB public layer |
| ► rtos | |
| FreeRTOSConfig.h | |
| rtos.c | Wrapper macros for FreeRTOS constructs (tasks, queues, semaphores) to simplify static memory allocation and initialization |
| rtos.h | Wrapper macros for FreeRTOS constructs (tasks, queues, semaphores) to simplify static memory allocation and initialization |
| ► sdio | |
| sdio.c | Secure Digital Input Output Interface driver for STM32F4 |
| sdio.h | |
| ► strbuf | |
| strbuf.c | Fixed-size string builder. Useful for building large CMD strings before transmission |
| strbuf.h | Fixed-size string builder. Useful for building large CMD strings before transmission |
| ► syscalls | |
| syscalls.c | |
| syscalls.h | |
| ► ublox | |
| nav_pvt.c | UBX NAV-PVT message definition and decoder function |
| nav_pvt.h | UBX NAV-PVT message definition and decoder function |
| nav_relposned.c | UBX NAV-RELPOSNED message definition and decoder function |
| nav_relposned.h | UBX NAV-RELPOSNED message definition and decoder function |
| ► utils | |
| abs.h | Absolute value functions utility header |
| clamp.h | Utility header to clamp a value to a bounded range |
| countof.h | Macro-based countof implementation |
| linear_algebra.h | Linear algebra functions utility header |
| max.h | Maximum value functions utility header |
| min.h | Minimum value functions utility header |
| orientation.h | |
| rescale.h | Utility header to linearly map values from one range to another |
| units.h | SI and Imperial unit defs and conversion functions |
| ► watchdog | |
| watchdog.c | Basic watchdog implementation |
| watchdog.h | Basic watchdog implementation |
| ▼ source | |
| ► a_box | |
| ► adbms | |
| adbms.c | Primary logic and interface for ADBMS battery management system driver |
| adbms.h | Primary logic and interface for ADBMS battery management system driver |
| adbms6380.c | Low level BMS driver specific to ADBMS6380 chip |
| adbms6380.h | Low level BMS driver specific to ADBMS6380 chip |
| commands.c | Listing of all ADBMS commands |
| commands.h | Listing of all ADBMS commands |
| pec.c | Calculation of PEC (CRC15, CRC10) for ADBMS communication |
| pec.h | Calculation of PEC (CRC15, CRC10) for ADBMS communication |
| ► charging_fsm | |
| charging_fsm.c | Charger control state machine implementation |
| charging_FSM.drawio.png | |
| charging_fsm.h | Charger control state machine implementation |
| ► telemetry | |
| telemetry.c | ABOX Telemetry task implementations |
| telemetry.h | ABOX Telemetry task implementations |
| ► thermistor | |
| thermistor.c | Thermistor lookup table from datasheet |
| thermistor.h | Thermistor lookup table from datasheet |
| abox.drawio.png | |
| main.c | "Abox" node source code |
| main.h | "Abox" node source code |
| ► daq | |
| ► can_irq | |
| can_irq.c | Timestamped frame producers from CAN RX IRQ |
| can_irq.h | Timestamped frame producers from CAN RX IRQ |
| ► ethernet | |
| ethernet.c | Implementation of the ethernet thread for wireless data acquisition |
| ethernet.h | Implementation of the ethernet thread for wireless data acquisition |
| ethernet_FSM.drawio.png | |
| w5500_callbacks.c | Implementation of the W5500 SPI callbacks for ethernet communication |
| ► rtc_sync | |
| rtc_sync.c | Synchronization of the RTC peripheral with the GPS UTC time |
| rtc_sync.h | Synchronization of the RTC peripheral with the GPS UTC time |
| ► sd_card | |
| sd_card.c | Logging of received bus messages onto an SD card |
| sd_card.h | Logging of received bus messages onto an SD card |
| SD_FSM.drawio.png | |
| ► spmc | |
| spmc.c | Custom SPMC designed for high throughput handling of CAN message streams |
| spmc.h | Custom SPMC designed for high throughput handling of CAN message streams |
| timestamped_frame.h | Definition for timestamped CAN frames |
| daq.drawio.png | |
| DAQ_timing_diagram.drawio.png | |
| main.c | "DAQ" node source code |
| main.h | "DAQ" node source code |
| ► dashboard | |
| ► design | |
| AMK.png | |
| CALIBRATION.png | |
| FAULT.png | |
| PER26_colors.png | |
| RACE.png | |
| ► driver_interface | |
| ► pages | |
| amk.c | AMK page implementation |
| amk.h | AMK page implementation |
| calibration.c | Calibration page implementation |
| calibration.h | Calibration page implementation |
| faults.c | Faults page implementation |
| faults.h | Faults page implementation |
| race.c | Race page implementation |
| race.h | Race page implementation |
| vcu.c | VCU page implementation |
| vcu.h | |
| colors.h | Color definitions for LCD display |
| driver_interface.c | Thread to manage driver-facing LCD, buttons, LEDs |
| driver_interface.h | Thread to manage driver-facing LCD, buttons, LEDs |
| lcd.c | LCD display management |
| lcd.h | LCD display management |
| menu_system.c | Implementation of menu system for LCD display interface |
| menu_system.h | Implementation of menu system for LCD display interface |
| ► pedals | |
| pedals.c | Pedal processing logic |
| pedals.h | |
| ► telemetry | |
| telemetry.c | DASHBOARD telemetry task implementations |
| telemetry.h | DASHBOARD telemetry task implementations |
| dashboard.drawio.png | |
| main.c | "Dashboard" node source code |
| main.h | |
| ► driveline | |
| ► oil_temps | |
| oil_temps_table.c | Oil temp lookup table from datasheet |
| oil_temps_table.h | Oil temp lookup table from datasheet |
| config.h | |
| driveline.drawio.png | |
| main.c | "Driveline" node source code |
| pin_defs.h | "Driveline" node pin definitions and related constants |
| ► f4_testing | |
| canpiler.c | |
| f4_testing.h | |
| freertos_demo.c | |
| onboarding_26.c | Onboarding 26 starter file |
| pwm_testing.c | |
| ► g4_testing | |
| adc_test.c | G4 ADC loopback test verifying end-to-end conversion accuracy |
| blinky.c | |
| canpiler_test.c | |
| crc_test.c | |
| fdcan_test.c | |
| freertos_test.c | |
| g4_testing.h | |
| gpio_test.c | |
| internal_flash.c | |
| izze_imu_config.c | |
| main.h | |
| pwm_testing.c | Test file for PWM on STM32G4 |
| spi_test.c | |
| usart_test.c | |
| usb_test.c | Minimal vendor bulk-echo device using the STM32G4 USB HAL |
| ► main_module | |
| ► powertrain | |
| powertrain.c | Powertrain implementation |
| powertrain.h | Powertrain implementation |
| ► sdc | |
| sdc.c | SDC task implementation |
| sdc.h | SDC task implementation |
| ► telemetry | |
| telemetry.c | MAIN MODULE telemetry task implementations |
| telemetry.h | MAIN MODULE telemetry task implementations |
| ► torque_controller | |
| torque_controller.c | Vehicle torque request calculation |
| torque_controller.h | Vehicle torque request calculation |
| ► vehicle_fsm | |
| vehicle_fsm.c | Master vehicle state machine implementation |
| vehicle_FSM.drawio.png | |
| vehicle_fsm.h | Master vehicle state machine implementation |
| main.c | "Main Module" node source code |
| main.h | "Main Module" node source code |
| main_module.drawio.png | |
| ► pdu | |
| ► cooling | |
| cooling_callbacks.c | Callback functions for bang-bang control |
| cooling_callbacks.h | Callback functions for bang-bang control |
| cooling_fsm.c | |
| cooling_fsm.h | |
| ► faults | |
| faults.c | |
| faults.h | |
| ► led | |
| led.c | |
| led.h | |
| ► state | |
| state.c | |
| state.h | |
| ► switches | |
| switches.c | |
| switches.h | |
| ► telemetry | |
| telemetry.c | |
| telemetry.h | |
| main.c | "PDU" node source code |
| main.h | "PDU" node source code |
| power_rails.png | |
| ► torque_vector | |
| ► control_loop | |
| control_loop.c | Main torque vectoring control loop |
| control_loop.h | Main torque vectoring control loop |
| ► sensors | |
| gps.c | GPS RX and parsing thread |
| imu.c | IMU calibration and coordinate transformations |
| sensors.h | TV Managed sensor header |
| ► telemetry | |
| telemetry.c | TORQUE VECTOR telemetry task implementations |
| telemetry.h | TORQUE VECTOR telemetry task implementations |
| ► vcu | |
| vcu.h | |
| vcu_init.c | |
| vcu_step.c | |
| main.c | "Torque Vector" node source code |
| main.h | "Torque Vector" node source code |
| torque_vectoring.drawio.png | |
| torque_path.drawio.png | |
| support | |