pixelpad

PixelPad Indian

PixelPad is an electronic development badge based on an ATmega32U4 microcontroller and comes with a lot of built-in features. The PCB art is inspired by Indian culture, arts, and drawings. Using PixelPad, you can either use it as a wearable development board like the Adafruit Playground Express or LilyPad, or you can use it as an electronic badge!

The features of PixelPad can be seen below!

I went through many Indian cultural and spiritual arts and paintings to design the PCB art and board outline. After a lot of research and leanings, I designed a PCB art using Adobe Illustrator.

Let me explain the process and the experiences I went through to build my own electronic badge.

The Idea

When I decided to build an electronic badge, I was gone through many ideas. That lead me into confusions regarding which one I need to design, Literally I don't stick with an idea. instead of I am rapidly changing the ideas. So what I did is, I listed out the features that I wanted in the badge that am designing. So here are criteria that I listed out in the idea sparking process.

  • Should be a minimalist design
  • Should be compact in size
  • Should be wearable
  • Should have I/O pin outs
  • Should be battery powered
  • Should have good LEDs that can be programmable to something useful
  • Represent a culture or art

After going through the rough list, I started to search which Microcontroller, LEDs that I need to use for the Pixelpad. Finding a good theme for the art is too complicated for me, you know it right?

I don't have that skill!

The Microcontroller (ATmega32U4)

I decided to use the Atmega32U4 microcontroller for the badge design. It comes with USB support and supports data transfer rates up to 12Mbit/s and 1.5Mbit/s. It can also be used as an HID device. So, I stuck with ATmega32U4 as the MCU. You can definitely check out the datasheet I attached with this project.


The WS21812B 5050 NeoPixel LEDs

I used 12 NeoPixel LEDs because of every LEDs can addressable and a single Data pin needed to control the RGB colors. So, I decided to stick with NeoPixels.

Schematics Designing

I used Autodesk Eagle CAD to design all my PCBs. I started to design the circuit Schematics in Eagle. The main components that am used in the schematics are explained below.

  • MIC5219B for a 3.3V 500ma power supply to power the microcontroller
  • MCP73831 for Li-Po / Li-Ion battery managment
  • DS1307Z for a I2C RTC
  • WS2812 5050 RGB LEDs
  • 8Mhz Resonator to clock the ATmega32U4 externally
  • 2x3 SMD pin header for ISP connection
  • SMD reset push button

Board Designing

After the schematics designing, I started to design the printed circuit board (PCB). First, I placed all the components in an order that I wanted. Then started to route the air wires manually. I used a minimum trace width of 8mils for the traces. The board design is for a two-layer PCB. the overall dimension is 66 x 66 mm. You can find the design files and Gerber files attached at the end of this project.

Import PCB Art to the Board

I designed the PCB art in Adobe Illustrator. You can use any vector designing software to do this part. You can either use illustrator or stick with an opensource one like the Inkscape. I tried a lot of designing and at the end, I made to the expected design. After designing the art you can save it as 8-bit BMP format.

Then in Eagle, you need to import the art to any silkscreen layer. I used the name layer. I don't want the component layer so I deleted the names and used the layer to place the design. to import the design follow the below steps:

  • On the top, you can find ULP icon, by clicking the icon you get the popup window to select the ULP. The search for import-bmp then opens the import-bmp ULP.

Then select the BMP file you needed and the layer you wanted to place and scale measurements etc... and click OK. After that, you need to place the design in the PCB design where you wanted.

NB: Design should be in black and white color

PCB design front side

PCB design back side

I used Autodesk Fusion 360 to view the 3D model of the PCB, I also used Fusion 360 to design the board outline for the dimension layer. You can definitely use the advantage of Fusion 360 and Eagle integration.

Exporting the Gerber File for Manufacturing

For manufacturing the PCB from any manufacturers around the globe, you need the Gerber file sent to them. Generating the Gerber file in Eagle is super easy. You can follow the steps below.

In the right side of Eagle, you can find Manufacturing tab. Click on the manufacturing tab you can see the rendered image of the PCB for manufacturing. In the same window click on the CAM button.

Save each layers into a folder and compress the folder in to a zip format.

PCB Manufacturing

There are a lot of PCB manufacturing services in China for cheap as $5 for 10 PCBs. I personally recommend PCBWAY They deliver good quality PCBs and the customer care support is awesome.

Components Gathering

The PCBs take two weeks to arrive according to the delivery method. Meanwhile, I started to collect the required components for the project. I already have some of the components, so I bought the remaining components from different sources. But I have given all the components link to the store.

Soldering the Components

After arriving both the PCBs and the components. I started soldering the components. I used a weller we51 soldering station with a micro tip for soldering. the 0805 smd package is little hard for soldering for newcomers but you guys will be used to it after a few components soldered. I also used a hot air rework station but it is not necessary. Be careful while soldering the microcontroller and other ICs do not overheat the ICs.

I also used PCB cleaning solution to clean the PCB from the excess solder flux.

Programming the Pixelpad Indian Board

I Soldered all the components on the PCB. To program the board using Arduino IDE first we need to burn an appropriate Atmega32u4 bootloader to the board. I used the Sparkfun pro micro board's bootloader for my board. To Burn the bootloader you needed is ISP programmer or you can use an Arduino board as an ISP programmer. I build a USBTiny ISP programmer myself, visit my USBTinyISP programmer page.

When connecting the Pixelpad Indian, the power LED will light up.


I chose the Sparkfun Pro Micro board from the board manager and select the USBTiny ISP as the programmer from the programmer window. Then click the burn bootloader. It will take a little time to burn. After burning the bootloader, It is ready to program via the micro USB cable.

I made a basic sketch to show an analog clock time using the NeoPixel LEDs and RTC. The red LEDs shows the hours and the blue LED shows minutes.

Eg: Lets say 3 : 30 || The 3rd LED will lights RED and 6th LEDs lights BLUE.

You can download all the files and resources to do this board from the end of this project.


Demo Video

Here is the working video of the above mentioned sketch.