OVMS3/OVMS.V3/production/qc/production_notes.txt

236 lines
9.6 KiB
Text

These are the production and quality control notes for OVMS v3.1 modules
(May 2018 onwards)
********************************************************************************
** TOOLS
********************************************************************************
1] DB9 CAN Bus QC tool
DB9 Female with:
* Pins 2, 4, and 6 connected (all CAN-L signals)
* Pins 5, 7, and 8 connected (all CAN-H signals)
* R120 between pins 2 and 5
* External 12V power connector
* GND on pin 3
* +12V on pin 9
********************************************************************************
** SERIAL NUMBERS
********************************************************************************
Serial numbers are of the form:
YYYYBBNNNNNRRRR
* YYYY is four digit year. For example; 2018.
* BB is two digit batch. For example; 00, 01, 02, etc.
* NNNN is four digit sequence. For example; 0001, 0002, etc.
* RRRR is four random characters. For example; ADEA, JKAE, etc.
First production batch is 2018010001**** - 2018010120****.
Second production batch is 2018020001**** - 2018020220****.
********************************************************************************
** PRODUCTION STEPS
********************************************************************************
1] Erase ENTIRE flash
2] Flash bootloader, partition table, and firmware
3] No need to set module password - leave it blank.
4] Set SD CARD speed:
config set sdcard maxfreq.khz 20000
********************************************************************************
** QC STEPS
********************************************************************************
1] CAN buses
Plug in the 'DB9 CAN Bus QC tool' and power the OVMS module. Use 'enable' to
enter secure mode. Start all three CAN buses, and prepare to examine the
data:
OVMS# can can1 start active 1000000
OVMS# can can2 start active 1000000
OVMS# can can3 start active 1000000
OVMS# log level verbose
OVMS# can log trace
Try to transmit on each CAN bus in turn, and ensure that the other two
buses show reception of the packet:
OVMS# can can1 tx standard 100 01 02 03 04
V (222509) canlog: TX can1 id 100 len 4: 01 02 03 04 | ....
V (222509) canlog: RX can2 id 100 len 4: 01 02 03 04 | ....
V (222509) canlog: RX can3 id 100 len 4: 01 02 03 04 | ....
OVMS# can can2 tx standard 100 01 02 03 04
V (229559) canlog: TX can2 id 100 len 4: 01 02 03 04 | ....
V (229559) canlog: RX can1 id 100 len 4: 01 02 03 04 | ....
V (229559) canlog: RX can3 id 100 len 4: 01 02 03 04 | ....
OVMS# can can3 tx standard 100 01 02 03 04
V (235139) canlog: TX can3 id 100 len 4: 01 02 03 04 | ....
V (235139) canlog: RX can1 id 100 len 4: 01 02 03 04 | ....
V (235139) canlog: RX can2 id 100 len 4: 01 02 03 04 | ....
2] 12V power
Power module from 12V source, wait a few seconds, and then check that the
adc is showing correctly:
OVMS# metrics list v.b.12v.voltage
v.b.12v.voltage 12.102V
The expected value is within +/- 0.5V of the power supply voltage.
3] Test SD card
With a micro SD card inserted, test it:
OVMS# test sdcard
SD CARD test starts...
SD CARD written 0/2048
SD CARD written 128/2048
SD CARD written 256/2048
SD CARD written 384/2048
SD CARD written 512/2048
SD CARD written 640/2048
SD CARD written 768/2048
SD CARD written 896/2048
SD CARD written 1024/2048
SD CARD written 1152/2048
SD CARD written 1280/2048
SD CARD written 1408/2048
SD CARD written 1536/2048
SD CARD written 1664/2048
SD CARD written 1792/2048
SD CARD written 1920/2048
Cleaning up
SD CARD test completes
4] Test asynchronous console
When connected via USB console cable, test the asynchronous console:
OVMS# test chargen 10
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno
)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq
The expected output is as above.
5] Test deep sleep current
Power module from 12V source, with a meter showing power consumption. Be
sure to power down all peripherals (power wifi off, power modem off, etc).
OVMS# test sleep
Entering deep sleep...
During the sleep time, the power consumption should be 1mA to 2mA maximum.
6] Test modem
Power modem into sleep mode, from command line:
OVMS# power modem sleep
Power mode of modem is now sleep
I (50190) modem: State: Enter PoweringOn state
I (50190) modem: Power Cycle
V (50910) modem: tx: 41 54 0d 0a | AT..
D (50910) modem: tx scmd ch=0 len=4 : AT||
V (51910) modem: tx: 41 54 0d 0a | AT..
D (51910) modem: tx scmd ch=0 len=4 : AT||
V (52910) modem: tx: 41 54 0d 0a | AT..
D (52910) modem: tx scmd ch=0 len=4 : AT||
V (53910) modem: tx: 41 54 0d 0a | AT..
D (53910) modem: tx scmd ch=0 len=4 : AT||
V (54910) modem: tx: 41 54 0d 0a | AT..
D (54910) modem: tx scmd ch=0 len=4 : AT||
V (55910) modem: tx: 41 54 0d 0a | AT..
D (55910) modem: tx scmd ch=0 len=4 : AT||
V (56580) modem: rx: 0d 0a 53 54 41 52 54 0d 0a | ..START..
I (56580) modem: State: Enter PoweredOn state
Cycle may repeat a few times, in order to power on modem, but make sure you
get the ..START.. message. Then, look for the modem starting up:
I (75940) gsm-mux: Channel #3 is open
V (75940) modem: tx: f9 13 3f 01 96 f9 | ..?...
V (75950) modem: rx: f9 13 73 01 5d f9 | ..s.].
V (75950) gsm-mux: ProcessFrame(CHAN=4, ADDR=13, CTRL=73, FCS=5d, LEN=6)
V (75950) gsm-mux: ChanProcessFrame(CHAN=4, ADDR=13, CTRL=73, LEN=3, IFP=3)
I (75950) gsm-mux: Channel #4 is open
I (76910) modem: State: Enter NetWait state
D (76910) gsm-nmea: GPS disabled
I (77910) modem: State: Enter NetSleep state
Check the metric to ensure the ICCID and modem model has been read correctly:
OVMS# metrics list m.net.mdm
m.net.mdm.iccid 8944500XXXXXXXXXXXX
m.net.mdm.model 35316B11SIM5360E
7] Test GNS/GPS
With modem in sleep mode (as above), enable the GPS/GNS system:
OVMS# modem muxtx 4 AT+CGPSNMEA=66;+CGPS=1,1
V (225328) modem: mux tx: 41 54 2b 43 47 50 53 4e 4d 45 41 3d 36 36 3b 2b | AT+CGPSNMEA=66;+
V (225328) modem: mux tx: 43 47 50 53 3d 31 2c 31 0d 0a | CGPS=1,1..
D (225328) modem: tx mcmd ch=4 len=26 : AT+CGPSNMEA=66;+CGPS=1,1||
V (225328) modem: tx: f9 11 ff 35 41 54 2b 43 47 50 53 4e 4d 45 41 3d | ...5AT+CGPSNMEA=
V (225328) modem: tx: 36 36 3b 2b 43 47 50 53 3d 31 2c 31 0d 0a 28 f9 | 66;+CGPS=1,1..(.
V (225378) modem: rx: f9 11 ff 0d 0d 0a 4f 4b 0d 0a 02 f9 | ......OK....
V (225378) gsm-mux: ProcessFrame(CHAN=4, ADDR=11, CTRL=ff, FCS=02, LEN=12)
V (225388) gsm-mux: ChanProcessFrame(CHAN=4, ADDR=11, CTRL=ff, LEN=9, IFP=3)
D (225388) modem: rx line ch=4 len=2 : OK
You should then start to see GPS/GNS messages coming in on channel #1:
V (227668) modem: rx: f9 05 ff 33 24 47 4e 47 4e 53 2c 2c 2c 2c 2c 2c | ...3$GNGNS,,,,,,
V (227668) modem: rx: 4e 4e 2c 2c 2c 2c 2c 2c 2a 35 33 0d 0a 84 f9 f9 | NN,,,,,,*53.....
V (227678) gsm-mux: ProcessFrame(CHAN=1, ADDR=05, CTRL=ff, FCS=84, LEN=31)
V (227678) gsm-mux: ChanProcessFrame(CHAN=1, ADDR=05, CTRL=ff, LEN=28, IFP=3)
V (227678) gsm-nmea: IncomingLine: $GNGNS,,,,,,NN,,,,,,*53
V (227678) modem: rx: 05 ff 33 24 47 50 52 4d 43 2c 2c 56 2c 2c 2c 2c | ..3$GPRMC,,V,,,,
V (227678) modem: rx: 2c 2c 2c 2c 2c 2c 4e 2a 35 33 0d 0a 84 f9 | ,,,,,,N*53....
V (227678) gsm-mux: ProcessFrame(CHAN=1, ADDR=05, CTRL=ff, FCS=84, LEN=31)
V (227678) gsm-mux: ChanProcessFrame(CHAN=1, ADDR=05, CTRL=ff, LEN=28, IFP=3)
V (227678) gsm-nmea: IncomingLine: $GPRMC,,V,,,,,,,,,,N*53
After GPS lock has been obtained, you should see the v.p metrics updated with GPS information:
OVMS# metrics list v.p
v.p.altitude 30m
v.p.direction 10°
v.p.gpshdop
v.p.gpslock yes
v.p.gpsmode
v.p.gpsspeed
v.p.latitude 22.2809
v.p.longitude 114.161
v.p.satcount 12
8] Randomly test modules to ensure that without any USB connection (powered only
by external 12V), SD CARD test operates correctly (using wifi).
9] Power down the module.
********************************************************************************
** DOCUMENT ENDS
********************************************************************************