Anet A8 Reprap Arduino Mega Pololu Frim Firmware Update

Anet A8 Reprap Arduino Mega Pololu Frim Firmware Update

If y’all build up a 3d printer from scratch, you must install a firmware on the controller lath. This commodity descripes the steps when you install the Marlin firmware on a RepRap controller using the combination of an Arduino Mega 2560 and the RAMPS i.iv shield.

Preconditions:

As preconditions for the next steps you need some software packages from different sources. You need as follows:

Download the latest version of Marlin download page and unzip it into a folder past your own decision.

If you want to run your RAMPS one.4 together with the Full Graphic Display, you besides must download the u8glib library fromhttps://github.com/olikraus/U8glib_Arduino. Later downloading the package zu unzip information technology and re-create then the consummate subdirectory into the location of your Arduino development environment into the subdirectory ‘libraries’.

Step 1 – USB-driver installation:

The Arduino evolution environment already contains a driver for the “Arduino 2560”. Equally shortly as you connect the Arduino to your computer, the device will be automatically recognized. The connectd Arduino lath volition exist assigned automatically to a COM port on your reckoner. Y’all can determine the assigned COM port by opening the device manager of your Windows installation and navigate to the COM & LPT entry.

Pace 2 – Setting upwardly your Arduino development environment:

Later you installed the Arduino development surround and you unpacked the Marlin Firmware in a directory on your reckoner, you can get-go with the configuration for your ain 3d printer. You start this footstep by choosing ‘File/open’ inside the Arduino compiler. So you cull the directory where you unzipped the Marlin Firmware and select the file ‘Marlin.ino’. The Arduino dev environs then opens all files belonging to the firmware.

07-RUMBA-Marlin-ino

As adjacent you select the file ‘Configuration.h’ to start with the configuration of the Firmware for your 3d printer:

08-RUMBA-Configuration-h

To ensure that compiling and transmission of the firmware your Arduino will work, you must open the card ‘Tools/Board’ and select as blazon ‘Arduino Mega 2560 or Mega ADK’.

09-RUMBA-Board

Equally side by side step you must select in the carte du jour ‘Tools/Serial Port’ to which your Arduino is assigned in the device managing director.

10-RUMBA-port


Now you can effort to compile the Marlin Firmware. The compiling of the firmware volition be started by clicking the checkmark symbol direct beneath the menu item ‘File’.
In some cases you might experience problems with compiling/transmitting the firmware. Near contempo causes are:

  • The Arduino development environs does not lucifer the Marlin Firmware, as there are discrepancies in the library includes
  • The board wasn’t selected correctly in the Arduino development environment
  • The COM port wasn’t selected correctly

Step three – tuning the Configuration.h for your Arduino with RAMPS 1.4:

Nearby the top of the file you will detect the setting of the Baudrate, with which your board volition be take transmissions over the USB connectedness. In the current version the default setting is ‘250000’. For some computers or USB ports this setting may pb to problems. For a more stable setting it might be a good idea to change this value to 115200.

// This determines the communication speed of the printer // This determines the communication speed of the printer #define BAUDRATE 115200
      

In the actual Marlin Firmware all supported printer boards are listed within the file “boards.h”. This file contains the post-obit entries for the RAMPS 1.four:

#define BOARD_RAMPS_13_EFB 1010 // RAMPS 1.3 (Ability outputs: Hotend, Fan, Bed) #define BOARD_RAMPS_13_EEB 1011 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed) #define BOARD_RAMPS_13_EFF 1012 // RAMPS i.iii (Ability outputs: Hotend, Fan0, Fan1) #ascertain BOARD_RAMPS_13_EEF 1013 // RAMPS ane.three (Power outputs: Hotend0, Hotend1, Fan) #ascertain BOARD_RAMPS_13_SF 1014 // RAMPS ane.iii (Power outputs: Spindle, Controller Fan) #define BOARD_RAMPS_14_EFB 1020 // RAMPS 1.four (Power outputs: Hotend, Fan, Bed) #ascertain BOARD_RAMPS_14_EEB 1021 // RAMPS i.four (Power outputs: Hotend0, Hotend1, Bed) #define BOARD_RAMPS_14_EFF 1022 // RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1) #define BOARD_RAMPS_14_EEF 1023 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan) #define BOARD_RAMPS_14_SF 1024 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan) #define BOARD_RAMPS_PLUS_EFB 1030 // RAMPS Plus 3DYMY (Power outputs: Hotend, Fan, Bed) #define BOARD_RAMPS_PLUS_EEB 1031 // RAMPS Plus 3DYMY (Ability outputs: Hotend0, Hotend1, Bed) #ascertain BOARD_RAMPS_PLUS_EFF 1032 // RAMPS Plus 3DYMY (Ability outputs: Hotend, Fan0, Fan1) #define BOARD_RAMPS_PLUS_EEF 1033 // RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Fan) #ascertain BOARD_RAMPS_PLUS_SF 1034 // RAMPS Plus 3DYMY (Power outputs: Spindle, Controller Fan)

The most common version may be the variant <Extruder, Fan, Bed>. In this example you have to set up the value as the post-obit lines show.

