Electronics PCB Manufacture

UV Light Box Controller – Part 2

Now, this is why i love the state of electronics at the moment – especially hobby grade ones. I can go from an idea on a piece of paper, to a working prototype, in… about 3 hours? Something like that. Anyway, in the time its taken since the last post, I have built and coded my Light Box controller, or at least prototyped it on a breadboard.

Isn't it pretty? 😀

The breadboarding was actually the easy part – as you can see there are 5 buttons, 9 LED’s, a big Darlington Transistor, and an Arduino (and battery, but thats just for portable power). The buttons, from left to right are: Reset, Pause, Go, Up, and Down, and the LED’s are (again from left to right): Power, Go, 8 minutes, 4 minutes, 2 minutes, 1 minute, 30 seconds, and Array. The array LED is just as a place holder until I actually hook this up to the UV Array I have built (more on that in another post).

So when this is running, the timer counts down (in binary) in 30 second intervals. You can set it to the nearest 30 seconds using the up and down buttons – up to 15 minutes 30 seconds, and down to 30 seconds. The reset button sets it back to 8 minutes, although only when it is paused. The timer can be paused, and will turn off the UV Array when doing so, which would allow you to move or adjust something in the box. This will also allow for the simple addition of a switch to detect if the door is open, although in my current box that is pointless… the door never actually shuts.

The code for this is below (click the read more link to see it!)

Electronics PCB Manufacture

UV Light Box Controller – Part 1

So setting out to improve my home PCB manufacturing, I am going to build a timer controller for my UV light box – using an Arduino and a few LED’s. nothing overly complex, apart from a Darlington Transistor for controlling the UV array.

The plan...

So after laying down the plan, its on to breadboarding and writing the code…. Stay tuned….


Electronics PCB Manufacture

PCB Manufacture – Part 2

So after a bit of experimentation, turns out its less the strength of the sodium hydroxide that matters, more the temperature. Using a water bath at ‘slightly warm’ (technical term :P) with a 1.5% solution, the board developed perfectly. This is after 8 minutes in the exposure box, but still, thats a 10mil trace its done. I think its 10mil anyway, will check my original drawing later. Just about to etch it to make sure its worked well.

exposed board ready for etching

PCB Manufacture – Part 1

Currently sat in my garage, waiting for a UV photo resist board to be exposed – trying it at 8 minutes. This is after our first forray into UV pcb’s, where we didn’t expose it for long at all… and it didn’t work. Well, it did, after we put it in an even higher strength sodium hydroxide solution…. around maybe 7% or so… and proceeded to eat all the resist off. Will post to say how well this one goes…

my diy uv exposure box... cardboard chic 😛
CanaryMod Crow Git Usage

Git Wrangling

Welcome! Ok so this is a first post on this recently cleaned out blog, so lets get right into it.

I am wanting to do some development on the CanaryMod Server for Minecraft, specifically on the current Crow build. To get that however, I had to get the damn thing down off Git. So obviously, the first place you head when your new to something is the tutorials. These do really help actually, and gave me a basic idea of how to get things going, and how similar the Git command line stuff is to Linux (which isn’t much of a surprise as its based on Linux, and actually uses a Linux shell emulator even in Windows to get things done). Anyway, this is how I eventually got my fork of CanaryMod out of the cloud!

First, fork the original CanaryMod Git repository, using the web based interface. Just go to the main page, and on the top right, click fork. Git will do the rest on that side, and then you’l have your own fork of CanaryMod under your own username.

So next, you need to go to the Git command line interface. On windows, this is called Git Bash. In Linux, I have no idea, although its probably just called Git and you just call it on the command line without any other problems.

In the Bash prompt, go to the directory you want to pull the repo in to. Mine is called ‘workspace’, as im going to be running Eclipse straight on top of it. Then activate the git repo for this folder with:

git init

So that Git will then create the database it needs for the repo.

This next bit had me stumped for a bit until I googled for it. I wanted to fork JUST the crow branch, not the master branch (as the master branch hasn’t been updated for a while). I could find the usual control to clone a Git repo, which is:

git clone

Where username is your username, and repo is the repository name. (in this case, TBSliver and CanaryMod, respectively). This would clone just the main or master branch. To clone the crow branch, you need an extra command, as below:

git clone -b crow

This would then clone just the crow branch. Obviously, putting this into your Git line will not work, as you don’t have my password or RSA key or whatever it was I set up when I started it.

So with just that, you have the CanaryMod Crow branch on your computer! Of course this is not very useful on its own, apart from just compiling it (which will have another post dedicated to getting it into Eclipse and running from there). You’l need to commit new changes! Also, what happens if new things happen on the original branch? Read on!

So If you looked through the tutorial for Git, you’l remember something about adding an upstream repo. This allows you to pull any updates done to the original repo you forked form, into your local repo ready to merge. So if you now go into the CanaryMod folder (cd CanaryMod) you can run this to track it:

git remote add upstream git://

git fetch upstream

This adds the git repo with an alias of upstream, and then fetches it. You can then merge this with your branch with the following command:

git merge upstream/crow

There is always more that you can do with Git, and I’m only just learning how to use it. Anyone find any errors, please let me know and i’l update this!