2015/08/17

II - How I relived my Rapman with standard electronics (Firmware/Software).


FINAL STEPS

Hello everyone.

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 the file Marlin.ino Marlin-Stable / Marlin )

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


Send the firmware to the 3D Printer

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!

14 comments:

  1. Coudl you please repair configuration.h file. Becuase when im trying to download it "Forbidden" appears. Please for fast reply it very important . Thanks -Assaltpl

    ReplyDelete
  2. Give me your e-mail, I'll send it to you.

    ReplyDelete
    Replies
    1. Hy trying to fix my rapman as it had the same issue. I'm also trying to download the configuration files but get the same forbidden error. Can you also email the files to me. Thanks

      Delete
  3. Hi, I am currently trying to fix my old rapman 3.2. I currently have a broken LCD screen, but was wondering if their are any compatible parts on the market. Thanks!

    ReplyDelete
  4. Hola Alvaro, tengo una Rapman 3.2 a la que se le daño la placa. buscando posibles soluciones en la red encontre este blog. podre contactarme por algun medio para hacerte algunas consultas? te escribo desde argentina. Muchas gracias por compartir tan valiosa informacion.

    ReplyDelete
  5. Hi, Steve. Welcome to the group.
    The links are functional. I already reviewed them.
    However, give me your email, I will send them to you.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Posted my email in a reply and I'm assuming your have notifications turned on so you got the post in your email. I then deleted the reply as didn't really want my email listed on a public forum for all time. Thanks again for your assistance.

      Delete
  6. Hi, what you have managed to do with your rapman is amazing.
    I have an old BFB-3000. It has been working fine for the past 6years. But now suddenly it is stuck on bootloader mode. I have tried almost everything with firmware but no luck so far. Can you help. Can you please give me your contact so I may share the details. I am a hobbyist so I have no knowledge of electronics or programming. Thanks.

    ReplyDelete
  7. Hi, Saif. Of course, salgado.digital@gmail.com. Best regards.

    ReplyDelete
  8. Awesome. I am just writing you a detailed mail. Thank you so much for responding. :)

    ReplyDelete
  9. Hi there, I'm trying to revive an old Rapman for my school, would you be able to send me the files?

    ReplyDelete