#ifndef MOTHERBOARD   #ascertain MOTHERBOARD BOARD_RAMPS_13_EFB #endif

RepRapDiscount Smart Controller

If you take a RepRapDiscount Smart Controller (40×2 character display), uncoment the entry in line 1770:

//============================================================================= //======================== LCD / Controller Selection ========================= //======================== (Character-based LCDs) ========================= //============================================================================= // // RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller // // Note: Ordinarily sold with a white PCB. #ascertain REPRAP_DISCOUNT_SMART_CONTROLLER

 RepRapDiscount Full Graphic Display

If you have a Full Graphic Display Controller (DOT Matrix 128×64) continued to your RAMPS you must remove the both ‘//’ in front of the DEFINE around line 1910. Then this function in the source lawmaking should look like the post-obit lines show. Just you must keep in mind, that you have to add the u8glib to your Arduino environment (see Preconditions!).

// IMPORTANT: The U8glib library is required for Graphical Display! // https://github.com/olikraus/U8glib_Arduino // RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER


Now you made the base of operations configuration for your RAMPS one.iv lath. If you transmitt this version to your board (klicking the button with the arrow to the right), and then your display of your 3d printer should evidence the first signs of live.

Read:  Flash Verizon Firmware on S8 With V5 Bootloader

Ok, it’s time to make the adjustments specific to your 3d printer. You might starting time check the setting for the amount of extruders at around line 145. Most 3d printer rookies may start with one extruder, so the default entry of ‘1’ is quite sufficient.

// This defines the number of extruders #define EXTRUDERS 1
      

At effectually line 70 you accept to set upward the thermistors connected to the RAMPS for the extruder and the heatbed. Depending on your hardware configuration you lot have to change the final value in the defines.

#define TEMP_SENSOR_0 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #ascertain TEMP_SENSOR_3 0 #ascertain TEMP_SENSOR_4 0 #ascertain TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #ascertain TEMP_SENSOR_7 0 #define TEMP_SENSOR_BED 0 #define TEMP_SENSOR_PROBE 0 #ascertain TEMP_SENSOR_CHAMBER 0

The define for TEMP_SENSOR_0 determins which thermistor type is assembled at the hotend of extruder 1. This termistor has to be connected to the first sensor input (see also wiring schema). The thermistor for the heatbed has to be connected to the second sensor input. The thermistor type is configured with the define line of ‘TEMP_SENSOR_BED’. If you use a thermistor of the type EPCOS B57560G104F (100K, Beta = 4036), yous write the value ‘1’ into the matching ascertain. In case you accept a thermistor with 100k and Beta = 3950, yous have to set the value ’60’ in the corresponding define. So the defines will look e.g.:

For EPCOS (Beta = 4036) on hotend and heatbed:

#ascertain TEMP_SENSOR_0 1
#ascertain TEMP_SENSOR_BED 1

For Beta = 3950 on hotend and heatbed:

#define TEMP_SENSOR_0 60 #define TEMP_SENSOR_BED lx

If you like, yous can tune the DEFINES for HEATER_x_MINTEMP and HEATER_x_MAXTEMP. But that’s not really necessary. The predefined values ensure, that the printer will stop in case of a NTC failure or cablevision break.

// Below this temperature the heater will be switched off // considering it probably indicates a cleaved thermistor wire. #define HEATER_0_MINTEMP   five #ascertain HEATER_1_MINTEMP   v #define HEATER_2_MINTEMP   5 #define HEATER_3_MINTEMP   v #define HEATER_4_MINTEMP   v #define HEATER_5_MINTEMP   5 #define HEATER_6_MINTEMP   5 #define HEATER_7_MINTEMP   v #ascertain BED_MINTEMP        5 // Above this temperature the heater will be switched off. // This can protect components from overheating, simply Non from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 #define BED_MAXTEMP      150

Starting on line 1058 yous tin can conform the turn directions how your stepper motors.

// Capsize the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong mode. #ascertain INVERT_X_DIR faux #define INVERT_Y_DIR true #ascertain INVERT_Z_DIR fake // @department extruder // For directly bulldoze extruder v9 set to truthful, for geared extruder set to false. #define INVERT_E0_DIR false #define INVERT_E1_DIR false #ascertain INVERT_E2_DIR simulated #define INVERT_E3_DIR faux #define INVERT_E4_DIR false #define INVERT_E5_DIR false #define INVERT_E6_DIR false #define INVERT_E7_DIR faux

In this section you have to conform the direction of the stepper motors matching you version of a 3d printer. The easiest way is to move one centrality for some units into one direction. This may exist done by using the display (if you have one installed) or with the host software (e.g. printrun or repetier). If you moved the axis, you check wheter the motor turns into the right direction. In case not, you change the value behind the matching INVERT_?_DIR entry from true to faux or vice versa.

Read:  The Firmware of an Access Point Resides Where?

ATTENTION: Don’t use homing of the axis at this bespeak!

With homing the firmware moves all axis until it hits the endstop. If the stepper turns into the wrong direction the head or the bed will come across the wrong management until information technology hits the mechanical end of the axis. You can only finish this by resetting the printer or turn of the power.

