Find the ESP32 boards with a bad antenna.

Flash an ESP32-C3 or ESP32-S3 from this page, measure it, and get a verdict with the reasoning attached. Add a second board you trust and the two are compared directly. Nothing leaves your machine.

This browser cannot talk to serial ports. Web Serial needs a Chromium desktop browser such as Chrome, Edge or Opera, over HTTPS. Section 05 runs the full tester on your PC instead.

Board under test

Not connected
Chip
-
Wi-Fi MAC
-
Firmware
-
Hardware
-
SDK
-

Reference board

Not connected
Chip
-
Wi-Fi MAC
-
Firmware
-
Hardware
-
SDK
-

Optional. Without it a run is scored against a stored baseline instead, and the ESP-NOW comparison is skipped.

The password is held in this page only while the tab is open. It is never written to disk, never stored in the browser, and never sent anywhere. Leave both fields empty to run the ESP-NOW pair sweep on its own.

Locking to one BSSID keeps every run on the same access point, so a roaming mesh cannot make two boards look different. Scan lists the access points the board under test can see for the name above.

-
          StagePowerRSSILossDetail
          Serial log
          02

          Compare boards

          Every board you have measured, side by side, using its newest run that carries the metric. This is the question the bench exists to answer: not whether one board is good, but which of yours is worse than the rest.

          Nothing to compare yet. Measure two or more boards and they line up here.

          03

          Position swap

          One reading at one spot cannot tell a weak antenna from an unlucky position: multipath can move AP scan RSSI more than a real fault does. Measure the boards, physically swap where they sit while leaving the USB cables put, and measure again. Averaging each board across the two positions cancels the spot and leaves the number that follows the board.

          Set a Position in the run form before each run: run every board at Position 1, swap the boards, then run them all again at Position 2. Boards measured at two or more positions line up below, worst antenna first, with how much the position alone moved things.

          04

          History

          Runs are kept in this browser, keyed by the board's Wi-Fi MAC, so a board you measured last month is still the same board. Export writes a JSON file the local application can read, and import brings one back.

          No runs yet. Connect a board and run a test.

          WhenBoardProfileVerdict
          05

          What it measures

          Every stage below runs from this page. The board does its own measuring, which is why none of it needs software on your machine.

          StageWhat it tells youSecond board?
          AP scan RSSIHow well the board hears your access point, averaged over several scansNo
          Association powerWhether the board can hold an association at full transmit power, or only below itNo
          Loss and round-trip timeICMP from the board to your gateway, so the path through the access point is measured end to endNo
          UDP throughputReal Mbps between the two boards across the access point, both directionsYes
          ESP-NOW pairDirectional receive and transmit RSSI against the reference, swept across transmit powerYes
          Hardware detailsFlash, heap, PSRAM, chip revision, cores, CPU MHz, SDK versionNo
          06

          How a verdict is reached

          Antenna verdicts come from the ESP-NOW comparison, measured in both directions across the power sweep. Loss through your access point is recorded and reported, but it describes your network, not the board, so it never sets a hardware verdict on its own. Every verdict carries the reason it landed where it did.

          Most trustworthy

          Live reference

          Connect a board you trust. The comparison runs in the same spot at the same moment, which cancels out the environment.

          For volume

          Master baseline

          Mark an earlier good run as the baseline. Later single-board runs are scored against its scan RSSI and throughput, so you can screen a pile of boards with nothing else connected.

          A real fault. One ESP32-C3 SuperMini in the test set fails every association at 20 dBm and connects in under two seconds at 17 dBm and below, on two different access points, while its receive path stays healthy at -36 dBm. That is the known mis-tuned antenna matching network on a batch of C3 SuperMini and LOLIN C3 Mini boards. The run reports it as a hardware FAIL naming the power it managed, then finishes at that power so the rest of the measurements stay usable.

          07

          Run locally

          The local application runs the same stages and adds what a browser cannot keep: a durable database, charts across runs, batch queues, and an access point lock. It serves its own interface at 127.0.0.1:8765.

          What it addsWhy
          SQLite historyA real file you can back up and move between machines, rather than one browser profile
          Comparison chartsEvery device plotted together across runs
          Batch queueCheck several boards, confirm the erase once, and walk away
          Access point lockPins the association to one BSSID and channel and records the neighbourhood, so two boards are compared under the same conditions
          Credential ManagerYour Wi-Fi password is stored by Windows rather than retyped each session

          Requirements: Windows, PlatformIO, and an ESP32-C3 or ESP32-S3 board on USB.

          # 1. get the code
          git clone https://github.com/Keralots/ESP32WiFiTester.git
          cd ESP32WiFiTester
          
          # 2. set up and start
          .\tools\setup.ps1 -Dev
          .\tools\start.ps1
          1. Connect one or more boards by USB, plus a reference board if you have one.
          2. Open Run Test. Every connected board appears in one list, and Identify reads each chip and MAC.
          3. Check the boards to test, pick a reference or an access point lock, choose Quick, Standard or Full.
          4. Progress streams into the run monitor. When the queue finishes, open a run for charts, measurements and the analysis.

          Firmware served here is version -. Your data lives in data\ and never leaves the machine.