[posted] 32x32 RGB LED Matrix with a Teensy footprint

defragster

Senior Member+
I and some other Teensy users saw a PIC based Kickstarter project that had a PCB footprint for UNO/Mega - 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.
KSRB_PCB.jpgTeensyOpen.jpg

I found a fork of the Adafruit RGBmatrixPanel.h that supports Teensy 3.x's and as noted in the GitHub ReadMe 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:
RB3D_6.jpg
Which will be a bit neater than this:
TeensyClosed.jpg
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
 
:) 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 adds more details of the results with a movie I sent ( sent with no sound has upload has noise so mute speakers ).
 
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.
 
*** 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.
*** 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:

SOFTWARE:
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.

HARDWARE:
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.
*** WARNING - don't use this on a T_3.6 - without limiting 5V on the pot to a 3.3V source ***
 
Last edited:
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.

KS_ReWire3v3.jpg
 
Back
Top