Mechanical Ideas for Wearable Panel

I’ve been thinking about how to reduce the height on the back of a panel for an application like @marcmerlin’s matrix shirt. Looking at some pictures of flexible panels from Aliexpress, the tallest components besides connectors seem to be the capacitors. I believe those are the same 6mm tall capacitors I have on panels in front of me. So, <6mm max connector and controller height is our ideal target.

HUB 75 Connector

The Shrouded HUB75 IDC connector available on most panels is already a lot taller than 6mm - I measure 9.5mm on mine - and it gets a lot taller when you add the mating connector. The thinnest existing option for mating connector I can see without significant innovation is to use the same SMT connector that’s on the SmartLED Shield, but with a new board that keeps components on the bottom side. In that case we’re only adding the height of the PCB: 1.6mm, or potentially lower if this board were made thinner. OSH Park now has a 0.8mm thick board, or ~0.2mm flex board. Even with the flex board, total height is 9.7mm, still 3.7mm taller than our ideal target.

Instead of the shrouded IDC connector, some boards have unshrouded pins, which are slightly lower height, and have a lower base.

I measure pin height of 9.25mm, and base height of 3mm. With pins like this you could slide the SMT connector that’s on the SmartLED Shield V4 a lot lower onto the pins. With custom length pins just long enough to make secure contact with the SMT female connector, this could get fairly low profile. Now we’re at 7.2mm (3mm male base, 4mm female connector, min 0.2mm board thickness), assuming the excess height of the pins gets trimmed down.

Of course, not all boards have this, and not all users will want to replace this connector manually. The edges of the shrouded connector can be carefully snipped off, leaving the pins and a similarly tall 3mm base. (Note, don’t try to just pull the shroud off the connector. Sometimes this works, and sometimes you end up pulling off one or more pads from the panel, ruining your panel.)

Can we do better? Maybe if we eliminate the mating connector, and source a ribbon cable crimp that’s designed to solder directly to a PCB. I can’t find any that are SMT, but found this THT cable from Samtec:


It’s not SMT, but maybe if the THT pins were carefully bent out 90 degrees (as I drew in red on this diagram), we could get as low as 6.6mm high.

I’d say this has significant drawbacks though, as it’s a manually modified part, requires careful soldering, and a damaged ribbon cable needs SMT rework to replace.

I have a panel like this one with pads for a FFC connector on the bottom. If only that were available on more panels.

Maybe a FFC adapter is what we need. If something like this were soldered directly to the no-shroud header, the height would be 3mm + 0.8mm PCB + 2.56mm FFC connector = 6.36mm, real close to ideal.

I’m not sure all boards have clearance right next to the HUB75 connector for the FFC connector, but most probably do.

Can we do better? What if the FFC adapter were made with castellated edges and designed to be soldered directly to the panel PCB? Something like this board but with castellated edges on two sides.


The width of the FFC connector from PCB footprint to opening of the opposite side is 7.4mm. Adding some clearance so the castellated edge pads can be soldered, let’s say the board width is 9.4mm. The width of the HUB75 connector SMT footprint on the boards I have in front of me are about 11.5-12mm, so there’s enough clearance to solder the castellated edges to the pads.

Height is now 1.6mm PCB adapter + 2.56mm = 4.16mm, well under our target. (I’m assuming we’ll use standard thickness PCB here because we have the space for it and it’s more easily sourced)

Downsides? Yes, this requires desoldering the IDC/SMT connector from the panel, and doing some large pitch SMT soldering.

I think with a couple adapter boards, we can have options for several types of users:

  • people that are not comfortable soldering at all (SMT female connector to FFC adapter: 7.2mm height)
  • people that are comfortable soldering THT but not desoldering (FFC adapter board with THT holes: 6.36mm)
  • people that are comfortable desoldering and soldering SMT (castellated edges FFC adapter board, 4.16mm)

Power Connector

This connector is a lot more bulky. I measure it at 11.2mm tall without any mating connector. The base where the pins are exposed is 5mm tall on its own. There’s very little room to work here if we want to keep the existing connector. The total height when adding the mating connector is 16.4mm, not including the added height from cables coming out of the mating connector.

The pins have a 0.156" spacing and are thicker than standard headers which limits creative options. I’m not coming up with anything at the moment, except I did notice that the SMT female HUB75 connector that’s on the SmartLED Shield V4 will slide onto a single 0.156" connector pin. The spacing isn’t enough to mate with more than one pin, and the current limit is I’m sure lower than the 4+ amps that some panels draw, so this idea isn’t going to go very far.

The only good option I can see at the moment is desoldering the existing connector and soldering wires directly to the SMT pads. Worst case if someone isn’t comfortable desoldering or doesn’t have the hot air rework tool - that is almost required for desoldering a connector like this which is connected to large copper pours on the PCB - they can solder to the existing connector on the pads, clip the excess pins and plastic, and get the height down to ~5mm.

Controller Board

If we have FFC cable and wires coming off the panel, the controller board doesn’t need to go under the panel at all, but let’s assume it will be.

SmartLED Shield V4 plus Teensy is about 12.5mm tall, not considering a new HUB75 to FFC adapter that will need to be added. I think this is far too tall to fit under the panel, compared to the existing 6mm max height. The fact that the shield can’t sit flat against the panel because of the height of components on the panel and the risk of shorts from Teensy pins making contact with those components makes the effective height even taller. I don’t see an easy fix here.

If the SmartLED Shield, Teensy, and FFC to HUB75 adapter are moved away from the panel, they’d probably need to be moved far away, as having a bulge in the shirt for the controller next to the panel will be unsightly. I’m not sure how long of a FFC cable can be used with the high speeds of refreshing a panel. I believe ribbon cables with the length of a foot or two are acceptable, maybe the clock rate will need to be lowered slightly. The traces on the FFC cable are thinner which could degrade the signals, and the cable is more likely to be damaged than a ribbon cable. This solution isn’t sounding ideal to me.

More thoughts on this coming in the future…


I’d love to hear some feedback on what I have so far

That’s pretty thorough feedback and research, thanks :slight_smile:

Yes, I agree that the capacitors are the tallest thing in there.
The power connector is the worst thing on the board, but I’m going to remove them and just solder some JST plugs directly on the pads.
Next, as you said, is the HUB75 connector, which I really wish they would make as an angled connector. Otherwise the flattest ribbon cable you can put on top is indeed the best.
If we could replace with the flat connector you mention, even better, but now every board needs to be modified.

As for the uC, I just use a ribbon cable that goes to my ESP32 that is not on the board, so that part is not a problem for me.
Given how your shield doesn’t fit well on some smaller panels anyway due to the size of teensy 3.6, it would be nice to have an option for the shield to have pins so that you can connect a ribbon cable into the shield as opposed to connecting the shield directly onto the panel.

Did you end up getting one of these?
I found their board reasonably flat, but it’s all custom work of course.
I can send you a picture of mine if you don’t have one.

@Louis another question:
I’ve been using those ribbon cables
They work, but they are more or less doubling the height of the hub75 connector.
Have you found easy to buy ribbon cables that are as flat as possible, fit hub75 and come out as low as possible? does not seem to be something I can just buy.

this one looks vaguely interesting if it were female on both sides, it seems to skip the useless loop that most other cables have on top
(I’m assuming the loop is to make it more resistant to pulling)

It’s on my list of things to check out, but was a bit too expensive to buy on a whim. I’d love some pictures!

My only suggestion is to remove the strain relief part, so the cable isn’t folded back on top of itself, will make it shorter. (looks like you figured that out on your own now that I’ve scrolled down the thread) does not seem to be something I can just buy.

You can try to get a quote, or try their free sample service which has free UPS overnight shipping

