LED MATTiny-rix Business Card With the HT16K33A
by mars91 in Circuits > Arduino
37 Views, 0 Favorites, 0 Comments
LED MATTiny-rix Business Card With the HT16K33A




I recently built a LED gamer here. It uses a prebuilt Adafruit DotStar color matrix, which looks awesome and if you're looking to make a similar single device, it might be all you need. But if you want to mass-produce a 64-grid LED matrix, say for a business card, you'll probably want something more affordable and power-efficient.
So, I designed a cheap, good-looking LED matrix business card that also plays simple games/graphics! Using bicolored LEDs we get three colors: red, green, and yellow (by turning both red and green on at the same time).
Supplies


Many of tools and steps in this build are similar from my LED gamer here. For the tools I used: a hot plate, a UPDI programmer, and basic soldering supplies.
Tools
110V 850W Soldering Hot Plate (this one is big - i'm sure a small one would work)
Compared to my previous gamer build (and a lot of other DIY LED matrices) this version uses affordable parts.
Supplies
ATTINY1616, the chip! - $0.90 USD
HT16K33A-28SOP, LED driver - $0.49 USD
1 0.1uF and 2 10uF 0603 ceramic capacitor(s), power filtering - $0.16 USD
8 10k resistors 0603, pull ups - $0.60 USD
4 SMD 6.00mmx6.00mm buttons - $0.48 USD
1 Surface Mount button - $0.48 USD
1 P-Channel MOSFET, battery protection - $0.42 USD
1 Power Switch - $0.72 USD
2 CR2032 Coin Cell Battery Holder - $.26 USD
64 BiColored LEDs - 0.0273 * 64 ~ $1.74 USD
All the components together cost ~ $5. In my case, I had a bunch of the common parts lying around, so I only ended up spending $3.13 in parts per card. But remember, these prices don't include shipping or bulk discounts, both of which can really affect the final cost.
KiCad board file below
KiCad is free, open-source software for designing hardware, get it!
If you want to troubleshoot or build your own version on a bread board, I'd recommend grabbing this ATTiny1616 BreakOut and a BiColor Matrix to get started.
Getting Your Board









GitHub
I've linked the GitHub repository above. I'm guessing you don’t want my name on your business card, so you can easily change the PCB in the PCB editor in KiCad. Double click the name on the board and type your info.
Creating The Gerbers (files used to produce the physical board)
- Create a folder in the project called gerbers
- In the PCB editor, go to File > Plot. I’ve already set up the correct options for PCBWay, but it’s always good to double-check using this guide: How to Generate Gerber and Drill Files in KiCad 7.0 (PCBWay)
- At the top of the plot window, point the output path to the gerbers folder you just created.
Then:
- Click Plot (you’ll see some log messages confirming the process)
- Click Generate Drill Files
- In that window, click Generate Drill File
- And also Generate Map File
You should now have a set of files in your gerbers folder. You can close the plot windows.
Select all the files in that folder, compress them into a .zip file, and rename it if you’d like.
PCBWay (Company I use for getting quality, affordable PCBs made)
Head over to PCBWay’s online order form.
You can customize color, type, finish, etc. but I usually go with the cheapest options unless making a final version.
Some specs you must enter:
- Dimensions: 89 x 51 mm
- Minimum quantity: 5
- I went with green solder mask and white silkscreen
- For the stencil: select SMD stencil and choose Non-framework (great for small DIY builds)
Click Calculator, then upload your Gerber .zip file. PCBWay will review your order before confirming it. They’ve caught mistakes in my files before and saved me from ordering faulty boards.
Soldering and Assembly

Tips
Align the stencil over your board. Spread solder paste over the holes and use a squeegee to push the paste through. Make sure the stencil is flush against the board and everything is nice and clean.
Next, carefully place all the components in their correct spots. Yep, that means placing 64 LEDs single-handedly (literally) onto tiny solder pads. It’s a bit of a task, put on some music or a show. It took me over 30 minutes just for the LEDs.
These LEDs have a tiny green dot near the ground side. On the PCB, the bottom row of each LED footprint is the ground. So make sure the green dot is facing down. Otherwise, the LED will be soldered backward and won't work.
There's a vertical row of 10kΩ resistors. A 0.1μF capacitor goes near the ATTiny1616, and the remaining capacitor spots are for two 10μF capacitors.
Reflowing with a Hot Plate
Here’s my process:
- I place the board, with all components and solder paste, on the hot plate while it's off.
- Then I turn it on and wait for the temperature to reach 215°C.
- Around 200°C, you'll see the solder start to melt.
- Once it hits 215°C, turn the hot plate off.
- Carefully move the board (I use needle-nose pliers) onto a cooling surface (like a cookie sheet).
Post-Reflow Cleanup
Check for solder bridges, unintended blobs connecting pads. If you spot any:
- Dab some flux on the bridge.
- Use a hot soldering iron and gently drag across the area.
- Clean off the flux using isopropyl alcohol and a Q-tip. Burnt flux is sticky and turns yellow-brown.
Also, keep your soldering iron tip clean by wiping it with some solder and a damp sponge.
Soldering the PCB's Back Components
The components on the back need to be soldered by hand. Here’s a great video if you need a refresher.
For the coin cell battery holders:
- Place a small amount of solder on the center ground pad to make a solid connection with the battery.
- The "wings" of the holder are the V+ pins, solder these in with a fair amount of solder for durability.
Programming
.jpeg)

This project is a good example of a bare chip that is powerful and easy to program.
This blank chip can be programmed using a UPDI programmer in the Arduino IDE environment. Follow the excellent steps provided by Adafruit.
On the back of this board, there are three pads: Vin, Gnd, and UPDI programmer. I solder three separate male headers onto these pads. I use clay to help align the headers when I solder. Look at the pics above (differnet board but same process). Soldering and Assembly step below for more detailed build instructions.
Programming
Follow the directions from Adafruit, but I will summarize:
- In Arduino, add the following URL to your Boards Manager preferences: http://drazzy.com/package_drazzy.com_index.json
- Install megaTinyCore from the Boards Manager.
- Under Tools, select:
- Board: megaTinyCore: ATtiny1616
- Chip: ATtiny1616
- Clock: 10 MHz
- Programmer: SerialUPDI - SLOW: 57600 baud
- Finally, go to Sketch > Upload Using Programmer. Upload a blank sketch to confirm it works.
You should see your UPDI friend blinking and the code being successfully uploaded to the board. If it doesn’t upload, the most likely culprit is that the chip wasn’t soldered properly. Soldering tips below.
Bonus
This board should be completely compatible with Adafruit’s awesome 8x8 bi-color LED library. You can find more about it here.
You can leverage their code to create your own custom 8x8 graphics and animations. It’s a great starting point if you want to add custom graphics!
Code

I wrote versions of Snake and Flappy Bird (and a few others using <Adafruit_LEDBackpack.h>). Try writing your own games or flashy business card graphics and upload them via the programmer.
The code isn't too hard to follow and uses simple C++ classes.
These are the libraries I used.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_LEDBackpack.h>
#include <Fonts/TomThumb.h>
Downloads
Done!
Share your slick new business card!
In my house, I still hold the Flappy Bird record of 31!