These notes were made during the assembly of the JLCPCB order of about March 2023.
These units will be assigned serial numbers 16 through 30.
- Manufacturing test procedure for every unit **Assembly Notes and Tips
- GPAD Theory of Operation
- Troubleshooting procedures
Solder station with appropriate ventilation 3/16 Nut Driver Number 1 philips screw driver Diagonal or other flush cutting hand tool for lead trimming. Assembly fixture, detailed below.
The most recent schematic is for Rev 2 PCB Assemblies is: Schematic-GeneralPurposeAlarmDevicePCB-V2.2.pdf
As received from JLCPCB. Note the assembly has the SMT components placed by the board manufacturer and some but not all through hole components.
Write serial number on the PCB assembly at the location provided.
Example of serial number written on number 26.
Further Management of serial numbers is beyond the scope of this document. Each manufacturer must figure something out.
We made an assembly assistant / fixture by using a raw PCB with some long #6 screws and nuts to hold at the PCB mounting points.
In addition four 4.40 screws with washers and 4-40 nuts to make a 1/8" spacer for holding the LCD and header for soldering.
GPAD Rev 2.0 PCB, Remove the Resistor R103 (Loads the Peripheral Select), Update Factory Test for D601. #213
Problem:
The assemblies built per the BOM_JLCPCB_20230228Modified.xls have R103 fitted with a 1K resistor. This resistor with the LED D102 loads the SPI_CLK signal and is incompatible with proper operation of the GPAD as an SPI Peripheral from a 3.3V SPI Controller using the level shifting method using the common gate MOSFET.
Solution:
Remove R103.
-
LCD Bezel Grounding. On the LCD module locate the J1 and J2 solder pads which if soldered ground the bezel.
Solder them.
As soldered. -
The 16 pin header is fit and soldered on to the LCD sub module. Then the pins are placed through the GPAD PCB. Four, nylon 1/8" spacers are placed at the four corners of the LCD sub module. Four 4-40 x 3/8" screws with 4-40 x 3/16" nuts go through both boards and are torqued to 3.4 - 4.8 Inch-Pounds. Solder the LCD header pins into the GPAD PCB.
TIP: Using the assembly fixture the 16 pin header can be held flush to the LCD module to solder a center pin to start the process.
Assembly Fixture View 2 View of holding header to LCD. -
Put Reset button, S101 into PCB from display side.
-
Put Mute button, S401 into PCB from display side.
-
Put Buzzer, BZ601 into PCB from display side. Bending leads may help retain.
-
Put Contrast pot, RV301 into PCB from display side. Bending leads may help retain.
-
Through hole LEDs at locations D201-D205 and D105 with a stand-off spacer.
LEDs with spacers.
Thread the LED leads through the stand-offs. The longer LED lead is the anode. The cathode has a flat side on the plastic case.
Place the LEDs in to the PCB so that the flat cathode side corresponds to the silk screen marking. Bend the leads to retain the LED into the PCB. Placing the assembly on the fixture lets you have access to the top and the bottom of the assembly.
Assembly Fixture View with LEDs ready for soldering. Lift LED and reflow solder for a flush fit on the PCB.
For each LED, after soldering one lead, holding the LED from below up to the spacer and the PCB and reheat / reflow the solder for a flush fit.
Solder the second lead on the LED.
Trim the excess leads on RV301 and the LEDs.
Assembly Tip: Sharpie Oil-Based Paint Markers can be used to mark polarity on LED standoffs and mark PCB's version, serial number and programming status of the microprocessor. LCD side components installed.
Rejoice! Electrical assembly is done.
Electrical tests are in two parts.
- Unprogrammed measurements made before flash programming the boot loader and other firmware and...
- Programmed measurements made after a boot loader and firmware have been placed into the microcontroler.
Measure and record by serial number the following electrical parameters. Investigate and correct abnormal measurements before applying power. Remove J102 and J103 and retain if present. Note where they should be replaced. Start with no connections to the DUT (Device Under Test).
Power Jack Measure resistance to ground at J101 center pin as open or greater than 100K ohms.
SPI Interface Measure resistance to ground at J401 pin 5 as open or greater than 1Meg ohms.
Vin net Measure resistance to ground at TP102 as open or greater than 75K. This net is capacitive and the resistance measured will climb as the meter charges the net.
+5V net Measure resistance to ground at 1K +/- 5% (950-1050 Ohms).
With a current limited supply set for 12V and maximum of 200 mA, apply power at J101 and note and record the unprogrammed current. (FYI, when unprogrammed, the first time power up current is normally about 75-80 mA.)
Check that the power LED D105 is lit and is RED.
+5V net Measure the voltage of the +5V Net at TP103.
(FYI, a programmed DUT that has been powered up, and with display back light on, Hold the reset switch and measure current as about 61 mA)
Vo Initial Set / LCD Contrast. With a volt meter, measure the voltage of the Vo pin of the LCD header to ground. Adjust RV103 for 1.3 V. This is an initial guess. Later in the process will be the actual setting of the contrast. See records of measurements of some of the Rev 2 assemblies at this issue: #217 #217
Electrical Test Results Table
In Tennessee:
- All resistance measured on 20Meg scale except R@5V net measured on 2K scale. Multi meter EMCO Model DMR-3800 unless noted.
- All current measured 200mA scale. Multi meter EMCO Model DMR-3800 unless noted.
Capture: DUT Serial Number, R@PowerJack, R@SPI Interface, R@Vin net, R@5V net, UnProgramCurrent, Volt@+5 TP103, FullCurrent mA, Vo Volts, Notes
DUT Serial Number | R@PowerJack | R@SPI Interface | R@Vin net | R@5V net | UnProgramCurrent | Volt@+5 TP103 | FullCurrent mA | Vo Volts | Notes |
---|---|---|---|---|---|---|---|---|---|
01 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ||
02 | >2Meg | >2Meg | >2Meg | >2Meg | 61 mA with LCD back light on | 5.04V | 119 mA | 1.29 | Not measure un programed. |
03 | 1.5Meg | Open | 490K | 1.052K | 68.4 LCD ON | 5.03 | 118 | 1.29 | |
04 | 1.5Meg | Open | 320K | 1.052K | 68.5 LCD ON | 5.02 | 118 | 1.30 | |
05 | 980K | Open | 500K | 1.052K | 68.8 LCD ON | 5.03 | 118 | 1.33 | |
06 | 1.3Meg | Open | 250K | 1.052K | 68.7 LCD ON | 5.03 | 118 | Vo=1.29 | |
07 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
08 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
09 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
10 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
11 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
12 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
13 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
14 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
15 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | |
16 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
17 | 0.47 | Open | 3.5 Meg | 1.059K | 68.5 mA LCD ON | 5.02 | 136 mA | Vo=1.35 | |
18 | open | Open | Open | 1.059K | 62.6 mA LCD ON | 5.03 | 134 mA | Vo=1.34 | |
19 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
20 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
21td> | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
22 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
23 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
24 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
25 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
26 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
27 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
28 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
29 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? | |
30 | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Vo=1.?? |
See data from Rev2 build here: #230 Test condition. Measure before firmware is loaded into device Capture current on circuit blocks. These measurements made before the DUT was programmed with any firmware. NO BOOTLOADER even. Measure the current by measuring the voltage across the 1 Ohm decoupleing resistor from the raw power to the test points indicated. Raw power is at TP103 +5 test point. Volts in mV will be a measurement of mA.
DUT S# | VR101 (Current U102) mA | VR310 (Current LCD) mA | VR601 (Current Buzzer) mA | Notes |
---|---|---|---|---|
29 | 2.1 | 49.1 | ||
30 | 2.5 | 48.8 |
** Note: Loading firmware through the SPI interface is a manufacturing test of the SPI hardware components. **
Use an Arduino UNO as an ISP (Incircuit Serial Programmer) which will load the boot loader into the DUT. Cable Connect the ISP UNO to the DUT as follows:
Signal Name | SPI UNO | to DUT | RJ12 Pin |
---|---|---|---|
SPI CLK | D13 | D13 | 4 |
SPI CIPO | D12 | D12 | 6 |
SPI COPI | D11 | D11 | 2 |
nCS | D10 | D10 | 1 |
GND | GND | GND | 3 |
POWER | +5 | +5 | 5 |
Wiring of the UNO to the DUT. Place a Jumper on the DUT from D10 to Reset Jumper for D10 to Reset.
If you forget the above jumper the IDE will give an error something like this:
Arduino: 1.8.19 (Windows 10), Board: "Arduino Duemilanove or Diecimila, ATmega328P" avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Error while attempting burning of bootloader with out the RJ12 connection.
This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
To load into the UNO, Select the serial port for the UNO and compile and upload with the "ArduinoISP" by pressing U.
Setup the UNO to burn the boot loader into the GPAD target.
Select the board type (Boot loader type) to "Arduino Duemilanove..." .
Select the Processor type to "ATmega328P" .
In the Arduino IDE, select TOOLS > Burn Bootloader .
Watch the progress bar in the IDE and look for success with the message "Done burning bootloader." in the blue status bar.
If R103 has not been removed, check that LED D102 is winking with a short on time and longer off time indicating that the boot loader has been loaded. Until any other sketch is loaded, this is the expected behaviour of the unit under test.
Connect a USB cable to the DUT. Note the COM port enumerated in Device Manager Ports(COM&LPT) drop down
In the Arduino IDE, open the new file "GPAD_Factory_Test.ino".
Set the IDE for the COM port of the DUT.
Using the Arduino IDE, compile and upload to the DUT the "GPAD_Factory_Test.ino"
Watch the progress bar in the IDE and look for success with the message "Done uploading" in the blue status bar.
Open a terminal to the COM port of the DUT and set for appropriate BAUD rate. Press the reset switch on the DUT and the LCD should display a message. The terminal should display a boot message too. This example is of a RealTerminal connected to the DUT.
Measure and record by serial number the following electrical parameters.
Observe the current on the DUT. Press the Mute Switch S601 and the white LEDs D201-D205 should light. The Buzzer will make a sound. Record this full current in the table above.
That's it. End of Rev2 Tests as of March 2023
Use five screws to hold the printed wiring assembly (Green) to the yellow part.
The screws must be selected to fit to the enclosure as 3D printed. The enclosures printed of nylon worked with a sheet metal screw of thread diameter 0.14”
Use four screws to fix the tan part to the yellow part, two on each side. The screws must be selected to fit to the enclosure as 3D printed. The enclosures printed of nylon worked with a sheet metal screw of thread diameter 0.087”
- Connect the DUT to an SPI controller and test SPI interface.
- Connect the DUT to an I2C peripheral device and test the I2C daisy chain output.
- Walking One test of LEDs D201-D205.
- Test for Amplitude Modulation of Buzzer.
The GPAD is based on an Arduino UNO design with a CH340 USB to Serial adapter which enumerates on a USB port as a CDC aka Windows COM port (In linux systems a port /dev/ttyUSBn where "n" is a number).
The GPAD is a SPI Peripheral device and will be controlled by another computer which will be a Controller.
The GPAD Can be configured to get power from three ways. One is a barrel jack (2.1mm center positive) at 7-12Vdc, A second through the RJ12 connector from the Controller at 7-12Vdc is with a jumper on J103 or resistor at R107, and the third for low current applications only is the USB bus by adding Jumper J102 or zero ohm resistor at R106.
The GPAD generally is controlled by an SPI Controller but through the USB port debug information can be watched and some TBD control is also possible.
Compare and contrast operation with a normal device when ever possible. Check the project issue list for history of other units with faults and their fixes.