2017/07/17

IV - Caja de protección para la electrónica de mi Rapman revivida.


Hola a todos.

Diseñé una caja para proteger la nueva electrónica de reemplazo Arduino+Ultimaker. Para otros board como RAMPS, ustedes deben consultar en internet. Un sitio de partida es Thingiverse.

Esta caja es muy sencilla y eficiente. Está elaborada en acrílico transparente de 5mm (corte láser) para que tenga unidad formal con la impresora y permita organizar de manera lógica todos los componentes electrónicos (para que no queden "tirados" en la parte inferior).

Reutilicé los tornillos, tuercas y arandelas que sobraron durante la construcción del kit, como podrán ver, aunque se pueden reemplazar por otros similares. Remítanse al detalle de las fotos.

Los planos (en tamaño real):


Las fotos (la caja es abierta por la parte trasera, van a notar algunas diferencias porque fue un prototipo y los planos ya están corregidos):












Que lo disfruten.

IV - Protective case for the electronics of my relived Rapman


Hello everyone.

I designed a box to protect the new Arduino + Ultimaker replacement electronics. For other boards like RAMPS, you should consult on the internet. A starting point is Thingiverse.

This box is very simple and efficient. It is made of 5mm transparent acrylic (laser cutting) so you have a formal unit with the printer and allow you to organize all the electronic components in a logical way (so they are not "pulled" on the bottom).

I reused screws, nuts and washers left over during the construction of the kit, as you can see, although they can be replaced by similar ones. Refer to the detail of the photos.

The plans (in real size):


The pictures (the box is open at the back, they will notice some differences because it was a prototype and the plans are already corrected):











Enjoy it.

2016/10/17

III - Sincronizar Skeinforge con Repetier Host.



REPETIER HOST

Hola de nuevo.

En esta entrada vamos a ver cómo se realizan de manera muy sencilla los gcode con Repetier, y así obtener:

- Un impresionante visualizador Gcoder, en tiempo real.
- Generación de Gcode a una velocidad 3 veces mayor, muy útil para hacer cambios rápidamente en las estructuras de soporte o en modelos sencillos o complejos.

Obtén el software, para tu sistema operativo:

https://www.repetier.com/download-now

Luego PyPy, complemento que permite acelerar el proceso:


http://pypy.org/download.html

PyPy es compatible con PHYTON 2.7 (si no lo has actualizado previamente):

https://www.python.org/download/releases/2.7

Procedemos a instalar Repetier Host y PyPy. Y ejecutamos Repetier.



(Debemos aclarar que este software también permite controlar el funcionamiento de nuestra impresora a través de una conexión USB, pero por motivos prácticos, sólo vamos a generar, visualizar y manipular el gcode resultante, sin conectar nuestra Rapman al PC).

Configuramos nuestra impresora Rapman (Ctrl+P), definiendo sólo los siguientes parámetros:



Luego, en el menú de la derecha, encontramos los íconos para trabajar con nuestros objetos (en su orden):







Guardar
Añadir
Copiar
Autoposcionamiento
Centrar
Escalar
Rotar
Ver sección de corte
Reflejar

Una vez añadido el objeto, podemos girar o mover la escena, mover el objeto, hacer zoom o definir un punto de vista específico. Con el botón izquierdo y la rueda del mouse podemos interactuar con el objeto y la escena.


























En la pestaña Slicer del menú de la derecha, vamos a configurar Skeinforge y PyPy:





















Vamos a indicar las rutas de los directorios, para que Repetier se sincronice con PyPy y Skeinforge:










Las rutas serían algo así como:


I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\skeinforge.py
I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\skeinforge_plugins\craft.py
I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\profiles

I:\3D Printer\3D Printer\pypy-5.1.1-win32\pypy.exe

Donde I: es la unidad en la que tengas instalado el software y el resto de las rutas, tal como tú la tengas en tu PC.

Y con el botón CONFIGURAR se abre el front-end de Skeinforge, para que hagas los cambios que requieras para la creación de los códigos.









Presionamos el botón SLICE WITH SKEINFORGE y se ejecuta el proceso de generación de código para el objeto que importamos.

Se genera el código y lo podemos visualizar y manipular en 3D:





















Y podemos definir si vemos todas las capas o sólo un rango de capas:
























Ahora, vamos a guardar el código resultante. Abrimos la pestaña EDIT GCODE y guardamos el código:





















Y luego miremos las líneas del principio y del final del gcode









































Las vamos a reemplazar para que nuestra impresión sea limpia y sin tropiezos, y tengamos una experiencia similar a nuestra Rapman original.

Abre el gcode en el Bloc de Notas o en otro editor de texto básico (Notepad++ por ejemplo).

