Over the prior months I have developed an intrest in embedded systems leading to me taking a range of courses on Udemy by Fastbit Academy in topics such as GPIO, SPI, I2C, UART, DMA, TIMERs and ARM MCU archiectecture. To cap of this learning I wanted to develop something phyisical as a reflection of my work. I decided to make an alarm clock using a STM32F103C8T6 (Blue Pill). To challenge myself I decided to make use of no HAL for this project and write all of the drivers used myself.
The functionality I implemented on the clock was:
- Displaying of time in 24 hour format
- Abiltiy to change time on clock
- Alarm that buzzed at a set time
- Ability to enable and disable the alarm
- STM32F103C8T6 (Blue pill)
- DS1307 I2C RTC (I realize I could have used the RTC on the blue pill, but opted to use this to practice with the I2C protocol)
- SK6812 Led Strip (I developed a bitbanging SPI DMA protocol for these LED but didnt end up using these LEDs in the end as they didnt fit the design I wanted)
- Black Jiffy Box - 130 x 68 x 44mm
- Active Buzzer Alarm - 3V
- Adafruit Perma-Proto Half-sized Breadboard PCB
- Orange LEDs
- Various buttons + switches
- 470Ohm resistors
Testing of SK6812 LED strip (not used in the end as it didn't fit overall design)
Final test of alarm clock before assembly. RTC shown on left communicates with Blue Pill through I2C causing LEDs to change when time updates. Buttons on the right of the breadboard allow the user to change the time and set an alarm.
Beggining of assembly proccess of alarm clock. Two LEDs had to be soldered together and attached to a resistor. This was repeated 28 times for each of the dashes that make up the numbers.
Drilling holes in Jiffy Box to push LEDs through.
Due to a lack of a PCB I grounded all the LEDS by soldering them to a common line on Perma Proto Bread Board.
Had to buy a new Bluepill and resolder all LEDs to it in the final hour of the project, which was a major set back. This was due to me accidentally soldering pins of the MCU togehter (zoom in) and not being able to desolder it.
Mess of wires and solder presented one final challenge of getting everything into the jiffy box.