View Full Version : [posted] 32x32 RGB LED Matrix with a Teensy footprint

08-11-2017, 05:59 PM
I and some other Teensy users saw a PIC based Kickstarter project that had a PCB footprint for UNO/Mega (https://www.kickstarter.com/projects/1897710270/retroball-build-it-yourself-pixel-fun-for-upto-fou-0/description) - and we asked about Teensy support. I hadn't yet backed so in reply to a message I got an ALPHA board from Australia to wire up - complete with smoked display cover that hides the white LED body and saves retinas seeing it up close.

I found a fork of the Adafruit RGBmatrixPanel.h that supports Teensy 3.x's and as noted in the GitHub ReadMe (https://github.com/Defragster/RGB-matrix-Panel) shifted the Analogs used so the Teensy can use all four POTS where the UNO can only use two. So when I had working wiring I sent an XLS of the pin list to Brad and he marked up his PCB - then I asked for RTC battery and a second row of headers to allow using more of the Teensy and a way to set the pots to 3.3V to make it safe and expandable for all of the Teensy 3.x family. I found it not to work on T_LC with the pin signals as presented to the display - the color control slips to yellow?

Here's the result he just sent off to have a PCB made:
Which will be a bit neater than this:
I tested on T_3.1, 3.5 and 3.6 from 8 MHz to Overclock and it shows no signs of trouble - of course not surprisingly at 8 MHz the POT updates net about 1 second :) This uses the AdaFruit method of a timer to manually push out the batches of bits - not DMA - though at full speed Teensy will have plenty of CPU left. It uses 13 pins - plus 2 switches and 4 pots on the base T_3 footprint.

I had to cut the VIN<>VUSB of course as the Display is externally powered ( 2 A for 32x32 panel all white ). One thing I saw was when I powered the display from a powered USB HUB it worked but it was using the Teensy Programming USB GND for a return path and this would require pushing the button to program? I could tell something was amiss because my USB Charge Doctor power meter would go from 1.5 A to 0.9 A when I plugged in to program - and at the same time the display would brighten when the cable touched the USB connector. If some EE type has more info it might help others diagnose similar issues - when USB programming requires a button push is it a GND problem?

I emailed FrankB asking if I could port his T3TRIS code to this project. It seems it would make a good clock or IOT display.

Brad has a KS update with pics and movie almost ready I'll update with link as it may show stuff I left out here. if anyone is interested The KS is 230% funded and closes Sat, August 19 2017 9:29 PM PDT

08-14-2017, 04:13 PM
I posted this project on the blog today. :)

08-14-2017, 05:25 PM
:) Indeed!

If only I saw it run on the Teensy LC :confused:. The screen fills yellow no sign of the DEC value of the pots (with chosen color)- but the binary bars do show white. Not sure if it is a voltage level issue from T_LC reaching what the MATRIX needs - or more likely a PORT mismatch on color control data lines as it. If anyone can look it might not be too late to get the PCB re-routed. Of course the T_3.2 and better give more spare pins ( using underside T_3.2 pins with one of the OSH boards) and with RTC offers more promise for more projects.

As noted it was a fork from a fork from the AdaFruit code that worked and the PCB is being built for test. With some work the code might get cleaned enough for AdaFruit to take a Pull Request and get it in their current distribution - the prior PULL request was still sitting there and that is how I found the fork. The 2nd fork added pin documentation and resolved timing across the faster Teensy - but they were pulled prior to last Adafruit version update so I need to work through that. After this week I can get back to that.

The 32x32 uses 13 pins and 2 Amps of power - 64x64 that FrankB just ordered would be much nicer with 4K RGB pixels - except for needing more pins and 4 Amps and probably too bright for use at arms length without sunglasses - this unit ships with smoked acrylic that is essential to viewing quality.

Having looked at Frank's T3TRIS code before - I glanced at it again and this should map from the ILI9341 to this RGB 32x32 well enough to be doable and even nicer on the bigger screen - when I get time in a week or so.