Las líneas iniciales las podemos reemplazar con las siguientes (para PLA):

; Generado con Skeinforge 041 - Repetier.
; Principio del gcode con precalentamiento de la extrusora y filamento extruído 180 mm.
G28 ; posición home
G90 ; posición absoluta
M82 ; establecer extrusora en modo absoluto
M106 S255 ; encender ventilador
G1 Z10.0 F3000 ; bajar la plataforma 10 mm
G1 Z3.0 X260.0 Y8.0 ; enviar extrusora al punto de control
M109 T0 S195 ; precalentar a 195 ºC
G1 X260.0 Y8.0 E0 ; filamento extruído en cero
G1 F120 E180 ; extruir 180 mm
G1 X130.0 Y100.0 Z10.0 F3000 ; enviar extrusora al punto de control
G92 E0 ; reseteo extrusora
M109 T0 S195 ; precalentar a 195 ºC
;

Y las finales, así:

; Final del gcode
G91 ; posición relativa
G1 Z10.0 F3000 ; bajar la plataforma 10 mm, después de la última capa
T0
G1 E-1 ; reducir presión del filamento
M107 ; apagar ventilador
M104 T0 S0 ; apagar termistor - baja la temperatura
G90 ; posición absoluta

---------

Guarda el gcode, y listo.
A disfrutar de tu Rapman!

---------


III - Sinchronize Skeinforge with Repetier Host.



REPETIER HOST

Hello again.

In this post we will see how they perform very easily the gcode with Repetier Host, and so get:

- 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.

Get the software, for your operating system:

https://www.repetier.com/download-now

Then PyPy, complement speeding up the process:


http://pypy.org/download.html

PyPy supports Python 2.7 (if you have not previously updated):

https://www.python.org/download/releases/2.7

Proceed to install Repetier Host and Pypy. And run Repetier.



(We should clarify that this software also allows you to control the operation of your printer, but for practical reasons, only going to generate, visualize and manipulate the resulting gcode, without connecting our Rapman to the PC).

We configure our Rapman printer (Ctrl+P), definining only the following parameters:



Then in the menu on the right, we found icons to work with our objects (in that order):







Save
Add
Copy
Autopositioning
Center
Scale
Rotate
View cross section
Mirror

Once you add the object, you can rotate or move the scene, move the object, zoom or define a specific point of view. With the left button and the mouse wheel we can interact with the object and the scene.



























On the menu tab Slicer, on the right, let's set Skeinforge and PyPy:




















We will indicate directory paths, to synchronize Repetier with PyPy and Skeinforge:










The routes would be something like:


I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\skeinforge.py
I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\skeinforge_plugins\craft.py
I:\3D Printer\3D Printer\Skeinforge-0041\skeinforge_application\profiles

I:\3D Printer\3D Printer\pypy-5.1.1-win32\pypy.exe

Where I: is the drive where you have installed the software and the other routes, such as you have on your PC.

And with the CONFIGURE button opens the front end of Skeinforge, so you make the changes you require for creating codes:









Pressed the button SLICE WITH SKEINFORGE and run the code generation process for the object you import.

The code is generated and we can visualize and manipulate in 3D:





















And if we can define all layers or only a range of layers:
























Now, let's save the resulting code. Open the tab EDIT GCODE and save the code.





















And then look at the lines of the beginning and end of gcode. 









































The will replace for our print, to be clean and smooth, and we have a similar experience to our original Rapman.

Open the gcode in the Notepad or other basic text editor (v.g. Notepad++).

The initial lines can be replaced with the following (for PLA):

; Generated with Skeinforge 041 - Repetier.
; Start gcode with preheated hot end and extrude filament 180mm.
G28 ; homing
G90 ; absolute positioning
M82 ; set extruder to absolute mode
M107 ; Turn off fan
G1 Z10.0 F3000 ; move the platform down 10mm
G1 Z3.0 X260.0 Y8.0 ; send extruder to checkpoint
M109 T0 S195 ; preheat to 195°C
G1 X260.0 Y8.0 E0 ; zero the extruded length
G1 F120 E180 ; extrude 180 mm of feed stock
G1 X130.0 Y100.0 Z10.0 F3000 ; send extruder to checkpoint
G92 E0 ; reset extruder
M109 T0 S195 ; preheat to 195°C
;

And the final, as follows:

; Default end code
G91 ; Relative positioning
G1 Z10.0 F3000 ; lower the platform 10 mm, after the last layer
T0
G1 E-1 ; Reduce filament pressure
M107 ; turn off fan
M104 T0 S0 ; thermistor off - low temperature
G90 ; Absolute positioning

---------

Save the gcode, and ready.
To enjoy your Rapman!

---------


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!