Close

First Pass PCB Results

A project log for Tippy Timer

A simple "box" to make it easier to time out discrete intervals.

bud-bennettBud Bennett 05/05/2022 at 14:330 Comments

I populated one PCB on 2 May, 2022. There were a few surprises. The footprint for the PIC was not wide enough and required very precise hand-soldering to properly register the pins. (Mea culpa...I replaced the proper footprint with a generic 20-pin SSOP without checking the data sheet.) The OLED protruded above the board more than the allowed 5.5mm. This was remedied by removing the plastic spacers on the 4-pin header and placing a piece of double-sided tape at the other end of the OLED board to properly space it. Also, the case opening for the PCB was not large enough, resulting in a very tight fit.

My usual practice is to solder the LIS3DH accelerometer to the board by solder bumping both the board and the package. Using a generous amount of flux paste, the package is then hot air soldered with an extra tap, or push, to the top of the package to ensure the bumps connect. After that the pins are checked for connectivity by measuring input protection diodes from GND to each pin. Since there are no other components on the board this check is very predictive of a good solder joint. Then the flux is removed.

Powering up the first time for a new design requires the power supply to be set to a low current. I set the power supply for 3.7V with a 10mA limit. The display was dead. It turns out that the display won't activate if the power supply ramps up too slowly. After I was confident that there were no high current problems with the board the power supply current was increased to 100mA, which solved the OLED startup problem.

I could verify some preliminary functionality by tipping the board on its side an noting the display value, but it would not count down.

Secondary Oscillator Problems:

The 32.768kHz secondary oscillator was not running. I am aware of startup issues with these low frequency crystals and changed the two coupling capacitors from 22pF to 15pF along with several values of R8 with no luck. I returned to the protoboard to try and figure out how sensitive this oscillator was. 

There appeared to be no problem with components on the protoboard. It wasn't until I swapped out the 3x8mm crystal for a 2x6mm crystal package that I was using on the PCB that the problem became apparent. I had ordered 20 pieces of the 2x6mm form factor crystals from Aliexpress. Half of them tested bad on the protoboard. Apparently the AliExpress seller was selling rejects, which makes me wonder about the quality of the nine crystals that did oscillate.

When I replaced the bad crystal with a good one on the PCB the oscillator started up and ran properly. The OLED display counts down at a one-second interval.

Current Drain Data:

Average current draw in sleep: 30uA

Average current draw active: ~4mA

I'm gonna have to track down the source of the high currents during sleep...it's a mission now.

Functionality:

The code still reflects what was used for the protoboard version so the orientation of the accelerometer has changed with the PCB mounting. The Off position and 60 minute position are unchanged but all of the others need to be reworked. But the timing interval changes and resets every time the PCB is oriented to a different edge upward. It will take a few more days to find the bugs.

Discussions