Thanks to Brad for sending me a unit to get the PCB Teensy Ready! This posted update (https://www.kickstarter.com/projects/1897710270/retroball-build-it-yourself-pixel-fun-for-upto-fou-0/posts/1960746) adds more details of the results with a movie I sent ( sent with no sound has upload has noise so mute speakers ).

08-19-2017, 08:16 AM
PCB not back yet for Teensy testing - sent excel list of pins that worked for me - KS almost over - some time for revision if needed. I never had time to see what it would take to make the T_LC work.

09-02-2017, 12:17 AM
Quick update - First PCB with a T_3.5 attached and it works!
Did some updates to the github.com/Defragster/RGB-matrix-Panel (https://github.com/Defragster/RGB-matrix-Panel) to get Brad in Australia up for a quick test with supplied HEX files.

10-21-2017, 04:33 AM
*** WARNING - don't use this on a T_3.6 - without limiting 5V on the pot to a 3.3V source ***
The POT pads are wired to VIN 5V - not from the cut Jumper to 3.3V.
See next post for the fix I used. (https://forum.pjrc.com/threads/45772-32x32-RGB-LED-Matrix-with-a-Teensy-footprint?p=157265&viewfull=1#post157265)
*** WARNING - don't use this on a T_3.6 - without limiting 5V on the pot to a 3.3V source ***

This KS item is now in my possession and works as shipped and assembled with PIC processor, pulled that and soldered headers to drop in a T_3.xx and it is running!

I did this on a freshly IDE installed to a new machine:

Install Arduino IDE 1.85 : I unzipped to 'C:\' on windows 10
Install TeensyDuino 1.40 with TeensyduinoInstall to that folder
Put this GitHub library to my sketchbook\libraries folder : https://github.com/Defragster/RGB-matrix-Panel

Picked an example after selecting the T_3.6 processor on Tools menu: "...\sketchbook\libraries\RGB-matrix-Panel\examples\Retroball Uno Example Sketches\MovingRainbowLines" [rotate pot #1 to adjust line speed]

A second example that displays all 4 pot values: "...\sketchbook\libraries\RGB-matrix-Panel\examples\Retroball Uno Example Sketches\DecimalToBinary"

There is a ReadMe there that I'll add this text to - but prior notes should be good as they basically follow from the short notes below.

Built up the RetroBall kit first and - tested with PIC.
> Removed PIC Processor
> don't bother >> Cut the 5V PCB trace [ noted on silkscreen ]
> don't bother >> Solder the two pads to convert the POTS to 3.3V usage for Teensy
> I soldered on the RTC battery holder for Teensy - not used it yet ...
> CUT THE TEENSY underside Vin<>VUSB trace [ the Display requires up to 2 amps on external USB connector - that also powers Teensy ]
> [ programming still over USB - but Teensy then powered from external USB. I mark the Teensy USB hood on the ones I make this cut ]

Making this post to share with the RetroBall backers that may be new to Teensy, or otherwise

*** WARNING - don't use this on a T_3.6 - without limiting 5V on the pot to a 3.3V source ***
The POT pads are wired to VIN 5V - not from the cut Jumper to 3.3V.
See next post for the fix I used. (https://forum.pjrc.com/threads/45772-32x32-RGB-LED-Matrix-with-a-Teensy-footprint?p=157265&viewfull=1#post157265)
*** WARNING - don't use this on a T_3.6 - without limiting 5V on the pot to a 3.3V source ***

10-23-2017, 05:06 AM
Here is the change I made to take the pots to 3.3V max for Teensy Usage. In the case of T_3.6 it could cause damage, in any case the POTS will top out at 3.3V and the last part of the knob will show no increase on T_3.2 or T_3.5.

Do not solder the one leg to the pad but rather run a 3.3V wire from the board.
In some fashion solder each of those four legs together to a 3.3V location on the board.
I did it with 30 gauge wire soldered to the 3.3V pin on the UNO layout all from underneath.
Then I taped the wires in place to make it safe to handle without pulling the wires off.