Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
248 lines (226 sloc) 12.5 KB
List of commands implemented in either monitor/monolith or TestICal or both.
Commands and hex digits are case-sensitive. Most common commands are a single character.
In ASCII/alphabetical order:
* T
M '
o c
n a
* l Name or description
--------------------------------------------
<XON> Ctrl-Q. Resume echoing
<XOFF> Ctrl-S. Stop echoing
<ESC> ESCape from e(x)clusive or e(X)cluded modes
Initial characters not used so far: ADH&()*+,./;=_|}~
Initial characters not used so far in TestICal: kpADEGHKOZ&()*+,./;=_|}~{<>
Initial characters not used so far in Monolith etc: bmuzADH&()*+,./;=_|}~!
# # revision numbers of main program, bootstrap loader and hardware. ! if BSL out of date.
@ @ Capacity const: $B@ nom Bat volts (dV), $C@ max Charge (W), $D@ max Discharge (W), $E@ Energy (Wh)
$ $ dollarHex (set number input mode to hex for next literal)
% % Reset fuel gauge to full (0% depth of discharge). Use only at the end of a full charge.
' ' characterLiteral (tick)
` ` execute (tock, inverse of tick)
? ? get word (peek word) from given address
! store word (poke word) to given address
" " quote (begins and ends a literal string), returns pointer and length
- - change-sign (postfix negate)
: : begins a Modbus-ASCII packet
< minimum, precede with 'v for voltage, 't for temp or 'j for stress, 'q for worstStress
> maximum, precede with 'v for voltage, 't for temp or 'j for stress, 'q for worstStress
{ resetWorstStress :-{
[ [ Stop echoing commands (only echo responses). Can be used to make the last CMU behave like a BMU.
] ] Resume echoing everything. Behave like a CMU, not a BMU.
\ \ exit or comment
^ ^ reset the Reset log
1 to 9 are decimal and hexadecimal digits
A to F are hexadecimal digits after a dollar sign
a a alias for 'Pd' (Positive drop) to allow keyboard auto-repeat when testing. "additive alteration"
b update Bootstrap loader
Br Br Send a break out the CMU port
c c Calibrate
Cr Cr Carriage return (end of packet), preceded by checksum if required.
C? C? get byte (peek Char) from given address
C! store byte (poke Char) to given address
d d Decimal output
e e Error. Turn on or off red LED and piezo beeper
Er ErrorRatio. Bad packets per 65536 packets received on the CMU port, as found using our CRC12.
f FrequencyBurst between TX- and JTAG-, 199.5 to 200.5 kHz at 20 degC, 200.5 to 201.5 kHz at 30 degC
f (f)uel gauge. State of charge in tenths of a percent. (BMU only)
Fa Frequency of ADC clock. On expansion P1.3 for 5 seconds. Too fast to measure with Fluke. Use DSO.
Ff Force fuel-gauge. Takes an SoC in tenths of a percent. (BMU only)
g g fuel (g)auge. Depth of discharge in tenths of a percent. (BMU or IMU only)
G Get high word of fuel-gauge discharge accumulator (monoliths only)
h h Hex output
i set current, tenths of an amp. Sent by BMU to tell CMUs the current, for estimating o/c voltage.
i set(I)Ds. Must be preceded by Ctrl-S and the desired first ID, and followed by <cr> Ctrl-Q
In In Display input port value
Is Is Shunt voltage x 20 mV (was l) (BMU). Negative terminal volt drop (CMU)
j Just local stress (not the full status)
j JumpToSubroutine (call) at given address
J J Insulation test - touch current in tenths of a milliamp (only when ID=255, BMU)
k error chec(K)ing, 'k' or '2fk' to turn it on, 'kCB' to toggle it, irrespective of current state
K KillStatusSending, '1K' to kill status sending, '0K' to restore it
l l LinkVoltage, abs max of volt drop between bolt and strap at both terminals
L L Liven contactor (1L .. 5L)
m e(m)itCharacter
Ms Ms Milliseconds delay
Mv Measure Vcc (CMU only)
n n Neg bolt voltage, alias for 'Is' (shunt/bolt- voltage) to allow keyboard auto-repeat when testing
Nc Nc Number of cells
No No emit(n)um. Precede with a number or calculation, and a field width
o alias for 'Mv' (Measure Vcc) to allow keyboard auto-repeat when testing. "offered voltage"
o Open circuit cell voltage in 1/16ths of a millivolt (IR-compensated, filtered w 128 s time const)
O Open circuit cell voltage (IR-compensated, filtered with 128 s time const). Average cell (BMU)
p status (Pain) (local to each CMU, but global when BMU)
Pd Pd Positive drop = positive terminal volt drop V-v (CMU). Positive contactor voltage V-v (BMU)
Pp Send a command to a PIP (charger port)
Pw Send a command to a PIP (charger port) without a CRC
q QueryWorstStress (Not TestICal. 'q' is Query Manufacturer's calibration values in TestICal)
q QueryManValue, manufacturer calibration values (TestICal only. 'q' is QueryWorstStress in monitor)
Q Q Quiet. Stop piezo beeper coming on with error LED
r r ReadCalValue
Rl Rl query the Reset log. 8 = RST pin (break), 4 = power on, 1 = watchdog, 0 = other bad stuff or JTAG
Rx RxState (number of ticks since last Rx)
s s select
S S deSelect
t t Temperature of CMU
Tc Cell temperature. Not updated during bypassing, so it is not merely CMU temperature
Th set Thresholds. 'V Overvolt stress zero & step mV, 'b bypass mV, 'f full mV, 'a alarm stress
To To Touch value (uncalibrated) (only when ID=255, BMU)
Ty Ty Type, emit a string given pointer and length
u UpdateInfoFlash
U U Unliven contactor (1U .. 5U)
v v cell strap+ (v)oltage (CMUs) or battery voltage (BMU)
V V cell bolt+ (V)oltage (CMUs) or array voltage (BMU)
w w WriteCalValue
W Open circuit cell voltage (IR-compensated, not filtered). Average cell (BMU)
x x e(x)clusive (single-CMU interaction mode)
X X e(X)clude (single-CMU ignore mode)
y y b(y)pass (Yellow) (relaY- on IMU)
Y Y relaY+ (on IMU only)
z send nulls (send (z)eros)
Z Ztore high word of fuel-gauge discharge accumulator (monolith only)
In logical groupings:
* T
M '
o c
n a
* l Name or description
--------------------------------------------
' ' characterLiteral (tick)
` ` execute (tock, inverse of tick)
m e(m)itCharacter
" " quote (begins and ends a literal string), returns pointer and length
Br Br Send a break out the CMU port
Cr Cr Carriage return (end of packet), preceded by checksum if required.
Ty Ty Type, emit a string given pointer and length
Pp Send a command to a PIP (charger port)
Pw Send a command to a PIP (charger port) without a CRC
z send nulls (send (z)eros)
1 to 9 are decimal and hexadecimal digits
A to F are hexadecimal digits
$ $ dollarHex (set number input mode to hex for next literal)
d d Decimal output
h h Hex output
- - change-sign (postfix negate)
No No emit(n)um. Precede with a number or calculation, and a field width
e e Error. Turn on or off red LED and piezo beeper
Q Q Quiet. Stop piezo beeper coming on with error LED
y y b(y)pass (Yellow) (relaY- on IMU)
Y Y relaY+ (on IMU only)
L L Liven contactor (1L .. 5L)
U U Unliven contactor (1U .. 5U)
In In Display input port value
i set current. Sent by BMU to CMUs to tell them the current, for estimating open circuit voltage.
v v cell strap+ (v)oltage (CMUs) or battery voltage (BMU)
V V cell bolt+ (V)oltage (CMUs) or array voltage (BMU)
Mv Measure Vcc (CMU only)
o alias for 'Mv' (Measure Vcc) to allow keyboard auto-repeat when testing. "offered voltage"
o Open circuit cell voltage in 1/16ths of a millivolt (IR-compensated, filtered w 128 s time const)
O Open circuit cell voltage (IR-compensated, filtered with 128 s time constant). Average cell (BMU)
W Open circuit cell voltage (IR-compensated, not filtered). Average cell (BMU)
Is Is Shunt voltage x 20 mV (was l) (BMU). Negative terminal volt drop (CMU)
n n Neg bolt voltage, alias for 'Is' (shunt/bolt- voltage) to allow keyboard auto-repeat when testing
Pd Pd Positive drop = positive terminal volt drop V-v (CMU). Positive contactor voltage V-v (BMU)
a a alias for 'Pd' (Positive drop) to allow keyboard auto-repeat when testing. "additive alteration"
l l LinkVoltage, abs max of volt drop between bolt and strap at both terminals
t t Temperature of CMU
Tc Cell temperature. Not updated during bypassing, so it is not merely CMU temperature
p status (Pain) (local to each CMU, but global when BMU)
j Just local stress (not the full status)
Rx RxState (number of ticks since last Rx)
Er ErrorRatio. Bad packets per 65536 packets received on the CMU port, as found using our CRC12.
To To Touch value (uncalibrated) (only when ID=255, BMU)
J J Insulation test - touch current in tenths of a milliamp (only when ID=255, BMU)
<XOFF> Stop echoing
<XON> Resume echoing
[ [ Stop echoing commands (only echo responses). Can be used to make the last CMU behave like a BMU.
] ] Resume echoing everything. Behave like a CMU, not a BMU.
\ \ exit or comment
: : begins a Modbus-ASCII packet
< minimum, precede with 'v for voltage, 't for temp or 'j for stress, 'q' for worstStress
> maximum, precede with 'v for voltage, 't for temp or 'j for stress, 'q' for worstStress
Nc Nc Number of cells
i set(I)Ds. Must be preceded by Ctrl-S and the desired first ID, and followed by <cr> Ctrl-Q
s s select
S S deSelect
x x e(x)clusive (single-CMU interaction mode)
X X e(X)clude (single-CMU ignore mode)
<ESC> ESCape from e(x)clusive or e(X)clude modes
\ \ exit or comment
k error chec(K)ing, 'k' or '2fk' to turn it on, 'kCB' to toggle it, irrespective of current state
K KillStatusSending, 1K to kill status sending, 0K to restore it
# # revision numbers of main program, bootstrap loader and hardware. ! if BSL out of date.
q QueryWorstStress (Not TestICal. 'q' is Query Manufacturer's calibration values in TestICal)
{ resetWorstStress :-{
Rl Rl query the Reset log. 8 = RST pin (break), 4 = power on, 1 = watchdog, 0 = other bad stuff or JTAG
^ ^ resetResetLog
f (f)uel gauge. State of charge in tenths of a percent. (BMU only)
g g fuel (g)auge. Depth of discharge in tenths of a percent. (BMU or IMU only)
% % Reset fuel gauge to full (0% depth of discharge). Use only at the end of a full charge.
Ff Force fuel-gauge. Takes an SoC in tenths of a percent. (BMU only)
Z Ztore high word of fuel-gauge discharge accumulator (monolith only)
G Get high word of fuel-gauge discharge accumulator (monoliths only)
@ @ Capacity const: $B@ nom Bat volts (dV), $C@ max Charge (W), $D@ max Discharge (W), $E@ Energy (Wh)
j JumpToSubroutine (call) at given address
? ? get word (peek word) from given address
! store word (poke word) to given address
C? C? get byte (peek Char) from given address
C! store byte (poke Char) to given address
Ms Ms Milliseconds delay
f FrequencyBurst between TX- and JTAG-, 199.5 to 200.5 kHz at 20 degC, 200.5 to 201.5 kHz at 30 degC
Fa Frequency of ADC clock. On expansion P1.3 for 5 seconds. Too fast to measure with Fluke. Use DSO.
Th set Thresholds. 'V Overvolt stress zero & step mV, 'b bypass mV, 'f full mV, 'a alarm stress
q QueryManValue, manufacturer calibration values (TestICal only. 'q' is QueryWorstStress in monitor)
r r ReadCalValue
w w WriteCalValue
c c Calibrate
u UpdateInfoFlash
In addition, the following character literals (character preceded by a single-quote)
have the following meaning when used as an address parameter to a ReadCalValue, WriteCalValue
or Calibrate command (r, w or c).
'I Bolt-/Shuntx20 voltage scale factor
's Temperature vs ADC-value slope
'O Bolt+/Array voltage offset
'o Cell/Battery voltage offset
'c Battery capacity in tenths of an amp hour (only used by BMU)
'r Cell internal resistance in uR (average battery IR for BMU)
'V Bolt+/Array voltage scale factor
'v'Vw sets the Bolt+ voltage scale factor the same as the Cell voltage scale factor
1'Vw to 30'Vw makes the Bolt+ voltage reading 1 to 30 mV higher
1-'Vw to 30-'Vw makes the Bolt+ voltage reading 1 to 30 mV lower
'v Cell/Battery voltage scale factor
1'vw to 30'vw makes the Cell voltage reading 1 to 30 mV higher
1-'vw to 30-'vw makes the Cell voltage reading 1 to 30 mV lower
't Temperature offset
'n Bolt-/Shuntx20 voltage offset
'a ADC timing index
'i ID
'v and 't, along with 'j for stress and 'q for worst stress, are also valid parameters for the
max '>' and min '<' commands (not available in TestICal).
In addition, the following character literals (character preceded by a single-quote)
have the following meaning when used as an address parameter to a QueryManValue command in TestICal.
'g ADC gain factor
'o ADC offset
'r 1.5 V reference scale factor
'3 30 degC ADC value
'8 85 degC ADC value
You can’t perform that action at this time.