Brusque hint:
Later on turning ability on, the Marlin Firmware sets the electric current position to 0/0/0. In the initial configuration Marlin allows moving the axis but to positiv positions. With homing the printhead and bed move to the endstops and the firmware starts from there with 0/0/0.

With the side by side line you take to calibrate (roughly) the axis by setting the necessary steps per unit (Marlin uses [mm]). Therefore you have to set the correct amount of steps the firmware has to utilise per millimeter. The numbers in the brackets set the values as follows: { 10-axis, y-axis, z-axis, extruder}.

#ascertain DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/three,760*1.1} // default steps per unit for Ultimaker

At this point you have to make some calculations. You take to kickoff with you stepper motor. You lot have to bank check the technical clarification and read out the corporeality of steps per revolution. Near used NEMA steppers will accept 200 steps per revolution (1.viii° step bending). This value has to be multiplied with the configured micro stepping of your stepper commuter. Very mutual are micro steppings of ane/16 or 1/32. This means, that the driver volition devide the one mechanical step of the motor into xvi or 32 micro steps. Here you have to bank check your setting for stepper driver!

This means:

  • one/16 Stepping
    • 200 * 16 = three.200 steps / revolution
  • ane/32 Stepping
    • 200 * 32 = 6.400 steps / revolution


At present you lot accept to add into the calculation the mechanical components, which further influence the resolution per unit. A lot of 3d printers use a M8 threaded rod on the z-centrality. The M8 rod has ordinarily a thread pitch of 1.25 mm per revolution. To get the total amount of steps per unit, you have to divide the steps calculated befor through the thread pitch. Then yous have the kickoff rough setting. The values for a M8 rod and then will be:

  • 1/sixteen Stepping
    • 200 * 16 / ane,25 = 2560
  • 1/32 Stepping
    • 200 * 32 / i,26 = 5120
Read:  How to Update Sagemcom Router Firmware 5260


If you have different rods, similar acme thread of the types TR8x1.five or TR10x3, yous have to employ the pitch values of those for your adding. You lot may get with several decimals. I think in practice everything behind the 4th or 5th decimal won’t have a significant influence to the accuracy of your printer. And so it should be sufficient to utilise values up to 4 or 5 fractional digits.

To adjust the Steps/Unit for X-/Y-axis, you lot can utilise this formula:

(<steps per revolution of the motor> * <microstepping>) / (<count teeths of pulley> * <belt pitch>) = steps per unit of measurement

In this example calculation we use a GT2 pulley with xx teeth and the pitch of the standard GT2 belt with two mm.

  • i/16 Stepping
    • 200 * xvi / xx * two = 80
  • 1/32 Stepping
    • 200 * 32 / 20 * 2 = 160


The side by side point on your checklist is to adjust the stepping per unit for the extruder bulldoze. The feedrate of the filament will be influenced past gear ratio of the extruder and the effective circumference of the filament screw. The standard Gregs Wade extruder has 11 teeth on the small and 39 on the large gear. This results in a transmission ratio of 1 : 3.54. The Wades extruder uses a M8 bold. Then you have a diameter of 8mm (roughly, because hobbing will reduce the diameter). With the formula above, you volition get a value of 25.1327mm.
If you lot accept a Bulldog 40 extuder from reprapdiscount, things get easier. Wrote down alread the steps per unit (for a 1/xvi) microstepping.
So for a Bulldog Twoscore you lot can offset with this values:

  • 1/16 Stepping
    • 495
  • ane/32 Stepping
    • 990


In whatsoever example you accept to perform a fine tuning of this values to get the best accurateness from your printer.

The final topic for the initial setup volition exist setting the maximum feedrates for the distinct axis. This will ensure, that the printer will stay inside its physical capabilities even when the GCode advices college rates. This parameters depend heavily on the physical setup of your printer, similar stepper motor electric current and moved masses of the bed and extruder. Fifty-fifty low feedrates tin upshot in a humming sound of the motors and the axis won’t movement when the motor current is set to a depression value. If you set the motor current too high, the stepper driver may overheat and overheat protection of the drier volition end the motor. Or more worse, you will damage the stepper by running with a electric current above its specification.

In whatever example the motors will finish during the impress chore and the printed part will exist vaste.

#ascertain DEFAULT_MAX_FEEDRATE          {300, 300, 5, 100}    // (mm/sec).

For the maximum feedrate you have to find a balance between the operating temperature of the stepper drivers and the max possible stepper current.

Ok, at present you lot have finished the main steps for the initial setup. Now you take to ship the firmware to the lath by clicking on the arrow to the correct.

08-RUMBA-Configuration-h

After successful compiling and transmission of the firmware the board will make a reset and the display should prove the bones screen of the Marlin firmware. The next flick shows the screen in example of the total graphic lcd.

slider-3

Now you finished the basic setup and everything should work now. In any case you have to fine melody your printer by calibrating all axis and the extruder!

Anet A8 Reprap Arduino Mega Pololu Frim Firmware Update

You May Also Like