Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Makerbot Serial Controller - MakeIRbot

711
Downloads
611
Views
Published on March 4, 2012

Description

This is an arduino project intended to allow control of your Makerbot without the need for a computer with ReplicatorG installed. It uses an IR remote to simplify connections.

Instructions

Firstly I need to thank codexmas without whose original work this would not have made it as far as it has. His original code is available on GitHub here: github.com/codexmas/makeIRbot

My code continues to use the majority of his, however I have added some features from his last commit.

This project gives most of the same controls over your Makerbot as ReplicatorG but without the need for a computer.
It will allow you to:
See Makerbot name and firmware versions.
See current temperatures.
Set target temperatures.
Jog X/Y/Z axis.
Run extruder forward and reverse at setable RPM.
Print a file from the SD card.
Enable/Disable the Fan.
Reset the Makerbot.

You will need:
An Arduino. A run of the mill arduino 328 will do just fine with the current code.
A Hitachi 44780 LCD. codexmas' original code was based on a 16x2 display, mine is based on a 20x4.
A 38KHz IR receiver. I just used one that I had in my junk box, codexmas suggests used a TSOP39238CZ1
An IR remote control. I used an Apple Remote as it works well and doesn't have too many more buttons on it than are needed for this project. Some remotes will not work as they send their codes multiple times, the Sony remote I tried did this.

The code uses additional libraries to do the heavy lifting for the menu, specifically MenuBackend and IRremote for the remote handling. I have attached the specific versions I used.

To Build:
Wire up the display and the arduino as shown in the image and program the arduino.
The code was intended to be used with the Arduino-1.0 IDE and will almost certainly have issues with anything earlier. The additional libraries (I think) have been updated to work with 1.0 as well.

Hook up the arduino's serial pins to pins 4 and 5 on the Makerbot's FTDI header. For testing I hooked up the arduino's Gnd to the Black (pin 1) on the FTDI header and +5V to the I2C header.
If you have wired everything correctly the first screen should tell you the name of your Makerbot and the firmware versions of the motherboard and extruder controller.
Then you will need to add your IR remote controls codes into the arduino sketch, press the buttons on your remote that you want to use and note the numbers that come up on the LCD. You will need to add these into the IR_Setup.ino file in the appropriate places and then reprogram the arduino again.

I coded this to work with a Cupcake Makerbot with a 5D shield and version 3.1 firmware. However I think it may work on the Thing-o-matic as well. The jog function will likely have to be redone to work with anything older I suspect.

Uploaded V1.9 - added settable jog distance.
Uploaded V1.91 - uploaded correct Serial_Commands.ino
Tags
This Thing has no tags.
Report as inappropriate

You must be logged in to post a comment.

Nice. I was working on the same idea and was about 50% along when I was distracted, and found this when I came back to work on it some more.

I didn't have a 4 x 20, so I tweaked it for a 2 x 40 and physical buttons instead of an IR remote. It's not pretty, but it's convenient!

Jogging only seems to work at 10mm for me. Adjusting the distance seems to adjust the step rate, which either results in very slow jogging or too fast with mi
ssed steps. Haven't really played with it tho...might be a configuration thing.

Also, it looks like you're writing the EEPROM values every time through the loop. Most EEPROMs are only good for a few hundred thousand writes, so this will burn it out rather quickly...I moved the writes so they only
get called when the temps or extruder speeds are changed.

Nice, glad to see you have tweaked things. Happy to merge changes if you want to contribute back to the github repo. One thing I wanted to add was IR code learning, so people don't have modify to code for their particular remotes.

Thanks :) I had considered adding IR code learning in early, but I figured I should get the important bits working first. Another thing I'm considering adding now that i have firmware version querying working is to change what commands are sent to the 'bot depending on what version of firmware it has. I'm happy to merge it back into main line, I've posted the current code on Github as well so you should be able to see my fork.

I still need to add in settable jog distance, that will probably require another menu screen, hopefully I can do that before MenuBackend eats all the RAM ;)