Shop OBEX P1 Docs P2 Docs Learn Events
Cheap 8x8 LED Displays - Page 4 — Parallax Forums

Cheap 8x8 LED Displays

1246

Comments

  • ercoerco Posts: 20,254
    edited 2014-01-20 22:27
    Jeepers, looking back at post #1, Duane took this 8x8 thing much further than I ever imagined. Well done, Pal!

    I like to keep things simple. Besides Duane's fancy scrolling characters, these cheap arrays could be (drumroll, please) just dumb light panels. I was surfing around another forum and there was a whole discussion on making LED brakelights for cars & motorcycles. You could just hardwire these arrays up with the appropriate resistors to run them off of 12V, say for instance to replace incandescent bulbs in a third brakelight... not rocket science, but some people are doing it...

    http://180sx.locost7.info/led_brake.php
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-01-21 01:00
    I like the 4x4 much better than a 5x5 because it makes for a more organised memory map.

    .1" headers... Not a problem for me as I have a Dupont .1" crimping tool on order, together With both male and female connectors...
    (Been looking for an excuse to buy one for a while, anyway... )
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-22 22:00
    I am double checking things before I place an order on the 16 array boards. One thing that concerned me was the possibility I had the arrays oriented upside down.

    So far so good but I have run across a couple of interesting things.

    Ebay and ICStation Arrays are Upside Down from Each Other.

    For one the ICStation arrays are upside down from the ebay DIP arrays. I'm pretty sure the edge of the LED with the printing ("1088AS") is the edge with pin #1. With the pins pointing down and the printed edge closest to you, pin #1 is the pin on the far left of the near pins.

    The ebay PCB with a DIP MAX7219 chip has pin #1 in the bottom left corner of the PCB with the Din header and DIP chip along the left edge of the board.

    The ICStation PCB has pin #1 in the top right of the board with the Din header along the left edge.

    While the arrays are upside down from each other, they actually are controlled the same way with a microcontroller. The schematics of the two boards reverse the pin order on the MAX7219 so the two different orientations of the arrays behave the same way when controlling the MAX7219 chip.

    With both arrays, the MSB in register $01 ("Digit 0" in the datasheet) controls the LED in the top left corner of the array when the PCB are oriented with the Din header on the left. Keep in mind while the LED position is consistent with regards to the PCBs, the LED lit on the two boards are in different positions with regards to pin #1 of the array.

    I supposed the upside down array isn't a big deal but it would have been nice to know as I tried to figure out which pins controlled which LEDs. I think this is one of my reasons for my frequent statements of confusion as I attempted to write a driver for the MAX7219.

    To add to the confusion, the very small (0.8") arrays have their anodes and cathodes reversed from the arrays used on the two PCBs just discussed.

    If you use the text on the side of the array as a guide to find pin #1, then pin #1 of the small arrays is in the lower left corner of the PCBs I made.

    I followed pin order used by the ebay PCB (with DIP chip) and have Vcc at the top of the Din header. The ICStation PCB reverses the order of pins on their header.

    Upside Down Even Rows?

    Another thing which ICStation does which I'm hoping to get comment about is the way link multiple rows of arrays together.

    Here's a diagram from ICStation's documentation.

    attachment.php?attachmentid=106393&d=1390454904

    As you can see, they have the second row's Din header on the right edge rather than the left. I can see how this makes the wiring a bit easier but I figured I'd have the Din header stay on the left edge for every row.

    I suppose it wouldn't be too hard to have the software reverse the order of scrolling for the second row but I'm inclined to keep the Din header on the left unless someone knows of a good reason to use ICStation's method.

    Swapped Columns and Rows on Small Arrays.

    Because of the reversed anodes and cathodes on the small arrays, the MSB of register Digit 0 is the bottom left LED of the array. The LSB of Digit 0 is the top left LED. This difference requires a change in the software to use the small arrays.

    It's not possible to get around the swapped columns and rows of the small arrays, but it would be possible to change the order of the columns and/or rows. As it is now, column #0 is along the bottom of the array and row #0 is the left edge of the array. IMO, this arrangement will be easier to deal with than having column #0 across the top of the array. Any changes to the columns and rows would require a major redesign of the PCB but if there were a compelling reason to do so, I would probably make the change.


    The three possible changes I can see based on these observations are:

    1) Reverse the order of input (and output) headers to match the ICStation arrays' placement.
    I'm not inclined to make this change. I personally like Vcc on the top.

    2) Reverse the direction of the even rows of arrays to match the diagram in the ICStation documentation. This would reduce the length of the data line between rows of arrays.
    I think I'd only do this if there were reason to believe the longer data traces would cause a problem. I doubt the four inch trace will be a problem.
    If one were to make an array with 8 modules across, the longer data line could possibly be an issue.
    I'm open to suggestions. This wouldn't be a difficult hardware change but the software to drive the inverted arrays would require a bit of time to work out.

    3) Change the order of columns and/or rows.
    Again, I don't see a compelling reason to do so.

    If there aren't any major changes to make, I'll add some silk screen labels to the back side of the headers and submit a order for ten boards. Hopefully I can get the order in before the Chinese new year so it's not delayed.

    I'm also interested in suggestions of what to add to the silk screen. I already added lines on the back of the PCB indicating were the sections of the boards could be cut apart. Any other additions I should make?
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-01-23 00:05
    The ICStation Board doesn't have the direction reversed on everry other row. No, they've actually taken a 1x4 layout and bent it in the middle.
    So, unless they've also done some fancy layout tricks, the Picture will probably also end up upside Down...

    For a 4x8 module, there's always the option of cutting the traces and linking them up to make two 2x8 modules.
    (Actually, you have to cut off the PCB anyway if you want to awoid a big gap down the middle of the module)
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-23 07:05
    Gadgetman wrote: »
    The ICStation Board doesn't have the direction reversed on every other row. No, they've actually taken a 1x4 layout and bent it in the middle.

    By "reversed", I meant the data line connects to the right edge of the board rather than the left edge. This arrangement requires the PCB to be turned upside down.

    On the 16 array PCB, I could achieve a similar result by rotating the individual array layouts on the even rows.

    I get the impression you agree this wouldn't be a good idea.

    I just want to make sure I'm not violating some "norm" on how these sorts of arrays are laid out.
    Gadgetman wrote: »
    So, unless they've also done some fancy layout tricks, the Picture will probably also end up upside Down...

    The examples they give are Chinese hanzi. I'm under the impression they aren't scrolling the characters.

    IMO, having every other row of arrays upside down would make programming the displays more challenging, It wouldn't be very hard.

    I know there are some arrays which use shift registers where all that is required to scroll the display is to provide it with clock and latch pulses. The MAX7219 doesn't work that way (if you already know this, then I'm just explain for the benefit of other readers). Scrolling the ICStation arrays horizontally, requires a huge amount of bit shifting for each column scrolled. Adding code to handle the upside down arrays wouldn't slow the scrolling down much.

    Again, my current plan is to keep the 16 arrays all oriented the same unless there's a compelling reason to follow ICStation's connection diagram (I don't know of a compelling reason to do so).
    Gadgetman wrote: »
    For a 4x8 module, there's always the option of cutting the traces and linking them up to make two 2x8 modules.
    (Actually, you have to cut off the PCB anyway if you want to avoid a big gap down the middle of the module)

    I don't see an advantage to the upside down rows either.

    I suppose if one were to make an array with 16 modules across and 2 down, then the data line between the two rows would be about 13" (33cm) long.

    As I mentioned earlier in the thread, I added holes to make it easier to connect the data trace when making longer arrays.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-23 11:25
    I think I'm just about ready to send these in to be made.

    I added some extra text to warn about the MAX7219 chips getting hot.

    There's the front (the side with the LEDs).

    SmallLedArray16Pcb140123a.PNG


    And here's the back (the side with the MAX7219 chips).

    SmallLedArray16Pcb140123b.PNG


    Both of these images are thumbnails of the full size image. If you click on the image, you'll see a larger version.

    Any last minute suggestions?
    840 x 838 - 228K
    836 x 831 - 175K
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-01-23 13:59
    Looks good to me.

    Oh, and I found this little offer on eBay:
    http://www.ebay.com/itm/310723512133

    At that price, they're probably factory reject or something, but...
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-23 14:03
    Gadgetman wrote: »
    Looks good to me.

    Oh, and I found this little offer on eBay:
    http://www.ebay.com/itm/310723512133?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

    At that price, they're probably factory reject or something, but...

    That link shows up as "You bought this item".

    I've had two of the four small board die on me. I don't know if the chips were bad or if I abused the arrays/chips too much (and I did abuse them).

    I wasn't making sure the test mode was set to zero and it would occasionally be set to one which sets all LEDs at full brightness. The MAX7219 get really hot fast when all LED are on full.
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-01-23 15:01
    Try this link instead:

    http://www.ebay.com/itm/310723512133
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-23 16:04
    Gadgetman wrote: »

    Both links work. I was just pointing out I had already purchased a set of those chips from that seller.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-02-26 08:32
    I ordered the PCBs to hold 16 arrays about a week before Chinese New Year. ITead Studio had a warning that boards submitted that late wouldn't be started until the new year festivities were over. The boards finally arrived a couple of days ago.

    attachment.php?attachmentid=107200&d=1393432125
    attachment.php?attachmentid=107201&d=1393432128

    I've only added MAX7219 chips to one row so far. I wanted to make sure my new layout worked since I had to completely redo the traces once I moved the MAX7219 to the back of the board.

    Here's a little video of it in action.

    Now I need to improve my driver so it uses a double buffer. I might want to translate the driver to PASM since the delay of refreshing a large array in Spin is becoming noticeably slow.
  • ercoerco Posts: 20,254
    edited 2014-02-26 10:48
    Great job as usual, Pal! You've been quiet lately, I was wondering what you were up to. Your usual goodness... :)

    I should have asked you a month ago to send me a 3x1 panel displaying something cool like this. I'm trying to come up with a variety of neat stuff for my Theobot article. There's a 5x7 cm empty space crying for a nice LED show such as you show here. But my submission deadline is this Friday, so your fabulous LEDs will have to wait.
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-02-26 12:20
    Nice...

    I need half a dozen of those boards.
  • Martin_HMartin_H Posts: 4,051
    edited 2014-02-26 12:47
    That's neat.
  • Ron CzapalaRon Czapala Posts: 2,418
    edited 2014-02-26 12:58
    They look great! It will be interesting to see a board with all 16 arrays working!

    What PCB layout software did you use? (Excuse me if I missed it somewhere in this thread)

    And what company did you use to make the boards?

    Thanks,
    Ron
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-02-26 13:57
    erco wrote: »
    Great job as usual, Pal! You've been quiet lately, I was wondering what you were up to. Your usual goodness... :)

    I've been busy on a couple of projects. These LEDs have been a nice diversion.

    I should have ordered more LED arrays when I submitted my PCB order. I ordered 30 more arrays this morning so it will be a bit before I have enough arrays for a full board.

    I should have six more arrays of the 10 I ordered long ago. I've only been able to find these four of the ten. Where did I put the rest of them?

    I've even resorted to cleaning up my lab in an attempt to find the missing arrays. The good news is I found an unopened QuickStart board I forgot I purchased. I suppose that's better than 6 cheap arrays.
    erco wrote: »

    I should have asked you a month ago to send me a 3x1 panel displaying something cool like this. I'm trying to come up with a variety of neat stuff for my Theobot article. There's a 5x7 cm empty space crying for a nice LED show such as you show here. But my submission deadline is this Friday, so your fabulous LEDs will have to wait.

    I guess I wouldn't have had boards to send a month ago anyway. I wonder if the ICStation arrays would work for you?

    Remember I still owe you some sort of gizmo(s) for the stuff you've given me.
    Gadgetman wrote: »
    Nice...

    I need half a dozen of those boards.

    I wonder if you'd be better off submitting gerber files yourself to have them sent directly to you? I'm not sure if I'm ready to just post the gerbers here as I've done for other boards but I bet you could talk me into emailing them to you.

    Even though I've only tested one row, I'm pretty sure all 16 arrays should work. If you really do want six, you could probably talk me into selling you six of my ten. I don't know how much shipping to Norway would be.
    Martin_H wrote: »
    That's neat.

    Thanks. I'm still a sucker for LEDs.
    They look great! It will be interesting to see a board with all 16 arrays working!

    Thanks, I like how they look too. I'm also interested to see 16 arrays but I didn't have the forethought to order additional arrays. I do have the MAX7219 chips. It will be a couple of weeks before I have enough LED arrays to fill a board.

    If I can find my other six arrays, I could at least show what 10 arrays look like.
    What PCB layout software did you use?

    I used DipTrace. I like the software. I found it a lot easier to use than Eagle.

    I have a paid version of the software so I can sell boards I design with it. I'm not sure if this board could be designed on the free version of DipTrace or not.

    I attempted to make a 25 array version of the board but the software wouldn't allow me to place the components I planned to add. It told me I needed to upgrade DipTrace to a more expensive version to use as many pins as a 25 array board would require.
    And what company did you use to make the boards?

    I used ITead Studios. I had previously used their 5cm x 5cm service and this time I used their 10cm x 10cm service.

    I thought the price was reasonable at $19.90 for ten board. Shipping was an additional $8.98 for a total of $28.88 or $2.89 a board.

    I like OSH Park for small PCBs but they're pretty expensive for larger boards. These boards would have cost more than $25.80 each at OSH Park.
  • Ron CzapalaRon Czapala Posts: 2,418
    edited 2014-02-28 15:36
    Still messing around with my LED arrays - decided to see if I could create a fake sine wave...
    8x8 pixels makes it sort of tough :smile:
  • Little-endianLittle-endian Posts: 91
    edited 2014-03-14 07:06
    Duane, Those boards look great! I would be very interested in purchasing one if you have any extra boards you are interested in selling.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-14 13:31
    Duane, Those boards look great! I would be very interested in purchasing one if you have any extra boards you are interested in selling.

    I suppose I could be talked into selling them. I think Gadgetman gets first dibs but even if Gadgetman really want to buy six of them, I could be persuaded to sell a couple of the ones left.

    I've been trying to figure out a fair price. The boards cost a little less than $3 each. I'd want to recoup the price of the board and shipping and maybe add a couple of dollars for the effort.

    How about whatever shipping costs plus $6 for the first board and $5 for additional boards.

    One of the ten boards has erco's name on it (if he wants it).

    Gadgetman and Ron get first dibs if they want to buy some boards and I'm sure I'll have at least one I could sell you Little-endian.

    If anyone else wants one (or more) let me know. If I sell more than a few, I'll likely place an order for another set of 10.

    I'll sell some of my MAX7219 chips for $.80 each. I'll throw in the surface mount caps for free. I'd throw the resistors in for free too but I'm running really low on 10K 0603 resistors. Once I get some more resistors, I'll add them for free.

    I have some machine pin headers on the way. I'll sell those at a 50% markup from my bulk price if any of you are interested in those. I think the headers add up to $3.81 (including the markup) per board.

    I did receive a bunch of LED arrays in the mail yesterday but I don't think I want to sell any of those. You'll need to purchase the LEDs yourself.

    What else?

    If any of you are interested, mention it here and also send me a private message letting me know how many of what you want. Include your address so I can figure out the postage. If you also include your email in the PM, I'll send you a PayPal invoice for the price of the stuff plus shipping.

    These prices are very temporary and only for present forum members. The markup I'm adding doesn't really make this a very profitable enterprise but I'm willing to do it for fellow forumistas.

    Am I forgetting anything?

    Oh, yes. I've not at all sure this board is designed correctly. The LEDs do light up with the code I've posted over in the Propeller forum (there's a link earlier in this thread) but when all 16 arrays are connected, the refresh rate is really slow. I do plan to write a faster driver (possibly in PASM) but I don't promise to do so.

    While the LEDs do light up, I'm not sure if the issue of having the anodes and cathodes swapped from their normal configuration will cause issues for the MAX7219 chip. I've noticed some ghosting of LEDs.

    While I'll likely try to answer any questions about the PCBs and/or code, I don't promise to do. These come with zero guaranteed support.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-14 13:33
    As I mentioned above, the LEDs arrays I ordered a while ago arrived in the mail yesterday. I populated the rest of the first board and tried out and the board appears to work okay.

    I'm hoping to modify the code to use use multiple rows of arrays. Hopefully I'll have a demo to show soon.
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-03-14 16:53
    I already have the LEDs and 7219s...

    I get that to be $31 for the 6 boards I want.
    (Which is nice, as that squeeze in under the 200NOK limit to avoid VAT and T(r)OLL )

    6 boards: 3 x 2 setup of boards = 12 x 8 LED matrixes = 96 x 64 dots = one awesome LED panel...
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-14 17:06
    Gadgetman wrote: »
    I already have the LEDs and 7219s...

    I get that to be $31 for the 6 boards I want.
    (Which is nice, as that squeeze in under the 200NOK limit to avoid VAT and T(r)OLL )

    6 boards: 3 x 2 setup of boards = 12 x 8 LED matrixes = 96 x 64 dots = one awesome LED panel...

    Would you save any money if I emailed you the gerbers and you had boards made yourself?

    Wouldn't shipping from the US be at least as expensive as having them shipped from China?
  • GadgetmanGadgetman Posts: 2,436
    edited 2014-03-15 02:16
    Frankly, I have no experience dealing with PCB manufacturers, and from reading other people's stories, I'm not certain that I want to, either...

    Dealing with you means I can be pretty d@mn sure I get quality boards.

    Of course, I will be insisting on cheapest possible shipping option.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-16 08:07
    Gadgetman wrote: »
    Frankly, I have no experience dealing with PCB manufacturers, and from reading other people's stories, I'm not certain that I want to, either...

    Dealing with you means I can be pretty d@mn sure I get quality boards.

    Of course, I will be insisting on cheapest possible shipping option.

    Unfortunately these are not "quality boards". They're bargain basement boards.

    I'd call the boards from OSH Park quality boards and it's probably possible to get these boards made from ITead Studio at a higher quality, but I chose all the cheapest options when ordering the boards.

    Here's the page with the settings I used.

    attachment.php?attachmentid=107616&d=1394980202

    You could get the gold plating (ENGIN) like OSH Park boards for an additional $20 (priced for 10 boards). Increasing the copper thickness to 2 oz would also improve the board quality. Upgrading to 2 oz adds $25 to the price. So for $65 rather than $20 you could probably get some quality boards.

    In my limited experience, one of the main disadvantages of using a cheap board is you don't have much opportunity to rework the board.

    For example, while soldering the SOIC chips, I touched the holes for the headers with my soldering iron. This left solder covering the hole. I used some solder wick to remove the solder but one hole held onto the solder pretty stubbornly. I ended up losing the copper ring around the hole on one side of the board. Fortunately the trace leading from the hole was on the other side of the board and the circuit wasn't disrupted. After this experience I started to tape over the holes next to the areas I was soldering.

    I don't think I would have had the same problem or pulling the copper ring if I had been using an OSH Park board. I'm inclined to think a 2 oz board from ITead Studio would also have held up better.

    As I think about this a bit more, I realize to populate these boards cost about $24. Considering the price to populate the boards, I might have been wiser to have higher quality boards made.

    I have successfully populated one PCB and it appears to work correctly but I'm not sure how the board would hold up to being reworked if I had to replace one of the SOIC chips.

    One thing I've learned about rework with inexpensive PCBs is to use Chipquik. It's a relatively safe way to remove parts without damaging the board from heat.

    If anyone wants to have their own boards made, just send me a private message and I'll send you a link to the gerber files.

    To place an order with ITead Studio, you select the items, as shown above, on their 10cm x 10cm page. After you register and pay for the items (there will be a shipping charge, the shipping on my order was $8.98), they'll email you requesting the gerber files. You just send the zipped files from the link I'll provide and they'll let you know if there's any problems with the gerber files. There shouldn't be any problems since I've already submitted these exact files to ITead Studio and they didn't report any issues on my order.

    This offer of using my gerber files is for personal use only. If you want to use them to sell boards, there's a non-exclusive license fee of $50.

    Edit: I don't trust this design enough to sell it. Don't use this design in a commercial product.
    995 x 759 - 371K
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-16 08:16
    One thing that keeps nagging me about these boards is how the anodes and cathodes have been swapped from other array boards I've used. I'm not sure if the MAX7219 is designed to be used the way it is being used.

    I don't quite have the problem formulated in my head yet but I'm concerned about a possible asymmetry in the way the chip can handle sourcing and sinking current. With a common anode (which these arrays use) one pin on the MAX7219 will be sourcing 8 times the current it would normally have to source if using common cathode arrays. I should really dig through the datasheet and figure this out. I just thought I should warn the rest of you there may be a serious flaw in the design or these boards and these arrays may not be appropriate for use with the MAX7219.

    I did leave my populated board running several hours yesterday while scrolling text. I think I had the brightness set to its lowest setting though.

    If any of you have ideas for some reasonable endurance tests, I'd like to hear them. I'm thinking of leaving the arrays to scroll the heavier "Free Design" font at full brightness for several hours. I don't think I want to use the test pattern, with all LEDs at full brightness, for very long since I know this gets the MAX7219 chips really hot really fast.
  • CuriousOneCuriousOne Posts: 931
    edited 2014-03-16 10:36
    I have a question. As it's known, MAX7219 uses some internal refresh rate to update the leds, to make them appear to be staticly lit. Is there a way to sync external update with this clock? if yes, this would allow individual segment brightness control, which would be very nice.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-16 14:14
    CuriousOne wrote: »
    I have a question. As it's known, MAX7219 uses some internal refresh rate to update the leds, to make them appear to be staticly lit. Is there a way to sync external update with this clock? if yes, this would allow individual segment brightness control, which would be very nice.

    It looks like the chip uses an 800Hz refresh rate when all segments/rows are used.

    Are you thinking of quickly setting the brightness control as the chip cycles through the segments?

    I think you'd need the driver to be written in PASM to change the brightness fast enough for something like this to work.

    I'm seriously considering writing a PASM driver but mainly because updating the pixels on a large array with a Spin driver takes longer than I'd like with many application (such as scrolling large fonts). I doubt I'll attempt to control the brightness of individual rows or pixels.

    It shouldn't be too hard to control the brightness of the individual arrays with either a PASM or a Spin driver.

    I've wondered about making a board using '959 shift registers with these arrays. I think '595 shift registers driven with a PASM driver would allow some brightness control (depending on how many arrays were being controlled).
  • tomcrawfordtomcrawford Posts: 1,126
    edited 2014-03-25 14:47
    Duane, I sent you a PM regarding this thread. tom crawford
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-03-25 15:33
    Tom,

    I hope you don't mind if I reply here to your PM. I started writing a reply but I soon realized I'd like input from others about a PASM driver for the MAX7219.

    I've been trying to figure out what I would want in the PASM version of the driver.

    I've actually been working on my Spin code quite a bit lately. I have had a couple of paying jobs to program the Propeller lately (how cool is that to get paid to program the Prop?) so I haven't had as much time for my own projects.

    I have code that will draw lines between any two pixels on the display, and I've added code to decode the ROM font and so it can be used with the displays.

    I'm certainly not opposed to using code written by others but I haven't quite figured out what I'd want a PASM driver for the MAX7219 to do.

    I think your idea of having the number of displays configurable is an important feature and I'm starting to think some sort of double buffer would be a good idea.

    There should be some way the Spin portion of the code could indicate which memory section is being used as a buffer and the PASM portion could set a flag once it has finished updating the chips from the current buffer. I don't think either of these tasks would be very hard.

    While I think the features listed above would be important, I also wonder about some more complex actions.

    One feature I've added to my Spin driver (I haven't posted this update yet) is the ability to display a portion of a large bitmap onto the array.

    For example, I can display this complete 32x32 image on my array.

    attachment.php?attachmentid=107783&stc=1&d=1395785822

    I can also display a portion of this 64x64 pixel image on the array.

    attachment.php?attachmentid=107781&stc=1&d=1395785752

    Since the array is only 32x32 pixels, most of the second image isn't visible. I can scroll the image so different portions of the bitmap are displayed. This scrolling is really slow in Spin. I'm wondering if it would be worth the effort to add scrolling capability to the PASM section of the code?

    I also wonder if the ROM font would benefit from being scrolled from within PASM.

    I think any PASM driver would be a step up from my present Spin only version.

    If you wanted to write a basic driver to move bits out to the MAX7219, myself or others could use it as a base and add additional features to it if we decide more features are needed/wanted.

    I've been trying to finish up a demo version of the code I've written. Hopefully I can get it finished up so I can make a new video and post the code in the next few days.
    64 x 61 - 4K
    32 x 25 - 1K
  • tomcrawfordtomcrawford Posts: 1,126
    edited 2014-03-26 13:12
    Duane, here is a PASM driver for your 7219s. You can configure the pins and the number of 7219's in a single string. It supports two frame buffers and has a command to set the brightness register. It comes with a little spin program that starts the driver cog and repeatedly sends the two buffers.

    It takes 1.7 ms to load a four-module string. This can easily be reduced by at least half by reducing the data set-up, clock width, and data hold times. I made each 1 uS. If you want to loan me a string I can tune the timing for you, otherwise just reduce each period (one at a time) until it stops working.

    I tested it by looking at the output pins and observing that they made sense. I don't have any 7219s or 8x8s hooked up so I did not actually observe flashing lights.

    There are two serializers; one high bit first and one low bit first. Which one you use in sending the actual bits depends on how you wired the array.
Sign In or Register to comment.