Alternative mission control web app for the turtle rover.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Fix typo. Dec 15, 2018
docs mani dimensions changes Feb 28, 2017
locales Added parameters and translation to smart battery dialog. Dec 2, 2018
tests Code review and rework. Nov 28, 2018
themes Format README content. Nov 15, 2017
vendors Removed AmplifyJS dependency. Obsolete, no active development. Dec 10, 2018
.gitignore Remove Netbeans project files. Dec 13, 2018
LICENSE Code review and rework. Nov 28, 2018 Code review and rework. Nov 28, 2018
index.html Removed unused smart battery mode and status. Dec 15, 2018
test.html WebRTC with actual uv4l working again. Oct 28, 2018

Turtle Rover Control 🐢

This is an alternatice control web application for the Turtle Rover. Designed to work primary with my alternative Raspberry Pi electronics hat design.

For Turtle Rover details see:


GUI utilizes jquery-ui and supports customized themes. Use the jquery-ui theme roller to customize the GUI for your needs. See ThemeRoller. The default theme is based on "Dark hive" from theme roller gallery.

Download your customized theme and save in folder "themes" using a unique file name. Then extend "themes.json" by a new entry that points to your theme file. See README for structure.

Good place for color selection:

Gamepad support

This web application includes gamepad support for controlling the Turtle Rover. It has been tested with the following gamepad:

This specific gamepad must be set to XBOX360 mode to be detected in browser with a standard gamepad mapping, which is 4 analogue axes and 16 buttons. For other types and to check the correct operation mode please use to test your gamepad. Change the operation mode according to the manual of your gamepad.

Browser terminal

The Turtle Rover mission control app supports a browser remote terminal to access Raspberry Pi's Debian shell. Accessible through settings menu->advanced settings, this terminal requires shellinabox as backend.

Please refer to shellinabox README for installation.

👉 On Debian 9 stretch shellinabox will only build as a Debian package when OpenSSL v1.1.0 is installed. See and

Settings for shellinabox and lighttpd in reverse proxy mode

These settings are required to run shellinabox from web applications dialog. Edit in /etc/default/shellinabox:

SHELLINABOX_ARGS="--no-beep -t -s /shell:AUTH:HOME:/bin/bash --localhost-only"

We expect shellinabox running on default port 4200. Add to /etc/lighttpd/lighttpd.conf:

server.modules += ("mod_proxy")
$HTTP["url"] =~ "^/shell" {
    proxy.server = ( "" => ( ( "host" => "", "port" => "4200" ) ) )
    proxy.header = ( "upgrade" => "enable" )

⚠️ Shellinabox is not working with Android onscreen keyboards. There are several issues reported but no solution yet.