Skip to content

Add reverse-engineered WiFi/UART/cloud protocol documentation - #7

Open
Sebbeben wants to merge 4 commits into
Jutta-Proto:mainfrom
Sebbeben:wifi-protocol-docs
Open

Add reverse-engineered WiFi/UART/cloud protocol documentation#7
Sebbeben wants to merge 4 commits into
Jutta-Proto:mainfrom
Sebbeben:wifi-protocol-docs

Conversation

@Sebbeben

@Sebbeben Sebbeben commented Jun 3, 2026

Copy link
Copy Markdown

What this adds

Reverse-engineered documentation of the JURA WiFi Connect (TT237W) dongle's protocols, under a new
protocol/ folder:

  • WiFi LAN control protocol — the dongle runs its own TCP + UDP server on port 51515 speaking a
    line-based @H… command set (@HI/@HL/@HY/@HW/@HR/@HT/@HP/@HU/@HB/@HO/@HD/@HE), with the actual
    machine commands tunnelled over a *-prefixed keyed-nibble channel. This means the stock dongle can
    be controlled locally over the LAN, with no cloud.
    Onboarding SoftAP SSID is CoffeeMachine_<id>.
  • JURA UART protocol — 9600 8N1, the keyless 0x5B 4-bytes-per-byte transfer encoding, the V2
    @T1/@T2/@T3 handshake, and the older V1 command vocabulary (HZ:/RE:/WE:/…). Largely your
    prior work, summarised for context with full credit.
  • Cloud architecture — Keycloak (keycloak.pocketpilot.jura.com, realm Jura), joeapi.jura.com,
    and the pocketpilot backend, observed from the J.O.E. app; plus the finding that the firmware's
    +CIPUPDATE/download_rom path is stock ESP-AT example code pointing at iot.espressif.cn with no
    TLS cert verification.

How it was derived

Static analysis (Ghidra/Xtensa) of a dongle's firmware dump and decompilation of the J.O.E. Android app.

⚠️ Not yet verified on live hardware (no compatible machine on hand). Everything is clearly labeled
as a reverse-engineered working hypothesis — please treat it as such until confirmed with a
packet/UART capture. Corrections very welcome.

Notes

  • Documentation only — no JURA proprietary binaries (firmware dump, decompiled firmware, or the
    J.O.E. APK) are included.
  • Builds on and credits Jutta-Proto, COM8/esp32-jura, mkalen/jura-smartconnect-wifi, and juramote
    (see REFERENCES.md).
  • The README gets one added "Reverse-engineered protocol documentation" section; existing content is
    untouched.

Sebbeben added 4 commits June 3, 2026 11:05
protocol/: the dongle's WiFi LAN control protocol (TCP/UDP 51515, @h* command set + * machine
passthrough), the JURA UART protocol (9600 8N1, 0x5B codec, V1/V2), and the JURA cloud architecture.
Plus REFERENCES.md and a README section. Clearly labeled reverse-engineered & not yet hardware-verified;
no proprietary binaries included.
…ormant

Adds protocol/firmware-images.md and updates cloud-architecture.md + README to reflect that the
booted firmware has no ESP-AT/cloud client; the ESP-AT cloud image present in flash is never booted.
- wifi-local-protocol.md: mark VERIFIED on hardware (real @HP/@HY/@HI/@hl replies),
  fix SoftAP (WiFiFrog_<MAC>, open, 192.168.24.1), replace the wrong *-codec formula
  with the solved shuffle + TT237W S-box tables (same algorithm as JURA Bluetooth,
  Jutta-Proto/protocol-bt-cpp ByteEncDecoder).
- src/wifi/ByteEncDecoder.{hpp,cpp,_test.cpp}: C++ reference codec + self-test
  (involution + decodes real captured frames to exact ASCII; g++ -Wall -Wextra clean).
- README: status -> WiFi LAN protocol hardware-verified; codec reference added.
- add .gitignore (shield the private firmware dump / .claude from this public fork).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant