Reset powers down my USB Port!

I recently had a question from a customer who had purchased TinyTimer KS and was concerned that when they pressed the reset button it would power down the USB Port on the computer.  This post addresses what is going on and why that happens.

In the Arduino environment reset generates a condition that looks like a short.  Essentially it drops the voltage to the chip and causes a reset.  In the PC environment the USB bus is designed to protect the components connected.  So when a device shorts out its port is powered off by the computer to protect the USB bus.

When the same Arduino compatible device is connected to a “dumb” USB power source such as a wall charger, the reset works as expected.

The takeaway here is that you should avoid using reset while connected to USB on a computer.  Instead, just unplug the device and plug it back in when using a computer for power.

 

Product assembly and testing update for TinyTimer KickStarter Edition

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.

Updated manual for TinyTimer KickStarter

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.

More Azure Headaches

Microsoft Azure is nice, but I’m beginning to doubt it.  I found that the server hosting Nanohawk.com was unresponsive again.  My fault for not dealing with it sooner. I had gotten an alert from Pingdom a few days ago, but thought it was an anomoly.

It refused to restart via the portal.  I wound up having to stop the server and then start it again.  That’s fine, but it changed my IP which required an update to DNS after trying to figure out why I could not load the webpage or get SSH to respond.  It would have been nice if Azure had warned me I was going to lose the IP address.  I would not have wasted 15 minutes trying to figure out why the machine wasn’t responsive despite the console indications that it should have been.

Amazon Web Services is looking very interesting.  I’m already there for backup and DNS management.  Instances are the same price.  Amazon has great documentation.  Microsoft has documentation written by marketing that rarely contains what I’m looking for.