• Useless Machine -- Advanced Edition
  • 8x8x8 LED Cube
  • RGB POV Globe
  • Lissajous Scanner

Useless Counter

Well, this device does exactly what the label says. Somehow related to this xkcd.

It is a simple ATTiny13 controlling one MAX7219 LED module.

Watch the video on youtube


Reflow Oven

Reflow Oven Front

As my usage of fine pitch SMD parts increased continuously, I decided to build my own reflow oven. It's based on the design of Thomas Pfeifer, who modified a pizza oven to follow predefined temperature profiles. He also provides additional details about testing, building, etc. on his website. The usual disclaimer: This oven runs on 230VAC. Do not modify or experiment with devices directly connected to mains power like these if you are not qualified and know what you are doing. I am not responsible for any damage, injuries or death caused by following instructions related to this site in any way.


I was looking for a more practicable solution and adapted the design (still for ATMega8):

  • LCD and rotary encoder with selectable temperature profiles (lead, lead free, low temperature, ...)
  • LCD also shows current phase and temperature
  • Replacing the two expensive S202S11 with one cheaper S202S02
  • RGB LED indicating ready/heating active/cooldown
  • Closed unit with PSU inside the original case



In fact, very simple. Remove the built-in timer and temperature switch, wire the heating elements according to the schematic.

For the temperature sensor, I also used a short copper wire to fix the sensor inside the oven.

Some other notable details: I added a fan to prevent overheating the electronics. To avoid loosing to much heat by air flow, I bent the sheet on the upper side.



After some calibration the results were quite good, although the oven is not able to follow the predefined temperature gain in the desired speed. For the lead-free profile, I had to increase the time so it can reach 240° C.

Interestingly, the results looked better with lead-free paste than with the regular one. I did not test the profile for the low temperature CVP-520 (defined as "A520") paste yet.

The biggest problems I encountered so far were with 5050 type LEDs (also WS2812B): A lot of them just popped, even when the lenses were covered. They might need longer preheating time, better drying (2h at 120° C is recommended) or are not suitable for IR soldering at all.


 schematics and source code for ATMega8

ground fogger

Ground fog is a cool effect, but, as usual, the machines are very expensive, so I tried to build one on my own.

The most powerful modern units are foggers with a strong, mostly nitrogen, cooler afterwards (its fog, not steam).

My first prototype was a copper radiator from my old cpu water cooling system, attached to a pvc pipe and a pond pump for the radiator.

I put the pump in a buckle filled with some freezer packs and water, so I reached nearly 1°C water temperature. Maybe you can get even lower by adding some non freeze fluid. Anyway, the results were way better than expected.

The fog stays on the ground as long as there is no wind or someone walks through. I used HD fluid for this test, but a faster disappering fluid might work even better.

Useless Machine Advanced Edition


I had the idea for making this machine back in 2011 when my printer (Canon 850i) stopped working because of a broken printhead. The rest worked quite fine, so why throw it away?

This machine recently got a lot more attention than I had expected and several people asked me if I would sell these devices. I am not going to make a business out of it, but if you really want one, you can contact me at fornax (at) Please keep in mind that it's a highly custom design for each one (takes some time and it's not going to be a mass market price). I can also offer assembled or blank controller units (see below) if you want to try it yourself.

In case you were wondering: I am the original creator of the multi switch advanced version, but not the single switch one which dates back to about 1950. And yes, I am genuinely happy about all clones made by other people (made one? mail me!).

Watch the video on youtube

More Machines

Some pictures of other versions of the machine, including some LED effects and a regular one with a boxing glove.

Controlling the slider

The printer uses a regular DC Motor with belt and an optical incremental encoder to control the slider position. Since the controlling stuff of the printer was completely integrated, I had to build my own one. Fortunately, I could find a datasheet for the encoder (Agilent AEDS 9621P). These detector units are directly TTL compatible, you just need the supply voltage and can read out stable phase signals. The resolution is about 237steps/cm.

After disassembling numerous printers, I can confirm that most oft them look very similar. The encoder usually comes with 6 pins in 2 rows. Some hints:

  • in the 4 pin row, look for 2 pins that are connected to a SMD ceramic cap somewhere close. Those are Vcc and GND.
  • Often, they are already connected via a resistor somewhere on the pcb to the LED pins (2 pin row).
  • If so, try to find out the LED polarity and carefully apply voltage to Vcc and GND. Start with 3.3V and limit to 15mA.
  • If not, try to find other hints like electrolytic caps for the polarity and connect the LED via an external resistor
  • If the printer is not older than 15 years, it will most likely work with 3.3V. Be careful with 5V.
  • Wire everything via the flexprint cables, use multiple parallel wires for the servo power. Use the original connectors (unsolder with a hot air gun if necessary).
  • Some printers connect the encoder wires directly to the flexprint cable. Make use of that.



As you might see, I didn't put too much effort into this part, just a short bar glued to a RC servo. The black parts are used to reduce the torque while the slider is moving (with the bar pressed agains the lid). I planned to use another servo for opening the lid, but this was not necessary since the first one is strong enough (plus, one 7805 is not enough for 2 servos). I figured it works quite well when you glue the bar to the servo arm with epoxy adhesive and a few cable ties.


The switches are standard toggle switches, seperated from GND when active (internal pullup in the ATMega).

Control Unit

The first version of the control unit used these parts:

  • ATMega8
  • H-bridge for the motor (I actually used BD137+BD138)
  • LCD (to be able to set the switch positions)
  • PWM outputs for the servos (the one for the lid is still there)
  • inputs for the encoder
  • inputs for the switches, internal pullups
  • 7805 voltage regulator


Here is the first schematic
There was a small mistake in the connection of the PNP base resistors, which is fixed now (6.12.2011).
I included 2 jumpers to avoid short circuits in the H-bridge while flashing.

In the meantime I designed a newer one on a single and one on a dual layer pcb. Here are the features:

  • 5V-7V power supply for the Servo
  • Selectable 3.3V and 5V power supply for different printers
  • Automatic toggle between battery supply and external power
  • Buckboost driver to get constant voltage even with batteries
  • L298 as H-bridge
  • Shift register for 8 LEDs
  • UART position output


New schematic.
It can easily be stripped down to the parts you need. What might get changed in a later revision are the connections on SW0/1 (both need to be activated for flashing, which is annoying) and a voltage monitoring, because the voltage converters are not fail safe.



When powered on, the controller moves the slider to the left to set zero position. The positioning itself is done by a software PD controller, which is able to set the slider in less than 1sec with an accuracy of about 0.1-0.2mm. I could reach even better precision, but for this task it's more than enough. In the original version, the highest priority was on the left side, I adapted this to follow the order the switches have been activated.

The code should not be too hard to understand anyway, Note that the pin declarations of this version do not match the new schematic yet.


Code + schematic