Eryone Thinker SE Upgrade Modifications
Encouraged by Gary ‘Thinker’ Hall from CaveWorkz I joined the Eryone family just before Christmas. Initially I had been looked at a Prusa i3 printer retailing over £500 but a Black Friday deal with suggestions of possible upgrades made the Thinker SE2 just far too tempting as a cheaper entry level option.
One of the things I was keen to print from the start was the more exotic PLAs like Wood and Marble. I’m already turning and machining things from wood and in a busy market I thought mixing in some 3D printed decorations might be a good way to stand out.
GH pointed me in the direction of a number of upgrades and modifications that would make the Eryone Thinker SE even more suitable.
E3D V6 HotEnd Mod.
First of we come to Madizmo’s Thinker S Dual Blower Hotend for E3D V6 modification with the addition of a Nozzle X upgrade. It requires a bit of printing before hand so make sure you are ready before dismantling the printed. Although PLA/PLA+ can be used PETA is far better due to its higher temperature characteristics.
What the company says about the V6
Our flagship jack-of-all trades all-metal HotEnd. V6 is suitable for practically any printer, and has the widest array of upgrade options. For everyday printing or exotic circumstances, V6 will deliver the reliability and performance that are E3D’s specialitiesAuthor: Gabe S. (and 3 other contributors)
Assembling the V6 is straight forward and takes a few minutes. The key points for me were getting the threads and subsequent tightness right, applying the appropriate amount of thermal paste (I applied too much and some of my early filament was actually the paste working its way out the system) and getting the cable routing right. You won’t need the fan housing and fan as this is upgraded/swapped for printed ones by Madizmo.
I’m not using the default nozzle but have upgraded to the Genuine E3D Nozzle X for V6 HotEnd Kit 3D Printer (1.75mm, 0.4mm) see also https://e3d-online.com/collections/nozzles/products/v6-nozzles.
The documentation for the V6 Hot End can be found at https://e3d-online.dozuki.com/c/V6 but in addition you will need:
- 2 x Blower Fans e.g. WINSINN 50mm Blower Fan 24V 5015 Hydraulic Bearing 50x15mm Turbine Turbo
- 1 x Hot End Fans e.g. WINSINN 40mm Fan 24V Hydraulic Bearing Brushless 4010 40x10mm
- M3 Screws – https://www.amazon.co.uk/gp/product/B07N2PHF49
- M3 Bolts – https://www.amazon.co.uk/gp/product/B075CKYJF6
- M3 Square Nuts – https://www.amazon.co.uk/gp/product/B07RCFXKGM/
- Some suitable cable and connectors to extend leads back to the motherboard.
BMG Extruder Upgrade
At the same time I swapped to the DotBit Dual Drive Extruder which has two driven cogs either side of the filament rather than a single drive cog and bogie guide pulley. There is some debate as to which way up the drive cog should be attached to the stepper motor. My advice is offer them up in both orientations and see what looks best to you. Full Disclosure – mine is as per the set up video below. There is some useful tips in the file below about tightness.
SKR1.4 Motherboard Upgrade
In order to make all the new mechanics work the OEM Motherboard (good as it was) needed to be exchanged something else. GH pointed me in the direction of the BIGTREETECH SKR V1.4 & SKR V1.4 TURBO board thats been well received by the 3D Printing community.
The following video guides give useful information on the board and how to set it up.
- Bigtreetech SKR V1.4 (Turbo) comprehensive guide
- Chris’s Basement BigTreeTech SKR v1.4 Mainboard Install PT1 PT2
Using the TMC2209s and cutting the DIAG Pin
The image above shows the jumper positions for your TMC2209. If you are using the TMC2209s and are not using the Stall Guard Function you need to cut off the DIAG pin on the driver as shown below. Now, I wasn’t thinking and did this for all six drivers provided. In reality, if using a BLTouch you only need to do this for two (2) of them – the X and Y.
Fitting the Board
You will want to fit your board under or to the side of your printer. Madizmo has a Eryone Thinker S case for SKRv1.3 and PI3 together if you are someone who likes using Octaprint etc. I wanted my Pi separate with a screen as I had plans for a second printer and some cameras so made my own remix of the Madizmo box (link to follow). Both require extra 24v fans.
The following image shows how one solution for connecting the board. The BLTouch will work using the provided ports providing the Firmware configuration is correct. The Part fan must be connected to Fan0 as its the only one which is PWM controlled. Fans 1, 2, 3 are all permanent On and should be used for the motherboard (steppers and general cooling) and for the Hot End. Further information on Fan Control is available via SKR 1.4 – Fan Control. The NeoPixel RGB port is marked in blue – for this you will want the DC Bridge (see below).
One criticism of delta printers is the stability in their yoke especially with upgraded and heavier extruder and hot end mechanisms. GH recommended the RVOLT – Rear Frame Brace – Eryone Thinker modification.
Having completed it the jury is out. It prints ok – I needed to resize all the holes to take M3 bolts. It feels like it should do the job but there is still some flex (whether the type that would impact on a print – who knows) and this might be down to the shear impossibility of getting all the mount bolts and their t-nuts in place and fixed.
If you do decided to go down this route you will need to get some additional M5 bolts in 35-45mm length such as these from GWR Fasteners and some T-Nuts (I rather like these Spring ones from Makers Mate).
One excellent little upgrade suggested by GH was these bearing screw holders. Although installing them alongside the additional bracing they have made everything feel a little tighter.
Word Of Warning
WORD OF WARNING: Because of my bracing, bearing holders and extruder upgrades the max printing height has reduced by 100mm to 300mm.
So there are a few ways you can get firmware for the printer:
- Ask GH nicely for his Bin file – this is definitely the easiest so I didn’t do this.
- Download the BigTreeTech firmware from GITHUB – BIGTREETECH-SKR-V1.3/BTT SKR V1.4/ – this is moderately challenging – so I didn’t do this either.
- Download vanilla firmware from Marlin via Github, configuring and building your own firmware from scratch – this is the hardest approach so its what I did.
Without doubt the way to edit and build Marlin for the SKR1.4 is in Visual Code and there are two videos provided by Teaching Tech that help set up a Marlin Development Environment in Visual Code and get the basic configuration done (see below).
The TL;DR; set up
- Install Visual Code
- From inside Visual Studio Code install the PlatformIO IDE and Marlin AutoBuild Plugins.
- Open your Marlin-2.0.x Firmware folder
- Copy across the configuration.h and configuration_a**.h files from the config.zip/example printer folder.
The following is incomplete and not exhaustive. There may be more to be done. Once I have a working configuration I will upload it here.
There are a number of essential changes that need to be made, numerous optional changes and then just differences between the main Marlin default and Eryone, BigTreeTech branches. Using the Marlin default as a base, I have tried to list all those I am aware of and that I believe affect how the machine behaves. Good suggestion from GH is to use an online diffchecker to compare differences between files. Some of the values are taken from 3dwork.io/complete-guide-skr-v1-4-and-tmc2209.
|CONFIGURATION_H_VERSION||20007||This seems to be the latest version for Marlin 2.0.7.|
|STRING_CONFIG_H_AUTHOR||“Your Text In Quotes”||I found this handy to use as I could index changes to the firmware.|
|SHOW_CUSTOM_BOOTSCREEN||ENABLED||I had a bit of fun making sure this worked as it was erroring to begin and then when I removed it I had a horrid screen during bootup. You basically need to create a _Bootscreen.h file that has an image represented in unsigned chars. The following site can be used to convert images – https://marlinfw.org/tools/u8glib/converter.html|
|SERIAL_PORT||-1||The serial port values are swapped from the default Marlin and Eryone Branches.|
|BAUDRATE||115000||I have seen this set to 250000 but this is what BTT recommend.|
|CUSTOM_MACHINE_NAME||“Your Text In Quotes”||I found this handy to use as I could index changes to the firmware.|
|TEMP_SENSOR_0||5||I got this from the old E3D wiki although its also on their E3D Dozuki.|
|TEMP_SENSOR_BED||13||Taken from the Eryone Branch of Marlin.|
|HEATER_0_MAXTEMP||285||E3D indicate this should be increased from 275 to 285|
|PID SECTION||See below for calculating the PID values and entering them into the Firmware|
|EXTRUDE_MAXLENGTH||600||Taken from the Eryone Branch of Marlin.|
|X_MIN_ENDSTOP_INVERTING||TRUE||Taken from the Eryone Branch of Marlin and confirmed with testing.|
|X_DRIVER_TYPE||TMC2209||Taken from Teaching Tech SKR1.4 You Tube Video|
|ENDSTOP_NOISE_THRESHOLD||2||I had issues with X not always returning to home. Enabling this solved the problem.|
|DEFAULT_AXIS_STEPS_PER_UNIT||80,80,400,411||415 is given in the Bondtech-Creality-CR-10-Installation-Guide-V1.0 and via GH although it might not be correct and requires calibration. 411 was calculated using E-Stop tests.|
|DEFAULT_MAX_FEEDRATE||300, 300, 35, 60||Defaults: Marlin=300, 300, 5, 25; Eryone=300, 300, 35, 25; GH=300,300,5,60|
|DEFAULT_MAX_ACCELERATION||1500, 1500, 1500, 1500||Defaults: Marlin=3000,3000,100,1000; Eryone=1500,1500,150,1500|
|DEFAULT_XJERK||8||Marlin and Eryone Defaults: 10|
|Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN||DISABLED||This needs to be disabled as we are using the dedicated BLTouch Pins and not the old Z Stop Pins.|
|BLTOUCH||ENABLED||There are other values in this section to be configured.|
|NOZZLE_TO_PROBE_OFFSET||-34, -28, Z||X & Y are taken from the design for the HotEnd. Z is by calculation. Mine is -1.220/5|
|POWER_LOSS_RECOVER_SUPER_CAP||??||This is missing from Marlin Default but has values in Eryone.|
|Z_PROBE_LOW_POINT||-3||Marlin Default is -2.|
|Z_MAX_POS||300||The standard value here for the Thinker SE would be 400. Due to bracing and Dual Drive Extruder this has been reduced by 100mm|
|SOFT_ENDSTOPS_MENU_ITEM||ENABLED||Enabling this allows you to turn it off in order to calculate the Z Offset when it occurs below zero.|
|BED LEVELLING||Various.||including GRID_MAX_POINTS_X. I set this to 5 giving 25 points. Anything else is very slow.|
|EEPROM_AUTO_INIT||DISABLED||Should it be enabled?|
|REVERSE_ENCODER_DIRECTION||DISABLED||Disabling this means that turning the knob clockwise increases values.|
|PROBE_OFFSET_WIZARD||DISABLED||This is an option you might want to enable if you have troubles calculating your Z Offset.|
|SHOW_REMAINING_TIME||ENABLED||There are other differences in this section.|
|ADVANCED_PAUSE_FEATURE||ENABLED||This needs to be enabled if you want the Filament Change, Load and Unload Menu.|
|FILAMENT_CHANGE_UNLOAD_FEEDRATE||30||Defaults: Marlin=10; Eryone=30;|
|FILAMENT_CHANGE_UNLOAD_ACCEL||25||Defaults: Marlin=25; Eryone=16;|
|FILAMENT_CHANGE_UNLOAD_LENGTH||450||Defaults: Marlin=100; Eryone=450/26;|
|FILAMENT_CHANGE_FAST_LOAD_FEEDRATE||10||Defaults: Marlin=6; Eryone=10;|
|FILAMENT_CHANGE_FAST_LOAD_ACCEL||25||Defaults: Marlin=10; Eryone=30;|
|FILAMENT_CHANGE_FAST_LOAD_LENGTH||100||Defaults: Marlin=0; Eryone=100;|
|ADVANCED_PAUSE_PURGE_FEEDRATE||5||Defaults: Marlin=3; Eryone=5;|
|ADVANCED_PAUSE_PURGE_LENGTH||100||Defaults: Marlin=50; Eryone=100;|
|FILAMENT_UNLOAD_PURGE_RETRACT||0||Defaults: Marlin=13; Eryone=0;|
|FILAMENT_UNLOAD_PURGE_FEEDRATE||25||Defaults: Marlin=25; Eryone=Missing;|
|PARK_HEAD_ON_PAUSE||Enabled||Defaults: Marlin=Disabled; Eryone=Enabled;|
|FILAMENT_LOAD_UNLOAD_GCODES||Disabled||Defaults: Marlin=Disabled; Eryone=Enabled;|
|FILAMENT_UNLOAD_ALL_EXTRUDERS||Disabled||Defaults: Marlin=Disabled; Eryone=Enabled;|
|X_CURRENT||See Below||See Below|
|CHOPPER_TIMING||CHOPPER_DEFAULT_24V||Its is either CHOPPER_DEFAULT_12V or CHOPPER_DEFAULT_24V. The Eryone TMC config and 3DWork say 24v.|
|MONITOR_DRIVER_STATUS||Enabled||Teaching Tech says this is optional.|
Stepper Motor Currents
This section caused me some head scratching as values given in different places varied. Note: RMS Current = Peak Current x 0.707 or Peak Current = RMS Current x 1.414.
There are two motors listed by Eryone:
- 42HS1411-20B15 @ 1.68 Amps with 50g/cm3 (40mm Long)
- 42HS1411-20B19 @ 1.5 Amps with 45g/cm3 (34mm Long)
However, three different ones are used on the machine itself:
- X: 42HS1411-17D – 40mm Long
- Y: 42HS3417-16D – 40mm Long
- Z: Unknown.
- EO: 42HS3417-16HB – 34mm Long.
I found this helpful analysis on Reddit:
Well, here’s my take on it. Those stepper motors are rated such that for two coils held stationary, each at the rated current (2A), and operating up to the maximum rated ambient temperature (50C), the internal temperature rise over ambient will not exceed 80C and thus not exceed the rated temperature for the specified insulation class (Class B, 130C).
If the steppers were used in an application where they were in continuous motion, such that the current waveform (modulo inductance effects) was a sine wave then it would be reasonable to limit the current such that the RMS value of the current waveform was 2A. In that case the peak current would be 2.8A.
However, in a 3D printer application the steppers may be energized but stationary for an indefinite amount of time and the “two coils operating at” limit should apply. So, the peak current limit should be set to 2A or, equivalently, the RMS limit would be set to 1.4A.
As a general rule of thumb, operate the steppers at 50% to 80% of the stated limit. Be nice to your motors, I guess. So shoot for a peak of 1A to 1.6A or an RMS of 0.7A to 1.1A.Zombie Grot via https://www.reddit.com/r/3Dprinting/comments/hap9t0/tmc2209_stepper_vref/
The following table shows the values I have found, calculated and ended up using as a starting point. You can verify UART coms with M122 provided MONITOR_DRIVER_STATUS and TMC_DEBUG are enabled.
|MARLIN DEFAULT||ERYONE||3DWork||RATED RMS CURRENT(A)||50% RMS (mA)||PEAK CURRENT||OPTED VALUES|
|X_CURRENT||800||1000||850||1.50 (1500 mA)||750||1060.50||MARLIN DEFAULT|
|Z_CURRENT||800||1100||850||1.68 (1680 mA)||840||1187.76||MARLIN DEFAULT|
Work in Progress / To be Done.
- Plug in 5v, Sig, GND (top to Bottom)
- Change configuration.h – Uncomment and set NEOPIXEL_PIN to P1_24
- Teaching Tech LEDs
- Add Neopixel Library
- Move DC-DC Jumper inline with DC Mode Module (If Used)
- Motion: Check Directions, Check Stops, Check Home.
- PID: See Below and based on 3DAddict.
- Set Z Offset using Config>Advanced>Probe Offsets>WIzard and 0.2mm spacer. Ensure Probe and Bed set to base temperature e.g 150 for nozzle and 60 for bed. e.g. -1.35
- Check E-Steps
- Using Pronterface (or similar) and switch on
- M503 – will give current PID values e.g M301 P27.76 I2.69 D71.53
- M303 S215 C10 – Auto tune and 215deg and repeat 10 times. PID does not have to be repeated many times unless the average working filament temperature changes significantly.
- 205: P31.78 I3.12 D81.00;
- 215: P32.56 I3.24 D81.69;
- 225: P34.05 I3.37 D85.89;
- Let test complete – it will take a few minutes and appear to finish more than once!
- Copy down the KP, KI and KD Numbers that appear like the following DEFAULT_Kp XX.xx DEFAULT_Ki XX.xx and DEFAULT_Kd XX.xx
- M301 P31.78 I3.12 D81.00 to upload them to the machine
- M500 to save them
- M503 to confirm they are set
- Or alternatively update firmware configuration.
Notes about Retraction
Filament must be within acceptable diameter tolerance. For 1.75mm this means 1.70mm – 1.80mm and for 3.00mm/2.85mm the filament must be between 2.80mm and 3.05mm
Excessively long retractions will cause issues by dragging soft filament into cold areas. E3D-v6 hotends need less retraction than most hotends. For direct extrusion systems you should use anywhere from 0.5mm-1.0mm, for bowden systems you might want to go up to 2mm. Retraction beyond 2mm is likely to cause issues.https://wiki.e3d-online.com/E3D-v6_Assembly