Firmware upgrade from version 1.x to 2.x. User experience.
Back in October I volunteered to participate in Repetier firmware version 2 testing and the last weekend I finally started upgrading my printer’s firmware from dev. version 1 to version 2. In the following series of posts I will share my experience. Hopefully, this will save other users time and help developers to understand end-user’s experience and how to improve it.
I consider myself being advanced user. I have years of software developing experience, worked in the field of designing electronic boards and PCBs. I bought my first 3d printer almost 4 years ago, which I run on Marlin, Clipper and later on 0.9x and 1.x versions of Repetier firmware. If you are new to any of these areas, your experience may be different, but the good thing is – Repetier developers and other members of these forums are extremely helpful and I never had a case when my question here left unanswered. So, if you got a question – just post it here.
Now about my test environment. After countless upgrades done to my first 3d-printer Velleman Vertex K8400, I reached the point when I was ready to build my own 3d printer from scratch. I decided to go big with IDEX (Independent Dual EXtrusion) design that has 2 print-heads moving independently along X-axis. I may publish the photos later, once the printer is complete, but for now here are the specs of the printer that I am upgrading:
Specifications:
Kinematics: Cartesian
Mainboard: Ultratronics Pro 1.0 with 32bit CPU
Number of steppers: 7 (2-X, 1-Y, 2-Z, 2-Ext. Z-motors are
working in sync, but each has own stepper driver)
Number of steppers drivers: 7 (4 - TMC2100 - E0, E1,
E2(Z2), Z, 3 - DRV8825 - X, Y, E3(A) ) . Will be upgraded later.
Number of hot-ends: 2 (e3d-v6)
Number of fans: 4 (2 - filament, 2 - e3d-s)
Additional fans: 2 (1- mainboard fan directly connected to
+12V, 1- Raspberry PI CPU fan PWM-controlled by RPI via custom extension PCB)
Print bed: 40x40cm heated by 110V AC. Moves along Z with
Z-Max at the bottom.
Print surface: 3mm borosilicate glass
Network access: via Raspberry PI 3B+ (RPI) and Octoprint
Solid State Relays (SSR): 2 (one for mainboard power supply,
controlled by RPI, another for heated bed). Control voltage 3V-32V DC.
End-stops: 4 - Optical, custom PCB based, use
ITR9606-F sensor (schematically similar to Vertex K8400 end-stops)
Z-probe: 1 - Optical with a pin touching the bed (my own
design), the sensor is the same as in end-stops. Attached to the right side of
left printhead. Activated/deactivated by rear-earth magnets when printhead
moves to specific X,Y coordinates.
Servos: None
Thermocouples: None
Filament jam sensors: None
Filament sensors: None
LCD: None (to be added later)
Mainboard power supply: 12V
Additional power supplies: 2 (RPI power supply and 5V DC
supply for controlling main power supply’s SSR
Mainboard connections (plug – connects to):
XMOT – X-motor (Left print-head)
YMOT – Y-motor
ZMOT – Z1-motor
ZMOT1 – Not used
E0MOT – Left Extruder-motor
E1MOT – Right Extruder-motor
E2MOT – Z2-motor
E3MOT – A-Motor (Right print-head)
E0 – Left print-head heater
E1 – Right print-head heater
E2 – Left print-head e3d fan
E3 – Right print-head e3d fan
HB – Heat bed SSR
HBIN – 12V from main power supply
Fan1 - Left print-head filament fan
Fan2 - Right print-head filament fan
T0 - Left print-head e3d thermistor
T1 – Heated bed thermistor
T2 - Right print-head e3d thermistor
T3 – Not used
T4 – Not used
X- – X-stop at the left end of X-axis activated by left
print-head
X+ – X-stop at the right end of X-axis activated by right
print-head
Y- – Not used
Y+ – Y-stop at the rear end of the printer activated by
X1/X2 gantry
Z- – Z-probe sensor
Z+ – Connected to one of 3 Z-max sensors installed at
heights 150mm, 300mm and 450mm. Sensor/height selection is done by electronic
switch on custom PCB controlled by RPI. For these tests Zmax=150mm was used.
USBP (Programming port) – Connected to RPI, or to PC when
firmware update is required.
USB (Native port) – Not used (never worked by some reason)
Ethernet port – Not used
TC1-TC4 - Not used
To be continued…
Comments
The values of XAXIS_STEPS_PER_MM and AAXIS_STEPS_PER_MM are the same as in version 1.x
1.40 Called it a day
2.3 For dual Z-axis motor support, following advice from @Repetier replaced Z-motor section with this
2.4 Had to reduce MAX_FEEDRATE_Z from 7 that I used in version 1 to 5. Otherwise the motors would start turning and then stuck making that strange noise I experienced earlier.
2.8 Connected to Octoprint. Tested homing, movements, heaters, fan and tool change. Homing and all moves worked correctly. When heating up the nozzle to 210 degrees the temperature first went up to 217 then down to 207 and finally stabilized at 210. The second nozzle did the same. This is new behavior, I don't recall seeing it in older versions. Could be configurable. Will look at this later. When switching to Tool 1, right printhead moves to X=0 and hits the left printhead that is in parked position. Will need to fine tune X axes related settings. Also, when switching the tools, printhead move extremely fast. Hopefully there is a way to reduce this speed.
To be continued
3.2 Continued troubleshooting not working z-probe sensor. Updated Configuration_io.h. Reverted
To be continued