Implements STM32F7 non-blocking driver for piezo buzzer on PA8 using TIM1 PWM. Plays predefined melodies and custom sequences with melody queue. Features: - PA8 TIM1_CH1 PWM output with dynamic frequency control - Predefined melodies: startup jingle, battery warning, error alert, docking chime - Non-blocking melody queue with FIFO scheduling (4-slot capacity) - Custom melody and simple tone APIs - 15 musical notes (C4-C6) with duration presets - Rest (silence) notes for composition - 50% duty cycle for optimal piezo buzzer drive API Functions: - buzzer_init(): Configure PA8 PWM and TIM1 - buzzer_play_melody(type): Queue predefined melody - buzzer_play_custom(notes): Queue custom note sequence - buzzer_play_tone(freq, duration): Queue simple tone - buzzer_stop(): Stop playback and clear queue - buzzer_is_playing(): Query playback status - buzzer_tick(now_ms): Periodic timing update (10ms recommended) Test Suite: - 52 passing unit tests covering: * Melody structure and termination * Simple and multi-note playback * Frequency transitions * Queue management * Timing accuracy * Rest notes in sequences * Musical frequency ranges Integration: - Called at startup and ticked every 10ms in main loop - Used for startup jingle, battery warnings, error alerts, success feedback Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Merge pull request 'feat(social): energy+ZCR voice activity detection node (Issue #242)' (#247) from sl-jetson/issue-242-vad 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%