Wednesday, March 18, 2020

Connecting MRR ESPA to Labists Mini 3D printer (aka Easythreed X1)

After taking a look at the X1's control board, I managed to find some time to hook it up to a MRR ESPA.

I used a marker to make a mark on each connector as I disconnected them so that I would not mess them up. It was then just a case of transferring each connector to the right one on the MRR ESPA. One note, though: the endstop connectors were oriented differently, so I had to do a bit of pin swapping for each endstop.





My 25x25x7mm fan has yet to arrive, so I could not connect the part cooling fan (the set does not come with a part cooling fan, but you can buy your own and print the fan shroud).
I connected the original board to my computer, and ran M503 to get the following:
Marlin 1.1.0-RC3
Last Updated: 2015-12-01 12:00 | Author: (none, default config)
Compiled: Jan 12 2020
Free Memory: 12015  PlannerBufferBytes: 1232
Hardcoded Default Settings Loaded
Steps per unit:
 M92 X467.00 Y467.00 Z1160.00 E1040.00
Maximum feedrates (mm/s):
 M203 X40.00 Y40.00 Z10.00 E80.00
Maximum Acceleration (mm/s2):
 M201 X1000 Y1000 Z200 E1000
Accelerations: P=printing, R=retract and T=travel
 M204 P300.00 R300.00 T300.00
Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
 M205 S0.00 T0.00 B20000 X2.00 Z0.40 E1.00
Home offset (mm):
 M206 X0.00 Y0.00 Z0.00
PID settings:
 M301 P22.20 I1.08 D114.00 C100.00 L20
Filament settings: Disabled
 M200 D3.00
 M200 D0


Using these settings, I edited Configuration.h, then compiled Marlin 2.0, and uploaded the firmware to the MRR ESPA. Then, I tested the endstops to check their logic. Turned out I needed to invert the logic.

#define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING true

The stepper logic works if set as:
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true


I also lowered the homing speed, since it requires a lot of steps per mm, and I was having trouble with homing at 50mm/s.
#define HOMING_FEEDRATE_XY (25*60)
#define HOMING_FEEDRATE_Z  (4*60)


Loading filament was quite easy, just push in filament into the PTFE tube as far as it will go, then use the extruder to load the filament. As I am using the ESP3D webUI, I just had to click on the "Extrude" button on the webUI.

I used a multimeter to check the Vref used on the original board, but I was getting readings of 1.4V to 1.5V. On the Chinese A4988 stepper driver boards I am using, that would be a crazy amount of current, so I set Vref on my A4988 stepper drivers to 0.5V instead. This worked without any problems. (Update March 22, 2020: The original board uses 0.2 ohm resistors for Rsense, which explains the higher Vref. My Chinese A4988 stepper driver boards use 0.1 ohm for Rsense, so I switched to using 0.7V for Vref on my stepper drivers.)

I was able to home the axes, and move around using the webUI. So far so good. I tried heating up the hotend too, no issues with that. I was at first quite worried about the hotend wiring, which were really thin. But using a clamp meter, the current draw when heating seemed to be around 0.5A. Not a lot, and definitely not going to burn the wires.

Next would be to level the bed and test print something.

Get the MRR ESPA board here.

MRR ESPA and MRR ESPE related social media:
Facebook page
Facebook group for users

Affiliate link to Labists mini 3D printer on Amazon.com

2 comments:

Teck said...

I tried to do a test print, but I kept having random shifts. It seems it is randomly losing steps along both X and Y axes. I don't know if it has to do with the hardware (overheating motors, maybe?) or if it is firmware-related (too many steps? but I was printing at low speeds, so it shouldn't be a problem). I am going to try connecting back the original board and see if it prints, and see if it is a hardware issue.

Teck said...

I think I have found the cause of the random shifts. It seems that the ESP32's 3.3V signal to the DIR pin of the A4988 driver may not be triggering properly when used which this printer. Somehow, when A4988 motors are connected to NEMA17 stepper motors, this phenomenon does not occur. But when used with the 24BYJ28-12V stepper motors, sometimes the change in direction will not register.

I tested the printer with a MRR ESPE board, which uses the I2S stepper stream to control the stepper drivers via 74HC595 shift registers. As these shift registers run on 5V, there was no issue with the DIR pin not being triggered properly.