It has strain relief on the female side

The male side is the type of connector I was listing at Samtec. I’m not sure if the pins are long enough to bend to the sides and be reachable with an iron

Latest thoughts after looking at @marcmerlin’s shirt wiring:

This needs to support more than just the controller to panel connection, it needs to connect multiple panels together.

A circuit like this, with SMT female 0.1" connector (ala SmartLED Shield V4) and FPC connector on the same side, could attach to existing HUB75 connectors without any (de)soldering, just a little trimming of the plastic shroud. Height would be 7mm plus PCB thickness, and could be made out of flex PCB. Use two plus a FPC cable to connect two panels.


If the connection to the controller needs to be thin as well, make the adapter with SMT 0.1" male pins instead of female. That could be inserted into the controller’s female socket (e.g. SmartLED Shield V4) or the pins could be soldered to the controller PCB making it even thinner.

I like this suggestion. I’m not sure how strong the ribbons that come out of that, are, or how long they can be or how much they can flex, but it would otherwise be much nicer/flush.
I still owe you pictures of the backpack thing. Will try and remember to do it tonight.

If you want to try, order some Raspberry Pi Camera FFC cables. They’re available for cheap. Try the white, as well as the brown color, as I think they’re made from different materials. They’re 15 pin, so close but not exactly the ones we need (unless we want to ignore the duplicate ground connection on a HUB75E pinout, maybe it will be used for some signal someday, like the E address line turned out to be a surprise), but close enough for a mechanical test.

There you go, it’s amazingly flat

Thanks for the pictures!

Can you make out any part number on the exposed IC on the controller board? Can you remove the QR code and see what that module is? Doesn’t look like any ESP8266 module I’ve seen.

It’s not :slight_smile: (ESP8266 doesn’t have enough pins and likely wouldn’t be fast enough for the refresh rates I’m seeing)
That’s the chip:

afw121t Arm Cortex M4F

Nice, how about the other IC, the one that’s exposed?

Hi @Louis. Sure thing, it’s a GD32F105RBT6
GD32® MCU incorporates the 32-bit ARM® Cortex®-M3 processor core operating at 108 MHz max frequency with Flash accesses zero wait states to obtain maximum efficiency. It provides up to 3024 KB on-chip Flash memory and up to 96 KB SRAM memory. An extensive range of enhanced I/Os and peripherals connected to two APB buses. The device offers up to three 12-bit 1MSPS ADCs, up to ten general-purpose 16-bit timers plus one PWM advanced timer, as well as standard and advanced communication interfaces: up to three SPIs, two I2Cs, five USARTs, an USB 2.0 OTG FS and two CANs.

I think the next letters are CE96637AJ1846 but they’re probably not relevant.

Either way, it shows that they are using 2 CPUs to do this, likely one for wifi and FB computes and probably the other one for high speed refreshes only.

Back to your earlier point, given that ESP32 has 2 cores, if it has enough RAM (and I guess you can add PSRAM to it, not sure if anyone makes a chip with more RAM directly onboard), isn’t it enough to have one core for frame refreshes and one for computing frames?

Also, I know that you very much care about high bpp and quality, but given the limits that I’m already hitting, while frame rate is very important for photography as already discussed, would you consider supporting a lower bpp to allow higher speeds and lower memory use?
Right now, it seems that you’re using 4 to 5 times the amount of memory used by the FB just in extra buffers to push data to the panels. That seems like a lot :slight_smile:

My plan is to use a single core ESP32, and design a board that has the single core ESP32, refresh circuitry and HUB75 connector, and APA102 cable for input. Your board that drives neopixels, IR input, SD card reading, and whatever else you need to do would be separate and I suppose wouldn’t be required to run any SmartMatrix code at all. You could use FastLED or Adafruit GFX outputting APA102 data to the TBD named HUB75 adapter board.

1 Like

