Solar-Powered Useless Machine

Introduction: Solar-Powered Useless Machine

In this instructable, we will be making a solar-powered, environmentally friendly, arduino-controlled, useless machine!

Whenever you flip the switch, the machine will flip it back, and so continues the cycle. The useless machine was invented by Marvin Minsky in 1952 while he was a graduate student, the design has since had many iterations, and has escalated to new levels of uselessness. With this design, we have finally created a useless machine with a purpose: to help the environment. By using solar panels to operate the machine, we assure that the environmental footprint of your machine will be minimal, (although the factories that produced those solar panels probably don't use solar energy) while at the same time maintaining uselessness.

This machine would make a great desk toy or could be used as a simple way to learn about electronics or Arduino programming.

Watch the video above to see the machine in action....

Special thanks to "MrNightscopez" on YouTube for providing the audio for this video.

Step 1: The Concept

This useless machine was built with one unnecessarily large (12" x 36" or approx. 300mm x 900mm) 30 volt, 500mA solar panel. The Arduino itself requires a minimum of 250mA to run, however with the addition of the servo that allows the machine to operate, 500mA or more will be required.

Unlike other useless machine's that feature a box-like shape and have a rotating arm and a hinged door, this design is open-air, reducing the amount of parts required and easing the skill required to construct those parts. This also allows for all the electronics, solar panel, and mechanics to be easily accessed in case of failure.

The machine will have a servo (as mentioned earlier) that will be triggered to rotate and flip the switch back when it is flipped by the user. A power switch is also used to prevent excess wear and tear on the solar panels and Arduino.

To learn more about useless machine's, visit this website

To learn more about solar panels, visit this website

Step 2: Parts Required

In order to build this useless machine, you will require.....

  • Arduino Microcontroller (any variant will do, I used an Uno)
  • Solar Panel(s) (must be rated for a minimum of 9v, maximum of 30v, and provide at least 500mA of current, no more than 1A) Multiple panels may be used in series or parallel to provide the necessary current/voltage
  • 7805 Voltage Regulator
  • 1N4001 Diode (or similar)
  • 1µF Capacitor, Quantity of 2
  • Toggle Switch, Quantity of 2 (minimum SPST, others will do)
  • Micro Switch (preferably with roller, Normally Open)
  • 1k Resistor
  • 10k Resistor
  • Green LED (any color will do, this LED is to show that the power is on)
  • Servo Motor (standard size is strongly recommended, micro/mini may work depending on the stiffness of your toggle switch)
  • Crimp Terminals (Sized according to wire gauge, minimum 1/4" (6mm) Inner Diameter, Quantity 4)
  • M3 Bolts and Nuts (these will be used to mount the Arduino, if your variant will allow for this, it is optional)
  • 1/4"-20 Bolts (Quantity 2) and Nuts (Quantity 2), these will be used to connect the power terminals together
  • Spacers (will be used to mount/raise the Arduino, Power Board, and platform, again it is optional)
  • Perforated circuit board (again, this is optional, the final circuit could be mounted on a breadboard, or similar)
  • Wire (20-24 gauge, multiple colors are preferable, approx. 30 feet of each)
  • Wood Material
    • 3/8" MDF/Hardboard, approx. 10" square (this will be used to mount all of the components on)
    • 1/4" Plywood/Hardboard, approx. 4" x 2" (this will make the arm that will flip the switch)
    • 1/4" Plywood/ Hardboard, approx. 2" square (this will be used to mount the switch)
    • 3/8" MDF/Hardboard, approx. 2" square (this will be used to mount the micro switch)

Most of the above components can easily be replaced with others (ex. replacing the Arduino with an Intel Edison, or the color of the LED) but some, such as the 7805 voltage regulator are more confined because of the 5V required to run the Arduino.

All quantities are 1 unless otherwise noted

Note: In the images following, you will notice that I used a micro-sized servo, this was done on my initial build, as I later found when I began to program the machine, this servo was not strong enough to flip the switch, so I revisited the design and upgraded to a standard size servo. If you are going to be using a low-end servo (as I did), it would be much safer and easier to use a standard size servo.

Step 3: Tools Required

In order to build the useless machine, you will require the following tools....

  • Soldering Iron
  • Electronics Breadboard
  • Hot Glue Gun
  • Knife
  • Helping Hands (they're helpful)
  • Drill/Drill Press
  • Drill Bits (sizes will depend on the toggle switches, and the size of the bolts you use)
  • Jigsaw/Coping Saw
  • Cutting Pliers
  • Screwdrivers (various sizes)
  • File
  • Saw/Handsaw
  • Multimeter
  • Terminal Crimp Tool (can be replaced with a hammer)
  • Wire strippers (optional)

Much like the components used in this build, the tools used also can be replaced with others. For example, the screwdriver, cutting pliers, and knife can all conveniently be replaced by a Swiss Army tool.

Step 4: Prototyping

Before you begin soldering your components, I recommend that you first assemble them onto a breadboard to ensure their functionality. You can do this using your solar panels or by using a battery in place of them in case of bad weather, as I have.

Attached is the Fritzing file that demonstrates how the components are interconnected, only the schematic view shows this (the breadboard view is kind of a mess, sorry). If you don't have Fritzing, I highly recommend you download it, it is an excellent tool for designing and prototyping electronics, you can download it for free from their website.

Once you have confirmed the circuit's functionality, continue to the next step.

Note: In the image, I used a push-button switch, this was only for testing purposes and was only used to represent the toggle switch, we will actually be using.

Step 5: Assembling the Power Board

The power board is the board that takes the power from the solar panels, and reduces it to 5V for the Arduino and distributes it to the various components. The board also houses the on/off switch and the power indication LED. I made the final version of this board on a perforated circuit board, however a breadboard, or custom PCB will also work.

  1. Drill holes in the corners of the board so that you will be able to later mount them to the base, use a drill bit size that will accompany this (I used M3 screws, so I used a 3mm (or 1/8") drill bit)
  2. Drill another hole were your first toggle switch will be placed, the size of your drill bit will vary depending on the size of the "neck" on the switch
  3. Drill two 1/4" (6mm) holes that will allow for the solar panel to be connected to the board, alternatively, you could solder the solar panel's leads to the board but it is not recommended
  4. Lay out all of your components on the board, space them depending on you soldering skill level and whether or not you have used a perforated circuit board before (I had never used one before and am terrible at soldering, therefore I made sure to leave plenty of room for the jumper wires we will add later)
  5. Solder the components to the perforated board
  6. Begin cutting and soldering jumper wires between the different components, uses the provided schematic for reference. I recommend that you use multiple colors of wire to differentiate between the positive and negative connections
  7. At the power input and ground connections, use a piece of wire with a crimp terminal at one end and solder the other to the board
  8. Solder 4 positive wires onto the board that will later be connected to the Arduino, switches, and servo
  9. Solder 2 negative wires onto the board that will also be connected later

Once you have completed this, test the board using your solar panel or a 9V battery and measure the voltage at different points to ensure that the board is working and that the voltage is properly being reduced to 5 volts. Continue to the next step.

Step 6: Solar Panel Leads

My solar panel came with pre-attached alligator clips, and since we will be connecting the solar panel to the power board using terminals, I had to remove these, if your solar panel didn't come with connectors or leads attached, you will have to put them on now.

  1. Cut off the previously attached connectors (or, if your panel didn't come with these, solder simply strip the ends of the wire leads, or if your panel didn't come with leads at all, solder them on now (be sure not to use too much heat))
  2. Strip the ends of the wire
  3. Using a crimping tool (or a hammer) to compress the terminal crimps onto the ends of the wire
  4. Apply a little solder to the wire and terminal to ensure a connection

As mentioned earlier, you can use other methods of connection the solar panel to the power board, but this method will allow for easy removal and troubleshooting if necessary.

Step 7: Making the Mounting Board

This is the board that will house all of the components of the useless machine. To make it we will be using the 4 pieces of wood mentioned in the parts list, as well as some hot glue and screws.

  1. Cut the larger piece of 3/8" MDF/Hardboard down to approx. 10" x 10", this dimension is not crucial
  2. Draw out and drill mounting holes for both the Arduino of your choice and the power board, to assist this, I have attached a schematic provided by Adafruit that can be printed out and used as a guide when drilling the holes, this will make the process much easier due to the Arduino's irregular mounting hole dimensions
    1. It is worth noting that the on Arduino Uno boards Revision 3, the mounting hole nearest the USB port cannot be used due to the proximity of the headers
    2. Use drill bit sizes according to what screws you will be using, the Arduino uses M3 screws to be mounted, so a 3mm or 1/8" drill bit will be necessary
    3. Tape the guide to the wood to get more accurate hole positioning
  3. Drill a large hole (large enough so that the toggle switch can easily fit through) on the board where the toggle switch that operates the machine will be located. Try to place it away from the electronics so that the servo's arm will have room to move
  4. Determine the approximate length of the arm that will be attached to the servo to flip the switch, and using this distance mark out the location of the cut-out that will house the servo (I did this by tracing the servo at its approximate location, this made the process much simpler)
    1. This dimension is not crucial as the servo arm has yet to have been made
  5. Cut out the hole in which the servo will be housed, do this by first drill a hole in each of the corners of the drawing (make sure the hole is entirely inside the drawing) and then use the jigsaw/coping saw to remove the material
    1. If the cut-out needs to be slightly larger, use a file instead a saw to enlarge the hole, in order to get a semi-tight fit

Set the completed part aside for now.

Step 8: Making the Mounting Board (Continued)

We will now make all of the additional wooden components that will be mounted on the mounting board

  1. Drill a hole in the center of the 2" x 2" x 1/4" piece of plywood/hardboard, make the hole large enough so that the toggle switch's "neck" can easily fit through, once complete, set this piece aside
  2. On the 4" x 2" x 1/4" piece of plywood/hardboard, draw out the design of the servo arm, you can make this as intricate as you desire, but I suggest keeping it to a minimum, as you will have to cut it out later
  3. Cut out the servo arm (Wow! I didn't see that coming!)
  4. Mark out an approximate location on the servo arm where the servo horn's mounting screw will be located, drill a hole slightly larger than the diameter of the servo horn's screw's head at this location
  5. Hot glue (or bolt) the servo arm onto the servo head, place this aside
  6. Roughly estimate the path in which the end of the servo arm will travel when attached onto the servo, it would be helpful to sketch this out onto the mounting board
  7. Choose a location on this path that the micro switch (will be used as an end stop) will be located
  8. Hot glue down the 2" x 2" x 3/8" piece of MDF/Hardboard on the mounting board so that the middle of this piece aligns with the middle of the servo arm's path
  9. Hot glue the micro switch onto this piece, make sure that none of the hot glue touches the lever and that the entire lever is hanging off of the edge of the piece

Now that all of the components are fully constructed, we can begin final assembly.

Step 9: Mounting Board Assembly

Now that all the components are built, we can begin assembly...

  1. Bolt down the Arduino and Power Boards using the M3 nuts, bolts, and spacers
    1. The spacers must be large enough to fit the M3 screws and preferably 1" long (25mm)
    2. In order to support the board under the one mounting hole that cannot fit any screws, we must hot glue a spacer, careful not to add too much directly underneath it as this would put pressure on the Arduino
  2. Insert the servo motor into its slot and use the screws that you received along with it to screw it onto the board, alternatively, you can also use hot glue (although this you make it harder to remove to servo)
  3. Bolt the servo head and arm onto the servo
    1. Confirm that the servo arm can engage the micro switch
  4. Bolt the toggle switch onto the 2" square, 1/4" thick piece of plywood/hardboard
  5. Hot Glue the toggle switch assembly top of the large hole drilled earlier, align it so that the servo arm can easily flip it (most likely when the servo arm is perpendicular to the flipped switch)
  6. Hot glue spacers on each corner underneath the mounting board, these will act as legs for the assembly
  7. Make all final connections in the wiring, refer to schematic attached in Step 4

Now all of the physical hardware has been completed, and we can move on to programming the Arduino.

Step 10: Coding

The following is the code that needs to be uploaded to the Arduino in order to operate the useless machine...

Please note that the comments have been removed in order to make the code more legible, they are however included in the attached file

int flipswitch = 8;

Servo servoarm;

int endstop = 10;

int servopos = 100;

int flippos = 101;

int endstoppos = 102;

int servohome = 104;

void setup ()


pinMode(flipswitch, INPUT);

pinMode(endstop, INPUT);




void loop ()


endstoppos = digitalRead(endstop);

servopos =;

flippos = digitalRead(flipswitch);

while (endstoppos == LOW)


for (servopos =; endstoppos == LOW; servopos--)





endstoppos = digitalRead(endstop);

servohome = servopos;

flippos = digitalRead(flipswitch);



flippos = digitalRead(flipswitch);

if (flippos == LOW)


servopos =;

while (flippos == LOW)



flippos = digitalRead(flipswitch);









Serial.println("Flip the switch to witness the uselessness");




This program function relies on the fact that there is an end stop installed, if you want to make you machine without an end stop, you have have to remove the homing function as highlighted in the Arduino file, and instead set the home to a certain servo position, refer to the Arduino Servo page for help.

The way this code functions is by first homing the servo arm, through use of the micro switch, this position is then stored for later use. The program continuously checks for changes in the toggle switch's position, when the switch is flipped, the servo arm will continue to rotate until the switch is flipped, and because there is no said position, this code can theoretically be used on all similar useless machines, without any mechanical preference.

Step 11: Complete!


You have just completed an utterly useless, environmentally-friendly machine!

If you have any problems with the machine go back and review the steps you are unsure of, and if the problem persists, leave a comment below or search the Arduino Forums for a solution.

Explore Science Contest

Participated in the
Explore Science Contest

MAKE ENERGY: A US-Mexico Innovation Challenge

Participated in the
MAKE ENERGY: A US-Mexico Innovation Challenge

Be the First to Share


    • Home Decor Challenge

      Home Decor Challenge
    • Make it Real Student Design Challenge #3

      Make it Real Student Design Challenge #3
    • Barbecue Speed Challenge

      Barbecue Speed Challenge



    Reply 6 years ago on Introduction

    I will be posting a video of the machine in operation soon. Thank you for the suggestion.