FINAL STEPS
Hello everyone.
I describe the final steps to put in operation the printer.
I describe the final steps to put in operation the printer.
FIRMWARE
As the electronics that I chose was designed as a replacement for Ultimaker 1 printer, I should be consistent and inquired about the firmware used and how to adapt your settings to the technical characteristics of Rapman 3.1 (which are a little different, but not much, really).
Marlin enables seamless compatibility between the newly installed electronic and the original printer.
Get the MARLIN firmware here (right click, save link as ...):
http://www.salgadodigital.com/Rapman_revival_files/Marlin-Stable.zip
Unzip the folder on your computer.
This is the original version of the firmware. You must be careful, because there are several "flavors" of Marlin on the Internet and may be incompatible with our printer.
ARDUINO IDE
Then you should get Arduino IDE, which allows:
- Communicate with the Arduino board via the USB port.
- Edit the Marlin configuration files, to program the Arduino microcontroller.
- Compiling and upload the firmware released on the Arduino board, to enable all mechanical, electrical and electronic components of the printer.
The Arduino IDE 0023 version works perfect in our situation. Download here (right click, save link as ...):
www.salgadodigital.com/Rapman_revival_files/arduino-0023.zip
You could install a newer version (v.g. 1.6.4), but you'll find many errors when trying to compile Marlin. And the goal is to make all the process simple and efficient, without complications.
Install Arduino IDE and run the application.
Select the Arduino Mega 2560 board (Tools / Board / Arduino Mega 2560):
CONFIGURATION
For a detailed explanation of the standard programation of the microcontroller for a 3D printer, please consult Solid Utopia website::
http://solidutopia.com/marlin-firmware-user-guide-basic
For our particular case, just download these three files, edited for optimum performance of the printer Rapman 3.1, and overwrite the three in the directory of Marlin (right click, save link as ...):
Configuration.h
http://www.salgadodigital.com/Rapman_revival_files/Configuration.h
Configuration_adv.h
http://www.salgadodigital.com/Rapman_revival_files/Configuration_adv.h
Pins.h
http://www.salgadodigital.com/Rapman_revival_files/pins.h
Open Configuration.h
If you edit Marlin, because you have a different configuration from the original that came with your Rapman, We will describe only the lines of code that change to the functioning of our printer (a single extruder).
General settings
Library for funcionality of LCD
#include <U8glib.h>
Set the communication speed (in bauds)
#define BAUDRATE 250000
Select the motherboard
#define MOTHERBOARD BOARD_ULTIMAKER
Temperature sensor
#define TEMP_SENSOR_0 2
The thermistor 2 corresponds to the original thermistor - 200k - ATC Semitec 204GT-2 (4.7k pullup).
On the other sensors, the second number - 0 - indicates it is not enabled.
Minimum temperature
#define HEATER_0_MINTEMP 5
Temperature in ºC
Maximum temperature
#define HEATER_0_MAXTEMP 240
Temperature in ºC, for ABS
Mechanical settings
End Stops
Pull-up resistances
#ifndef ENDSTOPPULLUPS
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif
#ifdef ENDSTOPPULLUPS
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif
Invert endswitch logic
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = true;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = false;
const bool Z_MAX_ENDSTOP_INVERTING = true;
Disable axis
#define DISABLE_INACTIVE_EXTRUDER false
Invert stepper motor direction
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#define INVERT_E2_DIR true
Set home direction
#define X_HOME_DIR -1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1
Does not allow the printer to go beyond the end stops limits
#define min_software_endstops true
#define max_software_endstops true
Printer area
#define X_MAX_POS 260
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 190
#define Z_MIN_POS 0
Bed Auto Leveling
//#define Z_PROBE_REPEATABILITY_TEST
Movement settings
Homing feed rate
#define HOMING_FEEDRATE {50*40, 50*40, 4*40, 0}
Axis steps per unit
#define DEFAULT_AXIS_STEPS_PER_UNIT {87.575,87.575,1280,1629}
Data obtained from Bits from Bytes technical documents, still hanging on the network.
Acceleration
#define DEFAULT_MAX_ACCELERATION {900,900,100,1000}
#define DEFAULT_ACCELERATION 1000
#define DEFAULT_RETRACT_ACCELERATION 100
#define DEFAULT_XYJERK 10.0
Preheat Constants
#define PLA_PREHEAT_HOTEND_TEMP 185
#define PLA_PREHEAT_HPB_TEMP 0
LCD and SD support
All these items are enabled, in order that there works the LCD Controller Module.
#define ULTRA_LCD
#define SDSUPPORT
#define ENCODER_PULSES_PER_STEP 4
#define ENCODER_STEPS_PER_MENU_ITEM 1
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
#define DOGLCD
#define U8GLIB_ST7920
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#define ENCODER_PULSES_PER_STEP 4
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
If you edit the file Configuration.h, in Arduino IDE, save the modification.
Now we perform the verification and compilation.
Verify the code
If everything is fine, Arduino should say “Done uploading” otherwise you will get one or more error messages. If this happens, there is usually a mention about the line of the error. Check your code for a comments error //, dots or other special characters that may have been mistyped.
Once it is compiled properly you can connect the Arduino board to the computer with the USB cable.
NOTE: notes that the 18V power supply (preferably this voltage to achieve and sustain the working temperature) must only be connected to the board Ultimaker.
Select the proper port (Tools menu / Serial Port / <port number>).
Upload the compiled code to the Arduino board.
Now your printer is ready to function. Rapman revived!
LCD CONTROLLER MODULE
Remember the original LCD of Rapman 3.1 printer?
Marlin synchronizes an LCD in the same way and give autonomy to the printer through the controller module:
- Temperature control of each component
- Preheat the hot end
- Cooldown
- Coordinates of printing, in values X Y Z
- Movement distance of the extrusion head in decimals
- Sending the extrusion head to HOME
- Control of speed, acceleration, retraction, steps of the motors, etc.
- Select the file to print -SD card-
- Control file execution
- Pause printing or termination
- And much more
If you are correct electrical connections made in the first part of this tutorial and firmware you are installed correctly, and you will see the LCD:
TOP
Left
Extruder #1 / Hot end working temperature and current temperature (thermistor)
Here appear all extruder you have configured
Right
Heated build plate / operating temperature and current temperature (thermocouple)
Fan
CENTER
Extruder coordinates in the cartesian plane printer
BOTTON
Left
SD card
Right
Execution rate of print file (Gcode)
Last line
Displays printer status messages and other operation messages on the fly.
ROTARY ENCODER
Additionally, all actions such as calibration, axis movements and other functions can be made simply by using the rotary encoder (potentiometer).
It pressing, access to all printer functions is obtained:
PREPARE
Disable steppers
Auto home
Set home offset
Preheat ABS or PLA -->sets a reference value in ºC and verifies the physical heating hot end and the temperature rise in the LCD.
Move axis --> press the rotary encoder and select the required movement in mm. Move the motors, rotating it to verify motor connections and functionality of the end stops as well as the actual dimensions of displacement in mm.
and much more
CONTROL
To switch on the fly default settings in Marlin.
PRINT FROM SD
Total autonomy to print our 3D designs without PC connection.
Obviously, with this controller module are some differences in operation, but is closest to the operation experience we were used in our Rapman 3.1
This way our printer would stay with the replacement electronics Ultimaker + Arduino:
It can improve some performance characteristics, better knowing the programming that allows Marlin. This is a new field for me, and there will be some bugs that can be solved with the correct parameters. We are reliving a printer that was developed with a very different firmware.
We receive suggestions and improvements!
As we can see, after assembly, the components are "dumped" at the bottom of the printer.
We could make a box containing the board and the LCD controller module, printed by ourselves in PLA, or pieces made with transparent acrylic (similar to the original printer).
But that's another story, which we will discuss in this blog another day.
------------
SOFTWARE
We can continue using the slicer of our choice to generate the Gcode, in my case, Skeinforge 0041 (with modifications in some parameters in Dimension module, which explain further down) without loss of quality or printing performance of our designs 3D . The user experience is the same we had, because this electronic is perfectly compatible with your printer:
If you already work with Skeinforge, you should replace the Dimension module. You can download it here (right click, save link as ...):
http://www.salgadodigital.com/Rapman_revival_files/dimension.py
This version fixes a couple issues that can cause small pauses in your prints. DO NOT DO THIS if you're using skeinforge 43 or later - those already contains these fixes.
Navigate to the craft_plugins folder within your skeinforge directory: skeinforge_application/skeinforge_plugins/craft_plugins.
Rename the dimension.py in there to dimension_backup.py (or something similar, in case you want to go back to the original version).
Copy and paste the downloaded dimension.py into this folder.
Start Skeinforge.
In the module Dimension / Activate Dimension
and Activate Absolute Extrusion Distance
Filament diameter: 3.0
Filament Packing Density: 0.97 0.97 (for PLA)
And ready.
The resulting Gcode have some differences with Gcode we were used to, because Marlin just run Absolute Extrusion Distance and other operations are coded differently:
There is a phenomenal way to synchronize Skeinforge with control software Repetier from the PC:
- Have an awesome Gcode viewer, in real time.
- Generate Gcode at a rate 3 times higher, very useful for making quick Changes in the supporting structures or not to invest much time in complex models.
That's our next topic in this blog.
Good luck!