BackTabCrypt / Writing
Hardware /

Why Every Dev Should Try Arduino

Nov 2025 · 4 min read

JalKulator started as a hardware calculator using 4-bit logic ICs on a breadboard. Two days in I had fried a component I couldn't immediately identify, my wiring was a mess, and nothing was adding correctly. I pivoted to an Arduino Nano with an OLED display. Same logic, software now. Some people would call the pivot giving up. I call it the moment the project actually started teaching me something.

Hardware Breaks Differently

When software breaks, you get an error message. A stack trace. Something to Google. When hardware breaks, sometimes you just smell it. I burnt a resistor on the breadboard and didn't know what had happened for twenty minutes. That physicality changes how you think. You get more careful. You check your work twice because there's no Ctrl+Z.

When I moved to the Arduino, that carefulness stayed. Every function I wrote, I was thinking: what does the physical output of this look like if it fails? The OLED shows garbage? The buttons stop registering? The device freezes? Those aren't questions I used to ask when I was writing JavaScript.

2KB of RAM Will Humble You

An Arduino Nano has 2 kilobytes of RAM. I had been writing JavaScript where you barely think about memory. Writing C++ for 2KB is a completely different sport. You start caring about every variable. You store strings in flash memory instead of RAM because you can't afford not to. You think about whether a function call stack is going to overflow.

  • Use F() macro to store string literals in flash — saves you precious RAM
  • No dynamic allocation — malloc on a microcontroller is asking for weird bugs
  • Every loop matters — 16MHz sounds fast until you're doing it wrong
  • Debounce your buttons — the signal bounces physically before settling, your code needs to handle that

The Abstraction Thing

The RC car project taught me something separate. The L298N motor driver hides all the PWM logic. The HC-05 Bluetooth module handles the RF layer. I write serial commands and wheels spin. That's exactly the same as calling an API — someone wrapped complexity so you don't have to deal with it.

Except with hardware I could open the datasheet and understand every layer. I knew what was happening underneath the abstraction, not just that it worked. That ability — to look under the hood even when you don't have to — is something hardware builds in a way that pure software work doesn't always.

Just Start

You don't need a complicated first project. Get an Arduino starter kit. Blink an LED. Add a button. Add a sensor. Display the sensor value on a screen. By the time you do those four things you've touched I2C, interrupts, and timer-based loops without even meaning to. Those concepts show up everywhere — embedded systems, OS internals, real-time software.

JalKulator wasn't a failed hardware project. It was a fast way of learning why hardware is hard, what software can do that hardware can't, and why the constraint of working in the physical world makes you a more careful programmer. Would recommend.