Skip to content

SmartMatrix on 4 panels#7

Closed
GaryBoone wants to merge 15 commits intopixelmatix:masterfrom
GaryBoone:master
Closed

SmartMatrix on 4 panels#7
GaryBoone wants to merge 15 commits intopixelmatix:masterfrom
GaryBoone:master

Conversation

@GaryBoone
Copy link
Copy Markdown

Added support for 4 panels.
• Demos include a 4 panel row (32 rows x 128 columns) and a 4 panel square (64x64).
• Graphics, scroll text, and bitmaps work.

Limitations:
• Scroll text rotation needs work. 0° works. Vertical orientations don't work. 270° works partially.
• Coordinate conversion from drawing to hardware should be correct for a column layout (128 rows x 32 columns), but it has not been tested. Nor is there a demo for that orientation.

Running the demos:

  1. Edit SmartMatrix.h and uncomment the line with the resolution you want to demo, such as

include "MatrixHardware_KitV1_32x128.h"

  1. Run the corresponding demo, such as Examples/FeatureDemo32x128.

@LucasBruder
Copy link
Copy Markdown

thank you! Just what I needed for my project. Been running the demo and it looks beautiful now, love the additions showing which corners are(0,0),(0,31) and (127,0),(127,31)

@jasoncoon
Copy link
Copy Markdown
Contributor

Mind if I ask what panels you guys are using, where you got them, and how you're mounting them? I'd really like to get three more panels to go with my Adafruit Medium 32x32 P6 display, but they're $40 each. I'm hesitant to order from somewhere else like aliexpress.

@LucasBruder
Copy link
Copy Markdown

@pup05 I got mine from http://www.szlccl.com.cn/productlist.html. I believe they were around $21 a piece. I got the DHL shipping too, and although it took a week to process, once it got sent it arrived in 3 days.

On Jul 27, 2014, at 3:38 PM, pup05 notifications@github.com wrote:

Mind if I ask what panels you guys are using, where you got them, and how you're mounting them? I'd really like to get three more panels to go with my Adafruit Medium 32x32 P6 display, but they're $40 each. I'm hesitant to order from somewhere else like aliexpress.


Reply to this email directly or view it on GitHub.

@GaryBoone
Copy link
Copy Markdown
Author

For more info, see the SmartMatrix project page.

In addition to the panels, you need the SmartMatrix Shield.

I used two of these 10A supplies and a couple of these connectors. I wired two panels per wiring harness and supply like this as a quick hack so I could start coding.

I don't have a source for the power and data cables. Do they come with the panels? I received mine as part of a kit from SmartMatrix at the 2014 Bay Area Maker Faire.

I haven't yet found a good frame to mount the panels in. Suggestions welcome.

@jasoncoon
Copy link
Copy Markdown
Contributor

Thanks guys. I already have one panel wired up with a SmartMatrix shield, SD card reader and IR remote, and am working on adding features to Craig Lindley's LightAppliance sketch.

I'm just looking for a link to a cheaper source for the panels, since they're $40 each from Adafruit and Sparkfun, and I'm considering using four smaller P5 displays, which they don't carry. I've never ordered anything from aliexpress, and am a little overwhelmed and unsure which one to use.

I currently have my single frame mounted in an 8"x8" shadow box that I picked up from Michaels. Not sure how I'd mount four of them.

@LucasBruder
Copy link
Copy Markdown

@pup05 The only thing thats different from that website is the frame, and screw holes are different sizes/dimensions. the screws on those are m3 and the ones from adafruit are m4 sized

@pixelmatix
Copy link
Copy Markdown
Collaborator

My supplier doesn't have much of a web/aliexpress presence, so I can't point you there.

When I ordered a P6 16x32 panel from Adafruit, the frame had M3 screw holes, but they included magnets with M4 screws. I haven't ordered a P6 32x32 panel from them. They may have changed panel revs or suppliers somewhat recently. I have a panel from my supplier that looks identical to the current picture of Adafruit's 32x32 display, and it has M3 threads.

@pixelmatix
Copy link
Copy Markdown
Collaborator

I stayed up late tonight to give this a try. Looks really good! There's still more polishing I would want to do before adding this to a release, such as the things you note, plus optimization so the frame rate can be higher.

One note for anyone trying this, the CPU speed needs to be at least 72MHz for this code to work (or calculations can't keep up), where it needs to be 48MHz for other sketches like LightAppliance to work (based on the IR library I believe).

@pixelmatix
Copy link
Copy Markdown
Collaborator

A note on hardware: you will most likely need a longer ribbon cable than was included with your displays to wire up a 64x64 panel. You could make your own with 16-pin IDC crimps and 16-pin ribbon cable, like is available from suppliers like Jameco, items 119467 and 643831

The display ordering Gary implemented is a zig-zag pattern, left to right on the top row, left to right on the bottom row (I may have the 1-2-3-4 ordering backward):

1 2
3 4

So, a really long cable is required to get from display 2 to 3.

If instead the library supported a 'C' shaped pattern, you could use a shorter cable, but at least with the cables I have received with panels, it is still not long enough to go from one display to another vertically. e.g.

1 2
4 3

With the C configuration you could possibly use extra long headers like Adafruit sells to join two short ribbon cables together to reach the extra length. Extra-long break-away 0.1" - Adafruit

@SebiR
Copy link
Copy Markdown

SebiR commented Jul 31, 2014

Working great. But the 64x64 has the same buffer as the 32x128 or whatever. So, no matter what test I try, it is always displayed as 32x128 :/

@GaryBoone
Copy link
Copy Markdown
Author

In addition to choosing the right demo, which includes the right .h file,
you also have to uncommented the right .h file in SmartMatrix.h. It's
inconvenient, a known issue for developers. Users are given fully separate
libraries for each resolution.

--Gary

On Thu, Jul 31, 2014, 5:48 AM SebiR <notifications@
notifications@github.comgithub.com notifications@github.com> wrote:

Working great. But the 64x64 has the same buffer as the 32x128 or whatever.
So, no matter what test I try, it is always displayed as 32x128 :/


Reply to this email directly or view it on
#7 (comment)
GitHub
#7 (comment).

@pixelmatix
Copy link
Copy Markdown
Collaborator

I should write up some notes for developers on how to work on the library. Thanks for the prompt.

@SebiR
Copy link
Copy Markdown

SebiR commented Jul 31, 2014

Another thing I wasn't aware of. Thank Gary!

@SebiR
Copy link
Copy Markdown

SebiR commented Aug 3, 2014

While playing around I've found two bugs (tried only with 32x128 yet):

  1. drawString only draws the first 10 characters of the string, the rest is lost
  2. When a scrollText scrolls in the middle of the panell (so around height = 16) the part of the text above this middle line has 1 pixel offset to the bottom part of the text below this line

@pixelmatix
Copy link
Copy Markdown
Collaborator

@SebiR Thanks for the bug reports!

@ghost
Copy link
Copy Markdown

ghost commented Jan 1, 2015

I know this is an older thread but I was interested in making a 64 x 64 display for a project and was using this. I was trying to display an entire 64 x 64 bitmap, but it was displaying two images 32 x 64. Almost as if it was still 32 x 128. I looked at the hardware file for 64 x 64 as saw that the matrix height and width were set to 32 and 128 respectively. I attempted to change them to 64 and 64 but it ended up displaying half of it and then the same half but a little off colored. I was wondering if you had come across this or would have a better idea of how to fix it. I haven't delved very deep and am somewhat new to it so it would probably take me a little time to see how everything is working exactly. Thanks for your help.

@GaryBoone
Copy link
Copy Markdown
Author

Are you able to run the demos? It's been a few months, but IIRC, you have
to change both SmartMatrix.h and FeatureDemo64x64.ino, uncommenting the
lines that indicate 64x64 and commenting out the others.
FeatureDemo64x64.ino should already be set up correctly. Then
run FeatureDemo64x64.ino. That demo should show the current capabilities of
the 64x64 mode. From your description, it sounds like you just need to
adjust SmartMatrix.h.

Once you have the demo working, you'll have to study how the bitmaps are
loaded and displayed. I haven't looked at that code so can't suggest what
needs to be done.

--Gary

On Wed Dec 31 2014 at 8:02:34 PM tabarious notifications@github.com wrote:

I know this is an older thread but I was interested in making a 64 x 64
display for a project and was using this. I was trying to display an entire
64 x 64 bitmap, but it was displaying two images 32 x 64. Almost as if it
was still 32 x 128. I looked at the hardware file for 64 x 64 as saw that
the matrix height and width were set to 32 and 128 respectively. I
attempted to change them to 64 and 64 but it ended up displaying half of it
and then the same half but a little off colored. I was wondering if you had
come across this or would have a better idea of how to fix it. I haven't
delved very deep and am somewhat new to it so it would probably take me a
little time to see how everything is working exactly. Thanks for your help.


Reply to this email directly or view it on GitHub
#7 (comment).

@ghost
Copy link
Copy Markdown

ghost commented Jan 1, 2015

Yes both are loading the 64 x 64 and I have run the feature demo, but it only demonstrates a 32 x 32. I have been looking a little closer and since the images are both smooshed it seems as if every other line is written on the top and bottom screen. It seems the bitmaps write only in 32 x 128 ( the second row would be at top). I'll try to look into it. Thanks for the help and the work you've already put into it.

@ghost
Copy link
Copy Markdown

ghost commented Jan 1, 2015

After doing a little troubleshooting it is what was expected. When drawing a bitmap the 64th pixel is on the top line of the lower screens (the third screen) as if they were in a row I will see if I can find where it is doing it in the hardware code or may just use a workaround to avoid headache. I can post what I find in case anyone else would like to do the same.

@embedded-creations
Copy link
Copy Markdown
Contributor

There's another fork that extends Gary's changes and brings them into the 2.x version of the library: #17

Sorry I haven't done much with any of the multiple screen forks so I can't point you in the right direction of how to draw bitmaps to anything larger than 32x32.

@LesterRomano
Copy link
Copy Markdown

Hi guys, Im kind of a beginner here at smartmatrix. Can anyone give me a tutorial on how to do animations? And I also want to expand my display into 64x64 but i don't really know how to reconfigure the library. Can you please lend a hand? Engineering student here.

@embedded-creations
Copy link
Copy Markdown
Contributor

Hi Lester, there are a few tutorials I made on the Adafruit Learning System. There's one on creating GIF animations:
https://learn.adafruit.com/users/Pixelmatix

There's no official support for a 64x64 display. You can try the code others have shared in this pull request and #17 but there's not much I can help you with as I'm not using the code myself. If you ask some specific questions here maybe Gary or someone else will be able to help.

@LesterRomano
Copy link
Copy Markdown

Thanks mate! I really need the support for 64x64 display. Any help will do. please.

@Mozz164
Copy link
Copy Markdown

Mozz164 commented Jan 18, 2015

Just as an update to this thread, has anybody made any more progress with displaying .gif's and bitmap's on the 64x64 panel? I have four panels on the way and would like to know what ive got myself in for.... :) Any help will be appreciated. Thanks

@embedded-creations
Copy link
Copy Markdown
Contributor

@Mozz164 Displaying bitmaps should be relatively easy. The bitmap example wont' work as is, but you can figure out the layer of the buffers and get it to work, falling back to a bunch of drawPixel calls if needed. The GIF code was written for 32x32 GIFs specifically and I have no idea how difficult it will be to expand. If you're working on this, please post to either a new issue or on our G+ community and I can try to help out but, I don't believe it's something anyone has tried before.

Also, the code in Pull Request #17 is more recent, but there is still no official support for >32x32 panels in SmartMatrix.

@embedded-creations
Copy link
Copy Markdown
Contributor

Hi @GaryBoone, I'm working on support for larger displays and making the SmartMatrix Library more flexible with #25

@embedded-creations
Copy link
Copy Markdown
Contributor

SmartMatrix 3.0 adds support for chaining/tiling displays with all features, e.g. rotation, Animated GIFs. Thanks for your contributions in pioneering this feature!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants