We have recently updated the specifications online. Kindly review the page http://mondomatrix.com/info/?page_id=22. There are two separate power supplies to all Mondomatrix expansion boards. One supply that powers the data or ‘board’ power and the other the supplies power to the components. For example, on the LEDMatrix, the board power and LEDs power supplies are different. The RS485 ports have a “+” and “-” next to them – this is for the board power supply.

We will also be providing YouTube videos in the next week or so with instructions that will hopefully clarify all of these points.

thanks for the picture. is it better to splice/solder the T connections along one long wire from the controller to the last expansion board (with shorter wire segments to each intermediate expansion board)? or should i use 5 (x3) lengths of wire (from DD to LED1, from LED1 to LED2, etc)?

i have 5 LEDMatrix boards daisy chained to a DisplayDuino controller and everything powered up appropriately. each board has LEDs only in ports 0-3. the code i am running should turn each board on, one at a time, then turn each board off in the same order. but what it seems to be doing is flashing everything on at once (when the first board is supposed to go on) and then flashing everything off (again, sync’d to board 0).

is there something wrong with the logic here? is there any documentation for the MatrixNet functions?

well I would say that the first thing to do is make sure that the adress switches on the expansion boards are set from 0 to 5 (binary)

the next point is that is is best practice to have 64 values in each of the R – G – B arrays you are sending to the boards however you are only counting up 4 values in your code:
for(i = 0; i < 4; i++) {
RedBrightness[i] = 255;
GreenBrightness[i] = 255;
BlueBrightness[i] = 255;
Serial.print ("i = ");
Serial.println (i);
}

even if a value in the string is 0 it should be sent because the function "myMatrix.changeLEDBoard" changes all of the values at once for a given board.

the next thing I would have a look at is the board you are sending data to. In your code you are sending data to int "j" for both boards. Try to type in the values 0 – 1 – 2 – 3 – or 4 as correlates to the addresses on your board. For example, your code has:

looks great from the picture – the system appears to be wired correctly.

The addresses from 0-4 are as follows (in binary)

0 = off, off, off, off, off, off, off, off(from left to right – oriented such that the LED ports are on top)1 = off, off, off, off, off, off, off, on(from left to right – oriented such that the LED ports are on top)2 = off, off, off, off, off, off, on, off(from left to right – oriented such that the LED ports are on top)3 = off, off, off, off, off, off, on, on(from left to right – oriented such that the LED ports are on top)4 = off, off, off, off, off, on, off, off(from left to right – oriented such that the LED ports are on top)

Unfortunately we can not support code related items at this time but you are in luck. There is a huge community of Arduino coders out there and there are several blogs, sites and support networks available for you.

Hello, MondoMatrix! I’d like some technical information about the LEDMatrix: how fast can you update it? In more detail:
- At what frequency can you update all the brightness values?
- Once you set the brightness values, are they strobed at some high frequency, or are they really on all the time without flicker?
- Same question, but if you don’t need gray levels or color. Say that you want your LEDs to be either off or at maximum brightness, and send a bunch of 0s and 1s to the LEDMatrix. Are the LEDs that are on really on all the time, or are you strobing?
- Can you combine several LEDMatrix-es, and if so, how does that affect the refresh rate?

Thank you very much. Could you please also reply to my e-mail (mark.wexler —AT— gmail.com)?

Can I use one color LED’s instead of the RGB 4 channel ones? The information is confusing. At the beginning it says that I can use the board for 192 individual LED’s , but later in the information it says that I must use the RGB ones.

You can use either one 4 pin RGB LED or three single color LEDs per port. Be sure to remember that when you use three single color LEDs you must use the common cathode (negative “-”) for each port. I hope this diagram helps.

I have two LEDMatrix boards connected to a Displayduino. I noticed that if I address all 128 LEDs together using two calls to changeLEDBoard, the command takes 20 milliseconds or so to complete, but I only have to wait about 200 microseconds before I can send another change command.

But for my application, usually no more than 20 of the LEDs need to change at each update. So I tried using changeLED, but I found that, although the command returns much more quickly, I need to wait 5 milliseconds after this command is sent before it can reliably receive another one. If I send them any faster than this, then some of the LEDs don’t actually change, the colors get corrupted, all kinds of weird stuff.

So in effect, once I’m updating more than about 6 LEDs at once it becomes faster to update all of them. Why would that be?

The commands are sent out as a package that gives instructions to the daughter boards. The changeLEDBoard is actually only one instruction but it carries with it more information (all of the ports on the board – at once). I would advice that you use changeLEDBoard and simply send the same color (numbers) repeatedly to the LEDs that you want to stay the same and only change the numbers for the LEDs that you want changed on each cycle of the main controller (loop).

