06 — HMI¶
Uppbyggnad¶
HMI är byggt av:
- -PH10 Waveshare 10.1-DSI-TOUCH-A skärm
- -KE10 Waveshare ESP32-P4-WIFI6-POE-ETH styrkort till skärmen
- -KF20 anslutningskort mellan styrkortet och manöverdonen
IP-adress: 192.168.100.20 Programmerings-IDE: PlatformIO
Manöverdon¶
| Beteckning | Don | Typ |
|---|---|---|
| -SJ11 | Reset säkerhetsrelä | Knapp, blå |
| -SJ12 | Start | Knapp, grön |
| -SJ13 | Stop | Knapp, röd |
| -SJ14 | Handratt | CNC handwheel rotary encoder, 100 ppr, 5 V |
Beteckningarna är satta 2026-10-01 (SJ = finger interaction), se 09-referensbeteckningar.md.
Encodern är kopplad till HMI:ns ESP32-styrkort -KE10. Ingångar från knappar och encoder ansluts genom en nivåomvandlare 5 → 3,3 V.
Anslutnings-PCB (-KF20)¶
Kretskortet är ritat och draget i KiCad — projektet ligger i hardware/hmi-anslutningskort-A20/, rev J. Där finns också schemat som PDF och en README med komponenter, ledarbredder och allt som ska kontrolleras innan kortet beställs. KiCad-filerna är facit för hur kortet är konstruerat.
Beteckningarna här följer SS-EN IEC 81346-2:2019: kortet är -KF20 och kontakterna -XG3/-XG5/-XG6 (fullständigt -KF20-XG3 osv.). KiCad-projektet i rev J och kortets silkscreen har ännu -A20 och -X3/-X5/-X6 — samma kontakter, samma stift. Byts vid nästa revision av kortet.
Kortet är 54 × 40 mm, 2 lager, med:
- 2×20-polig honlist (J1) mot P6 på ESP32-P4-kortet
- CJMCU-0108-modul (U1, TXS0108E) på 2×10 sockel
- Tre JST XH-kontakter för fältanslutning (-XG3, -XG5, -XG6)
Alla komponenter sitter på ovansidan — JST-kontakterna, CJMCU-modulen och 2×20-listan. Därför har J1 ett speglat fotavtryck: sett ovanifrån sitter J1 stift 1 (+5V) längst till höger i den inre raden, närmast U1, i samma ände som CJMCU:ns OE- och GND-stift.
Längden är satt av 2×20-listan, som är omkring 51 mm — kortet kan inte göras kortare utan att byta headerns format.
Layout: bilder/hmi-anslutningskort-layout-rev-j.png
Inga skruvplintar och inga lysdioder. All fältanslutning går genom JST XH-kontakter.
J1 — stift som används på P6¶
| Stift | Signal | Går till |
|---|---|---|
| 1 | +5V | U1 VB, -XG6:1, -XG3:3 |
| 5 | GND | U1 GND, -XG6:3, -XG5:5, -XG3:1 |
| 8 | GPIO23 | ENC_B → U1 A8 |
| 12 | GPIO21 | ENC_A → U1 A7 |
| 14 | GPIO20 | SW_STOP → U1 A6 |
| 18 | +3V3 | U1 VA och OE |
| 20 | GPIO3 | SW_START → U1 A3 |
| 22 | GPIO2 | SW_RESET → U1 A2 |
Jord tas bara från P6 stift 5. Stift 26 och P6:s övriga jordstift är inte anslutna på kortet.
Fältkontakter¶
| Kontakt | Anslutning |
|---|---|
| -XG6 JST-XH-6P-M | Encoder -SJ14 |
| -XG5 JST-XH-5P-M | Knappar -SJ11…-SJ13 |
| -XG3 JST-XH-3P-M | Matning till skärm -PH10 |
-XG6 JST-XH-6P-M — encoder -SJ14¶
| Stift | Signal | CJMCU | GPIO |
|---|---|---|---|
| 1 | +5 V | — | — |
| 2 | Ledig | — | — |
| 3 | GND | — | — |
| 4 | Ledig | — | — |
| 5 | ENC_B | B8 | GPIO23 |
| 6 | ENC_A | B7 | GPIO21 |
Stift 1 matas från J1 stift 1 och stift 3 från J1 stift 5.
-XG5 JST-XH-5P-M — knappar -SJ11…-SJ13¶
| Stift | Signal | CJMCU | GPIO |
|---|---|---|---|
| 1 | SW_STOP (röd, -SJ13) | B6 | GPIO20 |
| 2 | Ledig | — | — |
| 3 | SW_START (grön, -SJ12) | B3 | GPIO3 |
| 4 | SW_RESET (blå, -SJ11) | B2 | GPIO2 |
| 5 | GND | — | — |
Stift 5 är knapparnas gemensamma retur — alla tre sluter mot den.
-XG3 JST-XH-3P-M — matning till skärm -PH10¶
| Stift | Signal |
|---|---|
| 1 | GND |
| 2 | Ledig |
| 3 | +5 V |
Polariteten är omvänd mot äldre dokumentation. Projektunderlaget angav stift 1 = +5 V och stift 3 = GND. Rätt är tvärtom. En kabel tillverkad efter den gamla uppgiften lägger +5 V på skärmens jord.
Trepoliga kontakten ändrades inte när allt flyttades till samma kortsida, till skillnad från de andra två. Bekräftat 2026-09-27.
Stiftförklaringarna står tryckta på kortet under varje kontakt och stämmer med tabellerna ovan.
Ingångar — ESP32-P4¶
| GPIO | Funktion | CJMCU-kanal | Fältkontakt | Stift |
|---|---|---|---|---|
| GPIO21 | Encoder A, -SJ14 | A7/B7 | -XG6 | 6 |
| GPIO23 | Encoder B, -SJ14 | A8/B8 | -XG6 | 5 |
| GPIO2 | Knapp RESET (blå), -SJ11 | A2/B2 | -XG5 | 4 |
| GPIO3 | Knapp START (grön), -SJ12 | A3/B3 | -XG5 | 3 |
| GPIO20 | Knapp STOP (röd), -SJ13 | A6/B6 | -XG5 | 1 |
Knapparna sluter mot GND och läses aktivt låga (kActiveLow = true i
include/button_manager.h). Kortet har varken pull-up eller pull-down —
TXS0108E:s inbyggda cirka 40 kΩ mot VB håller ingången hög i vila.
Enbart ingångar används. Lysdioderna i knapparna är borttagna, och GPIO22, GPIO5 och GPIO4 används inte längre. All utgångsstyrning för dem är borta ur firmwaren.
Källa för GPIO-tilldelningen är HMI-firmwaren i Boxter83/Flip-HMI
(include/button_manager.h, include/encoder_manager.h), verifierad i drift.
Kanaltilldelningen på CJMCU ändrades 2026-09-27 så att kanalnumret följer GPIO-numret: A2/B2 bär GPIO2 och A3/B3 bär GPIO3. Tidigare var de korsade. Ändringen är ren kortdragning och påverkar inte firmwaren — knapparna sitter kvar på samma GPIO. Kommentarerna i Flip-HMI är rättade efter den nya kopplingen.
CJMCU-modul (nivåomvandlare, U1 på -KF20)¶
A-sida (3,3 V)¶
| Stift | Kopplad till |
|---|---|
| VA | +3V3, P6 stift 18 |
| A2 | GPIO2 |
| A3 | GPIO3 |
| A6 | GPIO20 |
| A7 | GPIO21 |
| A8 | GPIO23 |
| OE | +3V3 (alltid aktiv) |
B-sida (5 V)¶
| Stift | Signal | Går till |
|---|---|---|
| VB | Matning B-sidan | +5 V, P6 stift 1 |
| B2 | SW_RESET | -XG5 stift 4 |
| B3 | SW_START | -XG5 stift 3 |
| B6 | SW_STOP | -XG5 stift 1 |
| B7 | ENC_A | -XG6 stift 6 |
| B8 | ENC_B | -XG6 stift 5 |
| GND | — | GND, P6 stift 5 |
B1, B4 och B5 med motsvarande A-kanaler är lediga reservkanaler.