Skip to content
Simon Inns edited this page Feb 15, 2025 · 7 revisions

Overview

The Valiant Turtle 2 is a differential-drive floor robot inspired by the original Valiant Turtle released in the UK during the 1980s.

The robot is designed to be built from 3D printed parts as well as widely available hardware. The hardware is completely open as is the firmware - covered by either a Creative Commons or GPLv3 license (as appropriate).

Robot Photo

Note that the project includes both a robot and a communicator. The robot uses BLE (Bluetooth Low Energy) for communication and does not require the communicator for use with a modern PC (any modern BT USB adapter will work).

The communicator is only required when using the robot with retro computers. Please see the section on the communicator's electronics for more details.

Robot Features

NEMA 17 Stepper motor based differential drive

The robot is propelled by two independently controlled NEMA 17 stepper motors. The drive electronics supports accurate micro-stepping as well as torque holding; this allows accurate movement with the possibility of rapid velocities when moving. The stepper motors are small, light and cost effective.

The drive electronics are based on the DRV8825 stepper motor controller based on the common Pololu module design. The use of modules allows the drivers to be easily replaced in case of failure.

Pen control servo

The mainboard supports a small 9G hobby servo (controlled using PWM) that allows the pen to be raised and lowered.

Raspberry Pico W

The main processor is a Raspberry Pico W running micropython. All robot firmware is written in Micropython making it easy to both understand and extend the software capabilities. The Pico can either be connected via headers or directly soldered to the robot's mainboard.

Clearance is provided for the Pico's USB connector and a dedicated debug header (connected to UART0 on the Pico) is also provided to assist in development.

Li-ion battery pack

The robot features a slide-in battery pack that provides the robot with ample power and longevity. Since the battery pack is removable, it is possible to have multiple packs to enable continuous use of the robot.

The charging system is USB-C based and both charger and battery have fail-safe battery management technology built in.

Qwiic/Stemma QT compatibility

The robot provides a Qwiic/Stemma QT I2C expansion header that allows a wide-range of off-the-shelf add on boards to be simply attached to the robot. The expansion header is connected to the Raspberry Pico's second I2C interface (the first interface is used for the mainboard components).

Intelligent power monitoring

The robot's mainboard features a INA260 power monitoring IC that provides real-time voltage, current and wattage allowing the robot's firmware to monitor both the battery levels and the robot's power consumption.

WS2812 LEDs

The robot has 3 onboard RGB LEDs (left and right motor status and general status) and 2 off-board LEDs for 'eyes'. The databus design of the WS2812 allows many LEDs to be driven from the robot. The mainboard also correctly level-shifts the Raspberry Pico's 3.3V logic to 5Vs required by the WS2812s

3A 5V switched supply

The robot's mainboard has a 3A capable switched regulation circuit that provides a stable 5V supply from the batteries without requiring passive cooling. In addition, a 800mA 3.3V LDO regulator is provided running from the 5V supply allowing the robot to be fully powered without any reliance on the Raspberry Pico's regulation circuitry.

The on-board power regulation also provides a single LED to show the power status (this is independent of any firmware requirements unlike the onboard RGB LEDs).

Bluetooth BLE remote control

The robot mainboard is linked to the control system over a wireless Bluetooth link (utilising the Pico W's on-board Bluetooth hardware). The communication allows for both command and power communication between the robot and a host computer.

Non-volatile configuration

The robot's mainboard has a small EEPROM to allow configuration settings to be stored and recalled across restarts. The EEPROM provides 16Kbits of storage (2Kbytes).

Communicator features

Note: The communicator is only required when using the Valiant Turtle 2 with retro computer systems (modern computers can communicate directly with the robot using Bluetooth LE). The communicator is design to work with both the Valiant Turtle 2 and the original Valiant Turtle (over an IR interface).

Full-duplex serial port with flow control

In keeping with the original Valiant Turtle Commander MKII the communicator has hardware-flow control. In addition it supports full-duplex communication at RS232 levels for maximum compatibility with retro-computer hardware.

8-Bit 5V Parallel port

The communicator provides an 8-bit parallel communications port with 5V signalling allowing it to connect to all hardware systems supported by the original Commander MKII. The parallel port is also bi-directional (unlike the original) allowing for more complex communication if desired.

Qwiic/Stemma QT compatibility

The communicator provides a Qwiic/Stemma QT I2C expansion header that allows a wide-range of off-the-shelf add on boards to be simply attached. The expansion header is connected to the Raspberry Pico's second I2C interface (the first interface is used for the communicator components).

External buttons header

A small expansion header is provided allowing up to three physical switches/buttons to be attached to the communicator. This can be easily combined with an I2C display (via the Qwiic header) if more a more complex physical UI is desired.

IR interface

The communicator supports a 4 LED IR interface compatible with the original Valiant Turtle. In combination with both serial and parallel interfaces, this allows the communicator to act as a drop-in replacement for the original Commander MKII.

Status LEDs

The communicator provides green and blue status LEDs for general status and bluetooth status display.

Raspberry Pico W

The main processor is a Raspberry Pico W running micropython. All communicator firmware is written in Micropython making it easy to both understand and extend the software capabilities. The Pico can either be connected via headers or directly soldered to the communicator's PCB.

Bluetooth BLE remote control

The communicator is linked to the robot over a wireless Bluetooth link (utilising the Pico W's on-board Bluetooth hardware). The communication allows for both command and power communication between the robot and a host computer.

USB Powered

The communicator is powered via the Raspberry Pico's USB connector removing the need for a specialised power supply. In addition, the USB can be used for both power and host communication when using a modern host computer.

Clone this wiki locally