OpenBCI is a complicated project with many moving parts. Our hardware design team is very small (meaning me), and so it’s kind of incredible that we have had as few mistakes make it past pre-production as we did. This one was a doozy of an oversight. The OpenBCI Daisy Module is designed to be an expansion card for the basic OpenBCI board to double the sensor inputs to 16 total (we are shipping Daisy Modules with our 32bit boards in the 16 Channel R&D Kit). The ADS1299 IC which does the analog signal acquisition magic has a neat feature, all 8 input channels are sampled simultaneously. That’s hugely important for DSP and correlation between channel data. When the Daisy Module is attached to the base board, the idea is to maintain this sampling simultaneity across all 16 inputs. Texas Instruments makes this possible with the ADS1299 by providing an option to output one ADS’s clk signal (internal master clk is 2.084MHz) and input it into another ADS. Just a couple of things need to be setup for this to work. The ‘master’ ADS needs to have the CLKSEL pin (pin 52) tied to DVDD, and the CLK_EN bit in CONFIG1 register set to ‘1’. Then the ‘slave’ ADS needs to have it’s CLKSEL pin tied to AGND. That’s it. Then the master CLK pin is connected to the slave CLK pin and both ADSs are running on the same clock, making simultaneous sampling possible. Well….
Turns out, the CLKSEL pin on the Daisy Module is tied to DVDD instead of AGND!
The pin 52 is shown, connected to a trace under the ADS1299. Luckily (?) the pin right next to it (pin 51) is connected to AGND plain. So, after mulling over all the possible solutions, I decided the least painful fix would be to lift up pin 52, gently bend it over pin 51, then tack it down with solder. Thankfully, we only have 300 Daisy Modules. The whole process of re-work took about 2.5 days. Here’s a description of the process.
This is a picture of the area of interest prior to re-work. Pin 52 is 4th from the corner, counting to the right.
The first step is to separate the pin 52 from it’s solder pad. For this I used an exacto blade. It helped if the blade tip was worn or broken off just a little bit.
In the picture above, I have the exacto tip nestled in between pin 52 and 53. In one sort of scooping move, I sliced under the pin and lifted it off the solder pad, shown below.
This was a tricky move, because all of the pins in this row are connected to a different power plain than the ones next to it. 52 is connected to AVDD. To the left of pin 52, is AGND, that’s where I want to move it. The pin on the right is connected to AVSS (-2.5V). Chance for shorting in either direction is high. After scooping the pin off of it’s pad and bending it slightly toward pin 51, I pressed down the end of the free pin to make contact with it’s neighbor.
Note the broken point of the exacto blade. That made it easier to press the pin down. After this, I tested for shorts with my multimeter between DVDD|AGND, and DVDD|AVSS. Most of the time, there were no shorts. Sometimes, I had to go back in and cut between to remove some renegade solder spur. Here’s what the pins look like before soldering.
At this point, if there are no shorts, the last thing to do is apply a small blop of solder to the crossed connection. Here’s how the rework looks when it’s finished.
One last check for shorts between the power pins described above, and then it’s finished. Occasionally, I would add too much solder at this point, and have to grab the solder sucker, or slice off a blob with the exacto blade. In all, only 2 boards failed at this point. Not too bad! When I got into the groove, I was able to do the complete re-work cycle in about a minute.
We are currently half way through verifying the work by testing each Daisy Module to see that we can communicate correctly with them. So far none of the modules has failed verification. If you get your Daisy Module and have any issues, please contact us on the forum and we’ll help you get it working.
In the annals of hardware screw-ups and re-work pain, The Daisy Module Mess turned out to be not too bad. Of the two failed boards, one is recoverable, however one is likely not because I accidentally cut off the AVSS pin 53….