Elisa-3 Web Monitor

PC ⇄ USB ⇄ radio base station ⇄ robots
Disconnected 0 pkt/s 0.0 kb/s

Add a robot to get started

Enter the robot address on the left, then connect the radio base station.

Help

Keyboard

↑ ↓Both motors forward / backward (hold)
← →Right / left motor forward (hold, combinable with ↑ ↓)
A SPivot counterclockwise / clockwise
+ -Increase / decrease speed (step 5)
R ERed up / down
G FGreen up / down
B VBlue up / down
CToggle all small green LEDs
UToggle TV remote receiver
IToggle all IR emitters
O PToggle obstacle / cliff avoidance
JToggle sleep (the robot sleeps for 1 minute)
KCalibrate sensors (proximity, ground, accelerometer) and reset odometry
LStart odometry calibration (selector in position 8)
SpaceReset LEDs, flags and motors
HShow / hide this help
QDisconnect

Motors only run while a movement key or the joystick is held. Motors are stopped automatically when the window loses focus.

Odometry and selector

With the selector in position 0 the speed controller is off: the robot sends only the encoder sums, and X, Y, θ stay at 0. In every other position the speed controller is on: the robot computes X, Y, θ and the encoder sums are no longer updated. Position 15 is meant for remote control over the radio (speed controller only, no onboard behaviour). Wheel calibration: selector 8, right wheel aligned on a black line, then L; repeat for the other wheel.

Flags received from the robot

bit 01 = robot is charging
bit 10 = button pressed (active low)
bit 21 = battery completely charged

Requirements

Chrome or Edge on desktop (WebUSB). The page must be opened from https://, localhost or as a local file. Close any other program using the base station (e.g. the C monitor) before connecting: only one application can claim the USB interface.

Serve locally with:

python3 -m http.server 8000
# then open http://localhost:8000/elisa3-web-monitor.html

Windows

The base station must use the WinUSB driver (libusb-win32 / libusbK are not visible to the browser). Run Zadig, enable Options → List All Devices, select the device with USB ID 1915 0101, choose WinUSB and click Replace Driver. Programs built on libusb-1.0 keep working with WinUSB.

Linux

Allow non-root access with a udev rule:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1915", ATTR{idProduct}=="0101", MODE="0666"' \
  | sudo tee /etc/udev/rules.d/99-elisa3-base-station.rules
sudo udevadm control --reload-rules && sudo udevadm trigger

Then unplug and plug the base station again.

macOS

No driver setup is needed.

Multiple robots

Each radio packet carries up to 4 robots and packets are exchanged every 4 ms (250 Hz), so with N robots each robot is refreshed at about 250 / ceil(N / 4) Hz. Sensor data arrives in 5 rotating packet types, so a full sensor update takes 5 refresh cycles.