ATmega328PB firmware that integrates interrupts, PWM/ADC, I2C peripherals, keypad/LCD interfaces, 1-Wire sensing, UART and ESP8266-assisted telemetry.
The problem
Embedded systems must coordinate timing, physical sensors, peripheral buses, local interfaces and network delivery, all under tight hardware constraints.
What was built
A sequence of laboratory exercises that ends in an integrated sensor-to-server application on the ATmega328PB, built on lower-level AVR assembly and peripheral-control foundations.
Technical approach
- Direct control of GPIO, timers, interrupts, PWM and ADC
- Circular-buffer averaging over recent ADC samples
- TWI/I2C integration with a PCA9555 expander
- Keypad, LCD and direct 1-Wire temperature sensing
- UART link to an ESP8266 for HTTP/JSON telemetry
Engineering decisions
- Implement timing-sensitive protocols directly in firmware.
- Use interrupt-driven behaviour and input debouncing for asynchronous controls.
- Bridge raw sensor acquisition to both the local display and network delivery.
- Present the work as a progressive stack, without claiming that every lab peripheral appears in one final build.
How it was checked
- The repository supports ATmega328PB at 16 MHz, AVR assembly and embedded C.
- The verified work covers interrupts, Fast PWM, ADC, I2C/TWI, PCA9555, 1-Wire and USART/UART.
- The final laboratory exercise builds JSON and communicates with an HTTP server through ESP8266-assisted connectivity.
What it shows
Firmware engineering across register programming, real-time acquisition, protocols, human interfaces and the device-to-server path.
About the source
Academic embedded-systems engineering and R&D. No commercial deployment, certified accuracy or industrial safety claim is made.