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