Heart PCB – A Valentine’s Day Gift

Heart Card Animation Compress

I started dating my girlfriend at a pretty awkward time. Just three weeks into dating her, Valentine’s day reared it head, and I wasn’t sure what kind of gift I should give her, if any. I mean, it had only been three weeks!

The Idea

At the time, my workplace just got a new circuit board mill, and I was excited to make new boards with it. So I came up with a plan that was low on cost, but would still produce an awesome gift (to those nerdy enough to appreciate it). I had already made a “camera show” device that had a series of LEDs that lit up in a pattern, so the idea was to translate that design into a heart-shaped “card” milled out of a copper board, complete with her name etched on the front.

The Execution

Since the basic board layout and Arduino code were already available, I just had to figure out how to translate it to a heart-shaped design. I followed the Fritzing guide for making a custom board shape and found a .svg heart shape online to use as the board outline. I used Inkscape to make the modifications required to import the file, and moved the LEDs around to follow the outline of the heart. I also swapped the AA battery holder for a coin cell battery holder to make it more “card-like.”

Camera show to heart

I etched her name by adding a machining process step in the PCB mill software, CircuitPro. Although I did get her name a bit wrong by only including the first portion of it! Hey, remember that we were only dating for three weeks at the time.

The Gifting

I’m happy to say that she loved the card when I gave it to her, and she even framed it to put on display!

Heart Card in Frame

And as a followup after posting my count up box valentine’s day project, 13 months in and she still has it on display!

More Information

You can find the board design Fritzing file and the .svg file used on my GitHub page. The Arduino code was pulled straight from my “camera show” project repository.

View of the back of the board:


ATtiny85 Flashing Shield

This was a quick and simple project mainly intended to test creation of a dual-sided board on a PCB mill I recently acquired access to. It will also make it easier and quicker to flash programs onto an ATtiny85, especially when flashing many of them at a time.

I followed this guide to determine which pins should be connected to what in order to flash a program onto an ATtiny85. Photos of the completed board can be seen below:

The board was tested, and it works quite well. It certainly cleans up a bunch of wires!

The board design in Frizting:

ATtiny85 Flashing Shield_bb ATtiny85 Flashing Shield

As usual, the schematic can be found on my github.

MAX7219 7-segment LED Driver Board


When starting to work on my alarm clock project, I decided it would be a good idea to design a little independent display that I could attach to many Arduino projects and integrate into their designs. I started out using the 74HC595 shift register to independently control 4 7-segment displays, but the setup used a lot of chips (74HC595) and a lot of connections, as you can see in the below photo:

Bit Shift Connections

I could barely see the digits under all those wires! So I set out to make a better design and stumbled upon the MAX7219 chip and this very helpful guide. I got the chip working on a breadboard and created a Fritzing design for it.

I started out making a single-sided PCB version that required jumper wires, but I decided that I wanted a cleaner look. I designed and etched my very first dual-sided board, and it worked!

Here is the thing in operation. I made some simple code to cycle through all the numbers from 0-9999:

Here are some photos of the single-sided and dual-sided versions:

As usual, you can get the code and schematics on my github: https://github.com/jerwil/MAX7219_Hello_World

ATMega328 Flashing Sheild

About a year ago when I first started with Arduino, I learned that projects can be taken off the arduino to stand alone on a breadboard or finished PCB. I also discovered that it was significantly cheaper and easier to buy an ATMega328 chip without a bootloader and burn the bootloader yourself instead of buying one with the bootloader preloaded.

I followed a guide from 3guys1laser.com to get everything I needed to burn a bootloader onto a breadboard:

Flashing Sheild Construction

I then decided that it would be inconvenient to have to bring out a breadboard and wire everything up every time I buy a new ATMega chip. Thus, I created a “shield” of sorts that would plug directly into an Arduino.

I used a ZIF socket to make taking ATMega chips in and out a breeze. And since I’ve been experimenting with photography and animation lately, here is an animation of the shield in operation, burning a bootloader onto an ATMega328:


I do not have any code or schematic for this project since it was all done on-the-fly (and before I knew about github and Fritzting!). See the guide at 3guys1laser for details on how to make your own!

Music Fest Beacon – Field Testing

A few months ago I posted about a music festival beacon that I created to help my friends find me in the crowds. After going to 2 music festivals with it, I am happy to report that it is a success! My friends were able to see me in very large crowds as long as it was dark out. I attached the device onto a tent pole to allow for hands-free use and to make it even higher in the air.

For proof of how visible a simple light-up ping pong ball is, check out this animation I made from a couple of photos I took of the screen at one of the performances. The camera was looking at the crowd from behind. That color changing dot is the beacon!



Arduino Simon – Final Version

My first ever Arduino project has been through a series of upgrades as I’ve learned new techniques for making electrical circuits. It all started out on a breadboard. I then learned how to break free from the Arduino and make an independent project. Next, I created a more permanent version of my Simon game on a pre-perforated board. And now my Simon game is here in its final form, etched onto a copper board:

Simon Etched Side View

I am pretty proud of how this turned out; I think it looks a lot neater and more professional than my previous iterations of the game. I was happy to go back to my first project and give it a final touch with an etched design.

You can see me losing at the game here:

Here are some additional photos of the project:

As usual, you can get the code and schematic on my github: https://github.com/jerwil/Simon_Etch

Check out the evolution of the project:

Simon Breadboard

Breadboard version


Perf board version


Musical Arduino-based Birthday Card

This year, I wanted to make my brother something special for his birthday. Instead of just sending him some store-bought Halmark card, I decided to make him one myself! Using my new-found Arduino skills, I set out to create a birthday card that would inspire him to learn to solder. The end result is the educational musical birthday card:


This was my first ever two-sided PCB, although it doesn’t really take advantage of any communication between the two sides of the board. The two-sided board is just used such that the writing on the card and the circuit traces can be on opposite sides for aesthetics.

With the card, I included a kit of parts as well as a link to instructions to assemble the card: https://www.jeremyadamwilson.com/birthday-card-instructions/

I made the “silkscreen” portion (the black text and images) by toner transfer after I etched and clean up all the copper traces. This proved to be a very effective and simple method of adding text and images to a board for a more complete and professional look.

A quick making-of gallery:

My brother soldered the parts on, and he sent me a photo of the completed birthday card, which works!

birthday card complete

A demo of the circuit working can be seen here:


As usual, all of the code and a schematic are posted on github:


Special thanks to http://miduino.net/ for providing an easy way to turn a midi file into arduino code.

Birthday Card Instructions

Hey bro,

Happy Birthday! I’ve made you a birthday card that should hopefully teach you how to solder. I estimate it will take about 1 hour for you to complete. Once you solder it all together and put in your 9V battery, it will play a song. Below is a description of all the parts that I’ve included:

Parts for Bday Card

  • 10 μF electrolytic capacitors: These go between ground and power for the input power of 9V as well as between the ground and power for the board power of 5V. They help to keep the power smooth to prevent spikes. The white stripes indicate which leg is ground (-). On the board, the ground pin is indicated by two lines on either side of the hole. These are the only components that you’ll be dealing with that have a required orientation.
  • Button: It’s a button. You push it, and it electrically connects all 4 pins together. By default the left two pins are always connected together, and the same goes for the right two pins.
  • Socket: A 28-pin I soldered on for you already. This allows you to remove the ATMega328 and protects its pins from the heat of soldering.
  • 4.7 kΩ resistors: These are used to reduce the current going to the speaker, which lowers the volume output. There are 3 for the three available channels of audio. For your card as-is you technically only need the right 2, but if you wanted to reprogram the card with a more complex song, you could use all 3 channels.
  • 220 Ω resistor: This is what is known as a pull-down resistor. It ensures that the input pin sees pure ground when the button is not pressed. Without this, the pin would be “floating”, and any interference could cause a false HIGH reading. See more info here: http://arduino.cc/en/tutorial/button
  • 5V voltage regulator: Turns an input voltage of 6-24 volts and turns it into 5V, which is what the ATMega likes.
  • 16 mHz crystal: This is used by the ATMega328 to keep precise time. This is important for this application to keep the audio tones consistent. This crystal’s resonant frequency is 16 mHz.
  • 22 pF ceramic capacitors: These are used along with the crystal. I don’t know why; I just accept it. Unlike the electrolytic capacitors, these capacitors do not have a required orientation (+ and – pins don’t matter).
  • Battery pack: Not pictured. Red is positive and black is negative. Stick the appropriate wires through the + and – holes and solder them.

I have already soldered on some of the trickier components, leaving the rest to you. I have prepared a video to attempt to show you how to solder. I say “so” a lot:


This site has some good diagrams to follow:


The finished product should look like this (but with all three resistors):

IMG_6752 IMG_6753

Here is the github page if you’d like to see the code and schematic: https://github.com/jerwil/Birthday_Card

Please DO NOT view the video demo, as it will ruin the surprise and satisfaction of hearing it work for the first time.

You can use miduino.net to convert any midi to arduino code. Just modify the pins to match the three pins attached to the speaker.

I hope that you are successful with this project! Hopefully this is a good intro to get you more excited about the blending of code and physical objects.

Camera Show Light Display – 12 Hour Project Made with Arduino

This project was made to fulfill a need at the lab I work in. We have live camera feeds watching over testing to ensure everything is going well, but sometimes these cameras freeze, and there is really no way to notice. That’s where this device comes in. It shows a rotating light pattern that shows up on the camera feed. As long as the lights keep spinning, you know that the camera is still working.

Here are photos of the device:

Spinning Light Front Spinning Light Rear

And here is the device in action:


The circuit design and programming is pretty simple. The ATtiny sends binary commands to the shift register telling it which LED to light up at which time. The main challenge was designing the traces such that everything would fit in the circular pattern with as few jumpers as possible.

The code and schematic can be obtained here: https://github.com/jerwil/CameraShow

Simon Game – Soldered

The Simon game was my first real project, and I wanted to make it a permanent portable board that I could bring around to allow people to play. I laid out the board by hand (this was before I learned how much easier it is in Fritzing) and began soldering. image

With all the components added, I tested all the pins of the Arduino with the socket on the board so I could make sure all of the functions worked.


Success! The board works, and it’s pretty fun to play.


Here is a demonstration:

You can see the code and schematic here: https://github.com/jerwil/Simon_Solder