My journey into embedded systems hit a turning point when I realised that relying on pre-made Arduino wrappers wasn't enough for professional engineering. I was trying to make industrially respectable projects, and that meant understanding exactly what was happening under the hood rather than just calling display.begin().
I noticed that while standard drivers were convenient, they were often bloated and masked the actual hardware operations. I set a specific goal of trying to reduce my library dependency to gain true control over the microcontroller's resources. This project became my crash course in learning Bare-metal coding, forcing me to put aside the easy path, dive deep into the ESP32 Technical Reference Manual and the SSD1306 datasheet, and write a driver that communicates directly with the I2C registers to bring the screen to life.










Comments