Joseph Disamalu
Mechatronic Engineer | AI & IoT for Renewable Energy
Mechatronic engineer and researcher working at the intersection of AI, IoT, and renewable energy, with a background in semiconductor process engineering and quality assurance.
About Joseph Disamalu
Focus
📚 Education Contributions
Integrated Stepper Motor and Motion Control
Build a single-axis CNC-style stepper motor controller on the ATmega328P. Parse simple G-code commands over UART, generate precision step pulses with Timer1, home with a limit switch interrupt, read a jog potentiometer via ADC, and store calibration in EEPROM.
Published: March 12, 2026
Power Management, Watchdog, and Sleep Modes
Master ATmega328P low-power techniques including all six sleep modes, watchdog timer configuration, BOD disable, and EEPROM storage. Build a battery-powered door open alert that sleeps in power-down mode, wakes on a magnetic reed switch, and counts events in non-volatile memory.
Published: March 12, 2026
ADC and Analog Signal Acquisition
Master the ATmega328P 10-bit ADC with register-level configuration. Build a light-tracking indicator using photoresistors that displays a real-time bar graph on an OLED, covering reference voltages, free-running mode, and noise reduction.
Published: March 5, 2026
I2C Bus and Sensor Integration
Implement the I2C (TWI) protocol on ATmega328P from register level. Build a mini weather station that reads temperature, humidity, and pressure from a BME280 sensor and displays the data on an OLED screen.
Published: February 26, 2026
SPI Protocol and Peripheral Interfacing
Master the ATmega328P SPI peripheral by writing an SSD1306 OLED driver from scratch. Display a real-time clock on a 128x64 OLED, covering clock polarity, phase, data framing, and display buffer management.
Published: February 19, 2026
UART Serial Communication
Implement UART from scratch on the ATmega328P using USART registers. Build a temperature logger that reads an NTC thermistor, formats CSV data, and streams it to a PC for plotting.
Published: February 12, 2026
Interrupts and Event-Driven Design
Learn ATmega328P external interrupts (INT0/INT1), pin-change interrupts, and timer interrupts. Build a reaction time tester that measures your response in milliseconds using ISR-driven timing.
Published: February 5, 2026
Timer/Counter Fundamentals
Explore ATmega328P Timer0, Timer1, and Timer2 in Normal, CTC, and PWM modes. Build a tunable tone generator that produces precise audio frequencies using timer compare match interrupts and a piezo buzzer.
Published: January 29, 2026
GPIO Registers and Digital I/O
Master ATmega328P GPIO registers (DDRx, PORTx, PINx) through direct bit manipulation. Build an electronic dice that displays a random pattern on LEDs when you press a button, with proper hardware debouncing.
Published: January 22, 2026
AVR Toolchain and Bare-Metal C Setup
Set up a complete AVR development environment with avr-gcc, avrdude, and Makefiles. Program an Arduino Nano directly in C without the Arduino IDE. Build a Morse code beacon that blinks your name on an LED.
Published: January 15, 2026