So, does it look like they’re doing the same thing you were hoping to do?
A full CPU to do graphics and nothing else (apparently faster than SmartMatrix on ESP32), and then a 2nd CPU to do FB computes and wifi?

So, does it look like they’re doing the same thing you were hoping to do?

Yes, looks similar

After taking a second look at the photo, I noticed they’re using (more expensive) tantalum capacitors instead of electrolytic. You can get tantalum caps in the same values that are on my panels with package height of 3mm, vs 6mm for the typical electrolytic. Doing that sets a new low bar for overall height on the back of the panel.

BTW, I’m working on my own wearable panel project, and I gather you’re working on your next iteration based on some of the questions you’ve been asking. If you want to trade ideas while we’re both working on similar things, let’s do it, maybe in a new thread (I’m too tired right now to figure out the right thread to post to…).

I want my project to use P2.5, maybe P3 panels, as I want to create a diffused look - hiding all pixelation - and the fine pitch allows for the diffusion layer to be thinner, making the wearable overall thinner.

I like the idea of using a flexible panel that can conform to the shape of my chest, back, or the shape of a backpack and not stick out so much. I haven’t actually tried flexing any flexible panels though, and don’t know how realistic that is. Maybe the flexible panel needs to be attached to a rigid rounded frame. I haven’t found any P2.5/P3 panels that are easily purchasable with delivery to the UK yet, plus I haven’t had a need for them recently, so I haven’t ordered any yet.

Another problem for flexible fine pitch panels is the minimum size. Looking on Aliexpress, I can only find 128x64 P2.5 flexible panels, 320mm wide, and that’s too wide for my purposes (I’d like to make this look as much as possible like a logo on a shirt, not a billboard).

There’s another option with a high cost and high minimum, but good to know that someone’s at least making 96x48 pixels P2.5 flex panels, 240x120mm. My ideal at the moment is P2.5 64x64, but 96x96 might be OK if curved enough so it doesn’t stick out away from my shirt. I got a price list from this company, and they also have the 240x120mm panels at ~$50/ea, but not as easy to order as Aliexpress, and I haven’t seen if they have a minimum:

I just ordered one of the 160x320mm panels, so I’ll at least have one flexible panel to play with. I got this one which cost a couple bucks more but seems like it might come with the flexible frame, where the other one I linked doesn’t(?). (Took a while to order as my bank decided my ~2000th Aliexpress order might be fraud, though the ~1999 before it were all fine)

I’m also not sure on what scan panel to use, to get the right brightness. The P2.5 64x64/32 panel seemed a little dim to me at full brightness, but I was working in daytime with thin curtains drawn. 2x P2.5 64x32/16 was better. I think you posted already, but if you don’t mind reminding me, what brightness setting are you using in the clubs, and what scan rate are your panels?

Also, have you had any problems getting through security with your panels? I could see depending on the show and venue getting a hard no to bringing even a small electronic setup to a show. I read something about someone bringing macetech LED shades to a show and security making them check them for later pickup.

Honestly, I should probably wear the one I have for at least a year, but I had some ideas on making my neomatrix gfx lib just a beneral framebuffer fastled/2D lib that talks to many more backends (sorry for your API, there is just much more code out there that uses the GFX and/or the FastLed APIs)
I’m looking at how feasible it is to generate the FB in arduino and then give it to a rPi with the rPi lib that has more hardware support, much more RAM and triple output support ( ).
Your idea we discussed is a good idea, but honestly for an separate chip with an APA102 interface (or whatever input it takes), I really think you ought to consider rPi instead.
I’m currently running 128x128 at over 300Hz on rPi with plenty of RAM to spare and could be running 128x192 with the same refresh if I were using the 3rd port of my active-3 board (which cost a whole $3 from HKG, shipping was a lot more than the board).
I did consider mentioning that you could do parallel output on a teensy 3.6 given the amount of pins there, but it’s not going to change the issue where those chips just don’t have the RAM to hold 128x128 comfortably (never mind more), while a $10 rPi Zero has plenty more RAM…

