Browse the Available tab to find and install cogs.
⚙ Configure Cog
🔌 ESP32 Hardware Setup
1. Hardware
2. Download
3. Install tools
4. Flash
5. Verify
You'll need an ESP32-S3 dev board with USB-C (the dev kit DevKitC-1 N8R8 or similar). Single chip — no breakouts required.
What this firmware does: the ESP32 runs in WiFi promiscuous mode and ships every CSI (channel state info) frame it sees over UART (115200 baud) to the host (this seed). The seed then forwards them as the sensor stream consumed by 88 DSP cogs.
Already flashed?
Skip ahead — click step 5. Verify at the top of this wizard. If the ESP32 is already connected to the seed, you'll see it under /api/v1/csi/nodes.
Tested boards: ESP32-S3-DevKitC-1, ESP32-S3-WROOM-1. Other S3 variants should work; non-S3 ESP32 boards do not — they lack the IRAM headroom needed by the v0.6.3 firmware.
Latest Cognitum-pinned firmware for the ESP32-S3 CSI node:
SPI flash cache crash fixed (S3 no longer locks up after ~2400 CSI callbacks under load). MGMT-only promiscuous filter, 50 Hz callback rate gate, and esptool v5 compatibility for provision.py. Validated as 3000 callbacks / 0 crashes during a 4-min soak.
Source: ruvnet/RuView v0.6.3-esp32, mirrored under Cognitum branding (same bytes, Cognitum-pinned distribution path). SHA256 sidecar at /sha256sums.txt alongside the binary.
You need Python 3 and esptool. Pick your OS:
Install Python 3 from python.org (tick "Add to PATH"). Then in PowerShell:
py -m pip install --upgrade esptool pyserial
Plug in the ESP32 over USB. Open Device Manager → Ports (COM & LPT) to find the COM port (e.g. COM3, COM7). If the board doesn't appear, install the CP210x or FTDI VCP driver depending on your board.
Install via Homebrew:
brew install esptool
Or via pip (if you prefer):
python3 -m pip install --upgrade esptool pyserial
Find the serial device with ls /dev/cu.usbserial-* /dev/cu.usbmodem*. On Apple Silicon, esptool runs natively under arch -arm64; no Rosetta required.
Most distros ship Python 3. Install esptool with pip:
Pick ESP32-S3, set the file at offset 0x0 to the .bin you downloaded above, baud 460 800. Hold BOOT, tap RESET, release BOOT, then click Program. No drivers needed on Chromium browsers.
Put the board into download mode (hold BOOT, tap RESET, release BOOT) before running the flash command. Some boards do this automatically.
From PowerShell, in the directory where you saved cognitum-esp32s3-v0.6.3.bin:
If you get permission denied, you skipped the dialout group step (see Install tools tab) — fix it with sudo chmod a+rw /dev/ttyUSB0 as a one-shot, or re-run the usermod command and re-login.
Expected output
Hash of data verified. followed by Hard resetting via RTS pin.... After that the board reboots and starts streaming CSI frames.
After flashing, the ESP32 reboots and immediately begins streaming CSI frames over UART. Connect it to a USB port on the seed (or pipe over the network with esp32-uart-to-udp-bridge.py for development).
Troubleshooting
0 nodes detected. The ESP32 is not connected to the seed. Plug it into a USB port on the seed; or run the dev bridge from your laptop: python scripts/esp32-uart-to-udp-bridge.py --port COM3 --seed 169.254.42.1.
Frames detected, no cog data. Install a cog from the catalog (e.g. presence, sleep-apnea) and start it.
Board boot-loops. Wrong chip — confirm ESP32-S3, not original ESP32 / S2 / C3. The v0.6.3 firmware is S3-only.