Setup & Getting Started
Technical Specifications

- Provides phase-coherent CSI for 802.11g/n/ax packets
- Bandwidth: 20 MHz, or 40 MHz for 802.11n channel bonding
- 100BASE-TX Ethernet with PoE for data / power
- IEEE 802.3at Type 1 compliant PoE (class 3)
- 8× dual-polarized patch antennas (mixed linear / circular)
- Reference signal input / output for coherent multi-array setups
- λ / 2 antenna spacing (60mm)
- Power Consumption: ~3.5W
- Further details to be published!
1 PowerPower on ESPARGOS

You have two options to power ESPARGOS:
- Power over Ethernet (PoE): Connect an IEEE 802.3at Type 1 compliant PoE injector or switch to the Ethernet port of ESPARGOS. ESPARGOS will automatically detect the PoE power and use it to power both the controller and sensor boards. This is the most convenient way to power ESPARGOS, as it requires only a single cable for both power and data.
- USB-C: Connect a USB-C power supply to ESPARGOS (or just connect it to your computer). Make sure it can provide at least 1A of current at 5V.
2 ConnectionConnect to ESPARGOS
Choose one of the following connection methods before opening the web interface:
Over Ethernet (Recommended)
The default IPv4 address configuration of ESPARGOS is 192.168.1.2/16.
- Connect your computer to ESPARGOS. Make sure there is no other device in the network using IP address
192.168.1.2. - Change your computer's IP address settings to:
- IP address:
192.168.1.100 - Subnet Mask:
255.255.0.0 - Other IP address settings will also work, as long as your computer is in the
192.168.1.0/16subnet. - Open http://192.168.1.2
- ESPARGOS also supports IPv6, both link-local and global addresses (addresses shown on web interface).
Over USB (Limited Throughput)
The USB interface of ESPARGOS is actually connected to a USB-to-serial converter, so it has limited throughput compared to the Ethernet interface. For demanding real-time applications, we recommend using the Ethernet interface.
Use the UART router script from pyespargos. If you do not have pyespargos installed yet, jump forward to step 4 first.
- Connect ESPARGOS to your computer via USB-C.
- ESPARGOS will appear as a serial (UART) device on your computer. By default, this serial device will only show debug output, but ESPARGOS can be put in a special mode that tunnels traffic through UART.
- For this, run the UART router:
python tools/espargos-uart-router.py uart:/dev/ttyUSB0- Replace
/dev/ttyUSB0with the serial device used by ESPARGOS on your computer (could also be e.g./dev/ttyACM0, orCOM3). - Open http://127.0.0.1:8400 (the IP / port displayed by the UART router).
3 ConfigurationAccess Web Interface
The ESPARGOS controller runs a web server, which provides a WebSocket / HTTP API for controlling ESPARGOS and streaming CSI data, as well as a user-friendly web interface to configure ESPARGOS.
Open the address matching the connection method you chose (these are only the default addresses, may vary if you configured a different IP address / port):
- Ethernet: http://192.168.1.2
- USB UART router: http://127.0.0.1:8400


- Network configuration and hostname (ESPARGOS supports mDNS)
- WiFi settings (channel, power) and calibration behavior
- Perform a factory reset
- Upload or automatically download firmware updates (only available via Ethernet connection)
4 PythonInstall and use pyespargos
Use pyespargos to capture CSI data from Python, combine multiple ESPARGOS arrays, calibrate measurements and run the included demo applications.
Installation instructions, examples and demos are maintained in the pyespargos README.
pyespargos supports both the Ethernet and USB connection methods described above:
- Ethernet: pyespargos can connect directly to the IP address of ESPARGOS (e.g.,
./demos/instantaneous-csi/instantaneous-csi.py 192.168.1.2). - USB UART router: pyespargos can connect to the serial device used by ESPARGOS (e.g.,
./demos/instantaneous-csi/instantaneous-csi.py uart:/dev/ttyUSB0). The UART router must not run simultaneously.
Reboot and Factory Reset
To simply reboot ESPARGOS, use the web interface, use the reboot button or power cycle the device. This will wipe ephemeral data, but keep all static settings intact.
The easiest way to perform a factory reset is to use the web interface. If you cannot access the web interface, press and hold the button right next to the USB-C connector for 5-10 seconds until the controller reboots. The factory reset will wipe all settings (including network settings), but it will not revert to an older firmware version.
If you suspect that the controller firmware is corrupted, please consider firmware recovery options.

Reference Signal Output / Input

There are two SMA connectors on the back of ESPARGOS:
- The SYNC OUT connector: If ESPARGOS is in Master mode, outputs the 40MHz reference signal generated by the controller board, a 3.3V DC bias voltage (e.g., for powering active splitters) as well as the 2.4GHz phase reference signal, if currently active.
- The SYNC IN connector: If ESPARGOS is in Slave mode or Master mode, expects an external 40MHz reference signal and the 2.4GHz phase reference signal, if used.
Dimensions and Mounting Options
ESPARGOS is 240mm wide, 120mm high and 26.5mm thick.- VESA Mount: ESPARGOS provides standard-compatible 100mm VESA mounting holes for M4 screws. The following drawing may be helpful:
- 1/4" Tripod Mount: On the lower side of the case, there is a standard 1/4"-20 tripod mount hole for mounting ESPARGOS on camera tripods or other compatible mounts:
- Combined Arrays: There are two pairs of M4-sized holes on all four sides of the ESPARGOS case, which can be used to bolt multiple ESPARGOS units together to form larger arrays. One of the holes in the pair could be used for mechanical assembly, the other one can be used to run a small coaxial cable for synchronization.
