HotSocket a multi-chip programmer with ISP


I finished the 2nd version of hot socket tonight.  I am including two ZIF 28 pin sockets.  The right hand one will service ATmega328’s.  The left one will service ATTiny 85’s at the bottom, and ATTiny2313’s at the top.  The board still has a 6 pin ISP header to program units that are in the system.

It should be drop-in compatible with a USB Tiny ISP, but make it easier to program chips that are destined for kits or other projects.  I should have a functional prototype in a few weeks.


The value of component testing

I’m working on HotSocket, a ZIF socket enabled version of the ever popular TinyTimerISP.  Along the way I needed to create a part for Eagle that would enable me to place the ATTiny2313 processor from Atmel.  This is an AVR series processor that is essentially used for software emulation of a $4 chip.  Not my first choice of how to do USB to Serial conversion, but it’s easier to stick with convention then to play baseball with the hornet’s nest of BS in the Arduino IDE and Windows/Linux/Mac etc.

One of the things I like to do when I create a part is order a tiny PCB with that part on it from OSHPark.  That helps me make sure that I have the dimensions right and it will fit onto a board when I use it.  I love what OSHPark offers.  The test board for TinyTimer was $3.95 for 3 copies including postage.  That’s terrific.  The board is shown below.



I also decided to make an alternate layout for the ever popular BC517 transistor.  The stock layout in Eagle uses what I refer to as the “martian triangle” footprint.  For some reason TO-92 packages remind me of Marvin the Martian… nevertheless, I find them a pain to bend when assembling boards.  Eagle has alternate footprints already, they just weren’t hooked to the part and mapped.  That was a quick 5 minute exercise.  I ordered a set of these from OSHPark today as well.  It was an incredible 40 cents for 3 boards including postage.  I don’t really understand how the crew over there can touch a 40 cent order.  I know from past experience it will show up in the envelope with my other order today.  OSHPark is truly changing the electronics world 3 boards at a time.  🙂  The footprint is shown below.  It will require spreading the pins, but I think this is easier to do then trying to bend one pin forward and down. The test board is to make sure I have a workable footprint that can be soldered.


The traditional footprint: (courtesy Google Image search and



So back to Hot Socket …. I may wind up calling it USB-Big-ISP+ as a play on the USB TinyTimer.  It appears that all of the units on the market are a shameless copy of Lady ADA’s work.  She nicely credits the folks who’s work she leveraged.  This is the beauty of Open Source Hardware.  Continuous shared improvement.  I’m taking the design to the next logical step.  It will have a 40 pin ZIF socket wired to support ATmega328 and ATTiny85 chips.  ATMega328’s will go at the top, ATTiny”s will have pin 1 at the bottom.  I’ll also include a 6 pin ISP header

I may also look for a way to support programming the ATTiny2313’s with the ZIF socket.  It really comes down to looking at where the pin’s line up.  If there is an issue I can simply add another ZIF socket.  The problem of course is that ZIF sockets are big and PCB real estate is expensive.

I’m building this for my own uses.  My next series of kits will not require the builder to have access to a programmer or know how to set it up.  I think this made TinyTimer harder than it needs to be.  So as part of the kit I’ll be boostrapping the processor and loading the stock code on it.  It will still have an ISP header for modification and loading new code onto it.

I also ordered a UM232R to do some expirimentation.  This uses the immensely popular FT232R USB to Serial chip.  It’s in a handy development module that has a USB port and the surface mount chip already mounted.



Image Courtesy

I want to see if I can wire this to a AVR and get acceptable programming results.  In theory it should work…. it’s a little on the expensive side as a development kit, but it will let me quickly test what I am interested in testing.  Time is always valuable.

RO Saver and UniPowerSupply

I have started working on my next two projects.  UniPowerSupply is the simplest.  I’m working on a universal power supply using an LM2576 IC.  The basic idea is to be able to use any power source under 60V to generate a stable 5v DC source.  Moving forward I’ll retire the USB-B power input and use this design.  It should be a net wash and increase component count slightly.  There are other voltage regulation IC’s out there, but this one has a wide input range and is very efficient with a switching core.

The second project is RO Saver.  I am taking the TinyPLC Duo aka TinyTimer Duo and building an application specific version of it for Reverse Osmosis.  It will control two sprinkler valves and feature an input.  The input is designed for a float switch.  The output will be relays to run 24VAC sprinkler valves.  I may add a 3rd channel to it to control a booster pump as well.  A booster pump can increase efficiency to nearly 50% in a two stage RO system.  The idea is that the board will run for 5 minutes per hour or when the float switch indicates a low water level.  The 2nd channel will be used to run a membrane flush valve once per period.  The period may be net-run time on the membrane or once per day.  I like the run-time option because it simplifies maintenance.  I will probably include an option that allows bypassing the periodic run in favor of a float switch.  I may also include an option to set the run duration with a jumper or dip-switch or a resistor.  The idea is to alleviate the need for programming and make it more of a gadget.  Once RO Saver is completed it will become a kick-starter project.  This will build on the lessons learned from TinyTimer and improve the on-time performance.

I will also be designing a programming chassis to simplify the need to burn a number of Arduino and ATTiny85 chips.  It will essentially be a PCB with a ZIF socket and an ISP header.