The Netduino forums have been replaced by new forums at community.wildernesslabs.co.
This site has been preserved for archival purposes only
and the ability to make new accounts or posts has been turned off.
Maybe I could translate the code to English but you might not need it since it should only illustrate the method I used to control the matrix...
The display I've send to you is a 40x16 Red/Green one. The connection-scheme is inside the package, hope you understand it (It's hand-written ).
Will give you the tracking code later via PM.
Just analyzed my BASCOM-Routine to multiplex the display's: Can't use the most of it
In Bascom it's possible to access each bit of a byte by directly indexing the bit like this:
Dim LEDArray(64) As Byte 'We use every bit of a byte as a pixel, so for a 32x16 Single-Color-Display we need 64 bytes (64 bytes x 8 bits = 512 Pixel)
To get the third pixel I just need to index the third bit directly:
Pixel = LEDArray(x).3
This is the most efficient way to store each pixel in memory with no overhead.
But this is not possible directly in .net, is it? Above method also doesn't support different brightness levels.
I think I need to create some dictionary (is the collections namespace available in MF?) to store a custom object of type 'Pixel' which contains the color and brightness values...
I'm on vacation from saturday for one week so I don't have much time to experiment ;( In the meantime, maybe Stefan got the display and will have time to play with it...
btw. a quick tip for the row-decoding: To do it I just connect a 74HC595 Shift-Register before the display's input and connect the decoder's input to the shift-registers output. The Q7' 'Overflow' - Output of this register then connects to the display's data-input. So in the software one only needs to shift a bit more bits out to set the correct row.
Hope you understand what I mean
In short: For a 32x16 display, disable OE (high), shift 32 Bits of column-data out, shift 8 bits of row data out, latch (strobe) the register content to the output, enable OE (low).
You could also connect the shift-register to the overflow-output of the display, you just need to swap the shifts then.
Another option is to use a binary counter, like a 74HC4040 but then you need additional GPIO's.
Regards
Jan
Hi Shine,
I just got your package, thanks! It's quite a large display actually, I take my first look at it the next weekend and keep you posted! Can't wait to play with it
When I only connect the 5V connections and Gnd connections, leds randomly burn, depending how I hold the display. Can it be just malfunctioning? Nothing else is connected.
Hey Stefan, the display is 100% operational, so Nevyn is right. The shift-register inputs needs to be connected to some defined level or you get some good ol Blinkenlights
btw. I did manage to optimize my bascom-code to be able to drive a 128x64 r/g-Display with nearly realtime update using an ftdi-controller...
Regards
Jan
Stefan, are u still alive? What's up with my display...still workin' on it? Or broke it, hehe?
And @Nevyn: Saw your led-cube on youtube...very impressive. Could you share some code? Have some 4x4x4 RGB-Cube without controller laying around...would be a nice project.
And @Nevyn: Saw your led-cube on youtube...very impressive. Could you share some code? Have some 4x4x4 RGB-Cube without controller laying around...would be a nice project.
All of the code is public domain. You can find it in the Wiki (would give you a link but the forum upgrade means the Wiki link has disappeared for the moment). Or you can find it on Channel9 or my blog and also on Codeplex.
Wow, time is tickin' away...Stefan, is my display still assembled or did you reused the shiftregisters for another project?
Please give me an update. My last success was driving 128x64 RG-display with the netduino. That was in Jan. 13 or so. We moved to another house and all my electronic-hardware is still sleeping in the basement since then