Introduction: LED Scolling Dot Matrix Font & Graphics Generator 5x8 5x7 8x8

Picture of LED Scolling Dot Matrix Font & Graphics Generator 5x8 5x7 8x8

If you are into geeking it out with projects of the electronical kind, then you have likely wanted to create a dot matrix display or a POV. To do this you will need to have a font file or table to read the characters from.

There are alot of ways to get this file. The common sizes of displays are 5x7 and 8x8. There's alot of places online where you can get ASCII 5x7 fonts, but I am making a scrolly display with 8x8's and I wanted to use the whole height of the matrix so I created this tool to easily format and create patterns and fonts and get them into the right format for C programming.  

The attached file was created in excel and it has a couple of macros which make things easy. You will fill in the display area with 1's and 0's and then click a button and it will store your pattern in some cells below and convert everything to a hexadecimal string for popping into your C compiler or header file.

The attached file includes 5x8 fonts for A-Z, a-z, 0-9, some punctuation, and some awesome 8x8 patterns and graphics.

Not that it matters, but I am using the AVR ATtiny2313 and AVRStudio 4.16 with WinAVR GCC for controlling my scrolling display. I don't have it done yet but atleast making the font file was easy with this tool.

Check out the steps in this instructable to find out how to use the Matrix Font Generator

Step 1: Open the Generator File - Get Excel Setup

Picture of Open the Generator File - Get Excel Setup

Download and open the "Dot_Matrix_Font_Generator.xls" file. It contains macros which means you may have trouble opening it depending on your security settings. I promise that it is safe. You will need to enable and/or allow the macros to load for this to work. If you aren't prompted upon opening then this will we under either:
Tools>Options>Security   or  Tools>Macros>Security

Here's what Microsoft says about this

For the excel functions to work you have to turn on one of the technical Add-Ins.
Go to  Tools> Add-Ins   and Check the "Analysis ToolPak". This will allow the functions to do their thing. If you don't have it installed follow Microsofts instructions here:

If you don't have the Add-In turned on then the column total cells in row #10 will show a #NAME.


The design is pretty intuitive.

Type a 1 for an LED you want on, a 0 for those you want off. Numbers other than 1 and 0 will cause the cell to turn red which means you better fix it or you get weirdness later. You will likely see ## or #NUM in those cells if you put something other and 1 or 0 in there.

Step 2: Input Letters or Patterns

Picture of Input Letters or Patterns

Set up a character or pattern. Note how the unformatted hex values show up below each column of the display.

Make sure the name is included so you can identify later in your code.

Step 3: Store Pattern and Clear Display

Picture of Store Pattern and Clear Display

Once the pattern is input you will click the "Store Pattern & Clear Display" button. This will paste the hex values and name/comment in the next available row below. It will also clear out the display and place the cursor in the name cell. At this point you are ready to create the next character or pattern.

You can see how they stack up in the image included. You can shuffle them later if you don't like the order.

Step 4: Format C Code String

Picture of Format C Code String

Now when you have the patterns you want to read into your C code, you click the "Format C Code String" button. This will take the raw hex values and paste them to the right with the "0x" in front of them. Then it will concatenate all of these into a string including the commented name/label you gave it separated by a ", ". It will also include the name you gave the character/pattern commented out by "//" on the end so you can identify it again later.

You will be prompted with a message box which will ask if you are doing a 5x8 font or a 8x8 pattern. A YES click will give you a 5 digit string for fonts, while a NO click will give you a 8 digit string for patterns.  You will need to batch your fonts and patterns separately since you can't do both types in one run.

See the pics for the prompt and the results

Now you can copy the cells with the formatted strings and paste them into TextPad or your compiler window.

**I kept this open source so if you don't like the formatting you can unprotect the sheet, there's not password. You can go play with the VBA macro and tweak it if you like.

Step 5: Clear All Stored Patterns

Picture of Clear All Stored Patterns

When you are done with the stuff in the stored pattern region for whatever reason. Click the "Clear All Stored Patterns" button.

You will get a prompt reminding you that this can't be undo, just so you don't accidentally clear your hard work.  Click OK or Cancel.  See pic of prompt

Also see results pic of clearing.

Step 6: Predefined 5x8 Font Data and Awesome Patterns

Picture of Predefined 5x8 Font Data and Awesome Patterns

