I've tried the code and something needs to be tweaked since the bitmap I substituted in didn't appear to display correctly on either of the display orientations I tried.
I'm super busy today but I'll try to get some pictures or video of how the displays look posted within the next day or two.
The double buffer looks like it works just like I was hoping.
PM me your address and I'll loan you set of arrays to experiment with.
See if you like this better. It takes about 4 ms to load the 32 x 32 frame buffer. Note that it gets a copy into cog memory and immediately "releases" the calling parent. This, of course, allows for more overlap. The clock rate when actually transmitting data is just about 1 MHz. I didn't push it very hard. tc
Thank goodness for barrel shifters.
Here is a quick video. I load the frame buffer with Frame0[symbol] := (symbol + 1) <- symbol
Then I start a loop calling my PASM driver to left rotate the frame buffer (in hub memory) and then display the frame buffer.
RotLeft.spin has the rotate command and brightness command mechanized.
Wow, The scroll was really fast! This is super cool!
I just received a bunch of LED array modules in the mail today. Sorry Gadgetman, I stole your idea of making a 12 x 8 array display.
Does anyone want to me order another set of ten boards? Several of you expressed interest in the boards but then didn't follow up with a PM.
After discussing the MAX7219 anode/cathode situation in another thread with Beau and kwinn, they helped me to see the MAX7219 is being used properly after all.
If any of you other than erco need a board, I'll need to order some more. I'll pay for the ten boards and you all could just pay me for the ones you want.
Assembling multiple boards together made me realize I want to change the layout a bit for the next order. I'll probably order another set of ten boards so speak up if you want one or more. If there's enough interest, I'll order more than ten boards.
@Tom, thanks again for the fast driver! You PASM driver will make large arrays much more interesting.
I'll try to post a video of my previous driver attempting scroll a large display in the next day or two. I'll also try to merge your driver with the code I have to make moving text and bitmaps easier.
As I previously mentioned, I have added the ability to use the ROM font to my latest version of the code. I think the ROM font will look really good being scrolled with your driver.
Here is a "final" version of the PASM driver. I removed a bunch of delays from the serializer. Data setup = clock hi = 125 nsec. Clock freq = 2 MHz.
It does a rotate in 14 usec, refresh in 2.2 msec, set brightness in 140 usec.
I also squoze out one instruction where I scale to put into the load register command.
I left a scope sync on I/O 4 so beware.
Now, if I may make a suggestion about layout changes (please pardon me if I'm pointing out the obvious). The way modules are oriented now, the code has to pick one bit out of each of eight frame buffer scan lines to form each load register command. That means looking at each long of the frame buffer 32 times to refresh the screen. You can see that beginning at SLLoop in the program. I pre-fetch the entire frame buffer into cog memory which saves many many hub accesses, but I'm doubting that is doable for your fancy new 24x8 array (384 longs plus code won't fit).
If the matrixes were rotated 90 degrees (either way but I THINK clockwise would be best) all the bits in any given load command would come from a common long in the frame buffer. Now I know you could just physically rotate the entire 4X4 array, but that wouldn't work the way you likely want in a 24x8 array.
I apologize if the above is either obvious and redundant or unintelligible. tc
PCBs for the small arrays. I'll solder up a few and see if they work.
I'm tempted to directly solder the arrays to the boards and forgo the usually headers. It would make the final arrays smaller and cheaper. I'll probably try it both with and without headers.
Have you the eagle bord file ? I need ten bord and i don't know how to make it.
thanks in advance if you post your file.
I designed these boards with DipTrace not Eagle. The Rev. A and Rev. B boards shown in post #127 are not a good design. As Gadgetman pointed out, having the MAX7219 chip on the same side of the board as the LEDs caused a heat problem. The boards shown in post 102 are a better design.
Which PCB fab house do you want to use. You certainly don't need an Eagle file to have the boards made. The gerber files should work fine.
I've debated posting the gerber files or not but I think I probably will since while this design was a bit of a challenge to get all the traces where they needed to go, I don't think the boards would be hard to replicate by anyone one with some PCB design experience.
I've been meaning to update the design a bit. While I update the design, I could export a set of gerber files for a single array PCB or a line of arrays.
Do you have some configuration you would like?
If you really want the array on the same side of the PCB as the MAX7219 chip, I sure I could fine the gerber files I used to have the boards above produced.
Let me know which sort of board you'd like the gerber files.
i need the gerber files for the small pcb revB. or two line of five 788BS.
thanks in advance.
As I mentioned earlier, I don't think the Rev. B boards are a good design since the chips are on the same side of the board as the arrays. I'll find the gerbers for the Rev. B board and post them but let me know if you also want gerbers for PCBs with the MAX7219 chips on the back of the PCB. I won't promise to design a 5 x 2 board but I probably will (in a day or so).
Here are the Rev. B gerber files I submitted to OSH Park to have the small PCBs made. With the MAX7219 chip on the top of the board with the LED array, heat can quickly become an issue.
I'll try to edit the version with the chip on the back of the board so you can either use to produce single array boards or 5 x 2 array boards.
Edit(3/11/15): There may be a more recent version of this design in my GitHub account
Here's my latest version of the PCB. I moved the clock trace down below the chip which let me increase the trace for the 5V line which will need to travel across several arrays. The 5V line had been 20mil and now it's 30mil.
I also increased the size of the smt passives from 0603 to 0805. 0603 parts can still be used if desired.
The yellow colored design is the top of the board.
I welcome any criticism any of you can find to the design of the board. I know using vias inside pads isn't desired but there just isn't a way (that I know of) to fit all these traces and vias on this board without placing vias inside of the pads.
One thing I noticed in this revision is the MAX7219's footprint isn't centered. You can see the pads of the chip are slightly closer to the header on the right side of the board than they are to the header on the left side of the board. Having populated many of these boards, I know the off center footprint doesn't present a problem. When I attempted to move the footprint to the center of the board, the number of changes such a move would require to the layout caused me to abandon the effort of centering the chip.
I was able to keep the area outside of the headers free from traces. This should allow me to add a return data line and room to cut the arrays apart without damaging the circuit.
The small ground pours on the top layer next to the ground pins kind of bug me. I'm not sure if these small pour areas should be removed or not. If any of you have suggestions on how to improve the layout please let me know.
Forum regulars could probably talk me into laying out some other number of arrays but I'll want to charge newcomers for my time before making any more permutations of the layout.
I'll likely make another 4x4 layout and post the gerber files.
I once tried a 5x5 layout but Diptrace told me I was trying to place too many pins for my license (I have a low level Pro version).
Gadgetman, erco, Tom, Gareth and any other forum regular could request a special layout if any of you desire one.
I'll likely have some more 4x4 array boards made and offer them for sale though anyone will be able to have them made using the gerbers.
Edit(3/11/15): There may be a more recent version of this design in my GitHub account.
I just ordered this 8x1 RGB array daughterboard. Sure looks like $3 of PWM fun. It might plug directly into a Stamp HW board or BoE. Anybody play with one of these yet?
IIRC, I recently ordered one of the RGB arrays so this will help. Thanks erco, but shouldn't you be job hunting? It's about time for the twins to be starting school isn't it? School clothes and supplies are not cheap. Remember when we went to school and our parents did not have to buy us anything until we started Jr. High School. How I miss those days!!! Nowadays Grade Schoolers almost need a laptop just to start!!!
I was recently looking through some of my older videos and photos and I found several LED related items I hadn't posted. I added a couple videos to my RGB LED array project. I also found this photo of these inexpensive LED arrays.
I know I had the Parallax font displayed on these arrays but my Spin driver was too slow to scroll the large font. One of these days I'll get around to incorporating Tom's PASM driver into my projects. For now I thought I'd share my 32x32 Propeller beanie.
I had someone ask about these arrays in an email. I couldn't find the Gerber files of the 4x4 array (as shown in my last post) so I'm attaching the zipped Gerber files here.
I'm pretty sure the board, seen in the photo in my last post (of this thread), was made using the attached Gerber files.
If anyone uses these Gerbers to have PCBs made, I hope they send me a link to a video of picture of the array in use.
If anyone uses this design to try to make money, good luck. I'd hate to try to compete with China but anyone is welcome to use my design to try.
I wrote a smokin' hot PASM driver for this board. You pass the address of a 32x32 array and it loads it onto the board is just over 2 mSec. Also will left-shift the array (in place) (for scrolling). Yours for the asking.
But unless you really want the 4x4 aspect ratio, you'll be hard pressed to build something cheaper than you can buy. Here is an example.
Comments
I've tried the code and something needs to be tweaked since the bitmap I substituted in didn't appear to display correctly on either of the display orientations I tried.
I'm super busy today but I'll try to get some pictures or video of how the displays look posted within the next day or two.
The double buffer looks like it works just like I was hoping.
PM me your address and I'll loan you set of arrays to experiment with.
Thank goodness for barrel shifters.
Here is a quick video. I load the frame buffer with Frame0[symbol] := (symbol + 1) <- symbol
Then I start a loop calling my PASM driver to left rotate the frame buffer (in hub memory) and then display the frame buffer.
RotLeft.spin has the rotate command and brightness command mechanized.
https://www.youtube.com/watch?v=3RfoKPd238w&feature=youtu.be
I hope to be able to test this out in the next day or so. I think 4ms for 16 arrays sounds great.
I don't suppose you have any video of the array in action?
I just received a bunch of LED array modules in the mail today. Sorry Gadgetman, I stole your idea of making a 12 x 8 array display.
Does anyone want to me order another set of ten boards? Several of you expressed interest in the boards but then didn't follow up with a PM.
After discussing the MAX7219 anode/cathode situation in another thread with Beau and kwinn, they helped me to see the MAX7219 is being used properly after all.
If any of you other than erco need a board, I'll need to order some more. I'll pay for the ten boards and you all could just pay me for the ones you want.
Assembling multiple boards together made me realize I want to change the layout a bit for the next order. I'll probably order another set of ten boards so speak up if you want one or more. If there's enough interest, I'll order more than ten boards.
@Tom, thanks again for the fast driver! You PASM driver will make large arrays much more interesting.
I'll try to post a video of my previous driver attempting scroll a large display in the next day or two. I'll also try to merge your driver with the code I have to make moving text and bitmaps easier.
As I previously mentioned, I have added the ability to use the ROM font to my latest version of the code. I think the ROM font will look really good being scrolled with your driver.
It does a rotate in 14 usec, refresh in 2.2 msec, set brightness in 140 usec.
I also squoze out one instruction where I scale to put into the load register command.
I left a scope sync on I/O 4 so beware.
Now, if I may make a suggestion about layout changes (please pardon me if I'm pointing out the obvious). The way modules are oriented now, the code has to pick one bit out of each of eight frame buffer scan lines to form each load register command. That means looking at each long of the frame buffer 32 times to refresh the screen. You can see that beginning at SLLoop in the program. I pre-fetch the entire frame buffer into cog memory which saves many many hub accesses, but I'm doubting that is doable for your fancy new 24x8 array (384 longs plus code won't fit).
If the matrixes were rotated 90 degrees (either way but I THINK clockwise would be best) all the bits in any given load command would come from a common long in the frame buffer. Now I know you could just physically rotate the entire 4X4 array, but that wouldn't work the way you likely want in a 24x8 array.
I apologize if the above is either obvious and redundant or unintelligible. tc
thanks in advance if you post your file.
I designed these boards with DipTrace not Eagle. The Rev. A and Rev. B boards shown in post #127 are not a good design. As Gadgetman pointed out, having the MAX7219 chip on the same side of the board as the LEDs caused a heat problem. The boards shown in post 102 are a better design.
Which PCB fab house do you want to use. You certainly don't need an Eagle file to have the boards made. The gerber files should work fine.
I've debated posting the gerber files or not but I think I probably will since while this design was a bit of a challenge to get all the traces where they needed to go, I don't think the boards would be hard to replicate by anyone one with some PCB design experience.
I've been meaning to update the design a bit. While I update the design, I could export a set of gerber files for a single array PCB or a line of arrays.
Do you have some configuration you would like?
If you really want the array on the same side of the PCB as the MAX7219 chip, I sure I could fine the gerber files I used to have the boards above produced.
Let me know which sort of board you'd like the gerber files.
thanks in advance.
As I mentioned earlier, I don't think the Rev. B boards are a good design since the chips are on the same side of the board as the arrays. I'll find the gerbers for the Rev. B board and post them but let me know if you also want gerbers for PCBs with the MAX7219 chips on the back of the PCB. I won't promise to design a 5 x 2 board but I probably will (in a day or so).
I'll try to edit the version with the chip on the back of the board so you can either use to produce single array boards or 5 x 2 array boards.
Edit(3/11/15): There may be a more recent version of this design in my GitHub account
I also increased the size of the smt passives from 0603 to 0805. 0603 parts can still be used if desired.
The yellow colored design is the top of the board.
I welcome any criticism any of you can find to the design of the board. I know using vias inside pads isn't desired but there just isn't a way (that I know of) to fit all these traces and vias on this board without placing vias inside of the pads.
One thing I noticed in this revision is the MAX7219's footprint isn't centered. You can see the pads of the chip are slightly closer to the header on the right side of the board than they are to the header on the left side of the board. Having populated many of these boards, I know the off center footprint doesn't present a problem. When I attempted to move the footprint to the center of the board, the number of changes such a move would require to the layout caused me to abandon the effort of centering the chip.
I was able to keep the area outside of the headers free from traces. This should allow me to add a return data line and room to cut the arrays apart without damaging the circuit.
The small ground pours on the top layer next to the ground pins kind of bug me. I'm not sure if these small pour areas should be removed or not. If any of you have suggestions on how to improve the layout please let me know.
I'm attaching the zipped gerbers.
As I mentioned earlier, there have been a few changes to the design and this revision has not yet been tested.
Edit(3/11/15): There may be a more recent version of this design in my GitHub account.
You're a one-man design/engineer/hardware/software/prototype/board level/design/test/optimize powerhouse! You're good, you...
Now knock it off, you're making me feel like a slug.
Why two square pads for the LED pins? They aren't reversible.
Forum regulars could probably talk me into laying out some other number of arrays but I'll want to charge newcomers for my time before making any more permutations of the layout.
I'll likely make another 4x4 layout and post the gerber files.
I once tried a 5x5 layout but Diptrace told me I was trying to place too many pins for my license (I have a low level Pro version).
Gadgetman, erco, Tom, Gareth and any other forum regular could request a special layout if any of you desire one.
I'll likely have some more 4x4 array boards made and offer them for sale though anyone will be able to have them made using the gerbers.
Edit(3/11/15): There may be a more recent version of this design in my GitHub account.
Because I was lazy and used a footprint for a 1x8 header. Since you noticed, I'll change it. Please let me know if you see any other issue.
I actually do get paying work but it's never quite as much fun as doing my own projects.
I've decided I'm not going to try to compete in the LED array market. This stuff is for fun.
Darn it. Which pin is pin 1?
I'll change the layout once I figure this out.
Usually the one on the left side with the P/N.
Now that you mention it, I'm pretty sure I've seen it done that way before.
Thanks,
http://www.ebay.com/itm/400733245391
Btw, what's the "Water" in their description? I don't see any drop of it?
Worth a try for $3.
Maybe they have a "Heavy Water" version too?
I know I had the Parallax font displayed on these arrays but my Spin driver was too slow to scroll the large font. One of these days I'll get around to incorporating Tom's PASM driver into my projects. For now I thought I'd share my 32x32 Propeller beanie.
I'm pretty sure the board, seen in the photo in my last post (of this thread), was made using the attached Gerber files.
If anyone uses these Gerbers to have PCBs made, I hope they send me a link to a video of picture of the array in use.
If anyone uses this design to try to make money, good luck. I'd hate to try to compete with China but anyone is welcome to use my design to try.
But unless you really want the 4x4 aspect ratio, you'll be hard pressed to build something cheaper than you can buy. Here is an example.