Close



Results 1 to 9 of 9

Thread: Firmware help

  1. #1

    Firmware help

    I have 12" Makerbot I3V with Rumba board and graphical display. 2 E3dV6 and 1.75mm.
    Does anyone have same combination and can share their firmware for the itty double flex extruder?
    I am noob when it comes to modifying the firmware so need your help please.
    Thank you!

  2. #2
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    This is a very difficult question to answer.. Firmware is highly specific to your application, as it determines your speed configurations, whether you have autobed leveling, what type of auto bed leveling (i.e. servo/induction), firmware retraction, whether to use z hop, stepping configuration for your specific motors, what type of thermisters etc etc. With all that said, I have a 12" makerfarm (purchased circa July 2015) with RUMBA, hexagon 1.75mm and I am printing parts for the itty bitty double flex extruder as I type this. I should think I'll have everything configured and ready to build by next weekend, if you want I can document the process and we can walk through it together?

  3. #3
    Yes please, that would be wonderful.
    Just need to learn where to look to customize the firmware. Please point out to me what variables would be different for the difference in extruders. I'd assume that the rest would be the same. Or am i wrong? Extruder has built in servo auto bed levelling in a design. I am using that one. Are you using the same? What kind of lcd display did you get?
    I got mine on Nov 2015
    My idea was to take bits and pieces from everyone's configurations. I will be able to take parts of configuration from Clough42 firmware because i am using his kit therefore stepping and auto bed levelling configuration should be the same. I will take your Rumba specific configuration. And I will take info from original config for the main z,y and x stepper motors. I hope its that simple

  4. #4
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    I have the full graphic LCD, and will be using the HXT-900 Servo that clough42 recommends. Depending on which version of Marlin you are running (I will be configuring 1.1 RC-3), we may need to look into some of the other configuration files. RC-3 already has a pin defined for a 5v servo (pin 5), in the pins_rumba.h which I will be using in my build. I also run my hot end fan on fan1, and set up autocooling in configuration_adv.h ALSO, PLEASE NOTE THE PINOUT OF EXP3, you will have to rewire your servo to plug into the rumba board. Details are in the link at the bottom of this post.

    Here is a running list of changes that I have made since installing the itty bitty double flex extruder v2. I still need to configure my esteps, offsets for the probe, finely offset the extruders and adjust some of the auto bed leveling details. Also, would like to adjust the X/Y range so that I can fit both nozzles on the whole bed surface. Not quite there yet, but I will update this thread as I make those changes. This will get your printer up and running, and you can maybe get to the finer details of calibration before I can.

    First off, download the stock RC-3 Marlin firmware from github. I extract it into a folder with the RC/version name so I can revert if it ends up buggy (mine is named Marlin-RC 1.1rc3). Now we will dig into configuration.h. I typically pull up my new default configuration.h with my previous version in a dual window set up and use notepad++ to make the code easier to read.

    Here are all of the lines I have changed, and the new values I used in configuration.h:
    #define STRING_CONFIG_H_AUTHOR "(dustmann, IBDFv2 RUMBA config)" // Who made the changes.

    #define MOTHERBOARD BOARD_RUMBA

    uncomment #define CUSTOM_MACHINE_NAME "Ex Machina" // you can put whatever you'd like here

    #define EXTRUDERS 2

    uncomment #define EXTRUDER_OFFSET_X {0.0, 27.00} // (in mm) for each extruder, offset of the hotend on the X axis
    uncomment #define EXTRUDER_OFFSET_Y {0.0, 0.0} // (in mm) for each extruder, offset of the hotend on the Y axis

    #define TEMP_SENSOR_0 1
    #define TEMP_SENSOR_1 1
    #define TEMP_SENSOR_BED 1

    #define HEATER_0_MAXTEMP 280
    #define HEATER_1_MAXTEMP 280
    #define HEATER_2_MAXTEMP 280
    #define HEATER_3_MAXTEMP 280
    #define BED_MAXTEMP 125

    change // Ultimaker to // Makerfarm
    #define DEFAULT_Kp 26.00
    #define DEFAULT_Ki 1.33
    #define DEFAULT_Kd 127.14

    #define DEFAULT_bedKp 342.46
    #define DEFAULT_bedKi 58.06
    #define DEFAULT_bedKd 505.00

    uncomment #define DISABLE_MAX_ENDSTOPS

    #define INVERT_X_DIR true
    #define INVERT_Y_DIR false
    #define INVERT_Z_DIR true

    #define X_MAX_POS 310
    #define Y_MAX_POS 300
    #define Z_MAX_POS 305

    uncomment #define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)

    #define LEFT_PROBE_BED_POSITION 30
    #define RIGHT_PROBE_BED_POSITION 270
    #define FRONT_PROBE_BED_POSITION 0
    #define BACK_PROBE_BED_POSITION 270

    #define AUTO_BED_LEVELING_GRID_POINTS 3

    #define X_PROBE_OFFSET_FROM_EXTRUDER 28 // Z probe to nozzle X offset: -left +right
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -20 // Z probe to nozzle Y offset: -front +behind
    #define Z_PROBE_OFFSET_FROM_EXTRUDER -6.32 // Z probe to nozzle Z offset: -below (always!)

    #define XY_TRAVEL_SPEED 6000 // X and Y axis travel speed between probes, in mm/min.

    #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
    #define Z_RAISE_BETWEEN_PROBINGS 7 // How much the Z axis will be raised when traveling from between next probing points.
    #define Z_RAISE_AFTER_PROBING 7 // How much the Z axis will be raised after the last probing point.

    #define HOMING_FEEDRATE {75*60, 75*60, 2.5*60, 0} // set the homing speeds (mm/min)

    #define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,668} // default steps per unit for Ultimaker
    #define DEFAULT_MAX_FEEDRATE {200, 200, 2, 17} // (mm/sec)
    #define DEFAULT_MAX_ACCELERATION {1000,1000,5,1000} // X, Y, Z, E maximum start speed for accelerated moves.

    #define DEFAULT_ACCELERATION 750 // X, Y, Z and E acceleration in mm/s^2 for printing moves
    #define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration in mm/s^2 for retracts
    #define DEFAULT_TRAVEL_ACCELERATION 750 // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

    #define DEFAULT_XYJERK 20.0 // (mm/sec)
    #define DEFAULT_ZJERK 10.0 // (mm/sec)
    #define DEFAULT_EJERK 10.0 // (mm/sec)

    uncomment #define EEPROM_SETTINGS

    #define PLA_PREHEAT_HOTEND_TEMP 200
    #define PLA_PREHEAT_HPB_TEMP 60
    #define ABS_PREHEAT_HOTEND_TEMP 225

    uncomment #define SDSUPPORT // Enable SD Card Support in Hardware Console
    uncomment #define REPRAP_DISCOUNT_SMART_CONTROLLER //this enables the smart controller for the LCD
    uncomment #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER //this enables the full graphic LCD

    uncomment #define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
    uncomment #define Z_ENDSTOP_SERVO_NR 0
    uncomment #define SERVO_ENDSTOP_ANGLES {{0,0}, {0,0}, {85,0}} // X,Y,Z Axis Extend and Retract angles
    uncomment #define DEACTIVATE_SERVOS_AFTER_MOVE
    #define SERVO_DEACTIVATION_DELAY 500


    CHANGE IN CONFIGURATION_ADV.H:
    #define EXTRUDER_0_AUTO_FAN_PIN 8 // make sure hot end fan is plugged into fan1
    #define EXTRUDER_1_AUTO_FAN_PIN 8 // make sure hot end fan is plugged into fan1


    Useful links:
    http://forums.reprap.org/read.php?15...505#msg-286505 (explains the EXP3 servo connection)
    https://github.com/MarlinFirmware/Marlin (where to download stock firmware)
    http://reprap.org/wiki/RUMBA (RUMBA wiki, offers pinout schematics)
    http://reprap.org/wiki/PID_Tuning (PID autotuning reference)
    Last edited by dustmann; 02-15-2016 at 10:22 AM.

  5. #5
    Thanks a lot!!! That was really helpful. Any way you could also point out E3d specific confiugaration?
    And also are you using the motors that came with Clough's kit?

  6. #6
    Technician
    Join Date
    Nov 2014
    Location
    New Orleans
    Posts
    50
    Quote Originally Posted by svmagnum View Post
    Thanks a lot!!! That was really helpful. Any way you could also point out E3d specific confiugaration?
    And also are you using the motors that came with Clough's kit?
    I am using the motors provided in his kit, yes. I did need to adjust the stepper voltage a little to keep them turning smoothly. I lowered the voltage until they began missing steps, and then raised the voltage until the motors turn smoothly even with light pressure on the large extruder drive wheels (i lightly grab the wheel to try to induce skipping steps).

    Ah, yes, thank you for the reminder. The hexagon thermistor uses a different type than the E3D thermistors. For the e3d hot ends, you need to change your thermistors to the semitech type by changing the temp sensor 0 and temp sensor 1 values: (note the temp sensor setting for the makerfarm bed will remain unchanged)

    #define TEMP_SENSOR_0 5
    #define TEMP_SENSOR_1 5

    #define TEMP_SENSOR_BED 1

    Also, I would HIGHLY recommend doing an autotune of your extruder and bed PID after uploading the base firmware. This can be done with an M303 command sent through pronterface. To autotune your extruder send the below commands, and then change your firmware to reflect the new settings.
    You should run these at the temperature you are going to be printing at (I use PLA/PETG, so I picked 220 as a compromise between 200/240 with a bed temp of 80C for PETG)

    M303 E0 S220 C8 (this will cycle the PID determination 8 times at 220C)

    After completion it will give you new PID values for your hot end. (You will get a message like "PID Autotune finished ! Place the Kp, Ki and Kd constants in the configuration.h")

    In my case, I got these values:
    #define DEFAULT_Kp 26.00
    #define DEFAULT_Ki 1.33
    #define DEFAULT_Kd 127.14

    Now run M303 E-2 S80 C8

    (again, this will cycle the PID determination for your bed at 80C). In my case, I got these values:
    #define DEFAULT_bedKp 342.46
    #define DEFAULT_bedKi 58.06
    #define DEFAULT_bedKd 505.00

    Update your configuration.h and re-upload the firmware. Then send your M502 followed by M500 codes in pronterface to update your eeprom settings and you're done!
    Last edited by dustmann; 02-15-2016 at 10:25 AM.

  7. #7
    I actually got it working, the only issue I have now is with the code line

    #define TEMP_SENSOR_BED 0

    Any time I change it from 0 I get an error on the LCD that reads

    Err: Mintemp bed

    If you have any idea how to fix this I would appreciate it!

  8. #8
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    Quote Originally Posted by UnisBrands View Post
    ...Err: Mintemp bed
    For the type of thermistors used here, the thermistor resistance goes up with lower temperature, and goes down with higher temperature (i.e., Negative Temperature Coefficient or NTC). A mintemp error means the thermistor is reading more resitance than it should - likely because the thermistor is broken, the wires aren't connected to it right, there's a break in one of the wires, or the connector for it isn't plugged onto the right spot on the electronics, or the electronics is set to the incorrect input pin for the bed thermistor.

    One test to eliminate some of the possibilities is to short between the terminals for the bed thermistor at the electronics. This should give you a resistance reading far lower than expected, and you'll get a maxtemp error instead. That would at least tell you that the firmware and electronics is configured right and working, and you then just have to figure out what's wrong in your wiring or thermistor.

  9. #9
    Technician
    Join Date
    Nov 2015
    Posts
    73
    Check out Tom's video's on firmware. Quickly gets you over the initial hump of being completely lost in what's what.



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •