I’m excited to share that the prototype board has been assembled. I did discover an issue with the run/program switch. A few other minor adjustments were warranted as well. Still working on getting the ISP to behave. The assembled board looks good. Here’s a picture:
I worked on this for several hours yesterday. Realized I’m short some of the tactile switches and low on a few other components. Ordered more pieces. ISP would not work. Kept getting 0x00 response from IDE. Going to take another board and populate it with just the bare minimum pieces and see if it will work and then add to it from there. There is a bug somewhere. Only thing new is I’m using a different Arduino footprint from Sparkfun’s library.
I originally designed the tiny timer using an MJE3055 transistor. I did this because I had one laying around. Always a great excuse when hacking a project. For production purposes, that’s not usually the best choice. I decided that I would change over to one of my favorite transistors, the BC517. It’s a high amplification transistor with an Hfe rating of 30,000. This means that the signal amplification is 1:30,000. The first time I put a timer together with it I promptly fried it. That was unfortunate but a stark reminder to always check resistor values. So today I setup the breadboard to do some component validation. I wired a relay, BC517, and 1M ohm resistor. I then coupled it to an Arduino Uno. I don’t remember what sketch is on the Uno, but when I put a wire to pin 1 the relay started going off like a door bell. Good enough for testing. After an hour or two I’ll have accumulated enough cycles. It’s running at around 4 cycles a second. That yields 14,400 cycles an hour. I’ll let it go for a couple of hours. 28,800 cycles is a good break in test.
For your amusement I’ve attached a short video I took with my Nexus 4 Android phone.
Many thanks to our friends at OSHPark for another speedy order of prototype boards. The boards arrived today for TinyTimer-Classic. This is the ATTiny85 powered timer with a single AC or DC relay. This revision adds a standard 6 pin ISP header and optimizes the component layout. I will be documenting the build and verifying the code and components before launching the product on Tindie. This product is geared towards hackers and makers. It is customizable via the Arduino IDE and supports most basic functions.
I touched up TinyTimer-Classic this evening and ordered some prototype boards from #oshpark. I added a standard 6 pin ISP header, and reset button. I changed it over to the standard relay I’ve been using as well. Once it comes in I will do a confirmation build, write instructions, and publish it. Should be a bunch of activity coming up in the next few weeks.
I sat down this evening to work on the instructions and the prototype. I realized I had omitted a resistor on the run/program switch. I also decided to reduce the number of buttons and change the way the LED displays work. For those who have been following the project, the original goal was two knobs, two LED displays and a dip switch for the interval. I decided to eliminate the dip switches and found that the knobs were unreliable. I replaced the knobs and dip switches with a series of menu buttons. I also outlined the external voltage area to remind users that this could be high voltage. I added some mounting holes as well. I also marked pin 1 of several pin headers.
I was working through how those would function and realized that I had made it more complicated than it needed to be. Programming is something you will do occassionally. Why tie up so many pins on the processor? Why use a more expensive, larger LED when a smaller one would do? I opted for 2 buttons and a switch for programming. Select the mode, run or program. The buttons are next and inc. Inc as in increment or up. Each digit only has 9 options. This makes it work like a dial on a lock, but minimizes the hardware involved. Next moves from one digit to the next. I relocated the two LEDs so I can make them pull double duty. The Green and Red LED’s are for indicating where in the cycle the timer is at. Green is for run, Red is for wait. During progrmaming, Green will represent the on cycle, Red will represent the wait cycle. The single digit will indicate which mode 1 through 4 (hmm maybe 1 through 9) and the 4 digit LED display will represent the duration 0000 through 9999.
I actually like interval 1 through 9. That would eliminate programming for some users…..and work like this:
okay, do we really need anything bigger than days on this? Days could get really silly… so I’ll just stop there. Besides, 9999 days ought to cover you.
So without further delay, here is what the boards look like now:
Great news, the prototype boards arrived in the mail yesterday for TinyTimer-Kickstarter edition. I’m hoping to work on assembly and testing this week. I’ve been doing some construction on my house and my office is a bit of a mess. I did a quick test fit of the LED module and Max7219CNG chip and both fit great. There is always a risk when using a new part that the footprint will not match the part. I try to avoid that by printing the board layout on paper and laying the part over it. That helps spot major issues, but it’s not fool proof.