CENG 299 is a second year project course at the University of Victoria. Students execute the full design cycle to create an alarm clock with mp3 audio playback capabilities. A STM32F407VG microcontroller is responsible for handling I/O, decoding the mp3 and generating the audio output. A custom-designed PCB filters and amplifies the audio output from the STM and contains the circuitry for driving the 7-segment display and cleaning up button input.
Schematics
Detail the four main components of the circuit design:
- I/O
- Audio amplification and filtering
- External button connections
- 7-Segment display controller
The files will open natively in KiCad.
Printable schematics, with some helpful notes, are here.
TODO: Include files for the PCB.
Code
A skeleton was provided that handles the USB On-The-Go communication and audio decoding. The bulk of the project code is in:
main.c
state_machine.c
buttons.c
clock_display.c
The included .coproj
file will open the project in CoIDE but the project should work wherever the GCC-ARM compiler is used.
Known Issues
- mp3 playback
- Only works with 128kb/s encoding
- Stops playback after ~2min and needs to be hard reset before playback can continue