I previously discussed my intention to develop an expansion board to add a few extra controllable fans to RAMPS. I finally arrived at a solution I’m happy with – TinyFan.
TinyFan is a lot simpler than what I originally intended to produce – initially I wanted a smart fan controller, one that could automatically switch fans on and off depending on HotEnd temperature, without any modification or interaction with the printer’s firmware.
I did up a design for this – the eloquently named ‘RAMPS Temperature Controlled Fan Expansion’ I discussed in the previous post.
I assembled one of these boards for testing – everything fitted together and went where it was supposed to. Always a good start!
I hooked the board up to RAMPS and ran a quick test. Things seemed to work – the fans came on when the temperature rose above a certain point and switched off again when the HotEnd was below the trigger temperature. That’s the behaviour I was looking for.
At this point I proceeded a bit prematurely – I decided that having control of two fans wasn’t enough, so I designed a revised board with 4 MOSFET outputs – two temperature controlled, two user/firmware controlled.
Routing the 4-fan board was a lot trickier – there’s a lot going on with not a lot of room, and a few power requirements to consider – eventually, I was able to arrange everything and get the board routed:
The boards arrived, and again I assembled them:
Ran it through the tests – all four MOSFETs work nicely, the temperature controlled ones work automatically, all seemed good.
I used these boards for about a week, and during that time I noticed a problem.
When the boards are connected, they seem to affect the temperature readings as taken by RAMPS. Not hugely, otherwise I would have noticed it straight away – but at least a few degrees difference. This isn’t a design-breaking thing, but it’s certainly annoying.
Around this same time, I’d had it pointed out to me that the Marlin firmware (and most other firmware, I imagine) already have perfectly functional support for temperature-controlled fans. I knew this starting this project, but I thought the ease of being able to just plug a board directly onto RAMPS without tweaking firmware would make these boards worthwhile. If people have to adjust their temperature values though, this ‘ease-of-use’ is pretty quickly offset.
So I decided to go back to the drawing board – to start over with the simplest design possible. I dropped automatic fan control and temperature reading, and went straight for the normal approach – regular, PWM controllable outputs that are easy to connect to RAMPS.
This led to TinyFan – a small board that can connect two fans to RAMPS:
I decided to use a screw-terminal for power input, so people don’t have to solder or crimp any wires to get TinyFan hooked up.
There’s not a lot to it – TinyFan plugs straight into RAMPS and controls two fans running at 7-24V. LED indicators are on-board, and there are fly-back protection diodes on both fans.
TinyFan connects to RAMPS easily and isn’t as obtrusive as the previous designs.
Overall, TinyFan is functionally similar to the already available RepRap Discount Fan Extender.
TinyFan takes advantage of improved MOSFETs, which means it can support 24V power supplies and higher current fans – or lights, heaters, etc. These are a few of the advantages to TinyFan – the screw terminal also makes wiring easier on a standard RAMPS board, but I suppose that just comes down to how comfortable with a soldering iron you are.
I’ve written up a lot more info on TinyFan on the brand new Aus3D Wiki here – there’s a lot more info than I can fit into this blog post.