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 ********************************************************************************