Further PCB improvements

I’m glad to report I’m getting even better result with my PCB etching. Results do seem a bit up and down each time I get back to it but I feel I’m narrowing it down and getting more polished.

One. I’ve started using Ziplock vacuum bags to evenly press the transparency against the PCB. A really nice cheap substitute for a vacuum light box! I can thoroughly recommend them.

Etching underway

Etching underway

Two. I’m now able to get even better exposure with 3.5 minutes under the UV box rather than using the fluorescent tube. Maybe my developer solution used to be too strong. Maybe ditching the glass in favour of the Ziplock helped. Regardless, I’m getting a really good result. Here’s the partially etched board showing great definition.

Three. I got some Tin plating solution. No idea why I didn’t do this before, as it’s really easy and gives a great finish. The instruction say to carefully clean the copper with an abrasive. However, I assumed that as I’d just removed the etch resist from the copper with acetone and it had to be just about as clean as it could be. I popped it straight in the tinning solution before I got fingerprints all over it.

Etched and soldermasked board

Etched and soldermasked board

Milled, drilled and populated

Milled, drilled and populated

I had to mess something up and I removed the protective layer on the soldermask before exposing. Some of it dulled a little on contact with the transparency. Oh well. Otherwise I’m very happy. The ridiculously small negative text even came out a little. Here’s the board before drilling and populating. It a simple MSP430 based alarm for when my two year old son opens the front door. He can now just reach the handle.

When I’ve got it all sorted (and have tried the via rivets too) I think I might do a proper write-up.

CNC mill alignment camera (version 1.0)

Since switching from milling PCBs to etching them, one of the most awkward steps is getting accurate alignment for drilling and cutting out the boards. Mounting a camera on the spindle isn’t an original idea, but after sporting some tiny endoscope cameras on eBay (10mm dia, 40mm long) I thought I’d give it a go. A good excuse to use the new lathe too.

image

The design is pretty simple. I drilled out some  aluminium bar stock to 12mm, with one end slightly narrower and tapped to M12. Then I turned down a M12 bolt to for in the 3mm collet I use with my end mills. A slot at the top is for the USB cable and two sets of three nylon screws allow for accurate alignment.

image

As you can see, a Mach3 video plug in makes it very easy to set the origin on a PCB or other work. Unfortunately it’s a bit long so there’s only just enough room to use with flat stock. I considered mounting it to the side of the spindle (with a known offset) but that didn’t seem right. A more compact version 2.0 is already planned using just the guts of the camera.

A lathe for the workshop

image

My workshop is starting to look a little crowded, but it is certainly becoming more of a workshop! I’ve wanted a lathe for a while although I’m not exactly sure why. Maybe as much to “complete the set” with the CNC mill, 3D printer and laser as having a pressing need for it. Sure there are things I’m making on the lathe, but I could probably have managed without or done them on the mill.

Anyway, a saved eBay search found me a nice Sieg C3 with some tools for what I felt was a bargain but it now price. I bought it only a couple of hours after it was listed before someone beat me to it. Life (and a second kid) meant it was about a month before I even got to use it!

No surprise that the first things in making are bits to improve the other tools. I’ve started on a combined spacer and Oldham coupler for the mill. It’s all a bit circular and sometimes you can start wondering if you’re actually producing anything. As a friend once pointed out – of it’s your hobby then the end result of an enjoyable way to spend your time is all that’s required.

Whilst it would definitely be fun to convert it to CNC, I think that might be going just a bit too far. I’ll hold of for now and just use it manually. It’s been about 20 years since I used a lathe, so nice just to get used to it again.

Animated Lego Darth Vader build monitor

Darth Vader build monitor

Darth Vader build monitor

At work we use Continuous Integration to build and test our code as we check it in. It helps catc problems early and ensures we keep code standards up. We were using CruiseControl.NET but have now moved to TeamCity. Anyway, this is no use unless people take notice of broken builds and this was starting to slip. I decided that something fairly visible (but not too annoying) was needed. After spotting a Lego Dath Vader toy torch it seemed like a good solution.

The standard toy has a button on his chest that is used to switch on some while LEDs in his feet. There was also a red LED and a AAA battery in his lightsaber so it could be switched on. The plan was to add a servo to his arm so he could wave the lightsaber around and replace the red LED with a RGB one so that the colours could change. All of this under PC control of course.

Get out the Dremel

Get out the Dremel

Remove the battery connectors

Remove the battery connectors

Rather than describe in detail exactly what was needed, maybe some photos of the progress will sum it up. First I had to get a servo in place operating his right arm. It required cutting away the battery compartment, filing the joint to make it a little easier to move and hot-gluing the servo in place.

Make a slot for the servo horn

Make a slot for the servo horn

Make room for the servo

Make room for the servo

The front just involved making a bit more room to glue the servo in. The a slot needed to be carefully added for the servo horn to drive the arm. The horn was later screwed to the servo. The connection between the servo horn and teh shoulder joint is just a push fit.

For the lightsaber, the battery, connectors, original PCB and LED had to be removed. The switch was glued in place as it wasn’t to be used but needed to fill the hole. As ther was no PCB to locate the new LED, it was glued into place.

Finished arm

Finished arm

Finished saber and hand

Finished saber and hand

Running the 4 wires from the RGB LED involved carefully drilling a path through the side of the lightsaber, the hand, arm and shoulder joint. I had to be careful that the wires coming out of the shoulder didn’t limit the servo movement.

Closed up

Closed up

The next step was putting all this under PC control. I decided that the recently release MSP430F5529 Launchpad would make an ideal control system. It has built-in USB functionality and could easily handle a few PWM channels. All that was required was to connect ground, 5V and a PWM signal to the servo and 3 PWM signals to the channels of the LED.┬áThe photo also shows the clear acrylic base – cut using a 40W CO2 laser.

Darth-62-complete-controlleI intend to etch a small microcontroller board that will fit inside where the battery compartment was, but for the initial build uses the Launchpad externally, in a 3D printed enclosure.

The connection between the device and the PC is using a USB serial port. As far as what controls Darth Vader, I tried a number of options. Initial control was done from an ASP.NET MVC web page. Anyoen in teh office could control him with simple URLs like fredpc/Vader/Colour/Blue or fredpc/Vader/Position/0. The connection to TeamCity proved a little more difficult. I started work on a Java plug-in for TeamCity that woudl call these URLs, but it was a pain to get the plug-in installed and working in TeamCity. All the documentation I could find was out of date and incosistent – as is often the case with Java. I ended up going with a Windows service that polls TeamCity (using Rest APIs) every 10 minutes.

I you’d like to see it working, here are a couple of videos of it in action.

Adjustable MSP430F5529 Launchpad enclosure

F5529 caseI’ve been working on a project using the MSP430F5529 – a really nice microcontroller with built-in USB functionality. The final product should get an etched board. However it has a whole Launchpad for now, so I thought I’d dust off the 3D printer and make a case. My favourite tool is still OpenSCAD so I came up with an adjustable enclosure. It should be easy to add any openings or custom bit if you want to.

 

Here’s what it’s being used for. More info on that later…WP_20131014_001

First etched surface mount PCB

Well, after experimenting with CNC milled PCBs I decided to give etched boards a ago. As I have a “UV exposure box” (i.e. a cheap eBay thing for drying dragons’ fingernails) for the soldermask, I decided to try photoresist board. Odd then, that I found this was far too stong for the PCBs. Even a minute would appear to give a good exposure when I started developing the, but it turned out to be so overexposed I stripped all the resist off the boards. An expensive way to end up with plain copper boards.

Etching the boards was also not as simple as I thought. Sodium Persulphate seemed useless. Using Freeic Chloride and a sponge seemed too rough for the delicate photoresist. Sloshing Ferric Chloride didn’t do much until I heated it up – by putting the containing (including PCB) in the microwave. Anyway, enough of my woes and failed attempts.

Image

PCB after etching

When I eventuallly got a combination that worked this is what I came up with. This is the board post-etch. It’s not quite as good as I hoped but definitely good enough for the MPS430 microcontroller (TSSOP) and the 0805 LEDs, resistors and capactiors.

ImageAnd this is the end result after applying the Dynamask 500 solder mask that I’ve used before.

I’m hoping I don’t ruin it when I come to try surface mount soldering…

More laser improvements – safety

I’ve been making yet more improvements to my laser. Mainly because there are so many things that can be improved upon. This time it’s been mostly about safety. Probably wise after I managed to burn a hole in the back of my hand last week.

Operating the laser without the water pump running is a quick way to overheat the tube and kill it. As this is just plugged in separately it is hey easy to forget. And it uses up another valuable socket. I added two outlets to the back of the machine that are connected to the main power switch. If the laser is on then the water is on. Ditto the power for the exhaust fan – not as essential but might as well do that to. I was going to use a standard UK kettle style power outlet but as the supplied fan and pump have Chinese plugs and they’re the same as Us ones I just used US sockets from Maplin.

Whilst doing this I checked out the wiring and traced where the main be power was going. The colour scheme used was black for neutral (or sometimes live) and red for live (or sometimes neutral). Thin yellow wire for earth of course. The fan had these three wrong way round. And a connector strip mixed them up anyway. Astounding!

The final thing was a simple microswitch in series with the laser on switch the cuts the beam if the lid is open.

Next will be a water flow sensor in case the pump is unplugged or the tubing is blocked. Then a water temperature sensor. I could add an emergency stop and maybe even circuitry that kills the laser if the head isn’t moving. That should prevent it burning a hole if I forget to turn it off at the end of the gcode.