On my own time, I have built a special clock that displays the time in word format. This was my first foray into electrical engineering, and I had an absolute blast with it. I learned a lot of hard skills like how to wire electrical diagrams, how to print PCBs, how to solder, how to wire and code with Arduino, and how to build enclosures. I also learned some soft skills like how to improve upon a design, and how to learn from other designs from other people.
This was my first dip into electrical engineering, so I looked around online for cool projects to do and I settled on a word clock. After digging around some guides with wildly different construction setups, I cannibalized different aspects of each word clock I saw, but took the time to add some ingredients from my brain. I finalized on an Arduino, controlling daisy-chained shift registers, which control 121 LEDs that light up behind a predetermined letter template. I figured out how to shift registers worked, learned how to design circuits in Eagle, used a PCB milling machine to create PCBs, spent many days soldering and resoldering components together, and coded a rudimentary setup in the Arduino ecosystem. After 3 weeks of hard work, I finally finished my working creation.
This clock was my prize pig for a while, but it had a lot of issues that could lend itself as more experience. The wiring from PCB to LEDs took up a significant amount of clutter and were haphazardly tangled in a space behind the clock. Also, the resistors for the LEDs were soldered to the head of the LEDs, which involved a lot of excess electrical tape to prevent shorts. I started to design a smaller board that could be printed multiple times. Since a single shift register can only control 8 LEDs at once, I decided to cram 8 LEDs, 8 resistors, a shift register, and routing into a board smaller than a credit card. Each board would connect to the next through a small 5 pin connection. The old clock would eventually fall behind a real clock, and I soon realized that the internal microprocessor inside an Arduino doesn't count time accurately. I found and integrated an auxiliary unit with a crystal meant for counting time, and I added buttons for the user to adjust the time if it were off. I also implemented a coding new framework that made it much easier to edit letters the lights were shining on. After a couple of weeks, I managed to complete this new clock.