Miabot Pro Parameter Summary

From Merlin Systems Wiki

Miabot Pro full parameter set for version 3.5

Note: not explained in any detail!

'basic' controls are mostly described in the [Manual]

controls associated with specific commands are indicated in the list
e.g. "[P]: {servo pulsewidth outputs}"
- some are described in more detail with the command descriptions

   code ident              .name  default    description
   ----------              -----  -------    -----------
{speed ramp controls}
   V_RampTicks             .rT    10         //ramp update-rate (ticks)
   V_RampIncrement         .rI    10         //ramp speed increment
         
{pid calc controls - see also  PID Controls}
   V_PidTickrate           .pT    5          //pid update-rate (ticks)
   V_PidSpeedgain          .pVg   4          //speed-gain = ticks-to-speed scaling (-> about 1000 max)
   V_PidOpOffs             .poK   0          //open-loop speed minimum non-zero output
   V_PidOpGain             .poG   3          //open-loop speed gain
   V_PidDownshift          .p>>   7          //pid-calc scaling (shift)
   V_PidP                  .pP    50         //P-term gain
   V_PidI                  .pI    10         //I-term gain
   V_PidD                  .pD    0          //D-term gain
   V_PidMaxIerr            .pMI   512L*8/2   //anti-windup I max (half a wheel turn)

{position / deceleration controls}
   V_PosSpeedScale         .xS    2          //dist_error-to-speed scaling (*PidDownShift)
   V_PosTolerance          .xT    3          //min dist to switch-off
   V_PosMaxdist            .xM    50000      //max dist for slowup-calc (avoids overflow errors!)

{speed commands timeout}
   V_SpeedTimeout          .vTO   0          //off by default (else mSecs)
         
{squeal reduction}
   V_StopMinDist           .qX    2          //movement threshold level for power-off
   V_StopTimeout           .qT    10         //no-movement timeout period
         
{miabot-like scaled (byte data) commands}
   V_ByteScaleSpeed        .bV    0x0800     //256*8 = 1024 max speed
   V_ByteScaleDistMove     .b^    5100
   V_ByteScaleDistTurn     .b<    4300
   V_ByteScaleSteps        .bQ    0          //off for ^v<> moves  by default
         
[i]: {i2c retry controls}
   V_i2cRetries            .iN    0          //times to retry failed access (=none)
   V_i2cRetryTime          .iT    0          //mSecs between retries

{echo control}
   V_bEcho                 .eE    0          //enable echo for all commands

{serrmt transmit controls (tx = to i2c bus)}
   V_i2s_nOwnAddress       .sAD   0xA2       //own bus address (receive control, really)
   V_i2s_nContactAddress   .sAT   0xA0       //output target address (=MSCcam standard)
   V_i2s_nTxBuffTrig       .sNB   4          //buffer threshold transmit trigger
   V_i2s_nTxTimeTrig       .sNT   2          //timeout transmit trigger
   V_i2s_bTxCharEna        .sCE   0          //enable break-char trigger
   V_i2s_cTxCharTrig       .sCC   '\r'       //break-char
{serrmt <R..> receive controls (rx = from i2c bus)}
   V_i2s_nRxBuffTrig       .sN    4          //buffer threshold output trigger
   V_i2s_nRxTimeTrig       .sT    2          //timeout output trigger
   V_i2s_bRxCharEna        .sE    0          //enable break-char
   V_i2s_cRxCharTrig       .sC    '\r'       //break-char

[P]: {servo pulsewidth outputs}
   V_nPwmOutputBits        .ebP   0          //output bits to use (mask: 0 - 31)
   V_nPwmStartDelay        .PDT   100        //0.1sec start delay to avoid oscillations

[S]: {sonar scan}
   V_nSonarGroup1          .rG1   0xFF       //Ping group1 (default =all 8 at once)
   V_nSonarGroup2          .rG2   0x00       // (= no 2nd group)
   V_nSonarGroup3          .rG3   0x00       // (= no 3rd group)
   V_nSonarGroup4          .rG4   0x00       // (= no 4th group)
   V_nSonarRetryMsecs      .rRT   4          //retry milliseconds
   V_nSonarRetries         .rRN   20         //retry count
   V_nSonarFirstbyte       .rB1   1          //readback address (=light sensor)
   V_nSonarReadbytes       .rNB   5          //bytes to read (=light + 2 echoes)
   
[@]: {auto-connect settings}
   V_Radcon_bAutoConnect   .aEN   0          //enable auto-connect
   V_Radcon_nStartMsecs    .aT0   5000       //delay to first try
   V_Radcon_nRepMsecs      .aT1   10000      //delay between tries
   V_Radcon_nID0           .ai0   0x00       //bluetooth address bytes...
   V_Radcon_nID1           .ai1   0x00
   V_Radcon_nID2           .ai2   0x00
   V_Radcon_nID3           .ai3   0x00
   V_Radcon_nID4           .ai4   0x00
   V_Radcon_nID5           .ai5   0x00

{main leds enable (2 bits = comms,power)
   V_nLedsEna              .lnE   3          //both on by default

(radio - see also Miabot Pro Radio-board Controls)
   V_radio_tWait           .#T    2000       //time allowed for radio-commands
   V_radio_bReset          .#rs   1          //set radio mode on boot (+ cancel it)