Page 1 of 1

Contributing Updates

Posted: Thu Apr 07, 2016 8:29 am
by nickm37

I used the DMD2 Library on GIT hub as a basis for a timing board. I had a 2H x 3W arrangement of DMDs.

In getting this working I have implemented a couple of new functions and a couple of bug fixes. I have also created some more useful fonts.
I created a git hub account - but can't see how to branch it.

After playing with 6 panels I would not recommend using a 16MHz Ardurino for more than this - the interrupt routine just takes too long.

Added Tahoma font (sized for 32 px high)
Added 7 Seg Numbers (sized for 32 px high and width for 2x6 display timer eg +00:00)

inline int pixelToBitmapIndex(unsigned int x, unsigned int y)
Fixed bug with pixel address lookup when working with six panels ( 2Hx3W ).

In the ISR: - added sei(); instruction. Required when running multiple panels as timer interrupt was missed occasionally when update DMD interrupt was running. if you are wounding why your time duration's are too long - this will fix it.
(This will be less noticable on less displays, but for 6, a minute was approx 50% longer...)

Implemented void DMDFrame::setByte
Implemented void DMDFrame::drawXLine (Optimizes drawing lines across display by updating bytes rather than each pixel. Note it still uses single pixel updates at each end to a byte boundry)
Optimised void void DMDFrame::drawFilledBox using drawXLine
Optimised void DMDFrame::drawBox using drawXLine

So please advise how I can get my first open source improvements into the main trunk :-)

P.s. more documentation would be nice... for more panels it would be good to be able to clock out multiple rows of panels DMDs at once.

Re: Contributing Updates

Posted: Wed Apr 13, 2016 6:44 am
by angusgr

Thanks for getting in touch! We'd be very happy to see your contributions.

The process you need to follow on github is called "forking the repository" (to get your own copy) and then "sending a pull request" (from your fork to our fork).

More details can be found here: