Maker Faire RGBPongClock

Only just saw this post, but that setup looks awesome! Iā€™d be keen for a shield

@semaja2, I need to order some 12-pin headers for the shields. I should be able to get those before the end of the week :smile:

Iā€™m working on a 3D printed frame/backing. I have one half of it finished (minus some very minor tweaks). Iā€™m going to try printing the first pass of the second half tonight.

3 Likes

Just got mine assembled, and I think Iā€™m getting the same errors wgbartley had when trying to compile. Looks like you havenā€™t pushed your changes to github, can I get the super-secret latest code via PM as well? :smile:

1 Like

Until @peekay123 gets the official repo updated, you can download the original zip he provided to me from http://spark.wgb.me/rgbpc.zip. Heā€™s been locally compiling it, but Iā€™ve been doing cloud compile via CLI for several days now.

Before you flash that code, search for #define X_MAX and change it to be #define X_MAX 31 unless you have 2 panels or a single 32x32 panel.

In other news, the 3D printed stuff is coming along very slowly. My printer is being a jerk.

2 Likes

BTW, I tested running animated GIFs on the RGB Matrix Shield using software SPI. Here is a sample:

:smile:

9 Likes

Hereā€™s the CAD version of a frame + enclosure. The frame definitely gives it more stability and protection. The enclosure just hides the electronics with some extra space around the proto area for whatever you want. The gridded holes in the enclosure are for including a sensor like a DHT22 that needs to ā€œbreatheā€. There are even little notches at the bottom of the enclosure to snap it into place and still allow for easy removal.

This is basically a building block for those who might want to add more stuff. It takes care of a lot of the measuring, and, trust me, there was a lot. Most of the iterations of this tweaked dimensions by fractions of a millimeter!

The longest dimension is 110mm (4.33"), so it should fit on most print beds. If not, I might be able to trim a couple of places to get it to fit under 100mm, but it would have to sacrifice aesthetics.

Iā€™ll upload and link the STLs once I have made sure that the latest tweaks to the enclosure are good, so keep an eye out sometime tomorrow (2015-09-12 US Eastern). Once I get my paws on a 32x32 panel, Iā€™ll probably design a frame + enclosure for it as well!

5 Likes

Great job! One note of caution, the dimensions of these panels may change depending on the batch Adafruit received. They have a note on the page explaining ā€œThese panels are remainder stock from factoriesā€ā€¦ Iā€™ve ordered similar 32x32-pixel panels from a few sources and even once I settled on a manufacturer and ordered direct, they have revā€™d the panel and the positions of the screw holes and connectors changed.

Also, keep in mind the soldering of the 16-pin connectors may not be centered all the time, so watch the tolerances around that connector. Sometimes theyā€™re skewed one direction or another. That may mean the shield after plugging into the connector is also at an angle, not parallel to the frame.

2 Likes

Thanks for the tips. Thereā€™s about 2-3mm of play around each connector and the screw holes as well. When designing this one, the first mistake I made was assume that all of the screw holes would have the same position in all 4 corners and center. That was not the case at all! After about the 3rd print, all the other iterations were just trying to get the holes aligned!

Thingiverse was down earlier today when I had time to upload and document the model, and I havenā€™t had time since. I should have some more free time tomorrow!

2 Likes

3D models uploaded!

3 Likes

I am interested in a kit of parts as wellā€¦just found this thread via Twitter.

Hello folks,
A month or so ago @peekay123 contacted me through twitter to tell me that the RGBPongClock code that I worked on a couple of years ago has had some new life breathed into it with the Photon. He caught me with some poor timing, I looked, promised to get back to him the next day and then completely forgot. (sorry @peekay123)

On Halloween Adafruit retweeted a post by @Dave showing a RGBPongClock mounted in a pumpkin. Didnā€™t seem to be a practical way to mount an LED display, but each to his own. I said ā€œhelloā€ to @Dave and he also pointed me in the board direction. Well, finally Iā€™ve registered. Iā€™ve also just received a couple of Photonā€™s to play with. What a fantastic little board it is.

Iā€™m really excited to see what @peekay123 has done with the original (messy - sorry about that) code and the improvements heā€™s working.

Iā€™ve been working on porting the RGBPongClock code over to python for the raspberry pi (along with a 64x32 display). Itā€™s still a work in progress:

RGBPongClock on Pi

But now I hope that iā€™ll be able to contribute to the project on the Photon.

Itā€™s really great to see so many people enjoying the clock.

Cheers,
Andy

4 Likes

@andrewholmes, welcome aboard! Besides working on a new software model for the RGBPongClock, I want to add the animated GIF (via a software SPI microSD) clock to the existing code. Iā€™ll send you a link to the RGBPongClock V2 repo which is a mess right now mostly because of design decisions taking a long time (!)

I still have to update my github repo for the V1 code. Iā€™ll post a link as soon as that is done :smile:

3 Likes

Iā€™ve looked at animated gifs before. Reduced me to tears. Iā€™d get one working - load another one, discover that it had some small but fatal quirk that didnā€™t work with the code. Try to code around it, break compatibility with the first. Repeat.

Iā€™m glad itā€™s on your list. Iooking forward to seeing it up and running!

Craig Lindley wrote a sketch that decodes GIFs for display using the SmartMatrix Library on a Teensy 3.1. Iā€™m happy to maintain the sketch, and earlier this year refactored things so itā€™s more generic and less SmartMatrix-specific. Iā€™m guessing thatā€™s what @peekay123 is using. Iā€™d love to turn the sketch into a completely generic Arduino GIF decoder library, but havenā€™t found the time. Anyway, the sketch has had tons of GIFs thrown at it, including recently 64x64 pixel GIFs, and weā€™ve fixed the few compatibility issues that have come up. Craig wrote some solid code.

-Louis

1 Like

@peekay123, your sketch is exactly what I ported to the Photon!!! I test with software SPI and it does choke on high-framerate GIFs but works super well otherwise. The next version of my RGBMatrix shield will have a microSD socket connected via the hardware SPI lines. I had some minor issues using the non-DMA RGBMatrixPanel library but generally, it works well (see video above). :smile:

Huh? Online self-talk @peekay123 responds to @peekay123 :wink:

1 Like

I thought the GIF playback looked great in the video. Hopefully switching to hardware SPI helps speed things up, I imagine it would.

Iā€™ve looked extensively into the STM32F2ā€™s DMA engine and have a plan on how to port SmartMatrix to the Photon, but havenā€™t really started yet. The DMA engine on the Teensyā€™s Freescale CPU is so much better. I can set DMA to shift data out for all the bits in a row (supporting 16-bits for 48-bit color) and the engine can take care of the rest. With the STM32F2, I have to set DMA up for each bit. Hopefully Iā€™ll find some time this month to pick the project back up.

@Pixelmatix, the pin mapping on the Photon is staggered with no whole port being presented on the I/O. Can you enlighten me on how you will use DMA?

I plan on using PORTA, which has more pins than I need, and canā€™t be exclusive to DMA, but PA1, PA2, PA3 are driven by PWM, and PA5, PA6, PA7 are what I plan to use for hardware SPI, so no conflicts if I write to the entire GPIO register. Hopefully that will work.