Initial research on the Google Nest Wifi Router (model H2D, board name mistral), putting Linux on it

2023/10/06

This seems to be a ChromeOS based device that boots using depthcharge much like the Google Onhub or Google Wifi (AC-1304) puck. Qualcomm based, like all the other Google routers, with an uncommon SoC (QCS404), the 4gb of flash that is typical in Google routers, and 1gb of RAM. It has an internal debug button and an internal hidden USB-C port that likely serves a similar function to those on the Google Wifi. I don’t know if it can be powered from this port, though. I’m guessing not.

As this person has pointed out, the process to put the router into developer mode seems to be exactly the same - hold the reset button for too long, wait for it to flash red, then hit that internal button to boot off of USB. One problem - the developer mode button and USB-C port are entirely unpopulated on the model that I got, so I’m kinda stuck at the first hurdle! I can probably get it into dev mode by manually shorting the pads, but no USB-C port means no USB storage.

There’s a cluster of 11 test points that can be reached without opening the router - simply take the bottom sticker off of this. It’s shaped sorta like a house, and has a 3x3 cluster, with two more next to it. My baseless speculation, which I’ll eventually test with a multimeter, is that this is possibly USB 3.0 (or whatever 5Gbps USB is called today) + the developer mode button, and might be used for flashing it in the factory? I may end up 3d printing a pogo pin jig so that I can properly analyze what’s going on with these test points.

Here is the device tree specific to the mistral board used in the ChromiumOS build. I’m unsure if these can be used as-is.

The wireless chip is “wcn3990” - as taken from the qcs404 device tree file in mainline Linux. Supported by ath10k as you might expect, since this is a newer Qualcomm chip.

>> Home