Introduction: Dot Matrix Business Card

Picture of Dot Matrix Business Card

If my flashlight business card isn't advanced enough for you, then how about one with a full graphical display on it that can be customised for a number of scrolling messages? This one could be made in quantity for about a $5 parts cost, and it is only a little bit more expensive if you are making just a few. I won't kid you that this is an easy design to make - don't try it unless you have very good soldering skills and some experience in electronics. Some of the components here are smaller than grains of rice, so it would be useful to have good eyesight as well! Like the flashlight card, it is more of a proof of concept than something you can churn out in quantity, but it might at least give you an idea of what can be achieved, and where business cards might be in just a few years time.

Step 1: About the Design

Picture of About the Design

This is the sort of card that would suit a high-tech business, or those who were involved in high-value contracts, where an innovative image is all important. I would never suggest that it would replace a conventional business card, but to impress that all-important prospective client, there would be more than a few companies who would be happy to spend just an extra few dollars. Like the flashlight card, the aim is to design a business card that people just can't throw away!

The design is really quite simple for what it does - a matrix of 5x15 LEDs, connected to a single-chip "PIC"microcontroller. A handful of resistors and switches complete the design (Schematic available below). By keeping the microcontroller in sleep mode unless the buttons are pressed, the battery can last several years, and still allow a couple of thousand displays of your messages.

Step 2: What You Need

Picture of What You Need
  • One CR2032 battery (I got them for about 16 cents on ebay when I bought 100)
  • One CR2032 battery holder (I used part 18-3780 from This costs around 14 cents in quantities of 100 - these are a common type of holder that you should be able to find at places like if you are on the other side of the Atlantic to me!)
  • One PIC16F57 (Order code 1556188 from - These cost 66 cents each in 100+ quantities - again, you can find them at
  • Four surface mount switches (Part 78-1130 from at 20 cents each)
  • Some miscellaneous resistors and capacitors in an "0805" surface-mount package - you will need 5x100 ohm resistors, 2x10k resistors, 1x47k resistor, 1x47p capacitor, and 1x100n capacitor - any of the suppliers mentioned above do these, and they cost almost nothing!
  • 75x "0603" LEDS - as bright as possible, and as cheap as possible! I used item 72-8742 at 6 cents each from Rapid, but again, you should be able to get them at other suppliers. In quantity, you can get these down to about 3 cents each.
  • Some double-sided foam adhesive tape that is slightly thicker than the battery you are using - mine was 4.5mm thick)
  • A printed circuit board (PCB) for the project - instructions for producing your own are beyond the scope of this article, but you may have some success with the iron-on or photographic technique (my preferred technique). You can find instructions for making your own printed circuit boards elsewhere on instructables and other sites. The PCB layout is reproduced below in a PDF file if you want to try yourself.

You will also need a soldering iron (plus solder), a cutting knife, some spray adhesive, and a way of printing the front of your card - you can use a colour laser or inkjet. I printed on OHP transparency film. You will also need a way of programming the PIC microcontroller. I use the PICKit2 which is part number 579-PG164120 from, and available at around $35. A strip of 5x0.1 inch PCB pins (such as 22-0510 from Rapid) can be pushed into the programmer to act as an interface with the board.

Step 3: Soldering Starts!

Picture of Soldering Starts!

Solder the components onto the board, starting with the smallest first (Refer to photos). A pair of tweezers is useful here - by putting a blob of solder on a pad, and then re-melting it whilst positioning the resistors or capacitors with the tweezers, you can neatly add these small components. It doesn't matter which way around these components go, but it does for the PIC (which should read with the writing the correct way up as shown in these photos), and also the LEDs must be put around the right way. It is harder to tell with the LEDs which way around they should go - the top connection should be the positive (or "anode"). You can tell by consulting the datasheet for the LED - one of the two leads will usually be marked in some way. An easier way is sometimes to test one of them by attaching a couple of wires to a small 1.5V battery, and then touching the leads on the ends of the LEDs - if it is the right way around, you should see a glow, but if using a single 1.5V battery, it will be extremely faint, so you will have to observe carefully. Again, a tutorial on soldering is not within the scope of this article - I did warn you that this isn't a beginner's project, so don't make this one your first venture into surface mount soldering! Note that the LEDs are only initially soldered on their bottom lead - we will use some wires later to connect their top leads.

Step 4: An Ad-hoc Double Sided Board

Picture of An Ad-hoc Double Sided Board

Lay some fine strips of 'invisible tape' down along the vertical PCB traces next to each column of LEDs - this will stop the wires we are about to solder touching them.

Next, solder some fine tinned copper wire along the top of each row of LEDs, to reach all the way to the resistor as in the photo. Note that you will need only four wires - the top one will not be needed if you use the PCB layout given in this article, as it uses a PCB trace to connect the components.

Step 5: Programming

Picture of Programming

The next step is to put the dialling program into the chip. If you have bought the PIC Kit 2 programmer, it has everything you need with it. Download the file from this page, unzip it and put it in a directory somewhere on your computer - then from within the MPLAB IDE, go to the "Project" menu, select "Open", and navigate to the "main.asm" file. Change the stored messages (around line 115 in the code) to your contact details rather than mine(!) - the messages are spelt out with a series of '1's and '0's - a '1' means the LED is on. If you look closely, you will see my name spelt out with '1's. (You might need to turn your head 90 degrees to see this!) You have complete freedom to make your own characters or symbols, so you could have, for example, a simple animation of a car moving to the left if you wanted. Note that there are four messages - one for each button - you will need to specify the length of each message by stating the number of columns it takes up in the 'MSG1LEN,MSG2LEN...' definitions.

Go to the "Project" menu again, and select "Quickbuild" - check there are no errors, and you are then ready to program. I use a simple technique of inserting a broken-off strip of 5 pins from a strip of 0.1" header pins into the programmer, and then just touching the 5 pins whilst programming. This is a little fiddly, but as the erase or program cycle only takes a second or so, it is quite manageable. The arrow on the end pin of the programmer should align with the top pin of the PCB (NOT AS SHOWN IN THIS PHOTO - WHOOPS!) If you are experimenting, it is well worth soldering the strip of 5 pins onto the board until you have finished your changes. When you are ready to program, you will have to use the separate 'PICKIT2' utility supplied with the programmer, as for some reason, the MPLAB IDE doesn't support programming of the PIC16F57 directly. To do this, you need to specifify the family of PICs ("baseline"), and the particular part (16F57), before loading the Hex file created in the previous step, and then finally programming the chip. If all is successful, you should be able to insert the battery (positive side down), and press one of the buttons to see your message scroll along!

Step 6: Finishing Off

Picture of Finishing Off

To encapsulate the prototype, I applied some double sided foam tape to the board, turned it upside down, and then cut the excess off. I then reverse-printed the graphic overlay on an OHP transparency sheet. By turning the sheet over, and attaching a white printer label, you can get the clear icons on the transparency to show up white. I also attached a sheet of thick polypropylene (made as a cover for binding documents) to the overlay using some adhesive spray before attaching to the front of the card and trimming off the excess. If you wanted to use the same graphic as mine, it is also available on this page as a PDF.

Step 7: The Finished Product

Picture of The Finished Product

The finished product is shown below. You can now relax, content that you have the world's most advanced business card (at least until I make my next one which will have a colour OLED screen!)

Step 8: The Future

If I produced these commercially, I would probably change a couple of things. Firstly I would change the CR2032 cell to a CR2016 as this is thinner, and then embed it within a space cut in the PCB. By using lower-profile components, the thickness of the card could probably be reduced to about 1/8th of an inch (rather than the current 1/4 inch). By using some of the new thin-film batteries, it might even be possible to make a flexible card, albeit at a higher price. A professionally-printed overlay and a custom die-cut replacement for the foam tape would see the cards assembled much more quickly, and look a little slicker too. Of course the PCBs would be manufactured professionally as well, and populated by a 'pick and place' robot to allow assembly to be sped up even further.

Next, I would like to work on a high-resolution version using a colour OLED display - think photographs and animations. The sky is the limit - almost any electronics could be put into business cards - wireless links, audio soundtracks - if anyone is interested in using these ideas or other related ones commercially, then let me know - you can reach me at

At the bottom of this page I have included the Eagle PCB file for this project. Be warned that it is a slightly different version than the one shown in this instructable, so won't be much use unless you are familiar with Eagle and are happy to make some modifications for your own use. The main changes are that it is double-sided (no need for the tape/wire combination in step 4), the switch type has a slightly different footprint, and I use a different style of battery mount. (For those that want to try it, I drilled a 20mm hole in the centre of the PCB, and then used two diagonal pieces of spring wire on either side of the board to hold the battery in, to make a much thinner finished card).


yaly (author)2015-06-16

You can also use jumper resistors or "000" value smd resistors to connect the horizontal lines and have some traces running under the LEDs.

KellyKandy (author)2015-05-13

Great idea

arandomalien (author)2013-08-24

i want to make this, but i don't want to use surface mount, i.e. normal LEDs, batteries. so what components should i use. please help :(

Fayez slim (author)2013-08-20

yes i know i check but the battery holder in the double sided pcb

tomward (author)Fayez slim2013-08-20

Hi - the one in step 2 is 18-3780 from The one referred to in step 7 was just a couple of bits of wire soldered in - it wasn't a proper battery holder.

Fayez slim (author)2013-08-20

plz upload a photo of it or his name to buy it plz

Fayez slim (author)2013-08-20

and sorry for my question but i have another one what is this type of battery holder in the new pcb

tomward (author)Fayez slim2013-08-20

Hi - if you check step 2 of the instructable it lists the parts and suppliers

Fayez slim (author)2013-08-20

if i want to write my name and my email plz tell me how
my name is fayez slim
and my email is
plz reply

tomward (author)Fayez slim2013-08-20

Hi - if you check step 5 of the instructable it will tell you how to spell out messages

Fayezslim (author)2013-08-16

can i use your hex file in with out editing it plz reply

tomward (author)Fayezslim2013-08-16

You are welcome to but it won't be much use for you as it will have my name and email on it rather than yours!

india5785 (author)2012-02-20

I am looking to build the same circuit but modify the program. I have run into a road block trying to get a PCB manufactured. My education hasn't covered creating Gerber files and such... Is the PCB simply 2 layers?

tomward (author)india57852012-02-21

It is actually only 1 layer - very simple. Best bet to do it commercially is to find someone who accepts an Eagle ".brd" file which is attached to the instructables

offtherails2010 (author)2012-01-29

DUDE !!!

Seriously awesome stuff ! Many thanks for showing exactly how this is made with VERY - Clear & concise pictures and steps!

Also interested in your MK 2 version with colour OLED screen!

Undoubtedly Awesome & is every possible meaning of my words!

You're A Genius! Simply-Said !

nerd7473 (author)2012-01-27

where did you get the parts?

sokamiwohali (author)nerd74732012-01-27

check out step 2

farzadbayan (author)2012-01-27

Very interesting!

signalelektronik (author)2012-01-27


CHANNIHONEY (author)2011-11-24

channihoney says:
how can write new message this display ?

omgitsarhino (author)2011-10-05

I've made a few of these already, they have been working great :) I've also recently started working on a completely flush version, which will hopefully be just as thick as the pcb... All the components are sunk in, except for the LEDs! Thank you so much for this amazing Instructable, you've given me hours of trial and error and most of all a chance to learn about smd soldering and programming :)

The nerdling (author)2011-09-17


aessam1 (author)2011-09-17

i really like it
it's very well designed
and i really like the idea for the overlay

michaelgohjs (author)2011-09-17

very nice....
good job pal

MatthewEnderle (author)2011-08-14

got an idea tom to revise the board. Where the Battery is placed cut out a hole and place the battery in the hole, and use tin flaps soldered to the board. That will make it thinner.

yakteeno (author)2011-05-19

How can I make one of these

mangomango (author)2011-01-29

im really interested in making this into a portable sound analyzer. like a SpeaQualiser. anyway, i was wondering just how durable this is and size comparisons. like would i be able to keep this in my wallet?

volkee (author)2011-01-15

May i make this commercially in Thailand?
Just using the idea, not the whole thing.

tomward (author)volkee2011-01-15

Sure - the information is freely available so go for it. Send us an image of what you come up with if you get one up and running - would be interested to see.


shaf789 (author)2010-07-19

i dont no how to re name?

Gonzalo Ruiz (author)2010-06-24

It's not becouse you make It in a Mac? I use only Windows, i never tried Mac. Anyway I opened It with Notepad of Windows and It says this (a little part): €B | < ÎëH§(ƒ x ™ G©Í ü>€ÂFˆÊ ü>€ÂFˆÊ ü>€ÂFˆÊ ÿ š™™™™™©?š™™™™™™? Top Bottom Pads Vias Unrouted Dimension tPlace bPlace tOrigins bOrigins tNames bNames tValues bValues tStop bStop tCream bCream !" tFinish "! bFinish #$ tGlue $# bGlue %& tTest &% bTest '( tKeepout (' bKeepout )* tRestrict *) bRestrict ++ vRestrict ,, Drills -- Holes .. Milling // Measures 00 Document 11 Reference 22 dxf 34 tDocu 43 bDocu 56 tGND_GNDA 65 bGND_GNDA 87 wert [[ Nets \\ Busses ]] Pins ^^ Symbols __ Names `` Values aa Info bb Guide d Muster ee Patch_Top ff Vscore hh Name tt Patch_BOT yy _tsilk zz _bsilk —— HeatSink ÈÈ 200bmp ÉÉ 201bmp ÊÊ 202bmp úú Descript ûû SMDround þþ cooling P - ««‡ ¸ ó € \ Lightbox E þÿsë ÐqfSO28W +€ &ïþÿPLÿÿ¸ø* 2 +€ Ú PLÿÿ¸ø* 13 +€ Š½þÿPLÿÿ¸ø* 1 +€  ÿÿPLÿÿ¸ø* 3 +€ ^RÿÿPLÿÿ¸ø* 4 +€ vB PLÿÿ¸ø* 14 +€ >ß PLÿÿ¸ø* 12 +€ ¢­ PLÿÿ¸ø* 11 "€ '‘þÿxæ þn xæ ç "€ 'þn ˆÿÿ‘þÿˆÿÿç "€ '‘þÿˆÿÿ‘þÿxæ ç "€ 3„a xoÿÿ|žþÿxoÿÿø "€ 3|žþÿxoÿÿ|žþÿ ƒÿÿø "€ 3|žþÿ ƒÿÿ|žþÿˆ ø "€ 3|žþÿˆ „a ˆ ø "€ 3„a ƒÿÿ|žþÿ ƒÿÿø 1€Š½þÿœ1 Î >NAME +€ –µÿÿPLÿÿ¸ø* 6 +€ jJ PLÿÿ¸ø* 9 +€ úƒÿÿPLÿÿ¸ø* 5 +€ 2çÿÿPLÿÿ¸ø* 7 +€ | PLÿÿ¸ø* 10 +€ Î PLÿÿ¸ø* 8 "€ 3„a ˆ „a ƒÿÿø "€ 3„a ƒÿÿ„a xoÿÿø 1€Š½þÿÈœÿÿÎ >VALUE"€ 'þn xæ þn ˆÿÿç +€ vB °³ ¸ø* 15 +€ Ú °³ ¸ø* 16 +€ >ß °³ ¸ø* 17 +€ ¢­ °³ ¸ø* 18 +€ | °³ ¸ø* 19 +€ jJ °³ ¸ø* 20 &€ 3÷³þÿ00ÿÿÇþÿkÿÿ &€ 3“åþÿ00ÿÿ¹øþÿkÿÿ &€ 3/ÿÿ00ÿÿU*ÿÿkÿÿ &€ 3ËHÿÿ00ÿÿñ[ÿÿkÿÿ &€ 3gzÿÿ00ÿÿÿÿkÿÿ &€ 3¬ÿÿ00ÿÿ)¿ÿÿkÿÿ &€ 3ŸÝÿÿ00ÿÿÅðÿÿkÿÿ &€ 3; 00ÿÿa" kÿÿ &€ 3×@ 00ÿÿýS kÿÿ &€ 3sr 00ÿÿ™… kÿÿ &€ 3¤ 00ÿÿ5· kÿÿ &€ 3«Õ 00ÿÿÑè kÿÿ &€ 3G 00ÿÿm kÿÿ &€ 3ã8 00ÿÿ L kÿÿ &€ 3ã8 q” L ÐÏ &€ 3G q” m ÐÏ &€ 3«Õ q” Ñè ÐÏ &€ 3¤ q” 5· ÐÏ &€ 3sr q” ™… ÐÏ &€ 3×@ q” ýS ÐÏ +€ Î °³ ¸ø* 21 +€ 2çÿÿ°³ ¸ø* 22 +€ –µÿÿ°³ ¸ø* 23 +€ úƒÿÿ°³ ¸ø* 24 &€ 3; q” a" ÐÏ &€ 3ŸÝÿÿq” ÅðÿÿÐÏ &€ 3¬ÿÿq” )¿ÿÿÐÏ &€ 3gzÿÿq” ÿÿÐÏ +€ ^Rÿÿ°³ ¸ø* 25 +€  ÿÿ°³ ¸ø* 26 +€ &ïþÿ°³ ¸ø* 27 +€ Š½þÿ°³ ¸ø* 28 &€ 3ËHÿÿq” ñ[ÿÿÐÏ &€ 3/ÿÿq” U*ÿÿÐÏ &€ 3“åþÿq” ¹øþÿÐÏ &€ 3÷³þÿq” ÇþÿÐÏ Üÿÿ$ õ rf +€2 pÆ Ä°' P$1 +€2 8c ÄÄ P$2 +€2 ÄÄ P$3 +€2 ÈœÿÿÄÄ P$4 +€2 9ÿÿÄÄ P$5 4ÿšÿÌ f #rf "€3Èœÿÿ8c 8c 8c { "€18c 8c 8c Èœÿÿ{ "€08c ÈœÿÿÈœÿÿÈœÿÿ{ "€2ÈœÿÿÈœÿÿÈœÿÿ8c { +€ ,kÿÿˆ; œ1Î P$1 +€ ,kÿÿxÄÿÿœ1Î P$3 +€ Ô” ˆ; œ1Î P$2 +€ Ô” xÄÿÿœ1Î P$4 mþmþ““ 2rf %€ 3 ö ö { *€ Š½þÿŠ½þÿˆ POS1 *€ vB vB ˆ POS2 *€ Š½þÿvB ˆ NEG1 *€ vB Š½þÿˆ NEG2 (€ ø* € led íÿÏÿ 1 Lrf?rf +€ L    C +€ ´âÿÿ   A &€ 3lîÿÿ” ” 4! &€ 3lîÿÿÌÞÿÿ” lîÿÿ "€ 3`ðÿÿ” `ðÿÿlîÿÿü "€ 3  ”   lîÿÿü &€ lîÿÿ Hôÿÿ¸ &€ ¸ ” ¸ &€ $úÿÿ Ü ¸ 1€2çÿÿ2çÿÿÎ >NAME And I can't change the name, in properties and when I download It, says: Downloading FJ57QXVFT3K2QPS.tmp... Did you tried to download It in your PC? It's really strange. Now I use Windows 7

tomward (author)Gonzalo Ruiz2010-06-24

After renaming, you will need Eagle PCB (Free download) to view and edit the PCB file.

Gonzalo Ruiz (author)2010-06-24

Hi in the step 8, the download link is naemd 'Led Card.brd' and when I download It it´s named 'FJ57QXVFT3K2QPS.tmp'. Why It´s different?Why the format is '.tmp' in stead of '.brd'? Please help me.

tomward (author)Gonzalo Ruiz2010-06-24

Strange - didn't use to do this - tried uploading again and same thing happened. You will need to rename the ".TMP" file to ".BRD" after you have downloaded it - google "Change File Extension" if you need to know how to do this. This is a newer version of the PCB file - a double-sided one with no need to use the "mock double sided board" trick with the sticky tape. Apologies, but no longer have the original board.

samr37l (author)2010-05-31

 Where did you find the library for the led's? I can't seem to find the library....

tomward (author)samr37l2010-06-01

There is no library needed - all code is in one file attached to the instructable.

samr37l (author)tomward2010-06-01

 Yah, but I would like to design my own. (Yours is just WAY to complicated for me, but it is REALLY cool)

satadru (author)2010-05-27

hi...i jst gng to start wth pic mic.can u tell me which book is good to guide me properly with pic microcontroller........

tomward (author)satadru2010-05-27

Sorry, but don't have any books on PICs - just done a search on "PIC Microcontrollers" on Amazon and their looks like to be a good few for beginners with good reviews - perhaps someone else can recommend one?

glocketz (author)2009-04-04

Hey, Sunstone circuits (custom pcb manufacturer) requires the matrix to be in either a .RAR, .123, . BRD, or .BIN formats. Can you please upload a copy of the matrix in one of those formats so I can have a circuit printed? Thanks.

tomward (author)glocketz2009-04-05

I have loaded an Eagle .BRD file on the last step of the instructable, but it is slightly different - see the comments on the last page.

l4a (author)tomward2010-04-14

Hello, I have a bit of a problem. And  I'm asking for a help. I have succesfully soldered everything and programmed it. But it doesn't work as it should. When I insert the battery all the LED's are turned on. Even if I press one of the four switches nothing happens (all the LED's are still on). Could you help me with the problem, please? Thanks

tomward (author)l4a2010-04-14

Hi - sorry, but it is pretty near impossible to troubleshoot remotely without access to the circuit.  My best guess is that the program is not running at all - perhaps due to an incorrectly programemd fuse/option bit.

l4a (author)tomward2010-04-19

Hi again. I'm new in this and I'm having some troubles understanding your solution. Could you please tell me where can I select this fuse/option bit?
Thank you for your time! I really appreciate it.

tomward (author)l4a2010-04-21

Looking at the source code again it looks like I put the fuse options into the source code in the first few lines so that shouldn't be a problem.  I would suggest programming my original hex file (from the the zip) - if this works then it is a change you made to the code that stopped it working.  If it doesn't then things get harder to work out and it must be in the hardware.  Let us know how you get on.

l4a (author)tomward2010-05-04

Well I haven't been able to fix it so I decided ti make another one. And even this one doesn't work. I have checked all the connections and everything seems OK. So is it possible that I have overheated the PIC while soldering?

p.s. Is it possible that you could send me one of your prototypes? I would pay you of course.


tomward (author)l4a2010-05-04

Hi - really sorry, but only ever made one and this disappeared somewhere when being shown at a maker faire in the US.  Are they programming/verifying OK?  If so then you prob haven't blown up the chip - I think that they are less sensitive these days to heat/static etc than they used to be.  Send me a private message with your email address and I will try to help if I can.

l4a (author)tomward2010-05-05

I think I might have solved the problem. I don't know how I did that but I turned the LEDs up side down! This week I'll try to do another one and I'll tell you the result!

stan4 (author)2010-04-26

You totally got me!
I was totally curious to see what was the part number of the display, hahahaha, very nice work!

I gave you 4.5 stars because I don't think the card is waterproof.

codongolev (author)2010-04-24

this might be a stupid question, but how does the microcontroller drive a single LED at a time?

About This Instructable




More by tomward:Ultraviolet TorchUltraviolet Business Card FlashlightFlashlight Business Card
Add instructable to: