├── README.md ├── geabus-packet-structure.png ├── hawk-dryer-interface.docx ├── hewh-interface.docx ├── refrigerator-interface.docx ├── reverse-engineering.txt ├── to12-interface.docx └── viper-dryer-interface.docx /README.md: -------------------------------------------------------------------------------- 1 | GE's official documentation for several appliance API's 2 | 3 | Other API's are not supported (for now), until either me or someone else reverse 4 | engineers them. 5 | -------------------------------------------------------------------------------- /geabus-packet-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/geabus-packet-structure.png -------------------------------------------------------------------------------- /hawk-dryer-interface.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/hawk-dryer-interface.docx -------------------------------------------------------------------------------- /hewh-interface.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/hewh-interface.docx -------------------------------------------------------------------------------- /refrigerator-interface.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/refrigerator-interface.docx -------------------------------------------------------------------------------- /reverse-engineering.txt: -------------------------------------------------------------------------------- 1 | Reverse engineering the GEA Bus 2 | 3 | Electrical characteristics: 4 | 5 | Logic level: 5V 6 | Baud rate: 19200 (or 230400 on full-duplex) 7 | Duplex: Half (sometimes full) 8 | Logic orientation: Inverted 9 | 10 | Packet structure: 11 | 12 | |----------------------Header--------------------||-Data-||--Checksum--||--Footer---| 13 | [start byte][destination][length][source][command][data..][crc16][crc16][end byte(s)] 14 | 15 | Querying/modifying ERDs: 16 | 17 | [start byte][destination][length][source][F0 - read/F1 - write][ERD][ERD][data..][crc16][crc16][end byte(s)] 18 | 19 | Native mode commands: 20 | 21 | 0xC0 Enter native mode 22 | 0xC1 Exit native mode 23 | 24 | List of known ERDs: 25 | 26 | 27 | 0x1003 over temperature alarm 28 | 0x1004 displayed temperature 29 | 0x1005 set point temperature 30 | 31 | ERD commands: 32 | 33 | 0xF0 Read 34 | 0xF1 Write 35 | 0xF2 Subscribe 36 | 0xF3 Subscribe-list 37 | 0xF4 Unsubscribe 38 | 0xF5 Publish/publish ack 39 | 40 | General commands: 41 | 42 | Software info: 43 | CMD: Desc: Response data: 44 | 0x01 Software version [major/AA][major/BB][minor/CC][minor/DD] 45 | 0x04 Get LED brightness (data len: 0c) 46 | [0] [FFbrt] (0x00-0x64) 47 | [1] [FZbrt] (0x00-0x64) 48 | [2] [Rcsbrt] (0x00-0x64) 49 | [3] [FFFZMinDuty] (0x00-0x64) 50 | [4] [FFFZDSMLowMed] (0x00-0x64) 51 | [5] [FFFZDSMHigh] (0x00-0x64) 52 | [6] [FFFZDSMCrit] (0x00-0x64) 53 | [7] [FFFZRampUpTime] (0x00-0x64) 54 | [8] [FFFZRampDownTime] (0x00-0x64) 55 | [9] [MinRcsDuty] (0x00-0x64) 56 | [10] [RcsDSMLowMed] (0x00-0x64) 57 | [11] [RCSDSMHigh] (0x00-0x64) 58 | [12] [RcsDSMCrit] (0x00-0x64) 59 | 0x05 Set LED brightness (data len: 02) 60 | [0] FZ (0x00-0x64) 61 | [1] FF (0x00-0x64) 62 | [2] Rcs (0x00-0x64) 63 | 0x06 Set door alarm status (data len: 01) 64 | [0] (0x41=on, 0x51=off) 65 | 0x13 Get dispense flow meter feedback (data len: 02) 66 | [0] (0x00=active 0x01=not active) 67 | [1] [PulseCount0] 68 | [2] [PulseCount1] 69 | 70 | Diagnostics: 71 | 0x64 Get fault code history (data len: a5)) 72 | [0] Req modifier/idx 73 | [1-2] Fcode0 74 | [3-4] Fcode1 75 | [5-6] Fcode2 76 | [7-8] Fcode3 77 | [9-10] Fcode4 78 | [11-12] Fcode5 79 | [13-14] Fcode6 80 | [15-16] Fcode7 81 | [17-18] Fcode8 82 | [19-20] Fcode9 83 | 0x67 Clear all fault codes 84 | No data sent 85 | 0x87 Reset door count 86 | No data sent 87 | 0x8C Reset dispense counters 88 | No data sent 89 | 0x8E Get cabinet temperatures: 90 | [0-1] FF avg temp (MSB, LSB) 91 | [2-3] FZ avg temp (MSB, LSB) 92 | [4-5] Deli pan avg temp (MSB, LSB) 93 | 0x8F Get filter times 94 | [0-1] Wtr calendar timer (1 count=30 min) (MSB, LSB) 95 | [2] Wtr percent used 96 | [3-4] Wtr time remaining (hr) 97 | [5-8] Usage timer (MSB first) 98 | [10-13] Ounces remaining 99 | [14-15] Odor calendar timer 100 | [16] Odor percent used 101 | [17-18] Odor time remaining 102 | 0x90 Reset water/freshness filter 103 | No data sent 104 | 0x91 Valve open times (MSB first) 105 | [0] modifier 106 | [1-4] Cold VOT 107 | [5-8] Hot VOT 108 | [9-12] M/B I/M VOT 109 | [13-16] D/B I/M VOT 110 | [17-18] Wtr calendar timer (if modifier=1) 111 | [19-20] Odr calendar timer (if modifier=1) 112 | 0x93 Reset count and operation time (MSB, LSB) 113 | [0-1] Reset ctr 114 | [2-3] Days in the field 115 | [4] Hours in the field 116 | [5] Minutes in the field 117 | [6] Seconds in the field 118 | Query command: [e2 00 09 BF cmd crc16 crc16 e3 e1] 119 | Query response: [e2 bf len 00 cmd data... crc16 crc16 e3 e1] 120 | 121 | 122 | Exceptions: 123 | Main board response: [AA][BB][CC][DD][personality][S/W type][DDRMJ][DDRMJ][DDRMN][DDRMN][H/W ver][H/W bd ver][H/W bd ver][GrFmt ver][GrFmt ver][GrFmt ver] 124 | 125 | ==================================REFRIGERATORS:=================================== 126 | 127 | Addressing on bottom-freezer refrigerators: 128 | 0x00 Main board 129 | 0x01 RFID water filter reader 130 | 0x02 Dispenser board 131 | 0x03 Door board 132 | 0xBF WiFi module 133 | 0xCB Reserved for Green/Gray/Blue Bean devices 134 | 0xF0 GEA_I<->GEA_E mailbox 135 | 0xFF Broadcast (same for all appliances) 136 | 137 | Example packets: 138 | 139 | Put into native mode: E2 00 08 CB C0 10 12 E3 140 | Exit out of native mode and reset: E2 00 08 CB C1 00 33 E3 141 | 142 | Read cabin temperatures: E2 00 08 CB 8E B9 18 E3 143 | Dump last 10 error codes: E2 00 08 CB 64 E5 7C E3 144 | Dump operation statistics: E2 00 08 CB 93 7A 84 E3 145 | Clear all fault codes: E2 00 08 CB 67 D5 1F E3 146 | Get s/w version of main board: E2 00 08 CB 01 D9 7F E3 147 | 01 01 04.47.35.00 02 0002 000500 3504 148 | Get s/w version of ACM board: E2 02 08 CB 01 34 17 E3 149 | Get s/w version of door board: E2 03 08 CB 01 42 A3 E3 150 | Get s/w version of WiFi module: E2 BF 08 CB 01 FC 40 E3 151 | Get LED brightness: E2 00 08 CB 04 89 DA E3 152 | Get door open counts: E2 00 08 CB 24 AD B8 E3 153 | Get general control state: E2 00 08 CB 31 EF 2C E3 154 | Get relay, fan, and damper status: E2 00 08 CB 33 CF 6E E3 155 | Get thermistor summary data 1: E2 00 08 CB 34 BF 89 E3 156 | Get thermistor summary data 2: E2 00 08 CB 35 AF A8 E3 157 | Get door board info: E2 00 08 CB 36 9F CB E3 158 | 159 | Turn compressor on: E2 00 09 CB 74 51 EE 98 E3 160 | Turn compressor off: E2 00 09 CB 74 50 FE B9 E3 161 | 162 | ==============================RANGES:============================================= 163 | 164 | Addressing on ranges: 165 | 0x80 Main board 166 | 0xbf WiFi module 167 | 168 | Example packets: 169 | 170 | Put into native mode: E2 80 09 CB A0 01 4F 5E E3 171 | Exit out of native mode and reset: E2 80 09 CB A0 00 5F 7F E3 172 | -------------------------------------------------------------------------------- /to12-interface.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/to12-interface.docx -------------------------------------------------------------------------------- /viper-dryer-interface.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doitaljosh/geabus-documentation/aa48ee03a98b489b38403a69808e6cef0bfc718a/viper-dryer-interface.docx --------------------------------------------------------------------------------