1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

How to Update and Edit Robo firmware with Arduino

Discussion in 'Software' started by Inspector General Snogget, Apr 22, 2015.

  1. Inspector General Snogget

    Joined:
    Apr 22, 2015
    Messages:
    2
    Likes Received:
    18
    Hello, I'm guessing you're here because you're apparently the only person on this planet that doesnt know how to use arduino to update the robo firmware. I understand, and I know the feeling. ;)

    There are existing tutorials out there but as the Robo has changed so much during its development, some of the information is out of date and some information is just missing. I will attempt to make this process as clear as possible. It's really not hard.

    First: what is Arduino? Arduino is a tech company that builds universal devices that can be programmed by the user to do whatever they need. The main application for Arduino devices is for building the control systems for robots, such as, a 3D printer. Ta-da! The code that governs this hardware is called firmware.
    You need the Arduino programming software to send new firmware to Arduino devices. You can get that at http://www.arduino.cc/en/Main/Software

    Once you have that, you need the Robo 3D firmware. This is the code that Robo made to control the Arduino board and it must be downloaded from Robo, here: http://guide.robo3dprinter.com/Wiki/RoBo_3D_Firmware
    If you got your printer recently then it will be the Auto leveling 8mm rod version. Sorry i dont know exactly when the 8mm version started shipping, maybe someone here can fill us in....
    When you click the link for your firmware, you'll get a grey/black screen with a white box, the download button is the symbol in the top black section and it looks like a downward facing arrow standing on a horizontal bar.

    Once you have a copy of the latest firmware appropriate for your machine, you can use the Arduino software to look into the Robo firmware, edit values if you want, and then upload it to the Arduino controller in the Robo.

    So you now have the Arduino software a .zip file containing your firmware.
    Unzip the .zip to your desktop of whatever convenient location you want.
    The Arduino program has a certain directory where it looks for Arduino "sketchbooks", like a library. To open your Robo firmware, you need to move the file you just unzipped into that directory. On my computer it was C:\Users\<your user name>\Documents\Arduino
    It is probably the same on your computer, but if it is not, you can find the directory in Arduino if you click File, Preferences, and it should say at the top of the window that pops up.
    Once you move the firmware file into that directory, you should see this:
    arduino tutorial.jpg
    Click on the sketchbook listed there, another arduino window will open you'll see this:
    configuration.h tutorial.jpg

    You can look around on the forums for what useful things you can do by editing the configuration.h file.
    Personally, I increased the max bed temp to 100 (#define BED_MAXTEMP 100)
    And I fiddled with #define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2510,723.38}
    Use control+f keyboard command to search for these values, or just keep your eyes glued while scrolling down.
    Your robo was/is probably printing everything 10% too short. This might be why you're interested in updating your firmware. Yes, the new firmware has a different value for the z axis steps and you should print a test cube to measure the dimensional accuracy of your prints after you update the firmware. The test pieces that I printed with the new firmware appeared to be too large on the z-axis, but I believe this is because of the layer height of the final layer. Larger pieces printed since then have been dimensionally accurate. I found that the Simplify3D software allows for much more control and i've seen a significant improvement in print quality while using this software, you should check it out.
    Now you can connect your computer to the Robo with the USB cable, do not connect Matter Control to the Robo. Disconnect Matter Control if it is already connected.
    To make Arduino talk to your Robo correctly, you need to tell it what hardware it will be communicating with. Under the Tools menu, you'll find Board. Board has a list of all Arduino hardware that this program can work with, the Robo runs on the Mega 2560 so select "Arduino Mega or Mega 2560".
    Then you need to tell it what COM port your Arduino is connected to, look at Ports in the Tools menu. It will show a list of active ports. The port that your Robo is on will be different for every computer. You can tell what port it is by disconnecting your Robo USB cable and plugging it back in, the appropriate COM port will appear in the list when you plug it in. Of course you can also see what port its on in the Windows Device Manager.
    When you're ready to send the new code to your Robo click the upload button shown in the screenshot.
    You'll see some activity in the black section below and a progress bar in the blue section on top of it. You'll get a communication error if you have Matter Control connected to your robo because the COM port is already taken up by Matter Control. Disconnect Matter Control and try again.

    It will say Upload Complete when its done, it only takes a minute.

    Now you know.
     
    #1 Inspector General Snogget, Apr 22, 2015
    Last edited by a moderator: Aug 12, 2015
  2. Sonny's Robo3D

    Joined:
    Jun 22, 2015
    Messages:
    111
    Likes Received:
    23
    Thanks Inspector!! I have been trying to this with Matter Control and it just didn't work, but this way is definitely the better way and MC also recognizes the update. My only addition is that when you unzip the firmware file it going to be a folder full of files, not just a specific file. Also the arrow pointing to the right is the upload button - you will know once you mouse over it but it's wasn't as obvious to me.
     
  3. fastsmiles

    fastsmiles New Member

    Joined:
    Jun 5, 2015
    Messages:
    3
    Likes Received:
    0
    Thanks for the great post. I am new to all this and it was a big help.
    Is editing the firmware the only way to turn the melody sound off?
     
  4. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,276
    melody sound? You mean how mattercontrol will play a sound at the end of the print through your computer?
     
  5. fastsmiles

    fastsmiles New Member

    Joined:
    Jun 5, 2015
    Messages:
    3
    Likes Received:
    0
    No, the sound generated by the Robo as it prints.
     
  6. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,276
    For that you would need to adjust the tuning of the stepper motors so they use less current. Also getting some nema17 dampeners might help
     
  7. fastsmiles

    fastsmiles New Member

    Joined:
    Jun 5, 2015
    Messages:
    3
    Likes Received:
    0
  8. apwolf

    apwolf Member

    Joined:
    Aug 4, 2015
    Messages:
    37
    Likes Received:
    9
    Gyre likes this.
  9. tswen95

    tswen95 New Member

    Joined:
    Dec 11, 2015
    Messages:
    3
    Likes Received:
    0
    hi new member here. I believe i have a beta version of the robo but im not completely sure since it was donated to my research group after a start up company was done using them. The prints were having the z axis issue so i updated the firmware just like the original post but after i updated the z end stops always say they are 'hit' but on my robo the endstops are connected to the nut on the threaded rod so they should always be hit when not at zero so i cant manually move my robo down and it prints at whatever height it is at when it i start the print. can someone help me out? thanks
     
  10. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Which firmware did you use? It matters.
    If you still have the original Z axis for the Beta you might have not picked the correct one.

    Post a picture of the Z axis home switch(es).
     
  11. Randy P

    Randy P New Member

    Joined:
    Dec 29, 2015
    Messages:
    1
    Likes Received:
    0
    Hey everyone, Im very new to 3D printing and just bought my first machine (Robo 3D) about 3 days ago off of some guy. He installed dual drivers for the Z axis so it was easier on the machine to pull up, he also setup a custom code so they would both run parallel. so here is my problem. After watching tons of tutorials and reading forums I tried to do a firmware update on the unit. apparently it was successful. However when I turned on the machine everything went CRAZY and now only one Z axis motor works and it zeros out in a random spot in the center of the machine.

    So basically this is the question. How do I setup dual Z axis drivers and how can I get the printer calibrated again to normal function???
     
  12. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    If he had custom firmware you really need to get the customization's from him.

    The printer normally has two Z steppers, but they are driven by a single stepper driver (and the single Z channel on the RAMPS).

    Not sure what he did since the RAMPS only supports a fixed number of stepper drivers. Maybe he used one from the second extruder or something. No way to know.
     
  13. kapu007

    kapu007 Member

    Joined:
    May 13, 2016
    Messages:
    33
    Likes Received:
    5
    I change out my robo 3d r1 plus, psu, controller board and the hotend due to the printer turning off when starting to print. Now it will go crazy when printing. Vibration in the hotend when trying to print. Does your fix work on this issue? thank you in advance.
     
  14. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Very unlikely that what you are seeing is a firmware issue so not likely to help at all
     
  15. Dave Telling

    Dave Telling New Member

    Joined:
    Jan 23, 2017
    Messages:
    10
    Likes Received:
    0
    I cannot get any update to work. If I try to use the hex file for use with Matter Control, I save the link as a hex file. I then go to the Matter Control "Firmware Updates". I click on "Change", select the hex file I just saved, then click "Open" MC says, "Update in progress: Creating firmware backup". Then, it says, "Connect your printer to check for firmware updates", and there is now a button that says "REVERT". If I connect the printer, a message pops up, "Detecting device firmware", and the firmware listed is ROBOR1PLUSV1, not V2. I also tried the Arduino method and got multiple pages of errors, many with cryptic messages about X,Y and Z _MAX_PIN being redefined, along with a bunch of other stuff. I removed the Arduino 1.6.1 and did a new install of 1.8.1, same result. I'm pretty stuck here.
     
  16. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @Dave Telling
    Don't use the HEX files, period. Also if you are not changing parameters there is simply no reason to move from the PLUS firmware V1 to V2. All Robo did in V2 was add some non-functional incomplete code and called it V2. It is still Marlin 1.0.0. There is also a deprecated construct in the old Marlin code that causer compilation errors in any Arduino compiler newer than 1.6.8

    What exactly are you changing in the firmware?
     
    mark tomlinson likes this.
  17. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    There is a minor edit required in a header file to get the code compiling with recent versions of the Arduino compiler.
    The original firmware dates back to much earlier versions and has not been updated to reflect newer compiler changes.

    If there is a specific reason for the change as @WheresWaldo indicated we can help you get it loaded, but there is no reason to do the change you are considering unless you are customizing the code someway.
     
  18. Dave Telling

    Dave Telling New Member

    Joined:
    Jan 23, 2017
    Messages:
    10
    Likes Received:
    0
    Mark and Waldo - I am new to 3D printing, and this is the first printer I have owned. I have been having problems printing ABS, and was hoping that the V2 firmware might resolve these, or at the very least, allow me to change some parameters (such as the max bed temp) in an effort to resolve them. The fact that the "official" Robo website lists a V2 firmware update would imply that changes/improvements have been made to the printer firmware. Apparently, that is not the case? Also, what in the world is Marlin? I also noted numerous references to LCD display files, and as far as I know, there is not LCD display on my Robo, yet these LCD files are causing errors when I try to compile the Arduino sketch, also.
    At any rate, without wanting to sound like a whiner, I'm disappointed that the update page has (and apparently has had for some time) bad/misleading information. The text on the update page says that the upgrade fixes a potential bug and adds a new feature. Why wouldn't I want to do the upgrade? Also, the bed temp is an issue, as many have said that they got better results with the bed at 110C.
     
  19. Dave Telling

    Dave Telling New Member

    Joined:
    Jan 23, 2017
    Messages:
    10
    Likes Received:
    0
    What is the editing required? I have done a number of Arduino-based projects, so I have some familiarity with how to use the IDE.
     
  20. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    1st there are no changes that have any real effect between v1 and v2 of the Robo R1+ firmware (as confirmed by @WheresWaldo and others). So that update will get you nowhere.

    ABS is very problematic on the Robo R1/R1+ simply for the reason that there is no heated chamber as the specs for ABS require. Does that mean it is unprintable? No, But... it is problematic. If you want to change max bed temp in an effort to address this that makes sense and may help (but it by itself is unlikely to cure issues with ABS).

    So it sounds like you have a purpose for changing the firmware (all we wanted to be sure of) and whether you use v1 or v2 is largely irrelevant.

    As for the firmware compiling, this will address some of the errors:

    http://community.robo3d.com/index.php?threads/arduino-problems-again.9030/#post-82160


    If you have others post the explicit/exact error message.
     

Share This Page