Reference
The full technical documentation — every function on both sides of the wire, the protocol, and the fine print.
Getting started
Setting up boards, libraries and the connection:
- Installation — hardware, software, and where the two libraries go
- WiFi configuration — compile-time credentials or the Serial Monitor menu (skip this page for USB serial)
- Coding with AI — the whole reference as one file to paste into an AI assistant
Core — JavaScript
The browser side of every Pardalote project:
- Connecting —
connect()andconnectSerial()(WiFi or USB), connection keys, events, reconnection, and status - Pins and reading —
pinMode,digitalWrite, polled reads, callbacks, and pin aliases
Core — Arduino
Writing sketch code alongside the browser:
- The Arduino sketch —
begin()/run(),share()/send()
Core — Messaging
A key/value channel for everything that isn't a pin or a device — symmetric between browser and sketch:
- Messaging —
send()/watch(), retain and broadcast, and the frame monitor (JavaScript to Arduino · Arduino to JavaScript)
Extensions
Hardware support, one include at a time:
- Extensions overview — registering, script order, firmware includes, creating objects from the sketch, and reading actuators
- Servo · Stepper · Bus servo · Groups
- NeoPixel · Ultrasonic · Rotary encoder · IMU · Camera
Under the hood
- Protocol — the binary frame format and state sync
- Pin capabilities — what each pin can do, per board, and the silicon gotchas
- Troubleshooting — common issues and their usual fixes
Conventions used throughout
A few patterns repeat across the whole API:
- Reads are polls. The first call to any
read()-style function starts a periodic poll on the Arduino; subsequent calls return the cached value instantly. Pass an interval to change the rate, orENDto stop. targetvsposition. Commanded values update immediately; feedback values arrive with polling.- Last writer wins. The browser and the sketch share the same hardware as equals.
- Setup goes in
on('ready'). Attach, init and start polls after the Arduino has synced its state. - Motion runs on the board. Timed moves and
gesture()schedules are played on the Arduino's own clock — never streamed step-by-step — so they stay smooth and survive a WiFi blip. See each actuator'sgesture()and Groups.