Save time to Play!

Monday, May 29, 2023

All work and no play, right? Yet, I’ve found that setting time aside to play can be rewarding, especially when it comes to doing something that lets me learn and gain a deeper appreciation and understanding of my coding.

Ever thought about how empowering it feels to be a creator? Even though I’ve been working on a little personal project in my office, builidng a robot, your fun projects don’t have to be as technical. But for me, taking the journey of transforming raw materials and lines of code into this robot has been serving as my personal guide to the endless possibilities of understanding at the bit level as I pore over ARM processor datasheets.

Getting Started

We all have been there, haven’t we? For me, it was staring at a mess of wires, microcontrollers, stepper motors, and gears that barely resemble an RC car, let alone a robot. Yet, there’s a distinct thrill in that chaos, the exhilaration of knowing that these seemingly random pieces hold the potential to become something extraordinary. My first version was when I was 10-years old and it was built out of cardboard boxes and a tape player inside for its voice. Eventually, I began coding for iPhones, and then moving onto coding actual microcontrollers by making an LED blink on and off. Each step was playing. Each step I found myself wanting to get closer to the metal and program the chips themselves more and more. Now, it’s about getting that chip to talk to a few stepper motors. The process isn’t easy or fast, to say the least. It involved countless hours of looking over datasheets for the chips, experimenting, and learning from my mistakes. But with every failed attempt, every misstep, I was getting closer to understanding more about the chips, and more about the system as a whole. Even my higher level programming was getting better because I had a deeper understanding of the circuit level.

Software In Everything

However, as any techie knows, the hardware is just one piece of the puzzle. The heart of this project was its code, written in C/C++, and with the potential to bring this mechanical creature to life. Coding closer to the metal, communicating directly with registers, this was an entirely different kind of challenge for me to tackle. Yet, it was an opportunity, an open invitation to dig deeper, to understand the intricacies of the hardware-software interface. Each time the program gets more complicated and the stepper motor motions become more complex, it reminds me of the power of patience and above all, the will to learn.

Summary

So, here’s the thing – no matter how daunting it might seem at first, the process of learning by doing, by building, is genuinely transformative. It helped me grow not just as a coder or a builder, but as a thinker, a problem solver, a lifelong learner. It’s not about the end product (okay, maybe a little!), but about the journey. It’s about those late-night ‘Aha!’ moments, the satisfaction of finally squashing that bug, the thrill of seeing your creation come to life.

Keep that spirit of curiosity burning bright. Go ahead, dive into that project you’ve been contemplating, embark on that journey of learning by building. Remember, every line of code you write, every circuit you build, is a step closer to unlocking a universe of endless possibilities. So, gear up, my fellow creators, and let’s keep building the future, one project at a time!




Ciao! I'm Scott Sullivan, an software developer and machine learning nerd. I divide my time between the tranquil countryside of Lancaster, Pennsylvania, and northern Italy, visiting family, close to Cinque Terre and La Spezia. Professionally, I'm using my Master's in Data Analytics and my Bachelor's degree in Computer Science, to create compelling software products that user AI, run lighting, robots, and automation effects for a large Christian theatrical productions to spread the message of Christ's salvation.