Enable the Battery BMS Switch
Turn on the BMS hardware switch.
Batch 1 customers only
This step is only for early customers who received a Batch 1 robot, we will let you know through email if you are a batch 1 customer. If you still are not sure, contact us first through our support channel. All other batches can skip this step and continue to Assign Actuator IDs.
Before You Begin
- Complete Connect and Sign In. The Head Compute Unit and RPU must be connected by the 1000 mm Ethernet cable and powered on.
- Keep your laptop on the same Wi-Fi network as the robot, or on the robot's setup hotspot.
- Have the hostname, username and password you set in Raspberry Pi Imager ready, with SSH enabled. Without them you cannot log in to the ; contact us through our support channel.
Open a Terminal
A terminal (also called a TTY session) is a window where you type commands and press Enter to run them. This step uses two terminal windows at the same time: Terminal 1 watches the battery's messages, and Terminal 2 sends commands.
Open the Start menu, type Terminal (or PowerShell on older Windows 10), and open it. Windows 10 and 11 already include the ssh command.
To open a second terminal, press Ctrl+Shift+T for a new tab, or open Terminal again from the Start menu. Paste with Ctrl+V or a right-click.
Press Cmd+Space, type Terminal, and press Enter.
To open a second terminal, press Cmd+T for a new tab or Cmd+N for a new window. Paste with Cmd+V.
Press Ctrl+Alt+T, or open Terminal from your applications menu.
To open a second terminal, press Ctrl+Shift+T for a new tab or Ctrl+Shift+N for a new window. Paste with Ctrl+Shift+V.
Placing the two windows side by side makes it easier to watch Terminal 1 while you type in Terminal 2.
Connect to the RPU
Your laptop cannot reach the RPU directly. You first log in to the over SSH (a secure remote login), then log in to the RPU from the . Do this in each terminal.
Log In to the Pi 5
Replace <your-pi-username> and <name> with the username and hostname you set in Raspberry Pi Imager; for example, ssh [email protected]:
ssh <your-pi-username>@<name>.local- The first time you connect, you are asked
Are you sure you want to continue connecting (yes/no/[fingerprint])?. Typeyesand press Enter. - Enter your password when asked. Nothing appears on screen while you type the password; this is normal. Press Enter when done.
- If
<name>.localis not found and your laptop is on the robot's setup hotspot, usessh <your-pi-username>@10.42.0.1instead.
When you are logged in, the line where you type starts with <your-pi-username>@<name>.
Log In to the RPU
From the , run:
Type yes if asked to continue connecting, then enter the RPU password, asimov. When you are logged in, the line where you type starts with asimov@.
When a command below starts with sudo, you may be asked for a password again. Enter the RPU password, asimov.
Steps
Open Terminal 1
Open a TTY session on the RPU (Terminal 1), as described in Connect to the RPU. This session will be used for observing data on the CAN bus.
Start Watching the CAN Bus
In Terminal 1, run:
sudo candump can_bmsThis keeps running and prints each message on the CAN bus, so you can no longer type commands in this terminal. Leave it open.
Open Terminal 2
Open another TTY session on the RPU (Terminal 2), the same way. This session will be used for sending commands to the CAN bus.
Read the BMS Register
In Terminal 2, run the following command, then look in Terminal 1 and note down the data received from the BMS (the eight bytes after [8]):
sudo cansend can_bms 137#5AIncrement Byte 3
The register bytes are hexadecimal (base 16: digits 0–9, then A–F). Increment byte 3 (zero-indexed) of the BMS register by 1 in hexadecimal, leaving the other seven bytes unchanged. For example, 00 02 00 06 00 07 00 0D becomes 00 02 00 07 00 07 00 0D:
BMS register (8 bytes)
Count in hexadecimal, not decimal: 09 becomes 0A (not 10), and 0F becomes 10.
If byte 3 reads FF
FF is the largest value a byte can hold, so it cannot be incremented. Do not continue, and do not enter factory mode. Contact us through our support channel.
Save this incremented value; you will need it to update the BMS register after entering factory mode.
Enter Factory Mode
In Terminal 2, run the following command to enter factory mode:
sudo cansend can_bms 12E#5678Write the Updated Register
In Terminal 2, run the following command with your incremented register bytes, written without spaces:
The RPU will turn off
If this command executes successfully, the RPU will turn off. Both terminals then stop responding or show a message such as Connection to 10.0.0.2 closed; this is expected.
sudo cansend can_bms 137#<register-bytes-after-increment>For example:
sudo cansend can_bms 137#000200070007000DTurn the Battery Back On
Turn the battery back on using the switch, and wait for the RPU to boot. This takes about two minutes.
Reconnect Both Terminals
Relaunch the previous TTY sessions for reading and writing to the CAN bus. In both terminals, repeat Connect to the RPU. If a terminal is still logged in to the , you only need to repeat the RPU login. Then run sudo candump can_bms in Terminal 1 again.
Exit Factory Mode
In Terminal 2, run the following command to exit factory mode:
sudo cansend can_bms 12F#2828Close the Terminals
Press Ctrl+C in Terminal 1 to stop candump. Type exit and press Enter to log out; type it twice to leave both the RPU and the , then close the terminals.
Example candump Output
Read data
can_bms 137 [1] 5A
can_bms 137 [8] 00 02 00 06 00 07 00 0DEnter factory mode
can_bms 12E [2] 56 78
can_bms 12E [1] 5AIncrement byte 3 by 1 (zero-indexed; note 06 becoming 07)
can_bms 137 [8] 00 02 00 07 00 07 00 0D
can_bms 137 [1] 5AExit factory mode
can_bms 12F [2] 28 28
can_bms 12F [1] 5AHow is this guide?