Page 11 of 11

Re: New beta release "DMD2" Library

Posted: Thu Jun 21, 2018 3:36 pm
by h4rm0n1c

I've been appointed as the maintainer for the DMD2 Library on Github.

I was responsible for the addition of esp8266 support about 2-3 years back.

Your ideas and improvements would be very welcome, I myself noticed the issues with variable width fonts quite a while back but did not know what to do about it.

My first goal is to merge in all changes I have made in the last 2 years (not many, life has kept me very busy until recently...), release as 0.0.4 and hopefully have it available in both the arduino library manager and platformio within the next few days to a week.

I've created a milestone on github for variable width font support. Hopefully we can get this working with all supported platforms (I can test AVR and ESP8266, SAM on the other hand...)

@Brissieboy, would you like me to merge your modifications for font handling after I test it out for myself?


Re: New beta release "DMD2" Library

Posted: Fri Jun 22, 2018 1:30 am
by Brissieboy
Hi h4rm0n1c. and welcome aboard.
I have no problem with you using my mods and am happy to be able to contribute something. But before you do, just make sure you are happy with what I have done and how.
I haven't done much with DMD2 because I started pre-DMD2 with the original DMD and have made quite a few changes to that to suit my own needs. Just too much of a hassle to try to incorporate those into DMD2 when it isn't really necessary.
But great to see that DMD2 will once again get some attention.

Re: New beta release "DMD2" Library

Posted: Sat Jun 23, 2018 10:03 am
by thinnair
Hi everyone,

I'm trying to store a large array of strings in the program memory and retrieve it using avr/pgmspace on an arduino mega (softdmd). I've copied this code across from an arduino uno where it functioned using the stable DMD library.

Could anyone let me know if this is possible with the DMD2 beta library or if there are any workarounds required?


Code: Select all

char buffer[6];
const char s1[] PROGMEM =   "String";
const char s2[] PROGMEM =   "String";
const char s3[] PROGMEM =   "String";
const char s4[] PROGMEM =   "String";
const char s5[] PROGMEM =   "String"; etc

PGM_P const strings[] PROGMEM = {
s1, s2, s3, s4, s5

void loop(void)
 for (int i = 0; i < 5; i = i + 1)
	strcpy_P(buffer, (char*)pgm_read_word(&(strings[i]))); 
        dmd.drawString( 0,  0, buffer, 6 );

Re: New beta release "DMD2" Library

Posted: Mon Jun 25, 2018 1:46 am
by h4rm0n1c
DMD2 has progmem string handling support.
Works just fine.
The beta status is more to do with potential bugs and features that haven't been implemented yet.
You may have to make some changes because I'm pretty sure DMD2's support for progmem is actually better than DMD's IIRC.

Re: New beta release "DMD2" Library

Posted: Mon Jun 25, 2018 6:34 am
by Brissieboy
And I think you may need to increase the size of you buffer to 7 - the length of "string" plus the terminating null.

Re: New beta release "DMD2" Library

Posted: Wed Jun 27, 2018 1:33 pm
by HenTech
Hi guys,

I'm new to DMD2 libraries i was wondering is it possible to use numbers in a bigger size than 7x15.
I'm wanting to make them approx 14x25 using multiple P10 digits. ive developed my own custom font for numerical values only using a bitmap converter. but its using more than 1 byte to draw it causing issues, also using an arduino uno

Regards HenTech

Re: New beta release "DMD2" Library

Posted: Mon Aug 20, 2018 6:37 pm
by plito
H4rm0n1c, Brissieboy. Your library is great. But I still have a problem with this. The scrolling is too slow with more than 2 panels. Is there any posibility to add the DMD library functions " drawMarquee" and "stepMarquee" to your library? They work fine scrolling text in many panels. Unfortunately I don´t have enough knowledge to do it by myself , I´d appreciate you could help me ( and I suppose many people ) adding those functions to the DMD2 library.

Re: New beta release "DMD2" Library

Posted: Mon Aug 20, 2018 10:44 pm
by Brissieboy
Scrolling with multiple displays does not perform very well the way the DMD2 library currently works at the moment. It is a result of the way it works, not the actual scrolling function.
I would suggest you use the original DMD library. It certainly lacks some of the features of the DMD2 library, but it does perform fairly well with what it does and within its limitations. It is driven by interrupts so things like updates and scrolling are not impacted by the number of displays (as long as you don't try to use too many).