So if you wanted to change a set of 20 LEDs then you would make sure that the value for them (in your array) is changed and the values of the other LEDs (that you want to stay the same) are not changed.

You can certainly control these light bars but not with the LEDMatrix. Instead you will need the PowerMatrix.

The PowerMatrix can control devices up to 12v and you can have 32 devices per board. Our distributors are in the process of rolling out the PowerMatrix right now and if you want you can simply contact them and ask them if they have stock.

If you require PowerMatrix help then please let us know by posting on the PowerMatrix Help page.

Are there per-port current limits on the LEDMatrix? Is there a total combined current limit on all the ports? Can you mix and match? For instance three 20 mA LEDs on one port but then three 80 mA LEDs on another? If the 5V source can take the load would it be possible to drive power LEDs with current draws of around 350 mA (even just one or two with the rest being low current LEDs)?

you can have about 25 mA per port.
Total amps for a maxed out board is just over an amp and a half.
You can mix and match yes.
regarding the 350mA per port experiment – I am not sure – no one has tried it – it will heat up the chip(s) significantly for sure.

you might consider the power matrix for more powerful LEDs – it does 12v 500mA per port for 32 ports.

The output ports are constant-current and set to about 20 mA. By changing a small resistor on the board – NOT recommended unless you have prior surface mount soldering experience – this can be changed, however the driver chip is only rated to 80 mA. I would not suggest operating it at that level, however, without adding heatsinks.

It might be possible to use multiple ports in parallel to drive higher-power LEDs, but they would have to be kept at the same brightness at all times, and most importantly, we haven’t tested this so we offer no guarantees.

We use a Molex-type pin and socket interconnection. I think that is the quasi-official name – the part numbers can be found at your local electronics store (or preferred vendor for electronics components).

There are 64 ports for RGB LED’s, but what I can’t figure out from the description is what the possibilities are for using these ports for single color LED’s.

(1): Can I control 192 individual LED’s separately…, or can I control 192 LED’s in groups of 3 as plugged into the ports? Because the code seems to be written especially for RGB LED’s, does that change much when controlling individual LED’s in an effective way.

(2): Since the LEDmatrix and DisplayDuino work with Arduino software, does this also mean it can be controlled by using Processing? So interact with your array of LED’s by using Processing on your computer?

1) You can use the ports for either one RGB LED or each port can control three separate LED’s. The code will support the control of each LED independently. There is a wiring diagram on the LED help page to show how to do this – if you need farther help on this just let us know.

2) Yes you can connect through to the LED’s using Processing – our favorite!

I see the diagram indeed, I should have looked a little longer myself. Anyway, thanks for the quick reply. I’ll just try to find a reseller who isn’t out of stock, and let you know if I bump into any new problems.

Additionally, where can I find the software which is used to operate the displaydunio and the led matrix boards? It’s using GPLV2 software, which has been modified and not distributed. This is in violation of the GPLv2 license.

I have purchased and am testing your boards for a project involving 1000 rgb leds.

A couple of questions:
I believe RS484 only allows 32 devices, correct?

What is the outlook for your future ability to supply boards?

It appears that fading is only accomplished by the continual change of the boards array. To accomplish a fade of a 10×100 array, we’d need to update all 16 boards continually? If this is the case it seems like the speed of our fade is limited by the speed at which we can plow the 1000×4 bytes down the line… which is really a RS485 bandwidth issue? how fast is the RS485 in Displayduino running, and am I accurate?

Actually we are working on updating the firmware code to account for the delays in the RS485 connection. We are a bit behind these days because of some delays during the holidays but we should have it up soon. What it will do is buffer and pre-load the instructions on the expansion board end. This will require a firmware update to your expansion board and we need to get demo videos and instruction up about this – so that will take us a while at our current load.

I’m interesting in if this work has been done. I just purchased 16 LEDMatrix boards from Sparkfun, also for a 1000 LED interactive project. Any details on maximum refresh rate across the RS485 bus would be helpful.

Also, any guidance on the gauge of leads needed for the LEDs? Each LED will be at most 10 feet away from the LEDMatrix.

Finally, I believe I was able to source a Displayduino from Australia (everyone else appears to be sold out), but if that falls through, then it may be necessary to drive these through an RS485 interface on another Arduino clone. Have you folks considered offering more details on how we might accomplish this or updated timeframes and availability for Displayduinos themselves?

Would it be possible to communicate with the ledmatrix boards with another rs485 device besides the displayduino? If so how and if not why? Any help would be appreciated. I am just trying to figure out how this rs485 comm system works, especially with the ledmatrix boards.
Thanks

