Open Melt 1.0 (archive)
This webpage provides info on the original (now obsolete) version of Open Melt.
For current information on Open Melt click here.

Nothing Labs Home

Open Melt - Open Source Melty Brain

Open Melt is an open-source translational drift (aka "melty brain") robotics project developed by Rich Olson for the "Melty B" series of combat robots.

In short - a melty brain or translational drift robot spins its entire body, but is still capable of directional control by quickly modulating power to its drive motor(s).

Robots using Open Melt: Death by Translation | MBX | Spinning Tortoise | Berzerker
Other Translational Drift Projects: Denial | MeltyBlue | BotLabs - Saurobot
Contact me to add your project to the above list!


        
"Melty B" - Antweight (1 lbs) Open Melt Combat Robot (click to enlarge)

This system uses an accelerometer to calculate the rate of rotation based on G-forces around a given radius.

That data is then used to light up an LED once per rotation - giving the appearance of the "front" of the robot. The user can adjust the heading beacon by moving the remote control left or right.

To move - the system turns a motor on when that motor is in the correct position to result in a net movement the direction the robot is intended to go.

For example - if the heading beacon is on approximately between 10 o-clock and 2 o-clock it indicates movement will be towards 12 o-clock. Pushing "forward" on the remote then causes the robot to turn on the motor(s) between 6 and 12 o-clock each rotation - the net direction of travel being towards 12 o-clock (this is a simplification - see the 2nd demo video for details).

This project uses an Atmel Atmega328 (or 168) and is coded in C using WinAVR.

- Much additional documentation for this project can be found at the beginning of the code
- If you are developing a project using this code - you are invited to let the author know about it
- Code is licensed as Creative Commons Attribution-Noncommercial-Share Alike
- This system is potentially quite dangerous - especially if implented in a larger (over 3lbs) robot
- If you're foolish enough to compile this code - you must read and agree to the included disclaimer first

Download Open Melt Source Code from GitHub

Demo Video / Calibration Tutorial

Click here to skip the overview - and get to the drive demo



Demo Video 2 - 1 vs 2 Motors / More on Translational Drift

Hardware List (major items)

MCU Board:
- Pololu Baby Orangutan B-328 (B-168 is also fine - see notes in code on earlier non-"B" versions)
- Other Atmel 168 / 328 boards should work - however may require additional hardware / code changes
- Starting with a naked Atmega chip isn't recommended unless you really know what you are doing
- Project compiles to about 9k - so get a 16k or better chip.

Accelerometer:
- Needs to measure high G forces (1500rpm at 6cm is 150G) - see centrifuge calculator
- Sparkfun's pre-mounted ADXL193 is the currently recommended solution
- Freescale 200g MMA2301Eg - used extensively in the past (needs SOIC 16 mount / may not be available)

NPN Darlington transistor(s) to drive motor(s):
- MJ11032G has been tested extensively in smaller robots
- Solid state relays may be a good option for larger robots - but will require minor wiring changes

Some kind of motor(s) / wheel(s)
- Project works fine with either 1 or 2 motors
- Hard rubber doesn't work that well
- Foam wheels seem to work best (see wheel comparison video)

A heading LED
- Use the correct size limiting resistor
- Be careful not to overload your voltage regulator or the Orangutan's motor controller

Brushless Motor / Controller Option:
- Open Melt now supports brushless motors / controllers via high update rate PWM
- Any brushless motor controller supporting input PWM frequencies over 305 hz should work (although this specification is usually not listed)
- Testing was specifically done with a Hobbywing Pentium-18a
- Openpilot.org lists other ESCs that support high refresh rates which will likely work (but haven't been tested)
- All wiring is the same - except that motor control pins (PD2 and PD4) are connected directly to the signal pin of the ESC
- See code for additional documentation / notes (thanks to Richard Wong for his research on this)

Example Schematic

Alternate Schematic Drawing by Perttu Ahola (FETs or Darlington)