3D Printed coffee grinder part

My friend Eddie has a small coffee grinder that has given him many years of faithful service but a broken part has rendered it less useful than it could be. I’m not sure what the official term is, but I’ll call it the sweeper. It’s the part that sweeps the ground coffee out to the exit chute as it is ground. I thought I’d try to 3D print a replacement part.

3D Printing precision parts can be tricky as there are limitations when you are depositing layers of molten plastic on top of one another to make a part. Luckily, the most precise bit of this part is the brass hex bush, which I could re-use. I used the basic measurements of the broken sweeper to create a quick model in Google SketchUp. You can use any of the more complex (and expensive) design packages, but for 99% of the work I do, SketchUp works just fine (and it’s free).

Here’s the printed part, fresh off the Makerbot 3D Printer. It needs a few stray bits of filament trimmed, but otherwise ready to go.

Tidied up, with a quick sand and trim (you wouldn’t want any bits falling off into the coffee). The brass bush will just friction fit into the new sweeper.

And here’s the new sweeper installed and tested with some coffee grounds. The tolerance is pretty tight so as not to leave any coffee behind. I used ABS plastic for this print as it’s the most food-safe feedstock I have. It melts at 220 degrees Celsius so even if any bits do get into the coffee grounds, the extraction water wouldn’t be hot enough to melt it into the finished coffee.

And that’s it. One less appliance heading to the landfill for want of a single broken part. Best of all, now the part exists digitally, anyone who needs a spare can print their own. I’ll upload the part to Thingiverse on the off-chance someone else in the world needs one.

A chicken waterer for chicken feed

We’d been looking for a while for a good solution to keeping the chickens well supplied with fresh, clean water. Constant access to fresh water is a big factor in chicken health and egg laying. Delivering them water is one thing, but if you’ve ever kept chickens, you’ll know how messy they can be. Their natural scratching behaviour tends to foul up any water container with dirt, poo and anything else they can get their talons on.

We’ve used refillable chicken waterers in the past but they have a few limitations: you have to refill them every day or two, they need regular cleaning, and most of them are translucent so you get algae growing in them eventually.

So I wanted something that I could plumb in to the regular farm water system that feeds all our troughs to avoid refilling, but that would also stay clean and algae-free.

Enter the water box.

I’d seen this design for sale on the internet for upwards of $80 and to my mind it just looked like a plastic box with a trough valve and holes. Given that I had almost all the parts in the workshop, I just needed to buy a big plastic box from The Warehouse. Price; $15.

I drilled a hole and attached a spare trough valve so the water level would end up about 3/4 full and hooked it up to the water supply. When it had filled, I marked the water level, and just above that, I drilled the three large holes with the biggest hole saw I had – it just has to be big enough to fit a chicken’s head through. And that’s it.

I left the lid off for a day so the chickens got used to drinking out of it (both out of the top, and through the holes). Now the chickens use it all the time. After a month’s test, the water is still pristine and algae-free. The high walls keep out all the grit and the solid plastic keeps enough light out that algae can’t grow.

This easy project is proof that you don’t always have to spend a lot of dosh to solve farm problems.


Repairing the Greenhouse

A few years back the plastic greenhouse got a mighty rip after I managed to drive the quad bike into it. We’ve put up with it for a while, but the Wairarapa winds kept threatening to make it much worse if we didn’t fix it.

I talked to the manufacturers and they sent me some lovely repair tape that lasted, on average, about three weeks each time we taped it up – so not a long term solution. Sewing a patch over the rip was going to be too difficult so I tried attaching a zip to the sides of the rip and zipping the panels back together.

Here’s the finished repair. It was something of a team effort. Our friends Daniel and Kelly provided moral, technical and sewing support to start, then helpers Raeph and Lisa finished the work today (well, mostly Lisa).

It looks sturdy and it should last longer than the previous tape repairs.

The new dairy shed

Our helper Matt is not only a 1st rate farm hand, but a pretty decent photographer. This is the frame of the new dairy shed, captured in the evening light.

I do love the view from my office most days.

Snow Broccoli

Our poor wee broccoli in the kitchen garden braved the snow, but still tasted fine after it had thawed out.

3D Printing replacement parts for a camera

My friend Eddie asked if I could print a replacement part for his old, but mostly useful Nikonos camera. Like so many consumer items we have, for the want of a single part or two, it could be almost as good as new. It needed a new knob to turn the film advance winder, and I noticed (after a web image search) it needed a new cover on the film winder assembly. Here’s the camera pre-repair:

The first thing I had to do was design the replacement part. After a quick measure I used Google Sketchup as a quick and easy tool for 3D design from scratch. This is how the film-advance knob looked after a couple of iterations.

Time to fire up the Makerbot and print out the part! I used PLA plastic for the first test prints, mainly because I have plenty of it, and it just happened to be in the machine at the time :)

First prototype parts hot off the printer:

After two quick test prints and a few refinements to the design, I printed the final parts in shiny black ABS and fitted them to the camera. The winder cover on the left is super-glued on and the film-advance is attached with epoxy for a more robust join.

The finished Arduino wireless water sensor

Back at the end of 2009 I started playing about with an Arduino solution to monitor the water level in a water tank about 300m from the house. The tank isn’t visible from the house so a standard visual tank indicator wouldn’t work. In a nutshell, this sensor measures resistance through an array submerged in the tank to determine the water level, then sends that data back to a server in the house for humans to read. I covered the prototype and the first iteration of the sensor in this post.

There were a few more steps beyond the prototype required to make it really useful and along the way I discovered some issues with the first model which I’ve improved on, but that’s why you call it a prototype.

Here is the Arduino with an added WiFly shield – an add-on that gives the Arduino the ability to (mostly) seamlessly communicate over the farm’s existing 802.11 WiFi network. Arduino shields piggy-back on top of the board, and in this case the WiFly shield has a handy prototyping area – perfect for projects like this where you need to add a few components to a solution. The red and black leads you can see here connect to the water level sensor in the tank. The whole thing is mounted on an aluminium bracket I made up to fix it securely in the project box.

And here’s the whole assembly in the waterproof (IP66) project box. It’s designed to sit out in all weather, diligently saving me endless trips to the tank to manually check the water, so it needed a good enclosure. The battery taking up most of the box is a bog-standard sealed 12v motorcycle battery. I’ve tried to keep as many components as possible off-the-shelf to keep costs down and make future maintenance easy. The external antenna for the wifi is at the bottom left of the enclosure and the 4-way connector on the right is for signal from the sensor and solar power to come in.

The close up shows it’s a pretty snug fit in there. The Arduino is mounted on an angle so the USB port on the right hand side is accessible without unpacking everything. I learned from version one that there will always be lots of tweaking before it works well, so I wanted to make future software changes easy.

The enclosure mounted on a post just above the water tank. The 4-way connector makes it easy to connect up without taking the lid off (important if the weather is rubbish) or take the whole thing back to the workshop when I need to make physical changes.

The sensor array of resistors and an earth return wire lie inside the plastic pipe. The whole thing is submerged in the tank. Originally I had joined the string of resistors together with soldered nichrome wire but after a few months some corrosion (and what seemed to be electrolysis) was starting to look unsightly. I replaced the connections with plain light gauge insulated lead-out wire and it seems to be fine now. The sensor sends 5v DC through the water for a few milliseconds to take a reading so I don’t expect too many problems long term (the tank and all its fittings are plastic). The original post has photos of the array being built.

To power the sensor, I’ve used a 10W solar top-up charger with a built in charge controller. It’s a standard item from most automotive suppliers. At such low power it’s difficult to over charge a 12v battery but having the charge controller adds a bit more margin for error. This panel provides more than enough power to keep the battery topped up. The Arduino draws a tiny amount of power, but the WiFly shield does use a bit of power when it’s transmitting. The ideal angles for a solar panel are: facing due North (in the Southern hemisphere) and inclined to an angle from the horizontal equal to your latitude (about 42 degrees here). I had to cope with the curved surface of the water tank so it’s a best-guess effort.

The distance back to the house is over 300m. We have a fairly powerful wireless access point attached to the outside of the house so small wifi devices can connect to the network pretty easily if they have line of sight.

Back in the house, we can visualise the data, thanks to some great work on the server software from our friend Dave. Making this prettier and adding some smarts like alarms will be the next phase of this project.

The Arduino code is still a work in progress, but I’m more than happy to share it if anyone might find it useful. The software is quite modular so it can be fairly easily adapted for other sensors. We use it for several temperature sensors around the farm and I’m currently working on another sensor to record wind data at a remote site we are thinking about putting some wind turbines on.

Update November 2011 – Triumph!

After a few more tweaks to improve reliability and error tolerance I’m happy to publish the code. I’ve just started playing with Fritzing, so hopefully soon I can put up a proper schematic for the project.

While the sensor worked well most of the time, when you’re dealing with a device a long way from the house that needs to just work, “most of the time” isn’t quite good enough. The problems I had with the WiFly shield were the reliability of communications and recovery from errors.

The code supposedly resets the WiFly client for each data-gathering cycle, but every now and then (from 1 hour to 1 week) it would fail to initialise properly and hang. This would hang the Arduino entirely. From the research I did, and asking people smarter than me, it looked like the WiFly shield wasn’t properly shutting down or clearing its buffers. I’d noticed that it always worked first time, just after a power reset. To replicate that I connected the power to the WiFly shield via a small relay, controlled by the Arduino. Now I have the ability to cut power to the WiFly shield at the end of each data-collection cycle, and power it up each time. This seems to have solved the comms problems and has the added advantage of not wasting power on the WiFly shield between transmissions.

The second problem was the Wifly shield’s fairly fragile handling of errors. If for example, the wifi network or remote server were not available to connect to, the WiFly shield would hang. No retries, no resets, just hang. After much playing around I came across the documentation for the watchdog timer, that allows you to define a reset clock in the code that will reset the Arduino if certain points in the code aren’t reached in a timely manner (ie it has hung). So now, if for any reason, the WiFly can’t post data to the remote server, it resets and tries again (and will keep resetting until it has successfully completed a data post).

The basic function of the sensor is: Take sensor reading > join Wifi network > sent http GET request to remote server > wait >repeat

The Code:

It’s in three parts; the main .pde file, the settings file, and the water level reading function in it’s own file – just put all three in the same place. To use it you’d need to change any settings specific to server and wifi network settings to suit you. There is also a serial printout of the sensor data and comms status so you could easily modify the code to send data somewhere else, print to LCD, write to an SD card etc.




I appreciate this isn’t exactly a comprehensive how-to. This project (and documentation) has been evolving over a year and a half. If there’s interest I can put some time into making this more of an “instructible” to make replication a bit easier.



Zucchini/Courgette Chocolate Cake

With a glut of zucchini we are always on the lookout for new recipes to use up the seemingly never-ending harvest. Karen found this great recipe on the Wickham family blog.

Zucchini/Courgette Chocolate Cake

125g butter
1 c brown sugar
1/2 c white sugar
3 eggs
2 1/2 c flour
1/2 c yogurt
1/2 c cocoa
2 tsp baking soda
1 tsp cinnamon
1/2 tsp mixed spice
1/2 tsp salt
1 tsp vanilla essence
3 cups (350g) grated zucchini/or courgette
1/2-1 c chocolate pieces (optional)

Line 25 cm square tin.
Cream butter and sugar. Add eggs one at a time with a spoonful of flour mixture. Add vanilla and yogurt and stir well. Sift in dry ingredients and stir in zucchini.
Pour into tin, and sprinkle with chocolate pieces if desired.
Bake at 170C for 45 minutes.

You can substitute gluten-free flour for the regular flour and it still comes out just fine (although we did end up cooking it for longer than the recipe). Hopefully next time we make it we’ll remember to take some photos before it gets eaten.

Organic lawnmowers

The grass around the big garden is getting a bit out of hand (you’d think it was Spring) so Bree and Cammi are getting a few hours of lawnmower duty each day. They don’t seem to be complaining and their “emissions” are good for the grass.


The greenhouse seems to be working

The first test crops in the greenhouse are doing well, possibly too well – we’re eating lettuce every day to keep up with production (not that it’s a bad thing). The spinach and broccoli are doing great too, and we’ve just planted out a bunch of tomato, eggplant and chilli plants.


In the middle row are some blueberry plants and a tray of rosemary cuttings from the last pruning.