Skip to content

Mini Control Board

Mini Control Board v2.0 explained

Remote control board with 4 motors, 2 servos and RGB lights.
Operate Mini Control Board remotely using Totem App and Arduino Library.

Discontinued

This product was discontinued in 2023-Q2. All new robotic kits includes programmable RoboBoard X3.

User manual

Feature list (click to expand)

Connectivity:
Bluetooth (BLE)

Board features:
• 2 Servo ports (3.7 Volts)
• 4 DC ports (3.7 Volts)
• 4 RGB lights
• On/off switch
• Battery input, integrated charger

Power:
USB-C: (only for charging)
• Battery: LiPo, 3.7V, 250 mAh

Dimensions:
• 65 x 25 x 8 mm (L x W x H)

Motors

Connectors on the board allow for the direct plug-in of 4 DC motors and 2 Servos.
Motors are powered straight from the battery (around 3.7V).
Each port is identified by letter A, B, C, D.

4 DC ports has control of: spin direction, PWM duty cycle [0:100]%, braking (v2.0 only).
2 Servo ports has control of: arm position [-100:100]% ([-] left, [0] center, [+] right).
Servo is predefined to [500:2500]us range.

Mini Control Board with motors

Bluetooth

Once powered on, board will show up in Totem App connection menu and becomes connectable using Arduino Library. Bluetooth is always enabled. Only singe device can be connected at the same time.

Power & charging

Mini Control Board v2.0 discharged
① Push switch up to power on.
② Battery level is displayed in color:
- battery is full
- battery is medium
- battery is low
- battery is discharged
• Boards v1.4, v1.5 don't have power switch.

Mini Control Board v2.0 charging
① Plug-in USB-C cable
battery is charging
battery is charged
• Charging will override ON, OFF switch.
• Board is not operational while charging.
• Use computer or phone charger to power.
• Boards v1.4, v1.5 don't have built in charger.

🚥 RGB light bar

Light bar can be used for robot appearance and indicating certain states.
Note: Boards v1.4, v1.5 has 12 individual red LED, controlled using setLED().

  • Running animation - no connection
  • Steady color - connected to robot
  • Change color - click Settings when connected with Totem App
  • Control color - set any with rgbColor()

Mini Control Board RGB led

API Reference

Mini Control Board remote ESP32

Control Mini Control Board remotely using any ESP32 development board.
Arduino interface is provided by Totem Arduino Library.

#include <TotemMiniControlBoard.h>
TotemMiniControlBoard board;
void setup() {
  // Connect to Mini Control Board (over Bluetooth)
  board.connect();
  // Set RGB to red
  board.rgbColor(125,0,0);
  // Spin Motor
  board.dcSpinA(40);
  // Spin Servo
  board.servoSpinA(50);
}
void loop() { }

Connection

Functions to establish and control Bluetooth connection.

state board.connect()

state board.connectName(name)

state board.connectAddress(address)

Initiate Bluetooth connection to the board.
Parameter:
name - connect only if name matches
address - connect only if BLE address matches
Returns:
state - [true] connected, [false] failed

state board.isConnected()

Is connection active.
Returns:
state - [true] connected, [false] disconnected

board.disconnect()

Terminate active connection

address board.getAddress()

Get connected board BLE address.
Returns:
address - String object containing address XX:XX:XX:XX:XX

board.addOnConnectionChange(function)

Register connection state change event.
Parameter:
function - function name void onConnectionChange()

Information

Functions to receive board information and configuration.

voltage board.getBattery()

Read battery voltage.
Returns:
voltage - [2700:4200] voltage in millivolts.

version board.getVersion()

Get firmware version.
Returns:
version - String object containing firmware version.

version board.getRevision()

Get board revision.
Returns:
version - String object containing board revision.

name board.getName()

Get configured board name.
Returns:
name - String object containing

model board.getModel()

Get type of robot board is installed in (configured with setModel()).
Note: not used at the moment.
Returns:
name - 16-bit identifier

hex board.getColor()

Get configured board appearance color.
Returns:
hex - [0:0xFFFFFF] 24-bit color code.

state board.getInvertDC()

Get if all DC motor ports are inverted.
Returns:
state - [true] invert, [false] not inverted

state board.getAutobrakeDC()

Get if all DC motor autobrake is enabled.
Returns:
state - [true] brake, [false] coast

Motor control

Servo and DC motors control functions.

board.servoSpinA(pos)

board.servoSpinB(pos)

Spin servo motor to position.
Parameter:
pos - [-100:100]% position. [0] center

board.servoSpinAB(A,B)

