mix bb_so101.install (bb_so101 v0.3.0)

Copy Markdown View Source

Installs an SO-101 robot definition into a project

Composes bb.install to scaffold a robot module + supervision, fills in the full SO-101 6-DOF topology, and wires the Feetech servo bus via bb_servo_feetech.install.

The application.ex generated by the composed bb.install boots the robot in :kinematic simulation mode when the SIMULATE environment variable is set. The Feetech serial device is read from FEETECH_DEVICE at runtime, falling back to the configured device default.

To add a live dashboard, run mix igniter.install bb_liveview after this task.

Example

mix igniter.install bb_so101
mix igniter.install bb_so101 --robot MyApp.Arm --device /dev/ttyACM0

# Run the generated app in simulation mode (no hardware needed)
SIMULATE=1 iex -S mix

Options

  • --robot - Robot module name (defaults to {AppPrefix}.Robot)
  • --device - Fallback serial device path (default /dev/ttyUSB0)

Joint limits

The generated robot declares 300 degree_per_second and 400 degree_per_square_second on every joint. These are measured figures rather than round ones — an STS3215 tops out near 300 deg/s, and its acceleration register clamps at 439.5 deg/s^2 regardless of what is written to it.

They are what BB.Message.Actuator.BeginMotion computes arrival times from, so raising them makes motion estimates wrong rather than making the arm faster. BB.Servo.Feetech.Actuator reads the acceleration register back at startup and refuses to run if the servo did not accept what it was given.