All Go2 versions (Air/Pro/Edu) support S-BUS control out of the box without any mod/hack. It's a great way to control the dog outdoors, without having to relying on the Unitree remote.
S-BUS has a packet structure that fits only remote control data (joystick position, R1, R2, L1, L2, A, B, X, Y), so basically it’s just a high-level control, and only can handle the commands that are available on handheld remote control.
As S-BUS port is rx only, we can't read information about sensors and motors, it's just one way.
The S-BUS port only accepts 3.3v signal. Please make sure it does NOT exceed 3.3v.
The S-BUS port is a JST GH 1.25 connector that is very delicate and is now exposed to the outside. Please be extremely careful not to damage it.
The easiest way to get started is probably to order an affordable remote control + receiver and confirm everything works as expected.
Remote control model: HotRC HT-8A
Receiver model: HotRC SBUS-A
These can be found on Amazon and Aliexpress for a total of about $40-55.
You have to follow a set of preprogrammed control scheme outlined below.
1. Channel 1: heading
2. Channel 2: pitch up/down
3. Channel 3: walk forward/backward
4. Channel 4: walk left/right laterally
5. Channel 5: 3-position mode switch, middle is Mode 1 (default), Low Mode 2, High Mode 3
6. Channel 6: 2-position toggle switch, default low, hit high to activate:
Mode 1 Damping, Mode 2 Switching continuous movement, Mode 3 Forward jump
7. Channel 7: 2-position toggle switch, default low, hit high to activate:
Mode 1 Unlock, Mode 2 Fall recovery stand up, Mode 3 Dance
8. Channel 8: 3-position switch, default middle, hit high to activate:
Mode 1 High standing, low lying; Mode 2 High obstacle avoidance on, low off; Mode 3 High switching gait, low light on/off
By default Go2 doesn't respond to S-BUS signal until you unlock it. You have to do unlock every time you power on or pick up the Go2 from the ground (i.e. it goes into locked mode) or after toggle sit/stand. To unlock, put channel 5-8 in the default states, then toggle channel 7, you should see Go2 body doing a slight swing while standing up, indicating it's unlocked. Now you can drive it with channel 1-4 on the remote control. You can control the Go2 via S-BUS and the app simultaneously.
It is possible to generate S-BUS signal with the same packet structure and min/max values without using the HotRC remote control. Discord user @TheFalconType has shared a project which uses a Bluetooth gamepad and ESP32 to control the Go2. https://github.com/mechzrobotics/Unitree_GO2_SBUS. And it has been confirmed by @TheFalconType and @dav.h that DJI O3 air unit can be used to control the Go2 by regenerating the S-BUS signal via a microcontroller, which potentially allows the user to drive the Go2 over long distance with added FPV feed. Note the S-BUS signals are inverted in this case, so make sure to select a microcontroller that meets this requirement.
More details to be added later…