Hardware
Every subsystem, mapped 1:1 to the fleet master matrix — and exactly where it stands.
Boot
LIVEMainline 6.12.100 LTS boots to userspace through coreboot + depthcharge vboot — A/B kernel slots, the first ChromeOS-style bootloader in the fleet.
Access / SSH
LIVEWiFi + a private VPN and a USB-C gadget-net channel (172.16.42.1) are both live shell paths — the daily dev route.
Display / panel
LIVE2560×1800 DSI panel renders via KMS; lp8557 backlight with cros-ec ambient-light auto-brightness + staged idle dim.
Touchscreen
LIVESynaptics HID-over-I2C multitouch through the generic i2c-hid driver — no vendor blob.
WiFi
LIVE · 5 GHzBCM4354 over SDIO on mainline brcmfmac — associated at 5745 MHz (ch 149), −58 dBm, verified on hardware. The earlier claim that "5 GHz association is unsupported on this driver" was wrong and is retracted: the block was never the driver, it was that the only 5 GHz AP in range was not broadcasting, plus a regdom that had to be set (US) before the band was usable. Real remaining limits are narrower — brcmfmac SAE is offload-only, so no WPA3 or FT, and DFS channels are firmware-owned.
Bluetooth
LIVEBCM4354 controller enumerates; A2DP audio-out confirmed end-to-end (first sound out of the device was over BT). BCM4354.hcd firmware shipped.
GPU / acceleration
LIVENouveau drives the GM20B Maxwell GPU with HW GLES2 + a first-in-fleet mainline NVK Vulkan path (glmark2 ~560, GZDoom on Vulkan). gamescope@720p is the playable game path.
Wayland / compositor
LIVEsway runs on the HW GLES2/tegra compositor (WLR_DRM_NO_ATOMIC) — the whole read-only shell renders here.
Audio out — speaker
LIVEFIRST mainline Pixel C speaker audio. RT5677 (I2C) → internal DAC→ADC loopback → AIF2 codec-to-codec → MAX98357A. The key nobody had: the I2S1 link is DSP_A 4-slot TDM, so stereo must ride a 4-channel PCM. UCM + sway autostart baked.
Audio in / mic array
LIVEFour-DMIC far-field array captures on mainline — DMIC → rt5677 Stereo1 ADC2 leg → AIF1TX → I2S1 → ADMAIF, mic in TDM slots 0/1. Validated on-HW (record→playback loop). Far-field, not a call mic — noise-suppression tuning is next.
Sensors
PARTIALAccel streams via IIO polling → an auto-rotate daemon drives screen rotation; the folio-lid hall sensor is read through the ChromeOS EC. Gyro/mag/ALS/prox remain EC-routed, not all wired.
Battery + charger
LIVE · CAP UNRELIABLEbatteryd is live — first fleet deploy — and bq27742 State-of-Health telemetry is solid (the two units read 100.4 % at 41 cycles and 67.7 % at 970). Charge control is EC-locked, so the USB-PD port-override is the only knob, and it does not hold: the history shows a clean 51–65 % band working and then silently releasing, leaving the pack at 100 % for ~21 h with no full-charge flag set. Also measured: on a host port the EC negotiates SDP 500 mA (2.5 W in) against 4.2 W drawn at rest, so the tablet net-discharges while plugged in.
USB-C gadget / net
LIVEDevice-mode networking over USB-C works (172.16.42.1, SSH-over-USB) via an EC-managed VBUS role toggle; USB2-only gadget DT for stability.
Power at rest
MEASUREDThe repose ladder stages the backlight down and snaps awake on touch, and the panel genuinely sleeps. What that hid: the SoC does ~659 timer wakeups/s while Asleep — 33x the 20/s budget — traced by ftrace to the embedded controller re-asserting EC_CMD_GET_NEXT_EVENT ~90x/s forever, because its sensor FIFO never arms and the events are drained and discarded. Not userspace: unbinding the sensorhub changes nothing. full SoC suspend/resume not yet exercised.
Cameras
BLOCKED · HWRear IMX219 DT is software-complete and matches the vendor config, but the sensor is silent on a live i2c bus — a ribbon/HW fault on this unit. Needs a physical reseat, not more code.
Modem
N/APixel C shipped WiFi-only — no cellular modem hardware exists to bring up.
RO shell
LIVEThe fleet read-only shell runs: double-tap / any-touch wake, staged DPMS rest, auto + locked rotation, lisgd swipe gestures, touch-boost snappiness, Widevine streaming.
Beyond Android
Capabilities the frozen 2015 firmware never allowed — some already live, some queued right behind the next rung.
A living kernel
An unmodified upstream 6.12 LTS kernel where Android froze at 3.18 (Marshmallow, 2015) — a decade of security and driver work, still landing.
First mainline speaker audio
The internal MAX98357A speaker plays on a mainline kernel for the first time — RT5677 DAC→ADC loopback out AIF2 to the amp, with the 4-slot-TDM channel trick that unblocked it. UCM-baked; games play music.
Battery intelligence
batteryd is live — the first fleet deploy — reading bq27742 State-of-Health telemetry through the cros-ec tunnel; charge control is EC-locked, so the USB-PD port-override is the lever.
Gesture navigation
Swipe-based navigation is live via lisgd, with staged idle-rest + touch/keyboard wake alongside it — haptic commit and paired audio cues are the next layer.
Screen wake
Staged graceful rest (backlight settles 50%→18%) that snaps awake on a keyboard key or the power button. The literal double-tap-to-tap is still grabbed out of dt2w — a daemon fix in flight.
Widevine DRM in Firefox
Netflix/HBO-Max-class Widevine L3 streams decrypt and play in Firefox — ChromeOS's arm64 CDM bridged onto Alpine/musl via gcompat plus a custom LFS64 shim. First proof in the fleet.
Road to RO-OS
The P0→P7 phase ladder every device in the fleet climbs. Pixel C sits at P6 — the RO-OS shell runs.
Target track
Accelerated GL / nouveau, arm64, 3–4 GB RAM — RO on GLES2 / zink, most spring physics, reduced blur. Native-first apps with light Waydroid. Pixel C shares this track with the Nexus 9 (pending its own GK20A fix).
Track 2 — RO StandardWhat P6 means
The bespoke RO-OS read-only shell actually runs on the device: double-tap-wake, DPMS blank/wake, auto + locked rotation, swipe gestures. This is the rung where the device stops being "Linux booted" and starts being the fleet's UI.
The % model
P0≈5 · P1≈15 · P2≈30 · P3≈45 · P4≈60 · P5≈75 · P6≈90 · P7=100
The parity ring above reads the live subsystem tally — 12 of 17 working — while this ladder tracks the P0→P7 milestones the whole fleet shares.
Live sprint
What's on the bench right now, and the next rung after it.
Inside P6 — polishing the RO-OS shell toward full parity
RT5677 (I2C) → internal DAC→ADC loopback → AIF2 codec-to-codec → MAX98357A. The unlock nobody had: the I2S1 link is DSP_A 4-slot TDM, so stereo must ride a 4-channel PCM. UCM + sway autostart + volume clamp all baked; SuperTuxKart plays music.
Nouveau HW GLES2 + first-in-fleet mainline NVK Vulkan (glmark2 ~560, GZDoom on Vulkan); sway runs the whole shell on the tegra compositor.
Folio BT keyboard pairs + wakes the screen; lisgd swipe gestures, auto/locked rotation, staged idle-rest, touch-boost snappiness, Widevine streaming — the RO-OS bar is up.
DMIC clock is live (rt5677 GPIO2 hog); the capture route is being mapped (same 4-channel-TDM rule as playback). Double-tap-wake works via keyboard/power but the tap itself is grabbed out of dt2w — a daemon fix.
Detail-oriented pass, verifying subsystems against spec. Fixed the #1 blocker: elogind lid-close was suspending into Tegra SC7 (no resume path on coreboot) and wedging the tablet — now never system-suspends. Baked the whole RO-OS UX (tappable WiFi/BT/Power bar, gestures, rest daemons) so a fresh flash comes up complete. Measured ~3-day idle standby.
The stragglers, now measured against spec: WiFi runs on 2.4 GHz because the SDIO bus was clocked at 19.2 MHz not 50 (kernel fix pending HW validation) and the local AP's 5 GHz radio wasn't broadcasting — the tablet's own 5 GHz is proven working. Memory was found pinned at 800 MHz vs the 1600 MHz LPDDR4 spec (no DVFS) — a feasible port of the vendor's open DVFS table is planned. Rear camera HW-blocked (ribbon), batteryd SoH tuning continues.