I finally completed my timer. I had to have William send me two boards since I killed the first one trying to remove a set pin headers where I used the wrong type. It was fun to build, and I learned a lot. The second board went together much nicer than the first. My next projects I think will go even smoother. I still need to hook up a foot switch, but other than that it is complete. I built mine with a small 120V AC to 5V DC power supply. A relay provides safelight/enlarger control. The case turned out kind of hackish since I made it from plexiglass painted with krinkel paint to try to match the Durst 138S it's going to be used on. The color is wrong, but it's a darkroom so I'll live. Still, I'll probably build a new case soon.
Thanks William for making the plans and boards available.
I'm already planning the next version which will control two sets of LEDs to make a variable contrast head.
Excellent! I think that's about four other than mine that are in service now. I'd suggest a grounded case for safety though...
I'm told that there's a new Arduino IDE 1.0 release which requires a small change to the code (#include <arduino.h> instead of <Wprogram.h>) so I should release a little update soon.
Still haven't published a change to encoder direction sorry - I'm halfway through rebuilding the laundry/darkroom at the moment. However, I can describe the change for anyone wants to do it themselves: open RotaryEncoder.h and see line 48. What you want to do is swap the definition of the two encoder pins:
static const char ENCPIN0=3, ENCPIN1=2;
to be this:
static const char ENCPIN0=2, ENCPIN1=3;
And that should change the direction of rotation.
I'm still planning on building mine, but I'm in the midst of directing an 11 floor art+performance event that runs for 5 weeks in addition to my full time job. I figured I could wait until the code got finalized, but sleep is for the weak.
I already had to make the change for <arduino.h>. That was the first thing I found in the code. I'm used to the way the rotary encoder works, so I'll leave it as is.
As far as the grounded case goes I'm not sure. All the outlets are grounded and the case itself is nonconductive. Is there something I am missing? Either way I should be safe (I think) as long as I only use it in my darkroom which has GFCI protection for all outlets.
Have you thought about putting the whole project up on github? Then we could more easily share changes by forking the project and issuing pull requests.
This was my code for the the Arduino 1.0. I just replaced the WProgram include with this:
#if ARDUINO >= 100
Last edited by L Gebhardt; 05-10-2012 at 09:45 PM. Click to view previous post history.
Reason: Add code block
Yes it is, Mr. Gebhardt did a very nice job.
Originally Posted by polyglot
A half-dozen was all that I counted in the days when I was supplying an f-stop timer as a kit. It's not schadenfreude, but I'm glad it wasn't just me that saw an underwhelming level of interest in kits. In the old days there was a large overlap of ham radio operators and darkroom-style photographers - witness Heathkit's foray into darkroom gear. But all the hams are now digerati and the abundance of soldering-iron jockeys isn't what it used to be.
I looked at the pictures and thought the case was hammertone painted aluminum. If it is plastic then there is, as you surmise, no point in (or method for) grounding it.
Originally Posted by L Gebhardt
Sponsored Ad. (Subscribers to APUG have the option to remove this ad.)
The reason for grounding is to save your butt if there's a mains wire coming loose inside the case. For example if someone steps on a cord and fractures the Live connection, it might come adrift and touch something like the back of the rotary encoder or something. Or you might end up with a live LCD frame, relay output or whatever - all hugely unlikely but the possibility of it is why there are design guidelines that include things like grounding. For something to pass AU (and presumably US) standards, it either must be double-insulated, or have all human-accessible conductive parts like chassis protected by grounding.
Originally Posted by L Gebhardt
GFC will help you a lot, but not if you get between live and neutral. How much that helps you depends on the grounding inside that switching power supply. See IEC Appliance Classes; Class I is the easiest to build at home, just use a grounded metal case. Class II is cheap to mass-produce (all those appliances with 2-prong cords) when there are plastic cases involved, but it's harder to certify. What you've got there is Class 0 and would not be legal for sale.
Most of my open-source involvement predates the existence of github so I've never tried it but there's no reason why I shouldn't give it a bash. Maybe a later release will appear there.
Nicholas: indeed I don't expect to have a lot of these out in the wild; for the record I've sold nine PCBs and seen photos of four completed builds. I don't see that there's any way for me to make money from it (the labour cost of assembly is insane and there isn't the market size for mass-manufacture; I can't imagine you making much margin off yours!) so I just release it. To me, that's the point of open-source: I build a niche-something because I want it and maybe some others can benefit from my work instead of reinventing the wheel; that ecosystem provides 99% of the software that I use daily. Taking free but raw IP and turning it into a physical item certainly isn't for everyone but I'm happy that there are now four more people using f/stop timers that previously weren't. Better yet, one of them might have a good idea and send me back a big improvement (anyone feel like writing some code for split-grade?) or bugfix.
William, thanks for the info on the electrical codes. I hadn't thought about the wire touching the LCD frame, which could certainly give me a shock if it happened. I'll take my chances for now, but when I redo the case I'll probably go with a metal one so I can ground the thing properly.
Of course your chances of something bad happening are super low, but you really don't want to get it wet.
Downloaded the source files yesterday - for some reason when I unzipped the source it was just one file, so I cut/pasted them into different files. Changed the code as described by Mr. Gebhardt and everything compiled first time!
Got the pcb from Polyglot, and now waiting on parts to arrive from overseas to start building. Hopefully everything will go as well as the programming (most of my diy experiments usually end up with me buying a commercial product). It has got me thinking what features I want in the timer, like separate focus and print footswitches. Will post back when more parts arrive.
Lowly - you need a tar-aware unzip program like Winzip, 7zip or (funnily enough) tar. The file is a "tar.gz" where tar concatenates a bunch of files in a library object and gzip compresses the whole thing. If you just uncompress the tar file and then look in it, it will look like concatenated source with a header up the front. I'll probably make the next one zip...