A dashboard for every pin on your board, laid out over a photo of it. Test circuits without writing a line of code.
A browser-based control panel for interacting with Arduino pins in real time. Each pin is displayed as a row aligned to a photo of the board. Select a mode from the dropdown and the controls appear. Use the control panel to test your Arduino and circuit.
No additional components are needed to use the panel — just an Arduino with Pardalote firmware running.
In Arduino IDE: File → Examples → Pardalote → minimal-pardalote (or any other Pardalote example that includes the extensions you need)
Select your board and upload
Open the Serial Monitor at 115200 baud — on first boot Pardalote asks for your WiFi credentials:
=== Pardalote ===
No WiFi networks stored.
=== WiFi Configuration ===
[a]dd [d]elete [c]lear all [s]how [x] exit
> a
SSID: YourWiFiName
Password: ********
Saved: YourWiFiName
> x
Credentials are saved to EEPROM and survive re-uploads. Press w in the Serial Monitor at any point while the board is trying to connect to update them.
Prefer compile-time credentials? Uncomment the two lines in secrets.h:
#define SECRET_SSID "YourWiFiName"
#define SECRET_PASS "YourWiFiPassword"
Find your Arduino's IP address:
The IP is entered on the page, and the browser remembers it (along with the last board shown) — a returning visit reconnects automatically.
Open index.html in a browser, then click Connect.
Enter your Arduino's IP address in the Board IP field (if it's not already there) and click Connect. The status line reads ready once the connection is up; Disconnect stops it and pauses auto-reconnect.
No WiFi? Use the cable. Switch the dropdown from WiFi to USB and click Connect — the browser (Chrome or Edge) shows a port picker the first time and remembers your choice afterwards. The sketch side must start the serial transport: Pardalote.begin(PARDALOTE_SERIAL) (one commented line in minimal-pardalote). Everything else on the panel works identically.
The board layout switches automatically to match the connected Arduino. If you want to view a different board layout, use the board selector dropdown.
Three boards are included:
| Board | Notes |
|---|---|
| UNO R4 WiFi | Analog pins A0–A5, digital D0–D13 |
| ESP32-WROVER-DEV | Full GPIO header with analog-capable pins |
| FireBeetle 2 ESP32-C5 | Compact ESP32-C5 board |
Selecting a board from the dropdown manually overrides the auto-detection — the panel will stay on your chosen board even if the Arduino auto-reconnects. Clicking Connect again re-enables auto-detection of the board.
Each interactive pin has a mode dropdown. Select a mode to activate it:
| Mode | What it does |
|---|---|
| off | Pin is inactive — no mode is set |
| input | Sets the pin as a digital input with pull-up. Shows HIGH (green) or LOW (red) |
| output | Sets the pin as a digital output. HI and LO buttons write to the pin |
| pwm out | Sets the pin as a PWM output. A slider controls the value (0–255) |
| analog in | Reads the analog value and shows it as a live bar graph with a numeric readout |
Pins that only support some modes show only those options in the dropdown.
Opening the panel in more than one browser window shows the same live state in all windows. Clicking HI in one window updates the output indicator in every other window.
If the Arduino resets or the connection drops, Pardalote reconnects automatically. Any pin modes you had active are re-applied as soon as the connection is restored.
The panel layout is driven by the BOARDS table in boards.js. Each entry defines the board image, the display width, and the position and modes of every pin.
To add a new board, add a new entry to BOARDS with the same name string that the Arduino firmware reports (the PARDALOTE_BOARD value). The control panel auto-detects by matching the name exactly — if no match is found, a warning is printed to the browser console.
"Won't connect"
"Board doesn't switch automatically"
unrecognised board "..." — the name the firmware reports must exactly match a key in BOARDS"Analog bar doesn't move"
"Output state shows — after setting a mode"
— until the first write. Click HI or LO to set a known state"Pin mode resets after reconnect"
control-panel/
├── index.html # Page shell
├── sketch.js # Board selector + status (connection is connect.js)
├── connect.js # Board connection UI (WiFi / USB, remembered per browser)
├── control-panel.js # Panel layout and pin mode logic
├── boards.js # Board definitions (pins, positions, modes)
├── style.css # Panel styling
├── boards/
│ ├── uno-r4-wifi.png
│ ├── esp32-wrover-dev.png
│ └── firebeetle2-esp32-c5.png
└── README.md # This file