Introduction: See-Through Arduino UNO

About: Software developer during day, hardware maker at night.

Yeah, I've really done that. It was hard, took me several days but I made it. In the end, it was an excellent experience and the most amazing thing is that Freeduino (that is how I call it) actually works. And I would like to share my experience with you.

What is Freeduino? It's a famous Arduino UNO board made without any circuit board. It uses a technique called free-form to interconnect components by wires instead of a circuit board. And it looks beautiful!

Why I made it? I often have a hard time explaining what free-form electronics are and how it looks like. Freeduino is an excellent example of free-form electronics art easily comparable to a well-known device - Arduino UNO.

Check out my simple brass LED jewelry for the basics of brass soldering, required tools, and materials.

Step 1: Understanding Arduino UNO Circuit

Prior to actually start soldering it, I needed to know what exactly is on board of Arduino UNO. I've separated the circuit into 4 blocks:

  • ATmega328 MCU
    • ATmega328P PDIP
    • 16MHz oscillator
    • debouncing capacitors
  • Power supply circuit
    • 7-12V to 5V regulator
    • 5V to 3.3V regulator
    • USB/input jack autoselect circuit
    • reverse current protection
  • USB to UART circuit
    • USB connector
    • serial converter chip (ATMEGA8U2-MU) with an oscillator and debouncing capacitors
  • Signal LEDs
    • power LED
    • default LED (D13)
    • TX/RX LEDs

Step 2: ATmega328 MCU and Its Data Plain

First I started with MCU and digital and analog IO pin headers. Arduino UNO has clever pin headers layout which nicely matches the layout of the ATMEGA328 28-DIP package. So no wires need to be crossed. Using a paper template this was an easy part.

The only external component for ATmega328 needs to run is an external 16MHz oscillator that needs two 22pF capacitors. This was the first component that raised above the base plain. Minimal hardware for ATmega328P is done. It was time for a first test with a USBasp programmer via AVR ISCP interface.

Step 3: Power Supply Circuit

I made myself a special jig that holds the pin headers in place leaving enough room for soldering - "Freeduino shield"?

ATmega328 is powered by 5V. Arduino UNO has two power input sources - 7-12V jack and 5V via the USB connector. It also provides a 3.3V power supply for external components. This means 2 power regulators. First to convert 7-12V to 5V and second to convert 5V to 3.3V. I've used two AMS1117 5V and 3.3V regulators with some capacitors according to recommendations in datasheets.

To make it easier I've soldered the power circuit outside the board and then put it above the data lines. This actually created a two-layer free-form circuit. I omitted both the auto-select and reverse current protection parts because it would make it all quite complicated. They are not needed if you are nice to your board and always connect it to the power supply properly.

Step 4: USB to UART Circuit

This one is important if you want to upload your sketches via Arduino IDE without a need for a programmer. Well, without it it wouldn't be so cool. Original Arduino UNO R3 uses ATMEGA8U2-MU which is great but too small and unsuitable for free-form circuits. I've decided to go with a CH340C chip. It has a suitable SOP-16 package and only requires 4 external components - debouncing capacitor, reset capacitor, and two Tx/Rx line resistors. The fact no external crystal is needed simplifies the whole circuit a lot.

Step 5: Signal LEDs

I don't like those large THT LEDs so I decided to use small SMD 1206 ones to signal Power, L, Tx, Rx communication. I've regretted that a lot. I first soldered an SMD resistor to them and then try to solder these pairs to wires. It was quite tricky. I had to use low temperature of soldering iron and be pretty quick with it otherwise the other side of the SMD component got desoldered.

Step 6: Will It Blink?

First I connected an external power source to check power regulators. All the voltage levels were fine, so I continued by connecting and USBasp programmer to upload a bootloader into the chip. Surprisingly the chip communicated on the first try. That was a good sign. External crystal works and all pins are connected correctly. The last step was to connect the USB cable and try to upload a blinky sketch. See it yourself.

Step 7: Make It Resistant

The Freeduino turned out pretty nicely. But it was quite fragile. So I've decided to create a board for it. Don't worry it's a transparent one. Made from a clear casting resin. I've 3D printed mold, pour a clear resin into it, and made the Freeduino afloat. It took 3 days to cure. I was pretty nervous. It took me a week of soldering and now I could ruin all the work instantly.

Luckily the resin cast went just awesome. I had to polish the bottom and sides of it since they had the marks of the 3D printed surface. But the end result is just amazing. And it still works! Now I can add it to my collection.

Step 8: It's Done

That's all!

Don't forget to share your creations! Like this instructable, and consider supporting me on Patreon where all the resources for all my intricate creations are available.

I am Jiri Praus.

Instagram, Twitter, YouTube

Arduino Contest 2020

First Prize in the
Arduino Contest 2020