ACC Keyboard for Open Interface III

Difference between revisions from 2017/12/10 15:20 and 2017/12/10 15:18.
'''UNDER DEVELOPMENT'''
This keyboard plug in [Open interface III] with [IP switch|IP Switch with ESP32-GATEWAY] realize low latency (<4ms with ethernet switch) IP control 16 output relays in two bank. BankA switch each each independet output on/off. BankB switch always one output from eight available. BankA is upper line switch buttons, BankB bottom line.

! Hardware
* [Schematics|https://remoteqth.com/hw/acc-keyboard-for-open-interface.pdf]
* [PCB 3D view|https://remoteqth.com/x3d-preview.php?x3d=acc-keyboard]
* [Soldering  plan|https://remoteqth.com/hw/acc-keyboard-for-open-interface-soldering-plan.pdf]
* [BOM|https://www.tme.eu/cz/parking/8e0bea6d92ace3c132492840ddb7f2db8d9b28dd.html]
| U2,U1 | SO16 | piece 2 | 74HC595 |
| S9,S1,S2,S3,S4,S5,S6,S7,S8,{br}S10,S11,S12,S13,S14,S15,S16 | SW-TACT-12 | piece 16 | TACT-SW2 |
| C1,C2,C10,C17 | piece SMD0805-r | piece 4 | capacitor 4n7 |
| C13,C14,C15,C16 | SMD0805-r | piece 4 | capacitor 100p |
| D1,D2,D3,D4,D5,D6,D7,D8,D9,{br}D10,D11,D12,D13,D14,D15,D16,D17 | SMD0805-LED-r | piece 17 | LED |
| P1 | HDMI_DS1114 | piece 1 | HDMI |
| R12,R13,R14,R15,R5,R6,R7,R8,R9,{br}R30,R31,R32,R33,R34,R35,R36,R37 | SMD0805-r | piece 17 | resistor 270R |
| R16,R17,R18,R19,R20,R1,R2,R3,R4,R21,{br}R22,R23,R24,R25,R26,R27,R28,R29 | SMD0805-r | piece 18 | rezistor 10k |
| C24,C25,C19,C20,C21,C23 | SMD0805-r | piece 6 | capacitor 100n |
| C22 | SMD0805-r | piece 1 | capacitor 10n |
| D18,D19,D20,D21,D22,D23,D24,D25,{br}D26,D27,D28,D29,D30,D31,D32,D33 | SMD0805 | piece 16 | DIODE |
| U3,U4 | SO16 | piece 2 | CD4021B |
| L3,L6,L20 | C_1210 | piece 3 | inductance 10u |
| L4,L5,L8,L9,L14 | C_1210 | piece 5 | ferrite bear |




!Firmware
!!BankA and BankB (ACC keyboard)
Keyboard functionality enable in Open Intrface III firmware with enable below variables to 1
{{
boolean ACC_KEYBOARD    = 1;          // Shift in/out register via ACC
boolean KeyboardAnswLed = 1;          // Keyboard Led shown answered UDP packet from IP RemoteSwitch
}}
Also must be installed and configured ethernet module
{{
boolean ETHERNET_MODULE = 1; // enable ETHERNET module (must be installed)
}}
and [IP Switch with ESP32-GATEWAY] in local network with DHCP
{{
boolean RemoteSwitch    = 1;          // IP controled remote RemoteSwitch
}}
devices are pair in network automaticaly.
How ID are use on actual selected band, determines table in firmware
{{
// BAND TO REMOTE SWITCH ID
int BandToRemoteSwitchID[12] = { /*
IP Switch
  ID
 0-7  */
  0,  // band 0 (no data)
  0,  // Band #1 [160m]
  0,  // Band #2  [80m]
  0,  // Band #3  [40m]
  0,  // Band #4  [30m]
  0,  // Band #5  [20m]
  0,  // Band #6  [17m]
  0,  // Band #7  [15m]
  0,  // Band #8  [12m]
  0,  // Band #9  [10m]
  0,  // Band #10  [6m]
  0,  // Band #11  [2m]
};
}}
By default using on all bands IP switch with ID 0.

!!BankC - rotary encoder
Open Interface III use for IP switching from rotary encoder (BankC) independents hardware. ID calculate automaticaly increase eight from ID for ACC keyboard. This means that in previous situation on all bands rotary encoder (menu 20) use IP switch with ID 8. Range rotary encoder is up to 16 outputs, wich may be limited for each band separately in table
{{
int IpSwBankCrange[8]= { /*
number of IP switch bank C position
 2-16 range */
  16, // ID 8
  8,  // ID 9
  8,  // ID A
  8,  // ID B
  8,  // ID C
  8,  // ID D
  8,  // ID E
  15,  // ID F
};
}}