Spin all servo motors to individual position with a single command.
Parameter:
A,B - [-100:100]% position. [0] center

board.dcSpinA(power)

board.dcSpinB(power)

board.dcSpinC(power)

board.dcSpinD(power)

Spin DC motor.
Parameter:
power - [-100:100]% power. [0] stop

board.dcBrakeA(power)

board.dcBrakeB(power)

board.dcBrakeC(power)

board.dcBrakeD(power)

Brake DC motor.
Only supported in v2.0
Parameter:
power - [0:100]% power. Default 100%

board.dcSpinABCD(A,B,C,D)

Apply individual spin power to all DC motors with a singe command.
Parameter:
A,B,C,D - [-100:100]% power. [0] stop

board.dcBrakeABCD(A,B,C,D)

Apply individual brake to all DC motors with a singe command.
Only supported in v2.0
Parameter:
A,B,C,D - [0:100]% power. Default 100%

Lights control

RGB lights (or 12 LED) control functions.

board.setLED(map)

Set LED strip state (boards v1.4, v1.5).
Each bit in 12bit value represents individual on-board LED. [0] off, [1] on.
Parameter:
map - [0:0b111111111111] LED state map

board.rgbBrightMode(state)

Turn full brightness RGB mode (change color to take effect).
Parameter:
state - [true] full, [false] medium

state board.hasRGB()

Check if board has RGB lights (revision 2.0).
Returns:
state - [true] has RGB, [false] has LED strip

board.rgbColorA(hex)

board.rgbColorB(hex)

board.rgbColorC(hex)

board.rgbColorD(hex)

board.rgbColorA(red,green,blue)

board.rgbColorB(red,green,blue)

board.rgbColorC(red,green,blue)

board.rgbColorD(red,green,blue)

Set color to individual RGB light.
Parameter:
🔴 red - amount of red color [0:255]
🟢 green - amount of green color [0:255]
🔵 blue - amount of blue color [0:255]
hex - hexadecimal color code [0:0xFFFFFF]

board.rgbColor(hex)

board.rgbColor(red,green,blue)

Set color to all RGB lights.
Parameter:
🔴 red - amount of red color [0:255]
🟢 green - amount of green color [0:255]
🔵 blue - amount of blue color [0:255]
hex - hexadecimal color code [0:0xFFFFFF]

board.rgbColorTotem()

Set all RGB lights to Totem color.

board.rgbColorReset()

Set RGB lights to default board color (configured with setColor()).

Configuration

Configure board settings (retained after power off).

board.setName(name)

Change board name.
Parameter:
name - board discovery name (30 bytes max)

board.setColor(hex)

board.setColor(red,green,blue)

Change board initial color.
It may be displayed inside mobile application or on-board RGB lights.
Parameter:
🔴 red - amount of red color [0:255]
🟢 green - amount of green color [0:255]
🔵 blue - amount of blue color [0:255]
hex - hexadecimal color code [0:0xFFFFFF]

board.setModel(model)

Assign type of robot board is installed in.
Note: not used at the moment.
Parameter:
model - [0:0xFFFF] 16-bit identifier

board.setInvertDC(state)

Invert all DC motor ports.
Parameter:
state - [true] invert, [false] not inverted

board.setAutobrakeDC(state)

Brake all DC motors when power is set to 0.
Only supported in v2.0
Parameter:
state - [true] brake, [false] coast

board.resetConfig()

Reset stored configuration (factory reset).

board.restart()

Restart connected board.

Known behavior

Board revision v2.0 will enable DC channel C and D for a short period of time (25ms) during power on. This will result in slight robot wheel spin and doesn't indicate defective product or firmware. Most robotic kits use channels A and B.

Revision changelog

We are always looking to improve our products. Any physical change (components, layout) is indicated with board revision number (printed on top). Each revision may have different features or functionality.

Discontinued in 2023-Q2 and replaced by RoboBoard X3.

v2.0

Mini Control Board v2.0

Manufactured from 2022-Q1.

  • Visual, design and layout
  • Rename to Mini Control Board
  • 12 red LED switched to 4 RGB
  • Switched MCU from nRF52 to ESP32
  • Improved battery connector
  • Integrated battery charger (USB-C)
  • Added on/off switch
  • Motor braking feature

v1.5

Mini Control Board v1.5

Also known as Totem X3-FBI or MiniTrooper board.

  • Layout changes
  • Shorter by 1.0 cm
  • Removed speaker (not good enough)

v1.4

Mini Control Board v1.4

Also known as Totem X3-FBI or MiniTrooper board.

  • First public release