I have not found flexible under P4, but my P4 flexible would be ok if I have a non flexible arc to attach it to. It strongly wants to go back to flat, so you’d have to attach it well to a bent piece of whatever that will keep them bent.
Now, P4 is perfect for 64x96. If you get P3 or P2, you’ll want more pixels, which brings you to the limits I mentioned above (i.e. it’s going to be painful with SmartMatrix, if it works at all)

Well, my 128 P2 is 25.5cm wide. If you bend it around your body, it would work. I agree that 32cm is too wide for your body though.
If you can find 3x 128x32, you could make a 128x96 out of it and rotate it, or keep looking for 128x64 in P2 and you’d be able to fit 128x192.
But then we’re back at my point on rPi above :slight_smile:

96x48 would work too, but $140 a piece is a bit of a ripoff IMO. I got my 128x64 (non flexible) for $60 a piece.
Warning, in P2, there is no room for an outside border to protect the outside pixels. I had 4 already fall off from the borders, which is not good :-/

I have /16 panels on my shirt and they are way too bright in clubs. I had to take them down to 1/2 to 1/4th brightness depending on how dark the club is. It’s not that the panels are so damn bright, but that the clubs are damn dark :slight_smile:
Only at burning man is it ok to be blindingly bright :wink:

I did at EDC because I wasn’t wearing my setup (it was around 40C and it was to board a bus 1H away from the venue) and all they saw was a bunch of wires and stuff they didn’t understand, and paniced. I’ve learned to always wear it and turn it on when I approach security. They are so impressed/amused/curious that they don’t care about all the wires or what’s in my fanny pack or even forget to search me altogether sometimes.

About my point that going higher res (128x128 or better) likely requires a switch to rPi to get decent output, here is a rPi3 doing 128x128 ABCDE on a FM6126A chip at 300Hz+

video isn’t perfect, but the pictures are.
The nice thing with that library is the number of quality/speed settings you can tweak, including how many pwm bits you want. Makes it very easy to tweak the quality/speed for your full panel size and the visual tradeoffs you’re willing to make, if any are required.

the interesting thing is that the FM6126A chips can be driven much faster (6 times faster than the fastest speed allowed by the rPi library), so that allows even bigger panel lengths

No need to be sorry, I think a lot has changed in the 6 years since I wrote the API (based on Adafruit GFX at the time, but I don’t think it could be integrated, or I chose not to). Thanks to you putting it back on my radar, I may make the interface for the APA102-HUB75 adapter AdafruitGFX compatible to make it easy to use for the most number of people, on the most number of boards. I still need to look into the details. I’d really like it if I could contribute scrolling text or other Layer features from SmartMatrix Library back to AdafruitGFX as it would be a shame to lose those features.

I have to say, that sounds real clunky to me, to do the most complex coding on a little micro controller, and sending it to a Linux machine which has way more power and could be running all the code. It does speak to how great the FastLED Library is though, that would drive such a decision as they have such a good API and community sharing cool code. (Hopefully the community survives the Reddit move…)

Do you have a link to order? I have a RPi and a bare hzeller board, maybe even the driver ICs, but it’s enough of a barrier to get it soldered up I haven’t tried his library yet.

300Hz refresh with a lot of pixels sounds real nice. I want my APA102-HUB75 adapter to work as close to a black box as possible though, with a minimal config interface, otherwise after configuration it should be as easy to use as an APA102 panel. Installing software on a Raspberry Pi, with a SD card that may wear out (is that still an issue?), and needing to format, install the OS, install software, run stuff from command line, all that increases the barrier to entry. Then you have a larger form factor, power supply sensitivity, boot up time.

I think it’s a good solution for some, and hope it works well for you.

I don’t follow, if the RPi library can’t drive them that fast, then what can? What is the max RPi library speed?