I completed assembly of 12 TTKS units over the weekend. My initial testing was that 8 units worked as expected. 2 units needed the filter capacitor on the power supply changed from a 1uf to 4.7uf 50v electrolytic capacitor. I’m unsure as to why these two units were seeing more noise, but it was a simple fix. The final design would not work with a 1uf ceramic capacitor and was exhibiting symptoms of IC noise.
One unit appeared to have a bad LiteOn LTS4301JG. I thought this was odd, but de-soldered the unit and replaced it. The replacemend 7 digit LED did the same thing. I resoldered the Max7219CNG and the 4 digit 7 segment LED and was unable to eliminate the issue. I’m going to assign that one to a damaged or defective trace somewhere on the board. The purple soldermask makes it almost impossible to make a detailed inspection, so I put in the bin of bad memories. I keep a bin with all my prototype and defective units in it.
The 4th unit shows no signs of what is wrong with it. It simply will not power up. No telling what the deal is and I’m opting to junk it instead of tearing it apart to find why it won’t power up. Everything on the board looks just fine, so I am thinking perhaps I damaged an IC. I was having some problems with heat transfer on the soldering iron the other day. I finally turned the heat up on it which helped, but I think the unit is just ready for replacement. It’s possible I stayed on a pin too long and burned the IC.
I did manage to salvage my last prototype unit. This unit was production ready but exhibited the power instability. I replaced it’s capacitor with a 4.7uf unit and it works just fine and passed programming and testing just fine. It does have a minor difference in the input, so I’ll send it to my Dad who had ordered one of the units on Kickstarter. I know he won’t be using the input on it so it won’t matter. Everything else is identical and functional.
While some would consider this dirty laundry and hide it, I consider it just part of developing electronic products. Anytime you manufacture something you are going to have failures. It’s nice to be able to pinpoint the cause, but it’s more important to have quality checks in place to make sure you ship good product. Sharing the ups and downs will ultimately help others who want to assemble kits and make products.
I updated the manual for TTKS today. There were two important changes based on observations during assembly of units.
The first observation was that the USB-B pins were susceptible to being bent and needed to be carefully aligned prior to insertion. While USB-B is a nice durable connector, I will be thinking hard about it in future projects. More on that in a separate post about how people want specific applications, not general purpose widgets.
The second change was moving the BC517 insertion to a later point. The BC517 uses an annoying triangular foot print which does not match how the transistor comes from the factory. This requires bending the pins and then fussing with them to get them to go in. The net result is that the transistor won’t go in all the way and every board is a little different in terms of how far you can get the transistor in. Push too hard and you’ll collapse the pins. When it is inserted early in the process it is subject to stress during assembly.
Thus the simple solution is to leave the BC517 to last. This allows it to be protected by the relay which on average sits higher than the BC517.
I sold a TinyTimer-Classic with assembly today. The assembly went fine… the testing did not. After several hours I concluded that sharing the MOSI/MISO lines was causing grief. After wrestling with several alternatives, I decided to retire TinyTimer-Classic. It will be replaced with an upgraded board called TinyPLC. This is an Atmega328 based unit and essentially rolls forward the work of TinyTimer under a more appropriate product name.
The new unit will increase in cost due to the larger PCB and the beefier Atmega328 cpu. While I regret increasing the cost of components, it is still a bargain compared to the cost of an industrial PLC.
Here is a preview of the board:
Should have the initial boards in hand at the end of the month. This is the core design involved in TinyTimer Duo and TinyTimer KS. Look for the following product developments:
TinyPLC Single (this unit)
TinyPLC Duo (TinyTimer Duo)
TinyPLC Quad (4 channel version) I have to review the pin availability, but I’m pretty sure this is do-able.
I spent some time tuning the TinyTimer design with the interface. I realized I wasn’t happy with simple pins for the input and logic connection points. I changed them to terminals which set off a cascade of space issues. I wound up re-laying out the entire board this evening to deal with some space constraint issues.
Added a top layer ground plane to resolve some ground plane issues. Incorporated some best-practices settings from Sparkfun to increase manufacturing tolerances by setting higher separation values.
The big change is that I put the LED driver at the top of the board to isolate all of it’s traces and get them out of the way. The input buttons moved to the bottom of the board where they are easier to manage. The run/program jumper moved to the other corner. It will be important for people to disconnect the load before programming.
Found an issue with the ISP and while I was fixing it I realized I could free up a pin to add an input. There is very little cost involved with adding the input which is a great thing. It significantly increases the things you can do with the timer by allowing it to react to an external input.
added 2 pin terminal block for input via an Analog pin on TinyTimer.
labeled load and input terminal blocks.
connected input terminal block to VCC (5v) and a 100 ohm resistor -> ADC 3.
Moved RED led off the serial clock line. It was causing the ISP to not work properly. Validated by cutting one lead on the prototype.
Adjusted some component locations for easier assembly.
Here are some images related to the changes and improvments:
I found a hard bug in the PCB design. I had forgotten to include a pull up resistor on the reset pin. This explains why it seemed dead. There was no nice way to hack around that, so I ordered new boards right away. Need to get a unit assembled and begin coding/testing/verification so I can ship by the end of October.
Prototyping is one of those things that when it works properly it can be irritating. I found the bug in the circuit this evening. I had the crystal oscillator and the capacitors in the wrong order. Grr. I’m going to salvage the prototype board, but it won’t be pretty. Of course, the important part is that I found the mistake and didn’t make 100 copies of it.
That’s the joy and purpose of prototyping. Here is my 6 component Hackduino running BLINK. 🙂