Keyboard control for HP Otto 🤖
The HP Otto remote used to let you drive the robot from the keyboard. A recent version dropped the key bindings — which is a shame when you want to sumo-fight the little machines from a laptop at AI dětem camp. This puts them back.
It's a small userscript: it runs on
app.hprobots.com and turns key presses into taps on the on-screen
controls. The remote is a Flutter canvas with no real buttons underneath,
so you point it at the controls once (a quick click-to-calibrate
step) and then drive.
Install
- Install a userscript manager — Tampermonkey (Chrome / Edge) or Violentmonkey. Use a Chromium browser.
- ⬇ Install Otto Keys — the manager will open its install screen; confirm it.
- Open app.hprobots.com/control and connect your robot as usual. A small ⌨️ Otto Keys panel appears in the bottom-left corner.
- Click Calibrate and, when prompted, click each control on the remote (Forward, Back, Left, Right, Stop). That's it — the positions are remembered in your browser.
Keys
| Key | Action |
|---|---|
W / ↑ | Forward |
S / ↓ | Back |
A / ← | Left |
D / → | Right |
Space | Stop |
Hold a direction to keep moving; let go to release. If you press a second
direction while holding one, the newest wins — release it and the robot
falls back to the one still held (so you never get a dead stop from two
keys at once). Keys use the physical key position, so
W A S D work on Czech QWERTZ layouts too.
Good to know
- Recalibrate if you resize the window or the layout shifts and a key starts hitting the wrong spot — it's the same one-click step.
- Typing in the robot's code editor is safe — the script stands down whenever a text field is focused.
- If a robot keeps moving after you release a key, tick “repeat while held” in the panel — some firmware wants the command re-sent, not just held.
- Use Disable in the panel to hand the keyboard back to the app.
Source is a single file: otto-keys.user.js. More on how it works in the blog post.