I think it would be possible yes. Of course we have already build in the hardware profile to the relatively cheap Displayduino boards. Can you be specific (technically) as to what you want to accomplish and I can get our team to look at it?

Well, I am trying to control the LEDs on the matrix boards individually via live video feed broken down to 8×10 pixels and separated into rgb values using the program max/msp. I tried to use maxuino to communicate to the displayduino but didn’t know how to locate the ledmatrix board or how I could talk to them. I then tried to use an arduino UNO which works with maxuino, and an I/O shield- http://www.dfrobot.com/wiki/index.php?title=Arduino_I/O_Expansion_Shield_(SKU:_DFR0014)
that can input and output rs485 but didn’t know if it would work connected to the ledmatrix. Ideally I would like to be able to have values for the matrix board, led, and red green blue in max and send these through rs485 to the boards.

sorry to keep posting things but I have run into some questions with the components on my two LEDmatrix boards.
1. there seems to be some excess solder on one of the components near the address dip selector. this doesn’t seem normal and I’m wondering if this will cause harm to the rest of the components on the board
[IMG]http://img.photobucket.com/albums/v355/tomkogut/ledboard01.jpg[/IMG]
2. the address dip selectors on both of my boards are differently arranged. one faces one way and has 1-8 on the switch itself and the other one faces the opposite way and is listed on the pcb itself 0-7. which one is correct?
[IMG]http://img.photobucket.com/albums/v355/tomkogut/ledboard02.jpg[/IMG]

This would likely require a firmware update in the LED matrix side and a unique software patch on the Arduino side. Please do post any suggestions you have or things you feel would contribute to the project. You can send video feed to the LEDMatrix using Quarts Composer (on Mac) and a bit of code that one of the engineers setup. If you are interested I can try to get it – please e-mail us at: mondomatrix@mondomatrix.com.

Do libraries exist to be able to change just the red, green, or blue properties of an LED? I’m poking around in the matrixnet.cpp and it looks complicated to inject this task =] love to hear your input — cheers, mike

I just puchased 4 LEDMatrix boards from SparkFun. Actually I bought 3 LEDMatrix and 1 ServoMatrix but they sent me the older v1.0 LEDMatrix instead of the ServoMatrix. But I digress.

I have evaluated the v1.0 LEDMatrix board, and verified operation using several RGB LEDs and the slowFill sample code. However, I discovered that the LEDs briefly flash other colors. For example, an LED set to blue, will show flickering red and green elements while the other LEDs on the board are being updated This is unacceptable for my application. Can you tell me if this is expected behavior, i.e., a limitation of the hardware/firmware, or should I presume the board is defective?

The 3 v1.2 LEDMatrix boards failed to verify, using the exact same setup (dropped into the v1.0 wiring). Before I open an RMA with SparkFun, I would like to verify they are programmed correctly. Where can I download the LEDMatrix firmware?

Thanks so much for providing support on this. As we discovered, the logic power supply was just too small. It was bottoming out on the current peaks that occurred when issuing the changeLED commands. Changing the power supply from 9V@350mA to 12V@1A resolved all the issues. What was particularly confusing was that the v1.0 boards worked, but the v1.2 boards did not respond at all.

May I suggest that you update the web pages to indicate max current draw for the logic supply. This would allow users to properly size their logic power supply to accommodate their particular combination of boards and hopefully avoid problems.

For example how much time would it take to change the color of a (1 or 64) RGB LEDs?
I was thinking of using one of these boards for a POV globe http://code.google.com/p/povglobe/ style project but i need to make sure that it can switch the LEDs fast enough to keep up with the spinning ball.

I was hoping to use 120 LEDs or two boards. Will there be an additional slow down when i attached the 2nd board, and if so how much?

I have a DisplayDuino644 and 4 LEDMatrix boards for sale if anyone is trying to get their hands on these! jeffrey.nappi _at_ gmail.com $80 each… I will also include connectors for all of the LEDMatrix boards!

Answer 1. It looks fine, a solder bleed, you can probably lift it off with some solder wick but it looks like it just misses the VIA so it will not affect the board. Have you noticed any adverse affects when you use the board?

Answer 2. They are both right, it does not matter what way the switch is installed – only that the switch on means 1 and off means 0 in the binary address.

Oh my god, I found my problem. My forloop condition should have been less than 255 not less than 256 as “i” is an 8 bit value, when it reached 255 and “i” get’s incremented for the last time it wraps round to 0, so the first loop never finishes. therefore the second loop couldn’t run.

I need sleep, good night. :/

Morgan, I’m wondering why you used “unsigned char” in the MatrixNet library instead of “uint8_t”?