DMD Build quality

The Dot Matrix Display (DMD) is a 32x16 array of high-brightness LEDs for visually striking effects. [Product Page]
Post Reply
dudleydo
Posts: 13
Joined: Fri Dec 30, 2011 4:57 am

DMD Build quality

Post by dudleydo » Tue Apr 10, 2012 6:38 am

Just got my DMD from Jaycar.

It wasn't plug in and fire it up as described. I had to change the code to suit Arduino 1.0 - which was surprising considering that was/is the latest version of the IDE, plus I am not about to backport it as all the other code I have written works fine under Arduino 1.0 IDE. After that it seems to run quite ok.

The libraries available for the DMD - the drawMarquee function for example - does not seem to handle strings very well, unlike LCD and Serial print functions. I was trying to have a fixed string appended by output from a FT HUMID sensor, and have the complete string passed to the drawMarquee with the length so it scrolls properly. The DHT functions have been removed for clarity for now.

Code: Select all

/*--------------------------------------------------------------------------------------
  Includes
--------------------------------------------------------------------------------------*/
#include <SPI.h>        //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h>        //
#include <TimerOne.h>   //
#include "SystemFont5x7.h"
#include "Arial_black_16.h"

//Fire up the DMD library as dmd
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
#define DISPLAYS_BPP 1
#define WHITE 0xFF
#define BLACK 0

DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN, DISPLAYS_BPP);

/*--------------------------------------------------------------------------------------
  Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning, this gets
  called at the period set in Timer1.initialize();
--------------------------------------------------------------------------------------*/
void ScanDMD()
{ 
  dmd.scanDisplayBySPI();
}

/*--------------------------------------------------------------------------------------
  setup
  Called by the Arduino architecture before the main loop begins
--------------------------------------------------------------------------------------*/
void setup(void)
{

   //initialize TimerOne's interrupt/CPU usage used to scan and refresh the display
   Timer1.initialize( 5000/DISPLAYS_BPP );           //period in microseconds to call ScanDMD. Anything longer than 5000 (5ms) and you can see flicker.
   Timer1.attachInterrupt( ScanDMD );   //attach the Timer1 interrupt to ScanDMD which goes to dmd.scanDisplayBySPI()

   //clear/init the DMD pixels held in RAM
   dmd.clearScreen( BLACK );   //true is normal (all pixels off), false is negative (all pixels on)

}

/*--------------------------------------------------------------------------------------
  loop
  Arduino architecture main loop
--------------------------------------------------------------------------------------*/
void loop(void)
{
   // 10 x 14 font clock, including demo of OR and NOR modes for pixels so that the flashing colon can be overlayed
   // half the pixels on
   dmd.drawTestPattern( PATTERN_ALT_0 );
   delay( 1000 );

   // the other half on
   dmd.drawTestPattern( PATTERN_ALT_1 );
   delay( 1000 );


   dmd.clearScreen( BLACK );
   dmd.selectFont(Arial_Black_16);

//Set String
char* txt2Disp =  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Add DHT output
//
//
//Length of final string
//
//
   dmd.drawMarquee(txt2Disp,26,(32*DISPLAYS_ACROSS)-1,0,WHITE,BLACK);
   long start=millis();
   long timer=start;
   boolean ret=false;
   while(!ret){
     if ((timer+35) < millis()) {  // Change +35 for delay
       ret=dmd.stepMarquee(-1,0);
       timer=millis();
     }
   }

   // stripe chaser
   for( b = 0 ; b < 20 ; b++ )
   {
      dmd.drawTestPattern( (b&1)+PATTERN_STRIPE_0 );
      delay( 200 );      
   }
   delay( 200 );      
   
}
Anyway, back to the unit itself. I was looking how to mount the display is some sort of protective cover, which I could use to mount or hang the completed unit. I'd noticed a couple of the small black screws holding the black plastic shroud to the PCB had come loose. I removed them all to check why that was so, and to investigate any other attachment solutions presented by the PCB itself.

I found that ALL of the small black screw hole posts has cracked, some had fallen off completely. I gave the remaining ones a light touch with my small plastic probe, and they fell away too.

I am now left with a display shroud that is not fixed to the PCB at all :shock:

User avatar
jonoxer
Freetronics Staff
Freetronics Staff
Posts: 298
Joined: Sat Oct 15, 2011 11:31 am
Location: Melbourne, Australia
Contact:

Re: DMD Build quality

Post by jonoxer » Tue Apr 10, 2012 12:34 pm

Hi @dudleydo, I'm really sorry the DMD hasn't lived up to your expectations. We have had some problems with getting the screw torque correct in production, and the plastic used on more recent models has also been changed to be a little less brittle which will help reduce that problem.

If you like we can replace that unit under warranty: please email support@freetronics.com with your details and we'll sort it out.
--
Jon

baldgeek
Posts: 9
Joined: Tue Apr 03, 2012 7:29 pm

Re: DMD Build quality

Post by baldgeek » Sun Apr 15, 2012 5:39 pm

Hi @dudleydo,

I faced much the same issues here, so attached is what I did to get around using the bolt holes, I bought some wood that had a nice wide channel along one side, using hot glue filled in the gaps and held the DMD really well.

Image

Image

So far it been working really well. I have it mounted on the wall of my workshop/studio and it looks pretty good with the wood and black box (which holds the EtherTen and AT psu).

Would love to see how others have mounted their displays.

Cheers,

Ben.

User avatar
jonoxer
Freetronics Staff
Freetronics Staff
Posts: 298
Joined: Sat Oct 15, 2011 11:31 am
Location: Melbourne, Australia
Contact:

Re: DMD Build quality

Post by jonoxer » Mon Apr 16, 2012 11:40 am

Hey Ben, nice work!

What software are you using to drive the display? You mentioned an EtherTen: have you combined networking with the DMD driver?
--
Jon

baldgeek
Posts: 9
Joined: Tue Apr 03, 2012 7:29 pm

Re: DMD Build quality

Post by baldgeek » Mon May 28, 2012 10:38 pm

For those that follow.....

Yes, I am using UDP to dmd code that others on this forum got working for me.

You can read about it and get the code from the forum thread;

viewtopic.php?f=26&t=661

Cheers,

Ben.

User avatar
Simon
Posts: 25
Joined: Wed May 02, 2012 2:40 am

Re: DMD Build quality

Post by Simon » Tue May 29, 2012 12:04 am

jonoxer wrote:Hey Ben, nice work!

What software are you using to drive the display? You mentioned an EtherTen: have you combined networking with the DMD driver?
--
Jon
Jon,

You ask this as if there's a known issue here.. could you please elaborate? :)

For the record, I've built a scoreboard project using two DMD displays which gets its data via a TCP connection and it's working well. I did have to disable the interrupt redrawing the DMD while large ethernet transfers were underway, but aside from that it works very well.

User avatar
jonoxer
Freetronics Staff
Freetronics Staff
Posts: 298
Joined: Sat Oct 15, 2011 11:31 am
Location: Melbourne, Australia
Contact:

Re: DMD Build quality

Post by jonoxer » Tue Jun 05, 2012 10:56 pm

Sorry about the slow reply!
You ask this as if there's a known issue here.. could you please elaborate?
Only that I hadn't yet seen anyone do a network-connected DMD yet, but it seemed like a natural fit so I wanted to know more about it. A scoreboard project sounds like exactly the sort of thing a DMD would be good for! Have you put up details of the project anywhere?
--
Jon

User avatar
Simon
Posts: 25
Joined: Wed May 02, 2012 2:40 am

Re: DMD Build quality

Post by Simon » Wed Jun 06, 2012 1:43 am

jonoxer wrote: A scoreboard project sounds like exactly the sort of thing a DMD would be good for! Have you put up details of the project anywhere?
--
Jon
I did put a thread up here [edit: viewtopic.php?f=6&t=420] , but sans photos or video or any other real detail :) because I haven't taken any yet :lol:

I'll try and get some photos and video taken this Sunday at the next meet ;)

Post Reply