← Back to Projects
Morse code translator

Morse Code Translator

Designed and built an Arduino-driven Morse code translator with hardware mode-switching, input debouncing, I²C LCD output, and character parsing in C++. Supports both serial and hardware-based I/O.

ArduinoC++Embedded SystemsI²C

This project is a fully functional Morse code translator built around an Arduino microcontroller. Users can input Morse code via a physical push-button or serial terminal, and the decoded characters are displayed on a 16×2 I²C LCD screen in real time.

The firmware handles hardware debouncing, distinguishes dots from dashes based on press duration, and uses timing thresholds to detect letter and word boundaries. A hardware toggle switch lets users flip between encode and decode modes without restarting the device.

The firmware was written in C++, implementing a binary-tree-based lookup for fast character resolution and a ring buffer for input queuing. The project was a great exercise in real-time embedded programming with tight timing constraints.

Gallery

Morse code translator breadboard prototypeLCD displaying decoded messageCircuit schematic