This project was made during 42 Piscine Embedded in November 2025 as a week-end 'rush' challenge.
It is called 'Final Boss' for it tests everycomponents of a devboard build upon an ATMega328p (except for the eeprom).
| Components | Model |
|---|---|
| 2 wire communication LEDs | APA102 |
| Parallel I/O Port, 16-Bit | PCA9555PW |
| I2C LED Display Segments | TOF-F4401AMG-N |
| Luminosity sensor | |
| Temperature & Humidity Sensor | AHT20 |
| Potentiometer | |
| Physical switchs | AVR-ISP-6 and others |
| USB-C Connectors for uart connection |
The internal clock of the ATMega328p is already tested by the firmware.
We must implement 11 modes that test every aspect of the components listed previously.
- Displays the ADC value of the potentiometer in decimal (0 to 1023)
- Displays the ADC value of the luminosity censor connected to LDR R14 in decimal (0 to 1023)
- Displays the ADC value of the AVR-ISP-6 connected to NTC R20 in decimal (0 to 1023)
- Displays the MCU’s internal temperature value in decimal (0 to 1023)
- Displays “-42-” and makes LEDs D5, D6, D7 (in 2 wire com) and D8 flash red, then green, then blue (1 second between each color)
- Displays the ambient temperature in Celsius
- Displays the ambient temperature in Fahrenheit
- Displays the humidity as a percentage
- Displays the time in 24-hour format (23:23)
- Displays the day and month
- Displays the year
Switching from one mode to another is made by pressing two buttons, one to go up in the mode (+1) and other to go down (-1). Reaching mode 11 overflows to mode 1. Date and time can be change using the UART interface.
To compile and flash it on the memory of the microprocessor
makeWarning
Without the devboard, the firmware will be difficult to test.
To clean build:
make clean