I made a 5x8 font set for my 8x8 scrolly display. It's shown on the second sheet for your use. There's some creative patterns on there too.

Thanks for checking this out. Please contact me if there's any questions or bugs. Hopefully it will be useful for you, since there's not alot of 5x8 data out there and most of the online dot matrix applets are lame for doing large quantities of stuff.

Also please comment if have feedback.


MissIchuC (author)2016-11-17

What if im going to create 80 columns and 32 rows, how would I going to do this?

taifur (author)2015-10-17

This work helped me to do a dot matrix project

ErnstS made it! (author)2015-10-15

Thanks for this nice Matrix generator Excel sheet.
I have enhanced it, so you can simply click on a cell to change the value now.
It is also possible to edit entries and put the result back into the list.

I try to attach the new version to share it.

ohoilett (author)2015-04-04

This was extremely helpful for a project I am working on.

david.whybrew (author)2015-04-04

Awesome, thank you! The "C program string" for a 5x8 font has saved me heaps of time. Does anyone know where I might find a similar reference for a n x12 or n x16 dotmatrix font?

rkshirsagar (author)2015-03-27

What are the changes required to generate codes in decimal format.

Andromeda61 (author)2014-12-28

Hello and only time Thank you.
I had the same idea, so I can read the entire row and then with "Mid (.......)" the right code to the left and left to right.
I am a beginner and still have so many problems. One of these is my English skills. So look for it on the net for help, then translate the text. Then comes this I have no idea about C ++ and no electronics:-).
But luckily there are those like her who then a help.


SONUBABA (author)2014-10-11

how to this software dolwnloa plz help me ...

my email id

roznerd (author)SONUBABA2014-12-28

You should be able to just download the XLS file directly from Instructables here at the bottom of the tutorial. If not, you may need to log in or something. I haven't heard of anyone else running into issues with downloading.

Andromeda61 (author)2014-12-26


For me, all characters are displayed mirrored. Why?
roznerd (author)Andromeda612014-12-28

I would need to know more about what you mean to really be able to help. If you are seeing mirrored characters on your LED matrix displays, it probably has to do with the order you are reading the columns in. In your MCU code, you may need to actually read the string of HEX values in last-to-first to get them to show normal on your screen. You could also, re-order the column numbering. Just some ideas. If you want to, you could also tweak the Excel file to flip the order of the hex values in the strings as well, and just leave your project as is. To flip these, you would need to go into the macro VBA code in the XLS file and re-roder the starting and ending columns for the hex string concatenation. Hopefully this helps.

FloydB1 (author)2014-11-15

This is great stuff and really useful.

I have a need to generate codes with least-significant-bit at the top. Rather than drawing upside down I'd like the change the formula in cells D10-K10 (by reversing the order of D1, D2, D3,... to D8,D7,D6,... etc.) but I can't get my head around the Excel formula protection thing and every time I go to change it, it displays the text of the formula in the cell, rather than calculating it. Please can you help me get around this?

roznerd (author)FloydB12014-12-28

Floyd - Sorry for the slow reply. I have re-downloaded this and tried out the modification you mentioned. I saw that same problem you described. The sheet should not actually have protections, but Excel 07 did block the macros upfront. This would not effect the re-calculation of the cell formulas though. What I did find though is that, as the tutorial describes, I had to go into the Excel options and turn on the Analysis Tool Pack Add-In to get it to deal with the BIN2HEX call out. Then I also, noticed that for some reason, that first cell appears to be a "Text" type cell and this seems to have been forcing the formulas to show as text rather than actually calculating. I changed the format to be "General" or "Number" and it re-calced perfectly. You may have to delete the "=" sign, hit enter, then re-add it back in to get it to display the first time. From there out, it should be good to do with whatever other mods you want to make. If you have to swap the way the columns are stacked from LEFT to RIGHT, then you will need to dive into the macro code, which is clean and well commented, but it is another task all together. Anyway, I hope this helps.

BaburajJ (author)2014-11-01

UFODesk (author)2014-08-26

thanks allot. I am a rookie at this electronics stuff so cant do all these complex programing. Thanks

sweet_coffee (author)2014-05-01

Nice! This helps, thank you.

Spellchecker (author)2014-03-22

"A lot" is two words, please! :)

Ramabir (author)2013-09-27


Edward_ (author)2013-03-28

The Nov 9, 2010 comment's generator contains automatic links to information in another workbook, and tries and fails to update on startup. Its looking for ATPVBAEN.XLA. Any suggestions?

