Hexboard Remix

Zoals (hopelijk iedereen) sommige van jullie weten heeft @brainsmoke een super gaaf project dat hexboard heet:


Klik hier voor een filmpje.

Wat minder van jullie weten is dat @brainsmoke ook de PCBs online heeft staan. Gelukkig heeft ie voor de mindere soldeergoden onder ons, zoals ik, ook geassembleerde te koop. Neem contact met 'm op als jij er ook eentje wil; of druk ze zelf bij JLCPCB, ik kan je niet vertellen wat je moet doen.

De PCB bestaat uit een backplate die genoeg ruimte heeft voor een 16-tal 16-segment modules van het type 5241 met common anode. Je kan ze wel eens vinden op AliExpress voor ongeveer 50-75 cent per stuk.

Op de PCB zit een STM32, deze ontvangt data over UART (later meer) en vertaalt dat zodat alle data bij de juiste segmentjes uitkomt met de juiste waarde(n).

Ik heb dus een gele versie gekocht bij @brainsmoke zonder echt een goed idee te hebben wat ik ermee wilde bouwen. Iets van een notificatie ding. De eerste keer uitproberen was met een USB-UART via een van @brainsmoke’s protobordjes met de gohexdump code uit de hexboard repository.

De PCB verwacht 32 waardes, elke waarde bestaat uit 16 2-byte waardes voor een totaal van 1024 bytes; met daarna een 4-byte end-of-frame marker. Je kan dit ook verdubbelen, een enkele PCB kan een frame ‘overlaten’ aan een volgend PCB op dezelfe UART. De SWDIO pin op de PCB naar ground trekken betekent dat het de ‘eerste’ is. De firmware legt dit vast beter uit dan ik dat kan.

Recent had ik geel filament gekocht, en omdat de LED segmenten in mijn geval ook geel zijn dacht ik: ik kan vast een mooie behuizing tekenen.

@f0x had me recent uitgelegd hoe ik een PCB kan inladen in OnShape, het CAD programma dat ik gebruik. Ik was dat prompt weer vergeten en heb hem dus met de hand getekend.

Vervolgens na heel veel gevloek, gescheld, gehuil, gegil, en andere vormen van emoties:


De behuizing begint ergens op te lijken dus moest ik gaan nadenken over hoe ik de aansturing wil doen. Ik ben momenteel groot fan van de Raspberry Pi Pico dus die moest erin. Mijn idee was om de pico als overpowered USB-to-UART controller in te zetten en de userland software van @brainsmoke te blijven gebruiken.


Uiteindelijk ervoor besloten om er een Pi Pico W in te stoppen (dus met WiFi); zonder deze te gebruiken. Dan kan ik later altijd nog besluiten om netwerk dingen te doen.

De Pico W die ik er nu in heb zitten heeft twee afzonderlijke firmwares die erop geladen kunnen worden (nee ze zijn nog niet af, dus ik deel ze nog niet) de ‘rauwe’ firmware is een USB-UART en werkt dus met de upstream code. De ‘ascii’ firmware snapt ASCII en doet alle vertalingen naar welke segmentjes aan/uit moeten dus in de MCU (dit was ook nodig als ik 'm ooit aan wifi wil hangen). Met de rauwe firmware kun je dus al je kekke effectjes doen en met de ascii firmware kun je screen /dev/ttyACM0 115200 doen en typen maar.


De connector is een (non-compliant) USB-C connector.


2 Likes

\o/
Ik heb op het moment geen PCBs over, maar ik kan ze wel bestellen (ik heb nog voor 5 bars witte modules)
( let wel op bij het bestellen: de common anode 5241 modules (die compatible zijn met de PCB) heten 5241b{kleurcode}, en de common cathode modules 5241a{kleurcode}. )

Wat brakke firmware, STLs, en documentatie hier: GitHub - supakeen/hexline: Firmware and case for a segment display.

1 Like