Short Version: Open Melt 2 is out – and now it’s Arduino based. Full documentation for Open Melt 2 is on Github.

A translational drift (“Melty Brain”) robot spins its entire body, but is controlled directionally by an embedded system that modulates motor power.

This requires precise tracking of rotation speed. It has potential use in combat robotics – but is not common due to being perceived as difficult to implement.

Open Melt has its origin in the mid-2000’s – when I developed a series of 1lbs and 3lbs Melty Brain combat robots based on the ATmega168/328 microcontrollers.

Compared to some other approaches the system is simple:

  • An accelerometer measures centrifugal force in order to calculate RPM-
  • Each rotation a heading LED is illuminated to indicate the “front” of the robot
  • The driver intuitively corrects for any minor errors in tracking as they steer

This system works pretty well – and I’ve won a few fights with it.

I eventually open-sourced the project as “Open Melt” – and it’s been used by a handful of combat robot builders.

But over the last decade – Open Melt became out-of-date.

The old system depended on a high-g (200+g) accelerometer with analog output. Increasingly accelerometers favored I2C interfaces – and 200+g analog ones became harder to source (and weren’t available on convenient breakout boards).

Adding I2C support to the original version could address the issue – but the code wasn’t up to my current quality standards. All functionality was crammed into main.c. Patching it up would make that situation worse. Revisiting it made me think, “who wrote this cruft?!”

So Open Melt needed a major refactoring at least.

Before I started – I took a moment to reflect: “What is the purpose of this project?”

Make translational drift accessible to more combat robot builders – and try to keep it that way into the future.

So – it was clear Open Melt should move to Arduino. This makes the system far less intimidating to people without a background in embedded software development.

(If you haven’t played with Arduino in a while – checkout the Arduino 2.0 IDE – it’s not awful!).

With Open Melt 2 – code quality is more of a priority. Good practices (high cohesion, low coupling) are followed. While functionality is largely the same – it’s implemented across seven different modules instead of one. Code for translational drift logic, motor control, accelerometer and radio control are all cleanly separated and have well-defined interfaces.

Next time swapping the accelerometer won’t be an existential crisis for the project.

Moving to Arduino also gives Open Melt the potential to run on non-AVR microcontrollers (not tested).

Detailed plans are now provided for a 3d-printed Antweight (1lbs). I haven’t fought with this robot yet – but it’s held up well in testing.

It’s almost a complete how-to-guide on building a Melty Brain robot.

Have fun – but please remember:

Building and operating a robot of this type, even in smaller versions, is inherently dangerous. By choosing to use the provided code and plans, you acknowledge the risks involved. The creator of these plans cannot be held responsible for any injuries, damages, or losses that may result from the use of this project.

Related Posts

3 thoughts on “Open Melt 2

  1. Hello, I’ve been looking at this website for over the past few months and have found it a valuable resource in our robotics project. Me and my team are interested in constructing a meltybrain robot however we are working in the 3lb category as opposed to the 1lb category that your plans and research is done in. If possible do you have any general hardware recommendations (particularly motors), that could be used for a 3lb bot? If not a specific recommendation then general specs would be useful. Again this website has been a great resource of information for us and we appreciate any help or information that you are providing.


    1. The easiest way to scale the test-platform up to 3lbs – might be to just use 2x of the 540-series motors specified for the antweight reference platform (and make a 2-wheel robot).

      There are also somewhat larger 550-size DC motors. You might be able to build a 1-wheel 3lbs robot around one of them. The MOSFETs may or may not be adequate to handle them.

      A -better- option might be to investigate using a brushless motor. You will get a lot more power for the weight. Open Melt does support this (although not with all brushless ESCs). I don’t have a specific brushless motor I can recommend.

      See the notes in melty_config.h for info on tested brushless controllers.

      Please feel free to contact me directly at

      Good luck!

      1. Thanks for the insight, were going to be working hard on trying to make a 3lb bot. If I have any questions that you might be able to answer I will email you, thanks for the help.


Leave a Reply

Your email address will not be published. Required fields are marked *