# HackGadgets AIOv2 AC1200 not seen in Watchdog go?

**URL:** <https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899>\
**Category:** Uncategorized\
**Tags:** hackergadgets-aio\
**Created:** [July 9, 2026, 1:49am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899 "2026-07-09T01:49:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lain](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/lain/32/17188_2.png) [@Lain](https://forum.clockworkpi.com/u/Lain)\
**Post date:** [July 9, 2026, 1:49am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899/1 "2026-07-09T01:49:48Z")

</div>

I recently picked up the AC1200 for my AIOv2 board. I installed it, and Trixie seems to see it ok (using Rex’s Trixie build) However when I try to run WatchDogGo it doesnt seem to see the wireless card? just says no ESP32. Is there a trick or anything I need to do to get it working?

tried reinstalled, USB seems to be seen (USB: On) just doesnt seem to want to see the wifi (just says no ESP32 serial)

Thank you

---

<div class="post-metadata">

**Author:** ![Rex](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/rex/32/16852_2.png) [@Rex](https://forum.clockworkpi.com/u/Rex)\
**Post date:** [July 9, 2026, 2:46am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899/2 "2026-07-09T02:46:44Z")

</div>

I don’t think it’s trying to use the AC1200 card because it’s trying to use something like a XIAO C5.

 ![2026-07-08-224211](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/3X/a/7/a7beaf562674fc0078bf641cb7492f7f7e384e6d.jpeg)  
  
  
From the [Watch Dogs Go](https://locosp.github.io/WatchDogsGo/) site.  
 ![20260708_22h44m31s_grim](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/3X/a/9/a93602ce47f54f928c9f3d481fb5a75e105157ab.png)

---

<div class="post-metadata">

**Author:** ![t8923n](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/t8923n/32/16952_2.png) [@t8923n](https://forum.clockworkpi.com/u/t8923n)\
**Post date:** [July 9, 2026, 10:22am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899/3 "2026-07-09T10:22:31Z")

</div>

Been reading about this but do not want to get another module atm. But I did notice the post in Issues speaking about as solution which does not require ESP32 and should work with AC1200.

> <https://github.com/LOCOSP/WatchDogsGo/issues/3>
>
> \<html\>
> \<body\>
> \<p class="font-claude-response-body break-words whitespace-normal …leading-\[1.7\]"\>\<strong\>Background\</strong\>\</p\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>Running WatchDogsGo on a uConsole CM4 with HackerGadgets AIO v1 with no ESP32/C5 available. Built a Python bridge script (\<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>wdg\_wifi\_bridge.py\</code\>) that emulates the projectZero serial protocol over a PTY, enabling full game functionality using the host's native Linux WiFi and Bluetooth adapters.\</p\>
> 
> \[wdg\_wifi\_bridge.py\](https://github.com/user-attachments/files/27095482/wdg\_wifi\_bridge.py)
> 
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<strong\>How it works\</strong\>\</p\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>The bridge creates a PTY at \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>/tmp/esp32-pty\</code\> and symlinks it so the game can be launched with:\</p\>
> \<div role="group" aria-label="Code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"\>\<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"\>\<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"\>\<button class="inline-flex
> items-center
> justify-center
> relative
> isolate
> shrink-0
> can-focus
> select-none
> disabled:pointer-events-none
> disabled:opacity-50
> disabled:shadow-none
> disabled:drop-shadow-none border-transparent
> transition
> font-base
> duration-300
> ease-\[cubic-bezier(0.165,0.85,0.45,1)\] h-8 w-8 rounded-md backdrop-blur-md \_fill\_10ocf\_9 \_ghost\_10ocf\_96" type="button" aria-label="Copy to clipboard" data-state="closed"\>\<div class="relative"\>\<div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"\>\<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"\>\<path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"\>\</path\>\</svg\>\</div\>\<div class="absolute inset-0 flex items-center justify-center"\>\<div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"\>\<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"\>\<path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"\>\</path\>\</svg\>\</div\>\</div\>\</div\>\</button\>\</div\>\</div\>\<div class="overflow-x-auto"\>\<pre class="code-block\_\_code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(234, 236, 240); background: transparent; font-family: var(--font-mono);"\>\<code style="color: rgb(234, 236, 240); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;"\>\<span\>\<span\>sudo ./run.sh /tmp/esp32-pty\</span\>\</span\>\</code\>\</pre\>\</div\>\</div\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>It intercepts game serial commands and handles them natively on Linux:\</p\>
> \<div class="overflow-x-auto w-full px-2 mb-6"\>
> Command | Handler
> \-- | --
> scan\_networks | iw dev wlan1 scan
> scan\_bt | bleak BLE scanner on hci adapter
> start\_sniffer | tcpdump in monitor mode → pcapng
> start\_handshake / start\_handshake\_serial | airodump-ng + hcxpcapngtool polling
> 
> \</div\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<strong\>Hardware tested on\</strong\>\</p\>
> \<ul class="\[li\_&amp;\]:mb-0 \[li\_&amp;\]:mt-1 \[li\_&amp;\]:gap-1 \[&amp;:not(:last-child)\_ul\]:pb-1 \[&amp;:not(:last-child)\_ol\]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"\>
> \<li class="whitespace-normal break-words pl-2"\>uConsole CM4, HackerGadgets AIO v1\</li\>
> \<li class="whitespace-normal break-words pl-2"\>AC1200 WiFi card (wlan1) — wardriving + BLE\</li\>
> \<li class="whitespace-normal break-words pl-2"\>AWUS036ACM / MT7612U (wlan2) — packet sniff + HS capture\</li\>
> \<li class="whitespace-normal break-words pl-2"\>Internal UART Bluetooth (hci1) — BLE scanning\</li\>
> \</ul\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<strong\>HS Capture approach\</strong\>\</p\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>airodump-ng\</code\> handles the mt76x2u driver better than hcxdumptool on kernel 6.12.x (radiotap header compatibility). The bridge polls the capture file every 10 seconds with \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>hcxpcapngtool\</code\> to detect new EAPOL/PMKID hashes and fires the game's handshake event (\<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>SSID:{name} AP:{bssid}\</code\>) which triggers 200 XP, the handshake\_hunter badge, and map marker.\</p\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<strong\>Systemd service\</strong\>\</p\>
> \<div role="group" aria-label="ini code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"\>\<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"\>\<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"\>\<button class="inline-flex
> items-center
> justify-center
> relative
> isolate
> shrink-0
> can-focus
> select-none
> disabled:pointer-events-none
> disabled:opacity-50
> disabled:shadow-none
> disabled:drop-shadow-none border-transparent
> transition
> font-base
> duration-300
> ease-\[cubic-bezier(0.165,0.85,0.45,1)\] h-8 w-8 rounded-md backdrop-blur-md \_fill\_10ocf\_9 \_ghost\_10ocf\_96" type="button" aria-label="Copy to clipboard" data-state="closed"\>\<div class="relative"\>\<div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"\>\<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"\>\<path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"\>\</path\>\</svg\>\</div\>\<div class="absolute inset-0 flex items-center justify-center"\>\<div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"\>\<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"\>\<path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"\>\</path\>\</svg\>\</div\>\</div\>\</div\>\</button\>\</div\>\</div\>\<div class="text-text-500 font-small p-3.5 pb-0"\>ini\</div\>\<div class="overflow-x-auto"\>\<pre class="code-block\_\_code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(234, 236, 240); background: transparent; font-family: var(--font-mono);"\>\<code class="language-ini" style="color: rgb(234, 236, 240); background: transparent; font-family: var(--font-mono); white-space: pre;"\>\<span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\[\</span\>\<span class="token token section section-name" style="color: rgb(244, 123, 133);"\>Unit\</span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\]\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>Description\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>WatchDogsGo WiFi + BLE Bridge\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>After\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>network.target bluetooth.target\</span\>\<span\>
> \</span\>\</span\>\<span\>
> \</span\>\<span\>\<span\>\</span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\[\</span\>\<span class="token token section section-name" style="color: rgb(244, 123, 133);"\>Service\</span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\]\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>ExecStart\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>/home/fusedstamen/python/WatchDogsGo/.venv/bin/python3 /home/fusedstamen/python/WatchDogsGo/wdg\_wifi\_bridge.py --iface wlan1 --bt-iface hci1 --sniffer-iface wlan2 --no-monitor --loot-dir /home/fusedstamen/python/WatchDogsGo/loot\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>Restart\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>always\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>RestartSec\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>3\</span\>\<span\>
> \</span\>\</span\>\<span\>
> \</span\>\<span\>\<span\>\</span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\[\</span\>\<span class="token token section section-name" style="color: rgb(244, 123, 133);"\>Install\</span\>\<span class="token token section" style="color: rgb(211, 215, 222);"\>\]\</span\>\<span\>
> \</span\>\</span\>\<span\>\<span\>\</span\>\<span class="token token key" style="color: rgb(240, 117, 128);"\>WantedBy\</span\>\<span class="token token" style="color: rgb(211, 215, 222);"\>=\</span\>\<span class="token token value" style="color: rgb(155, 233, 99);"\>multi-user.target\</span\>\</span\>\</code\>\</pre\>\</div\>\</div\>
> \<p class="font-claude-response-body break-words whitespace-normal leading-\[1.7\]"\>\<strong\>Notes\</strong\>\</p\>
> \<ul class="\[li\_&amp;\]:mb-0 \[li\_&amp;\]:mt-1 \[li\_&amp;\]:gap-1 \[&amp;:not(:last-child)\_ul\]:pb-1 \[&amp;:not(:last-child)\_ol\]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"\>
> \<li class="whitespace-normal break-words pl-2"\>You mentioned in issue #1 you'd consider landing a sanitised bridge script under \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>extras/\</code\> with a proper security review pass — happy to work on that if useful\</li\>
> \<li class="whitespace-normal break-words pl-2"\>The script is in my fork at github.com/FusedStamen/WatchDogsGo\</li\>
> \<li class="whitespace-normal break-words pl-2"\>Dependencies: \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>bleak\</code\>, \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>airodump-ng\</code\>, \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>hcxpcapngtool\</code\>, \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>tcpdump\</code\>, \<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-\[0.4rem\] px-1 py-px text-\[0.9rem\]"\>iw\</code\>\</li\>\</ul\>
> \</body\>
> \</html\>

Apparently they have added a bridge to the official repo under extras but it will not be merged with the original install script as I understand.

> After re-reading the latest 378-line version (with `start_sniffer` + `start_handshake` added), the calculus tilts toward keeping it as a community-maintained tool rather than a maintained part of the core, for these reasons:
> 
> - The handshake capture path (`airodump-ng` + `hcxpcapngtool` polling) duplicates what the ESP32 firmware does over serial. If both run at once they fight for the radio. The bridge is correct _for ESP32-less setups_, but inside the main repo it would need explicit ESP32-or-bridge mode selection in the game itself.
> - Adding `airodump-ng` + `hcxpcapngtool` to `setup.sh` changes the dependency footprint for every user, including the 95% who use a real ESP32 and don’t need them.
> - The bridge is the right shape for **community-maintained** : tracks the projectZero serial protocol, lives next to the user’s hardware quirks (which interface, AIO v1 vs v2, MT7612U vs RTL88xx), and gets iterated faster outside our release cycle.

---

<div class="post-metadata">

**Author:** ![Peekaboo](https://avatars.discourse-cdn.com/v4/letter/p/e79b87/32.png) [@Peekaboo](https://forum.clockworkpi.com/u/Peekaboo)\
**Post date:** [July 9, 2026, 10:53am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899/4 "2026-07-09T10:53:16Z")

</div>

Hey Rex,

I saw this and thought you may be interested in the ac1200 holder/support [HackerGadgets AC1200 holder for the Clockwork Pi uConsole by g7ufo | Download free STL model | Printables.com](https://www.printables.com/model/1569730-hackergadgets-ac1200-holder-for-the-clockwork-pi-u)

As well as the xiao internal mount [XIAO ESP32 Internal Mount for uConsole by kerbybit | Download free STL model | Printables.com](https://www.printables.com/model/1716113-xiao-esp32-internal-mount-for-uconsole)

Thank you for all the funky stuff you do!!

---

<div class="post-metadata">

**Author:** ![Rex](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/rex/32/16852_2.png) [@Rex](https://forum.clockworkpi.com/u/Rex)\
**Post date:** [July 9, 2026, 11:11am UTC](https://forum.clockworkpi.com/t/hackgadgets-aiov2-ac1200-not-seen-in-watchdog-go/22899/5 "2026-07-09T11:11:12Z")

</div>

I have the Xiao one save and I plan to use it. Although I don’t plan on using it with watchdogs go.