roznerd (author)Edward_2013-04-06

I'm not sure what you are getting at here. I haven't experienced this type of error. There are no external connections from this workbook to others. There may be something going on with your security settings which is trying to prevent the macro from running. Hopefully you can get around it and have some success. Alot of people have been successful using this download on Excel and OpenOffice.

Edward_ (author)2013-03-28

I may have a dumb question, I'm just trying to learn how to use your generator.

Each time I create a pattern , and press store pattern & clear display, the result in the Left side columns 1-8 is over written. Is this correct, or should it append to the list?

roznerd (author)Edward_2013-04-06

Sorry for the slow reply. It should append. I just re-downloaded it and tried it and it worked, but the key is you HAVE to put something in cell C10 for the Name/Comment or else it will over-write what you have. It's part of the way the macro finds the end of the list and appends, if the name is blank is starts back at the top.

junaid amin (author)2012-06-09


!damo! (author)2011-11-01

I have created a simple online version of this. Will be adding more features as I go along but so far outputs the matrix to hex and bin formats.

Check it out here

Let me know if you want any features/changes/suggestions etc

pasanlaksiri (author)2011-09-01

Thank you my friend. Its save my time a lot.

luqvh (author)2011-06-17

can u give me the schematics of this project.. help is appreciated.. thx!
Luqman Rosley

grunftz (author)2011-02-02

thx it helped me a lott :D

parseInt (author)2010-12-23

tnx it helped me a lot.

sakuyaki (author)2010-12-03

good job!

very useful for me, thank you!

tomas123 (author)2010-11-09

thanks for this great worksheet
I make same minor changes (excel 2003) for better working with 8x8 displays. You can now convert hex codes to the pattern editor.

roznerd (author)tomas1232010-11-10

Right on! I'm glad you were able to hack it to work better for you. Thanks for sharing.

NatureTM (author)2010-05-08

This worked great and I found it very useful for a project.  Thanks!

roznerd (author)NatureTM2010-05-08

Awesome! Glad it worked for you. Thanks for the feedback.

ledtech (author)roznerd2010-10-03

roznerd, thanks a million for the inspiration. I feel like I'm on the way already. I love your prompt response and as I go along the way, will certainly update you with my progress which like you said would need some time with good study/research. I am really inspired and already believe I can do it with hard work.
Thanks for your concern and all those nuggets and starter resources you furnished in your reply. I can't say how long before I do master the tech and art but I put it tentatively at the next 6 months. Thanks!

roznerd (author)ledtech2010-10-04

no problem. Good luck with your research and education. It took me about 6 months to get to the point where I was pretty proficient with C-code and doing basic tasks. I still have a lot to learn though, as we all do. If you ever have any more questions, let me know.

ledtech (author)roznerd2010-10-03

Roznerd, I am totally new to this forum and have a deep interest in Scrolling LED signage. I am a novice in this thing and the stuff about hexes and Concatenate is quite abstract to me. I need your help because I want to build such stuff myself. Where do I start from? Do I need to take lessons in Programming or something? I can make stationary LED signage but the electronics of this other interesting aspect (and the Programming of course) is what I hope to grasp now. Hope to hear from you and will be grateful for your assistance in what way you possibly can. Thanks. I'll drop you an email incase you have much more to say or info to send:

roznerd (author)ledtech2010-10-03

ledtech - That's cool that you are interested in electronics and led stuff. There's alot to learn to get up to the point where you understand and can build a scrolling led display. There's some basic concepts you'll need to understand like "multiplexing" and you'll need to learn about shift registers (I have an instructable about them and there's lots of info out there on them).

Then once you kind of get those concepts, you'll need to learn how to program a microcontroller to handle the display and do the actual work. There's alot of good platforms out there for microcontrollers (MCUs). A good beginning point is the Arduino which is based on the Atmel AVR family of MCU's. This is the site to look at for that: They are kind of pricy at $28, but they will serve as the brain for your project. they are programmed in some free software using a language that is bascially watered-down C code. If you want to get a little closer to the "real thing", then you get go striaght into working with Atmel AVR's. They are more powerful and are programmed in standard C code. A programmer will be about $30, but then the actual MCU's are only $1-$4 each. This is the route I went. Here's a good place to start reading:

You'll have to understand that this instructable for the Scrolling LED Fonts is just an easy way to create the code for each letter. There's alot of other things going on to get those letters onto the display. Getting started into programming and playing with microcontrollers is the first step. Once you have the skills and review some other peoples code for Scrolling LED displays, you'll be able to make your own.

Here's a good site that shows how a scrolling LED sign works and how to build one (his code is in assembler tho, so its not super useful unless you learn assembler code which is old school) ( you might have to look at the cached version on google becuz the site seems to be down today)

It's a journey. There's about 10 key concepts you'll need to understand about the features of a MCU to get the dot matrix LEDs to do what you want. If you go with the Arduino, there's a ton of guys out there who have already done led displays, and you could probably grab their code and just modify it as you see fit. The save is true for the AVR, but there's not as many guys using them as the Arduino because the Arduino is a bit easier for beginners.

You have a lot of reading to do on line and get started with MCU's a simple stuff like flashing LEDs, using 74HC595 shift registers, make a little POV circuit (googe it), maybe play with multiplexing some 7 segment displays, then you will be about ready to build a led scrolling display, grasshopper. There's a good instructables based on an AVR Attiny2313 (very common AVR MCU) that's called "64 pixels" and it's a simple scrolling sign. Here's a link to it:

Look through the code. Anyway, I hope this is all helpful. I can't convey all of it in an email. You're going to have to take itfrom here and start reading and playing around with MCU's. There's lots of resources out there. Good luck - roznerd

tecate1 (author)roznerd2010-09-10

I have seen POV's that are able to use multiple formats like .mov, mpg, etc.. How is that done? I would like to build a POV that I can input animation and video. Any help would be greatly appreciated. Wayne

raghavnagpal (author)2010-09-19


naranathubrandan (author)2010-09-07


kristiansmic (author)2010-08-11


Lee Wilkerson (author)2010-05-10

Hint: OpenOffice.Org version 3 can already deal with the data strings, etc. and it's FREE.
Beautiful project. I remember doing font creation by hand back in the day (25 years ago).


tezo (author)2010-04-23


roznerd (author)2010-03-07

Hey everyone - Thanks for all the hits. I fixed the slashes for automatically commenting out the "name" you give to the characters. It was "\\" which is wrong for AVR Studio. I corrected it to "//".

You may have already worked around this but I caught it while programming my POV project. So here you go. The latest version is up here. 

Fred82664 (author)2010-02-15

I am using open office ( better fit for my money ) It did not work out at first  but looking to the right side I think I found why it did not work at first    Make sure to load the Analysis ToolPak  so the BIN2HEX function will work  Tools>Add-Ins>check "Analysis ToolPak" 

after fixing that it worked out fine. good lible

thatoneguydavid (author)2010-02-12

this looks great.   however, i use OpenOffice and for some reason the macros do not seem to make it through the translation.  do you think you could put up a text file with your macro code so that i could translate it in to OpenOfice?

thank you.

roznerd (author)thatoneguydavid2010-02-13

Thanks. I'm not too familiar with OpenOffice but you should be able to figure out how to get the macros and the worksheet functions to work. The worksheet functions I use are BIN2HEX and CONCATENATE.

I have uploaded the VBA code with comments if you'd like to check it out

thatoneguydavid (author)roznerd2010-02-13

thanks, ill give that a try

P.S. OpenOffice is a completely free open source office suite

roznerd (author)2010-02-11

frollard - You bring up a point that I forgot to mention. To get the functions to work you need to go to Tools> Add-Ins  and turn on the Analysis ToolPak. This is where most of the technical functions are kept.

Here's what Microsoft says about it:

Doing this will solve your concatenate issue. I will edit the Instructable to make this clear. Hopefully it works for you. I don't see why it wouldn't.

Thanks for the feedback.

frollard (author)2010-02-10


I'm building a pov and want to build my own fonts, etc.  Arduino being really limited for memory I'm tempted to do as much of this procedurally as possible but why didn't I think to macro the crap out of excel?!  

Beautiful, simply beautiful.  Using good formulas, conditional formatting for error checking, and macros to assemble the rig.  BEAUTIFUL!

About This Instructable




Bio: Mechanical Engineer
More by roznerd:DIY Cubicle Clips - Cheap and EasyHow to use a 74HC595 Shift Register with a AVR ATtiny13How to control a 16x2 LCD using an AVR ATtiny2313
Add instructable to: