11/26/2015 @ 3:00 AM
I started this project on November 4th 2014, and received the first batch of 200 OSHChips from the EMS a few days before November 4th 2015. I had already scheduled a trip to Australia, departing on the 4th, so off I went with 1 part to play with and show friends in Oz. Exactly 1 year from concept to first completed batch.
I have developed a simple test program for the OSHChip. In my experience, most chip failures are I/O pin related since they are exposed to the outside world. ESD can kill a pin outright, or it can damage the I/O cell such that it fails much sooner than typical. The common failure modes are
- Driver can't drive high or low or both
- Pin stuck high or low
- Input doesn't work , stuck high or low
- Pull-ups don't behave as expected
I wanted to be able to test the OSHChips without needing a test fixture (for now) so the test program runs the test and blinks a distinctive pattern on the on-board LEDs indicating either pass or fail. There is sufficient program-ability that the I/O cells for each pin can be tested from within the chip. For example, to check that the pins aren't shorted high, the pin is configured for input with a pull-down resistor, and the input is read. If it doesn't read '0', then there is a stuck-high problem or the pull-down isn't working. I wrote 7 such tests that exercised each pin for all of the above problems. The other common problem that kills chips is over heating, but that is an in-system issue, and not likely for a new chip/assembly. It is also very unlikely, given the very low power nature of OSHChip.
I have received and tested all 200 OSHChip_V1.0s from the EMS and the yeild was pretty good:
- 197 tested with no errors
- 1 part had a low intensity red LED
- 1 part was completely dead, and didn't respond to diagnostic probing through the SWD port, so I replaced the BGA and it works fine now. So either a bad chip, or bad assembly.
- 1 part is failing the diagnostics, but I have not had time to identify why.
I have also successfully used pyOCD to access the on chip factory configuration registers, which include a unique ID for each unit, so I can record this info for each unit that ships to an end user. On my crappy web site at www.oshchip.com there is now an email link for people to request to be put on a list for a notification email when I start selling OSHChips. (Actually a few special early access users have received the first 14 parts).
Some very simple test programs that use the Bluetooth Low Energy radio have been written, including one that sends out a text message of "Ping xxxxxxx" where x..x is an increasing number, once per second. I started it about 5 or 6 weeks ago, and left it connected to 3 dead D cells (series voltage was about 3.05V) while I went to Oz for 2 weeks. When I returned it was still going, and was up to about 3600000 . Batteries series voltage is now 2.95V.
As I have entered this project into the https://hackaday.io/project/7813-the-square-inch-project I have already met deadline 1. Deadline 2 is partially done: BOM of final assembly. Still to do: Source EDA docs, Gerbers, drill files etc. I have a github account setup for this, and will do this in the next few days. When the time comes, please vote often and early for this project :-) Deadline 3 is also partially complete, as I already have shown pictures of the final product.