Fixed 7 critical errors preventing firmware build: - watchdog.c: Store IWDG handle in WatchdogState struct (fixes &IWDG lvalue error) - servo.c: Remove duplicate ServoState typedef, use anonymous struct - ultrasonic.c: Add static TIM_HandleTypeDef for ISR access, fix HAL macro calls - ultrasonic.c: Replace HAL_TIM_IC_Init_Compat with HAL_TIM_IC_ConfigChannel - main.c: Add bno055_active, imu_calibrated(), crsf_is_active() helper functions - main.c: Fix buzzer call buzzer_play() -> buzzer_play_melody(MELODY_STARTUP) - i2c1.c/h: Add i2c1_read() and i2c1_write() functions for sensor support Build: pio run now passes with [SUCCESS] Memory: RAM 6.5%, Flash 10.8% Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Merge pull request 'feat: 360° LIDAR obstacle avoidance (Issue #364)' (#380) from sl-controls/issue-364-lidar-avoidance into main
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%