Skip to content

About

Findings and tools for the Jolla Phone (2026) TOH interface - pogo pins, I2C bus, and driving the Inari Blue cover LED (AW2023) directly

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jp2601-toh

Notes and tools for the Jolla Phone (2026) "The Other Half" (TOH) interface and its LED — measured on real hardware, not derived from marketing material.

Everything here was verified on a Jolla Phone (2026) (jp2601, batch 1) with Sailfish OS 5.2.0.17 (Finlayson) and the Inari Blue special cover.

The interesting part: the cover's LED is not limited to on/off. The cover contains an Awinic AW2023 three-channel LED driver on the pogo-pin I²C bus, and it can be driven directly — fades, brightness and blink patterns included.

What is in here

Path Content
tools/toh-led.py Drive the cover LED: register dump, backup, patterns, restore
tools/toh-led-signal.sh On/off through the service the OS toggle uses (no root)
tools/toh-info.sh Read-only status: cover attached? detector running? bus alive?
docs/toh-hardware.md Pogo pins, detection, ID resistor, EEPROM, TOH daemon
docs/aw2023-led.md The LED chip: bus, address, register map, timings, pitfalls
docs/jp2601-notes.md Operational notes for the device (root, storage, ssu, USB)

Quick start

The LED chip is on /dev/i2c-0; raw access needs root.

# what is attached / is the detector running
./tools/toh-info.sh

# save the factory configuration before touching anything
sudo python3 tools/toh-led.py --backup

# a slow pulse
sudo python3 tools/toh-led.py --rise 0.5 --hold 0.2 --decay 0.5 --off 0.5 --brightness 120

# back to the factory breathing light
sudo python3 tools/toh-led.py --restore

On the phone sudo does not exist — use the developer mode shell:

devel-su python3 /tmp/toh-led.py --rise 0.5 --decay 0.5

Simple on/off, no root, exactly what the "Inari Blue" top menu toggle does:

./tools/toh-led-signal.sh on
./tools/toh-led-signal.sh off

Key findings in one screen

  • The pogo-pin I²C bus is 11d00000.i2c, which comes up as /dev/i2c-0.
  • An AW2023 answers at 0x45 on that bus whenever the cover is attached (all 64 registers readable). It is the cover's LED controller.
  • The phone's own status LED is a second, unrelated AW2023 on 11285000.i2c = i2c-12, driven by the kernel's aw2023_led module, exported as /sys/class/leds/{red,green,blue} and owned by mce. Don't mix the two buses up.
  • Cover presence is reported by /sys/class/yft_pogo_pin/: yft_pogo_pin_int_state, yft_pogo_pin_adc_value, yft_pogo_pin_5v_out_state.
  • The symbiosis daemon described in Jolla's TOH documentation is not installed on 5.2.0.17. What ships is csd-toh, whose jolla-csd-tohd.service runs /usr/libexec/csd/toh-memory --track.
  • That process catches SIGUSR1/SIGUSR2 (SigCgt=0x4a02), which is how the top menu toggle switches the LED — the signal API is usable from a shell.
  • Writes to the AW2023 are not reliable when issued back to back: a restore of 64 registers lost 0x34 and 0x37 until writes were spaced out and verified by read-back. Always verify, never trust the write's return code. This was the single most misleading behaviour we hit.
  • Timing values are quantised as t = 31.25 ms · v² with v in 0..15, so the longest single phase is ~7.03 s and requests get rounded (0.2 s → 0.281 s).

Status / scope

  • Verified: bus, address, register dump, pattern writes, restore, signal API, cover detection, the write-drop pitfall.
  • Not verified / open: which of the three PWM channels physically lights the logo (only channel 0 was used), whether the cover EEPROM can be read without disturbing the detector, and whether the --brightness scale is linear.
  • The official TOH specification deliberately defines no LED protocol ("It does not implement features provided by specific TOHs"), so this register-level access is what there is for now.

Sources

Disclaimer

Unofficial. Not affiliated with Jolla. Talking to the LED controller is harmless as long as you keep a baseline, but you are writing to hardware registers on your own device — use at your own risk, and read docs/aw2023-led.md before experimenting.

License

MIT, see LICENSE.

About

Findings and tools for the Jolla Phone (2026) TOH interface - pogo pins, I2C bus, and driving the Inari Blue cover LED (AW2023) directly

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages