I built up an initial constant current load based on Dave Jones design however it didn't have a case, the current setting was very rough and the meter was not accurate. This is my second go, I recently had a power supply die which was the source of many parts (case, fan, power switch, mosfet, heat sink, and thermistor.
The final product uses a rotary encoder for selecting the load current is controlled by an Arduino Pro Mini (I had a bunch layout about). The microcontroller drives the LCD display showing current setpoint, actual load and fan status. It also controls a PWM DAC to provide the reference voltage to the opamp controlled circuit providing the load, this section is based on Dave Jones design, utilising 10, 10ohm 0.5W resistors and a logic level Mosfet. Most other parts came from parts bin etc.
The fan comes on any time current draw goes above 0.5A or can be manually switched in by pushing the rotary encoder.
As with any project there are things you could do better. Many of the issues are related to the firmware, notably:
Current sink level needs smoothing to provide a more stable value
Related to the current sink level, the fan just turns on and off when the current goes above or below the hard limit of 0.5A rather using a high point to turn on and a low point to turn off to prevent this.
Display isn't well utilised
And with that comes possible improvements!
Add thermistor to heat sink for fan control (I have one also obtained from the power supply)
Utilise a 4.096V regulator for micro controller power (and hence the analog VRef)
Add incoming voltage measurement (much of the electronics is already in place for this)
No support for timing load (eg detect a sudden drop caused by an over loaded power supply)
However for now the unit does what I need it to do (sink a fixed amount of current). Unless I find some of these issues annoying (fan maybe) I'll leave this project as is!