Go Down

Topic: RFC: Procedure to build small batches of devices (Read 138 times) previous topic - next topic

liudr

Over the past years, I've designed and built devices in small batches such as 10-25 units at a time. I've gained some experience doing such small builds. The following is a procedure for building a small batch SDI-12 + Analog USB devices.
The device has a USB serial converter IC FT232RL, an MCU ATMEGA328P (same as Arduino Uno's MCU), an ADS1115 16-bit analog-to-digital converter, precision resistors, fuse, screw terminal blocks, jumpers etc.
I build the device first by reflow soldering the surface components, and then hand solder the thru-hole components once I'm done confirming the reflow soldered components are working. You'll see why these devices can't be sold at $4 a piece, not just because the components cost more from legitimate vendors such as digikey, Mouser, Newark, etc. Most of the steps can't be completed by someone without proper training of what the device does.
Here it goes. Any recommendation? Post a response!

Manufacturing and inspection procedure
Date: 2016-11-23
1.    Preparation and printing solder paste:
  • Remove solder paste from refrigerator and set it in room temperature for one hour.
  • Clean board with alcohol and lint-free wipe.
  • Visually inspect board for defects and reject boards with visual defects.
  • Align board with stencil.
  • Print solder paste.
  • Check registration especially for ADC, MCU and FTDI chips. Reprint in case registration is too far off.
  • Wash and dry stencil.
  • Return solder paste to refrigerator.


2.    Components placement:
  • Place MCU. Check alignment with 3X loupe.
  • Place FTDI chip. Check alignment with 3X or 10X loupe.
  • Place ADC. Check alignment with 10X loupe.
  • Place (5) 100nF caps.
  • Place (1) 10uF cap.
  • Place (2) 22pF caps.
  • Place (1) fuse.
  • Place (1) EMI bead.
  • Place (3) 10K resistors.
  • Place (1) 100K resistor.
  • Place (4) 1K precision resistors.
  • Place (4) 10K precision resistors.
  • Place (1) crystal.
  • Place (1) mini-USB connector.
  • Check resistor values with loupe. Replace wrong resistors.


3.    Reflow soldering:
  • Place boards on reflow over racks.
  • Attach thermal couple to a plated hole on one board.
  • Turn on temperature gauge.
  • Connector reflow oven to power.
  • Follow reflow specifics, make sure to time each step with stopwatches. STOP if expected temperature is not reached within expected time.
  • Disconnect reflow over from power.
  • Remove boards and cool them off.


4.    Visual inspection:
  • Visually check for solder issues on chip resistors, caps and other components.
  • Check for solder bridges on ICs with a 10X loupe.
  • Check USB connector for bridges.

Found any issues?
  • Y: fix with flux paste, solder braid, and iron
  • N: proceed


5.    Flash firmware:
  • Connector programmer to PC.
  • Place board on pogo pins.

Programmer detected board?
  • Y: flash firmware

MCU detected after flash?
  • Y: proceed
  • N: check soldering near XTAL pins
  • N: inspect MCU for solder issues and other issues (IC in wrong orientation etc.). Add flux paste and reflow pins.


6.    USB connection and initial ADC check:
  • Connect board to PC.

USB port detected?
  • Y: proceed

Device responding to ID command?
  • Y: proceed
  • N: check MCU and FTDI chip for solder issues

Device returning analog measurements?
  • Y: proceed
  • N: check ADC and MCU I2C pins for solder issues
  • N: inspect connector and FTDI chip for solder issues


7.    Check ADC and resistors:
  • Solder headers and connectors.
  • Connect different resisters to analog pins.
  • Set HIGH jumpers on all channels.
  • Read single-ended inputs.

Results are as expected?
Command 'zI!' should return 'z13Liudr   SDITRD130\r\n'. Command 'zM!' should return 'z0014\r\nz\r\n'. Then command 'zD0!' should return 'z+0.xxxxx+0.xxxxx+0.xxxxx+0.xxxxx ' where x is arbitrary but the first x in each number is unlikely going to change if you poll again. Command 'zM1!' should return 'z0012\r\nz\r\n'. Then command 'zD0!' should return 'z+0.000xx+0.000xx ' where x is arbitrary and positive signs may be negative signs at times but both values should be very small with at least 3 zeros after decimal.
  • Y: proceed
  • N: check resistors and ADC for solder issue


  • Set LOW jumpers on all channels.
  • Read single-ended inputs.

Results are as expected?
  • Y: proceed
  • N: check resistors and ADC for solder issue


8.    Check SDI-12 bus:
  • Connect SDI-12 sensor to one SDI-12 terminal.
  • Poll SDI-12 sensor.

Does sensor return values?
Command '1M!' should return '10012\r\n1\r\n' Then command '1D0!' should return '1+1.xx+2x.x' where x is arbitrary but unlikely to change if you poll again. The second number is temperature so indoor reading should be above 20.0 C.
  • Y: Device passed QC test J
  • N: check MCU SDI-12 bus pin for solder issues
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

CrossRoads

That's about what MrsCrossRoads and I do also, we do 3-4 boards at a shot as that's what fits our toaster oven tray nicely.
I put on the soldermask (mylar masks from www.pololu.com generally), she puts on the parts, we reflow in an old Sears Kenmore 1500W toaster oven (4 heating elements, needed to meet ramp up rates), monitoring the temperature with a thermocouple probe on a multimeter, timing by hand - ramp up to ~ 125C, hold, ramp up to ~ 195C, hold, cool down. Check for shorts (power-Gnd are critical), I do the bootloading and sketch installing (blink if nothing else to make sure both ICSP and serial ports are good), and other testing as needed.
Kester EP-256 solderpaste from http://www.cmlsupply.com/ these guys have the best price I know of on 35g syringe; I also have a 500g tub that I refill syringes from now, occasionally get a syringe when the plunger seal is worn out. Stir it up, put enough in for as many cards as we'll be making or think we'll be making in the next week or so.
http://www.cmlsupply.com/kester-ep256-lead-solder-paste-63-37-syringe-dispenser/
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

liudr

Thanks CR. The ADC on the board has very tight pitch so I have been using SAC305 instead of EP256. There are a lot less shorts if I use SAC305. I'm going to make some updates to my procedure to do tests before soldering the thru-hole components on. Anyway, making these things costs quite a bit of time. I'm not able to sell the devices at very competitive prices due to this. Maybe time to look at turn-key solutions.

So only 3-4 boards at a time for you. They must be bigger boards. Mine is 5cm*5cm so I can do a dozen at a time or 20 5cm*2.5cm ones at a time.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

Paul_KD7HB

I would add "check expiration date of solder paste and get new if expired. If doing fine pitch, perhaps use paste with smaller solder particles.

Paul

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy