Gå till innehållet

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.