Help page Teensy 8

From Rsewiki

Back to Robobot B

On line help page

A list of commands and possible data subscriptions directly from the Teensy. Taken from on-line help command.

Valid for teensy_firmware_8 SVN version 992 (Jan 2025)

Robot settings

  • setidx N Set ID to N (sets robot name) (id=124, part of hbt).
  • setid string Set device type to string (< 32 chars, is=Robobot).
  • sethw N Set hardware version (is = 8, part of hbt).
  • stop Stop and set manual mode
  • start Start (activate something)
  • off T Turn off power (cuts power after T seconds)
  • stime us Set sample time typically around 1000 (> 20) is 1000
  • pind pin v [p] Set pin direction v=1 output, p=1 pull up, p=-1 pull down
  • pinv pin v Set pin to v [0..1]
  • For all subscriptions ('sub' commands) below, 'N' is the interval in ms
  • hbti and 'sub hbt N' Get time and state 'hbt time idx revision batVolt state hw'
  • idi and 'sub id N' Get device type and name 'name type name'
  • timei and 'sub time N' sample timing [us] 'time CPU_clk ad_us sensor_us control_us done_us T_us load_o/o'
  • pini and 'sub pin N' Get pin value (pin is set by 'pind') 'pin pin value'
  • autoi and 'sub auto N' Get value of auto mission start flag 'start value' value=[0,1].

AD converter

  • adi and 'sub ad N' Get raw AD values (ir1, ir2, battery, m1 current, m2 current, supply current)
  • lsi and 'sub ls N' Get raw line sensor AD values (n1, n2, ls1 (l,h), ls2 ... ls8, ct1, ct2 (us))

USB connection

  • i V Interactive: V=1: local echo (is=0) (for use with telnet)
  • nocrc V Allow messages without CRC: V=1: allow (is=0)
  • silent V Should USB be silent, if no communication (1=auto silent) silent=1 (pt no effect)
  • alive Ignorred, but used to keep communication alive (once a sec is fine)
  • usbi and 'sub usb N' Get status for USB connection 'usb time inCnt inErr serviced/sec serviceLoopCnt/sec sendFail/sec'
  • ssvi and 'ssv' Get subscription status (as info with key and interval time)

Commands available for Robobot Dot

  • help This help text.
  • veri and 'sub ver N' get version 'version SVN_rev.x date time'

AS5x47 encoder

  • asi N Initialize SPI channel N [0..2]
  • encof o1 o2 o3 Set encoder offset (is=0, 0, 0)
  • as16 e i R Get register R value from interface i, disable if e=0 (use as16i to see)
  • asensi and 'sub asens N' Get encoder status 'asenc s1 s2 s3' 1=available
  • asenoi and 'sub aseno N' Get encoder offset 'aseno o1 o2 o3' in degrees
  • asenpi and 'sub asenp N' Get encoder values 'asenv p1 p2 p3' (angle in degrees)
  • asenvi and 'sub asenv N' Get encoder values 'asenv v1 v2 v3' (velocity in degrees/s)
  • asenei and 'sub asene N' Get encoder error flags 'asene e1 e2 e3' (Hex, see AS5147E doc)
  • as16i and 'sub as16 N' Get register values '#reg16 interface, reg, value'

Encoder settings

  • enc0 Reset pose to (0,0,0)
  • confw rl rr g t wb Set configuration (radius gear encTick wheelbase)
  • encrev R Set motortest reversed encoder (R=0 normal, R=1 reversed). Normal: motv 3 3 => left enc decrease, right enc increase.
  • enci and 'sub enc N' Get encoder value 'enc M1 M2' (int32)
  • posei and 'sub pose N' Get current pose 'pose t x y h tilt' (sec,m,m,rad,rad)
  • veli and 'sub vel N' Get velocity 'left right' (m/s)
  • confi and 'sub conf N' Get robot conf (radius, radius, gear, pulsPerRev, wheelbase, sample-time, reversed)
  • vemi and 'sub vem N' Get motor and wheel velocity 'left right left right' (rad/s)
  • enei and 'sub ene N' Get encoder error 'enc NANcount reversed M1err M2err' (int32)

Line sensor

  • lip p [w h t xth wi s lth] Settings: p=on, w=white, h=high power, t=tilt comp, wi=wide, s=swap, lth=line thresh (0..1), xth=cross_th (0..1). All but first parameter are optional
  • licw N Use current value as white (average over N samples)
  • licb Use current value as black (should not be used)
  • litw w w w w w w w w Use these values as white
  • litb b b b b b b b b Use these values as black (should be zeros)
  • livi and 'sub liv N' Get line-sensor raw AD value 'liv ls1 ls2 ls3 ls4 ls5 ls6 ls7 ls8'
  • liwi and 'sub liw N' Get line-sensor white (AD) level 'liw w1 w2 w3 w4 w5 w6 w7 w8'
  • libi and 'sub lib N' Get line-sensor black (AD) level 'lib b1 b2 b3 b4 b5 b6 b7 b8'
  • ligi and 'sub lig N' Get line-sensor channel gain 'lig g1 g2 g3 g4 g5 g6 g7 g8'
  • livni and 'sub livn N' Get line-sensor normalized value 'livn ls1 ls2 ls3 ls4 ls5 ls6 ls7 ls8'
  • lipi and 'sub lip N' Get line-sensor position 'lip left right valid validCnt crossing crossingCnt'
  • lisi and 'sub lis N' Get line-sensor settings 'lis on white high tilt wide swap lineTh crossTh'

IR distance

  • irc A1 B1 A2 B2 V Set calibration values A=13cm value, B=50cm (sensor 1 and 2) V=1 in on
  • iron V Turn IR sensor on or off V=1 for on (0=off)
  • iri and 'sub ir N' Get IR and calibration data 'ir dist1(m) dist2(m) raw1 raw2 cal1-13 cal1-50 cal2-13 cal2-50 use
  • irdi and 'sub ird N' Get IR distance 'ird dist1(m) dist2(m) sensorOn

IMU

  • gyrocal Set gyro calibration values (offset[3])
  • gyroc Start gyro calibration (finished=1)
  • imuon E F M Enable IMU (E=1), Madgwick (F=1), use magnetometer (M=1)
  • gyroi and 'sub gyro N' Get calibrated gyro value as 'gyro gx gy gz' (deg/s)
  • gyrooi and 'sub gyroo N' Get gyro offset 'gyroo ox oy oz'
  • acci and 'sub acc N' Get accelerometer values 'acc ax ay az' (m/s^2)
  • gyro0i and 'sub gyro0 N' Get calibrated gyro value as 'gyro0 gx gy gz' (deg/s) averaged for subscriber
  • acc0i and 'sub acc0 N' Get calibrated acc value as 'acc0 ax ay az' (m/s^2) averaged for subscriber

logger

  • lognow start logging now
  • log Get current log, if any
  • lfls Set log flags - same order as lfl
  • lsts Set log interval (for timing info only)
  • logmsg Start log of (all) streamed messages (e.g. subscriptions)
  • lfli and 'sub lfl N' Get log flags 'lfl (mis) acc gyro (mag) (motref) motv mota enc vel turnrate pose line dist batt timing extra (chirp)', ()=not available
  • lsti and 'sub lst N' Get log status 'lst interval rows rowsMax logSize'

EE (configuration flash)

  • eew Save configuration to EE-Prom (flash)
  • eer Read configuration from EE-Prom
  • eeusb Get current configuration to USB

Motor

  • motr V Set motor reversed; V=0 for small motors, V=1 for some big motors
  • motv m1 m2 Set motor voltage -24.0..24.0 - and enable motors
  • motfrq Set motor PWM frequency [100..50000], is 68000
  • deadband L R Set PWM deadband ([0..100%], is left=0.0%, right=0.0%
  • moti and 'sub mot N' Get motor voltage 'mot m1(V) m2(V) vel_ref1(m/s) vel_ref2(m/s) reversed'
  • motpwmi and 'sub motpwm N' Get motor direction and PWM 'motpwm dir1 pwm1 dir2 pwm2'

Motor test

  • mottest C M Start motor test C=0:CV, C=1:CCV, C=-1:stop; M is motor (0..3)
  • motset Vlow Vhigh Motortest voltage Vlow 3-6 Volt, Vhigh > VLow, samples per state (ms).
  • motesti and 'sub motest N' Get estimated parameters 'motest mot[0,1] cv=0/ccv=1 Km R L B S I
  • motpari and 'sub motpar N' Get test parameters 'motpars lowVolt highVolt state-time'

Motor current

  • mcai and 'sub mca N' Get motor current 'mca m1 m2' [Amps]
  • mcoi and 'sub mco N' Get motor current offset (AD: 0..4096) 'mco o1 o2 ad1 ad2'
  • scai and 'sub sca N' Get supply current in 'sca a n' a in amps, averaged over n samples

Servo

  • svos e p v e p v ... set all servos e=enable, p=position +/-1024, v=velocity -1..100,-1=max
  • servo i p v set one servo i=index 1..5, pos +/-1024, v=velocity 0..4000,0=max, 1=sloooow
  • svoi and 'sub svo N' get servo configuration 'svo {enabeled pos[0...1000] vel}*5'

Display

  • disp text Set a display line text
  • dispon V enable (1) or disable (0) display
  • displayi and 'sub display N' Get current display text

Leds

  • leds N R G B Set LED N to this value (e.g. 14 128 25 254 (LED 14 to purple)
  • leda N M R G B Set LEDs from N through M to value (e.g. 14 16 128 25 254 (LED 14,15,16 to purple)
  • ledsi and 'sub leds N' get leds status 'leds N r g b r g b ...' (N=leds, r,g,b in hex)

USB host

  • usbhost A Set USB host as active or not A=1 is active
  • joyn A Notify on updates
  • joyc A Changes only
  • joyaxisi and 'sub joyaxis N' Get current joystick axis values
  • joybuti and 'sub joybut N' Get current joystick button values
  • joyi and 'sub joy N' Get joystick message