Dot Matrix Clock On The Way


[Kevin] sent in his almost finished open source dot matrix clock. Sporting a hefty 40 x 16 display powered by a PIC 18F he has complete pixel by pixel control of the graphics. Combined with with a triple buffer he is at least able to output 15fps, with planned 30fps. While this has great potential for a clock, what about going further? Twitter updates, chat messages, weather updates, the current airspeed velocity of an unladen swallow; it will be tough to beat the competition without some more features. Either way, its an awesome project and we can’t wait to see it completed.

25 thoughts on “Dot Matrix Clock On The Way

  1. @pt:
    Kevin’s clock IS open-source, he’ll be releasing the firmware and source once it’s completed. He has released the schematic as well, just not the gerbers. Reason for that is, he’s put 2+ years into them, and he doesn’t want someone to take them, copy the board, and then sell it as their own. Boards should be available sometime down the road.

  2. I am working on the software for my own LED matrix clock right now. 64×16 LEDs, 100Hz display scan rate, approximate parts cost £20-£25.

    I have no idea why this guy’s system is so expensive.

    Before starting I looked around and you can get 64×16 LED matrix boards on eBay for about £25, with a controller chip built in and SPI interface. I decided to make my own because I wanted some experience of handling the relatively high current (~1.5A max) and display refresh. I was only planning to do one 16×16 matrix but decided to do another three and make a clock with radio time setting (DCF77 receiver module harvested from a dead alarm clock).

    I looked in to going to LED-driver-shift-register route like Kevin did, but aside from the driver ICs being expensive it’s a fairly standard and uninteresting solution. Instead, I decided to use LM317 voltage regulators.

    I have one LM317 for each row of LEDs. They are set up to provide 3.2V, which matches the forward voltage of the LEDs so no resistors are required to limit current. Actually, it’s a bit higher because the display is multiplexed so I need to supply a bit of extra current, but is still low enough not to burn the LEDs out.

    The big advantage of using LM317s instead of transistors is that they provide the same fixed voltage (and thus the same current) no matter how many LEDs are lit. With transistors you have have to be careful to make sure the current is constant or the brightness varies with the number of LEDs per row that are on.

    For the columns I use ULN2803 Darlington drivers and ordinary 74LS595 shift registers. These are both really, really cheap compared to the kind of high current shift registers Kevin uses.

    My clock will be open source, I just need to make a web page for it. I hope it will help others learn about power control with microcontrollers (I use an AVR), as that is why I started it. Rather than just use an off-the-shelf single chip solution like Kevin did, I wanted to actually get down to the nitty-gritty of how the system works.

    If there is interested I might even get some PCBs made (and the designs will be open source too). The main problem I have is finding a suitable enclosure, because I have no real skill in making them. One idea I had was to use something like those wood-fronted clocks you can get, where the LEDs are behind a very thin wooden front panel and shine through it. A simple plastic box with wood veneer would probably do.

  3. @spacecoyote: The gerbers do exist. The board shipped a few days ago and will be here in two weeks. Renderings of the board in blender:

    @mojo: As for expensiveness: the board with shipping cost $71 (would go down considerably with bulk ordering), LED sink drivers cost $2.93 apiece (5 total gives ~$14), Buttons on the front were $0.99 apiece, Microcontroller is ~$6…I believe I am up to $95 and I haven’t even recounted the entire parts list.

  4. @mojo: Using voltage regulators as row drivers is an interesting idea, but how would you go about switching them? Mine just uses MOSFETs on a demultiplexer connected to the 5V supply to turn on rows. You say that your end effect is that it puts out the same fixed voltage no matter what. Being a voltage controlled device (rather than current controlled like a bipolar transistor), the ideal MOSFET does the exact same thing which makes me wonder what the point of all those regulators is.

    I have been working on this project for 4 years with the current iteration 2+ years. I don’t believe off the shelf is a good description of this project whatsoever. The only part that could even be classified as off the shelf for this purpose is probably the LED sink drivers. If I were to really do an off the shelf single chip solution I would have gone with the MAX6953 (quad 5×7 dot matrix driver) or something.

  5. @Kevin: $71 for the PCB!? Have you tried SeeedStudio?

    Also, it might be worth trying to split your board into separate driver and display sections. The driver part is probably quite small, and then you can just use really cheap protoboard for the display part and a few wires.

    As for the voltage regs, they normally use two resistors to generate a stable voltage. The adj. pin is also connected to a transistor (BC337) which when turned on shorts it to ground. When shorted, the output voltage is only 1.35V which is not enough to turn the LEDs on.

    MOSFETs are certainly usable, but they have some disadvantages. As you discovered the BSS138 is not ideal for your project. It would be better to use a P channel FET and source current with it. Also, you have to be careful with board design and selection of the MOSFET because you can encounter problems like slow on/off times due to capacitance in the FET and the PCB traces. They also produce more heat and use more current than LM317s.

    As you have apparently discovered, most MOSFETs are far from the ideal mathematical model.

    Is the slow switching speed why you are limited to 15fps? Or is it the slow speed of the PIC? Even at 30fps you will get significant flicker. 50fps is about the minimum I’d say, so around 1ms per row for a 16 row display. I have tested up to about 300Hz on mine and could probably go further, but I use 100Hz to allow the AVR to sleep and do other stuff.

    The HT1632 seems like the best “does everything” IC available at the moment. I’m surprised you have been working on it for 4 years though. Don’t take this the wrong way, but it took me about a week to come up with the design and two weeks to solder everything up, testing along the way and writing the test AVR code and doing it all in my spare time. What made your design take so long? It seems fairly similar to the many other LED matrix display designs out there, so I can’t see why it would take so long to do, unless I’m missing something. In fact, it looks pretty much the reference designs in LED driver data sheets.

    I’m interested to see what sort of case you come up with. My idea was similar to your mock-up, but I’d probably make it out of one but of solid wood rather than panels if possible (I just prefer that, obviously it would cost a lot more). I have no skill when it comes to that sort of thing unfortunately. I may end up getting some pre-cut panels and just gluing them together.

  6. @trinidad2099 – that’s not “open source”

    you said “Kevin’s clock IS open-source, he’ll be releasing the firmware and source once it’s completed. He has released the schematic as well, just not the gerbers. Reason for that is, he’s put 2+ years into them, and he doesn’t want someone to take them, copy the board, and then sell it as their own. Boards should be available sometime down the road.”

    when hardware is called “open source” that usally means commercial use is allowed (just like open source software, linux for example).

    the project is “open hardware” non-commercial it seems, that’s very different. not releasing the gerber files also means it is not “open source hardware” if you look at all the projects that are OSH.

    it’s not bad or good thing, a maker should release their project however they want – but hackaday (and the maker) should be clear that it’s not OSH.

    it would be like releasing linux and saying no commercial use allowed, very different.

  7. @spacecoyote: Yes those are. I couldn’t fit it otherwise.

    @mojo: I used Olimex and the boards would have been about $15 cheaper if I hadn’t forgotten to run a few scripts on the boards before sending them in :P.

    Literally the day after I ordered the boards I realized P-channel mosfets would have been better. If I end up redoing the display after this point I will definitely change to P-channel mosfets.

    The main reason for my design taking so long was my lack of complete understanding about this sort of stuff until about the last year or so. Until recently I have had no formal education about MOSFETs and such. Another reason was time actually spent working on the project. If I were to have worked on this continuously I could have probably had it completely finished in under 9 months (PCB ordering and all). I had several projects that have gone on during this one along with school taking more time than I originally expected. The PCB’s probably took the most time seeing as I had to learn how to route things properly (I had always just used the autorouter up until then). As for reference designs, I never bothered to find any except for one project that used an ATTiny to drive a 5×7 matrix. If it looks like the references in datasheets that is probably mostly coincidence.

    The speed is limited by the slowness of the PIC. If I were to re-do the board I would go with an AVR since it has a much faster top speed.

    I used to have the board split into two sections, but then I discovered surface mount soldering wasn’t too bad and so I put it all on one panel.

  8. @pt:
    Last i knew, open hardware and open source were two distinctly different categories. Open source is for the sourcecode, open hardware for the hardware.

    This design is open-source, since Kevin will be releasing the software once it’s finalized.

    He never stated that he was doing open hardware, but he did release the schematic to the public domain.

    Therefore, the titling of the article is valid and sound, and if it irks you that much, please put in the time and effort to layout the board, and re-release it.

  9. @Kevin: Interesting story there. Another reason I really like SeeedStudio is that they accept raw Eagle files. It makes sense because it’s tricky for the designer to produce the exact Gerber output files required, but relatively easy for the PCB manufacturer since they have everything set up and know how it should all work. SeeedStudio also don’t place any major limits on the PCBs, like having to use certain drill sizes etc.

    I couldn’t have got the Retro Adapter project to where it is without them.

    Anyway, it’s cool that you are taking the time to learn. To be honest I studied electronics at college but never really got it. After finishing university I became interested in it again and somehow it all just fell in to place.

    I have to say, you picked a tricky project to learn on, and using a PIC probably didn’t help much. They are not a nice architecture, and as you have discovered at 4 clock cycles per instruction they are pretty slow too.

    The AVR is so fast I can do things like greyscales on it, which I am experimenting with. Anti-aliased fonts on an LED matrix.

    I am still deciding what to do with my clock. I will release all the schematics and code under the GPL. I’m not sure if I will do a PCB because it would make more sense to re-design using an LED matrix controller IC. On the other hand, that would be a less interesting design and less fun to build. We shall see I guess.

  10. @trinidad2099 – it might be better to say the project has “open source software”? the hardware is not “open source” as per the maker’s site. based on what your saying, it’s a clock that has open source software and firmware. but the entire project, which including hardware isn’t “open source”.

    it’s like saying my computer is “open source” just because i have linux on it.

    just be clear, i think this is cool and it’s great that parts of *any* project are open. yay for that.

    there is “open source software” and there is “open source hardware” – this post just says “open source” and talks about the clock. that’s why i think it should be made clear that commercial use is not allowed as per the maker.

    you can google for my open source hardware guide, each year i spend about 2 weeks cataloging all the open source hardware projects – and each year people get “irked” when projects that say “open source” are not always included.

    each week i get asked a lot questions on what “open source” hardware is, it’s still a work in progress and licensing isn’t always clear.

    a lot of people will see “open source” and since it’s not clear what it is here, they may want to make a version of their own and sell it, and that’s exactly what the maker does not seem to want at this time.

    a good example is the arduino, you can make a clone if you want and sell it, commercial use is allowed, the hardware and software are “open source” – software and the gerbers are available. the only caveat is that you can’t call your clone “arduino”. at least not without working with

    does this make sense now?

  11. oh – kevin (the maker of the is project) is posting here – @trinidad2099. maybe you can ask him the specifics of the licensing he plans to use, if commercial use will allowed, if it’s open-hardware, non-commercial, etc etc.

    i didn’t see his previous posts otherwise i would have just asked that too.

  12. @Agent420, those are the kinds of display I mentioned. I did consider buying one but decided to make everything myself as I wanted to gain experience working with that kind of circuit.

    I think the next one will use one of the off-the-shelf displays, or at least a display controller IC. It’s the sort of thing you do once, then realise it’s a giant pain the arse and stick to the sensible options :)

    One advantage my display has over Sure Electronics’ one is that I can do per-pixel brightness. Thanks to having a very high refresh rate, I have tested 4 levels and I think it could go to 16, not that there would be much point in that.

    Another thing I find interesting is the possibility of non-multiplexed displays. You find them on some trains and buses. Multiplexing them, even at 100Hz, would result in the display tearing as the vehicle moves past stationary passengers. My guess is that they are either not multiplexed at all, or scanned at a very high refresh rate, or maybe with multiple multiplex sub-displays (say every 8 rows multiplexed).

    Oh, and I am looking for a white LED matrix. They seem to be impossible to find.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.