Closed JohnTheCoolingFan closed 1 month ago
Hi, I have been thinking that it would make sense to have a central repo to manage the different device firmwares. I need to think about the best way to organise this to keep maintenace low, but happy to provide a branch you can PR to in the mean time? I don't have time at the moment to do any development work.
Yeah, both of thsoe are great ideas. I'll do what I can in the meantime. I was planning to mod my printer anyways. Thanks for the response!
https://github.com/schmttc/EasyThreeD-K7-STM32/tree/ET4000PLUS-K9
I've put a few pointers in the README to get started, check the master branch READMA for additional details, and the Additional-Files branch for board schematics
Finally got to have a look. From what I can see, controls are mostly the same but I think the 4 front leveling buttons need to be added. I'll check the pins later. Also will take a better look at what STM32 model is installed in my printer.
@JohnTheCoolingFan have you/can you email Easythreed support and ask for a copy of the source code for your printer? They were a bit hesitant for me but it would make the development work a lot easier.
That's an interesting suggestion. Probably worth a try. I'm a bit concerned whether this printer model is even real as it's not displayed at easythreed website.
Which Firmware can I use for testing on a K9?
Are you asking for a compiled file @Ajimaru? I can compile it if you want.
Yes @JohnTheCoolingFan , I have an K9, upgraded with an heatbed and would like to test your firmware.
Here you go, uploaded it to my web server: https://jtcf.ru/EasyThreed-K9-firmware/mksLite-c4def742.bin
Here you go, uploaded it to my web server: https://jtcf.ru/EasyThreed-K9-firmware/mksLite-c4def742.bin
I have installed this firmware via the sd-card.
Firmware Name: Marlin 2.1.2.1 (Mar 7 2024 22:21:12)
Extruder Count: 1
Machine Type: 3D Printer
Protocol Version: 1.0
Source Code Url: github.com/MarlinFirmware/Marlin
Uuid: cede2a2f-41a2-4748-9b12-c55c62f367ff
Good news, headbet is working. Bad news, the four bed leveling buttons and the home button on the printer does not work anymore. COntroling via USB does not work either. In addition all theese settings are on zero.
[Steps]
[Feedrate]
[Acceleration]
[Offsets]
[PID]
[Material]
[Linear Advance]
[Advanced]
That's weird. Can you open the printer and read a model of the board to make sure it is ET4000+?
Photos of the board and the extension board on the place of the wifi module would be nice for finding the culprit too.
Yes the board is an ET4000+ , here are some pictures.
I have set the missing values according to EasyThreed K9 Marlin factory firmware configuration
M503 shows this, after powercylce of the printer, the values are back to zero.
echo:; Linear Units:
echo: G21 ; (mm)
echo:; Temperature Units:
echo: M149 C ; Units in Celsius
echo:; Filament settings (Disabled):
echo: M200 S0 D0.00
echo:; Steps per unit:
echo: M92 X606.00 Y606.00 Z600.00 E1040.00
echo:; Max feedrates (units/s):
echo: M203 X40.00 Y40.00 Z10.00 E70.00
echo:; Max Acceleration (units/s2):
echo: M201 X100.00 Y100.00 Z50.00 E100.00
echo:; Acceleration (units/s2) (P<print-accel> R<retract-accel> T<travel-accel>):
echo: M204 P100.00 R100.00 T100.00
echo:; Advanced (B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> J<junc_dev>):
echo: M205 B0.00 S0.00 T0.00 J0.00
echo:; Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echo:; Hotend PID:
echo: M301 P22.20 I1.08 D114.00
echo:; Linear Advance:
echo: M900 K0.00
echo:; Stepper motor currents:
echo: M907 X0 Z0 E0
echo:; Backlash compensation:
echo: M425 F0.00 S0.00 X0.00 Y0.00 Z0.00
Still only nozzle and bed heating works, all functions related to motors are dead. Do you have the stock firmware?
Yes, I have the stock firmware which I got from the manufacturer. I also uploaded it to my webserver: http://jtcf.ru/EasyThreed-K9-firmware/EasyThreed-K9-factory-firmware.bin
Your daughter board for the front levelling buttons looks different. Can you please use a multimeter to map the contacts on the daughter board on the front to the contacts on the board in the wifi module slot?
Yes, I have the stock firmware which I got from the manufacturer. I also uploaded it to my webserver: http://jtcf.ru/EasyThreed-K9-firmware/EasyThreed-K9-factory-firmware.bin
The Printer is working again with the factory firmware!
Your daughter board for the front levelling buttons looks different. Can you please use a multimeter to map the contacts on the daughter board on the front to the contacts on the board in the wifi module slot?
Here are the mapped contact:
Pin U3 | Pin U4 |
---|---|
1 | 1 |
2 | N.C. |
3 | N.C. |
4 | 3 |
5 | 4 |
6 | N. C. |
7 | 5 |
8 | 6 |
9 | 2 |
10 | N. C. |
11 | N. C. |
12 | N. C. |
13 | N. C. |
14 | N. C. |
15 | N. C. |
16 | N. C. |
Hmm, the buttons are mapped the same way. I don't know what the cause of the issue is and I'm out of ideas, sorry
Hmm, the buttons are mapped the same way. I don't know what the cause of the issue is and I'm out of ideas, sorry
I may have to copy the lite_cfg.txt also on the SD-Card?
I don't know, my firmware worked without issues. Sorry, but I can't help much without actual hardware that has the issue to experiment with.
@Ajimaru I've compiled the code from the K9 branch here and the file size is different to the file John uploaded (134KB vs 118KB) Can you try this one? (remove the .txt when you put it on the SD card) mksLite.bin.txt
lite_cfg.txt doesn't do anything in this version of the firmware.
@Ajimaru I've compiled the code from the K9 branch here and the file size is different to the file John uploaded (134KB vs 118KB) Can you try this one? (remove the .txt when you put it on the SD card) mksLite.bin.txt
lite_cfg.txt doesn't do anything in this version of the firmware.
@schmttc with your compiled bin file the leveling buttons on the K9 are working. To make some things clear, I use Octoprint to control the printer. With the factory firmware Octoprint can control all functions of the K9. But with your compiled Marlin Firmware only heating the Nozzle and the Bed is working. Moving the X, Y & Z axis does not work.
I would love to the the K9 fully functional with Marlin to make use of the heat bed.
@schmttc with your compiled bin file the leveling buttons on the K9 are working. To make some things clear, I use Octoprint to control the printer. With the factory firmware Octoprint can control all functions of the K9. But with your compiled Marlin Firmware only heating the Nozzle and the Bed is working. Moving the X, Y & Z axis does not work.
I would love to the the K9 fully functional with Marlin to make use of the heat bed.
If the levelling buttons are working, then the motion steppers are configured OK. I wonder if there is an issue between Octoprint and some setting in the firmware.
@Ajimaru
@schmttc with your compiled bin file the leveling buttons on the K9 are working. To make some things clear, I use Octoprint to control the printer. With the factory firmware Octoprint can control all functions of the K9. But with your compiled Marlin Firmware only heating the Nozzle and the Bed is working. Moving the X, Y & Z axis does not work. I would love to the the K9 fully functional with Marlin to make use of the heat bed.
If the levelling buttons are working, then the motion steppers are configured OK. I wonder if there is an issue between Octoprint and some setting in the firmware.
@Ajimaru
1. "Moving the X, Y & Z axis does not work." is this when manually controlling motion with the Octoprint GUI? 2. Does motion work when running a print job from gcode?
@schmttc I have found the rootcause, after update the firmware a file named EEPROM.DAT was created on the SD Card. To use the Marlin firmware an SD Card with this file on it need to inserted.
@schmttc I have found the rootcause, after update the firmware a file named EEPROM.DAT was created on the SD Card. To use the Marlin firmware an SD Card with this file on it need to inserted.
Thanks for your persistence. I have an outstanding action to implement EEPROM correctly #5
Well I should have a closer look to the closed issues next time. Besides the EEPROM everything is working as expected, thanks for the work.
@Ajimaru I have enabled the onboard EEPROM and uploaded the new binary to the K9 branch https://github.com/schmttc/EasyThreeD-K7-STM32/commit/9338b4863de90db6eae2fcedd507d36d76772c6b, if you try it please let me know the results
@Ajimaru I have enabled the onboard EEPROM and uploaded the new binary to the K9 branch 9338b48, if you try it please let me know the results
Just wanted to let you know that the firmware works with the buttons just fine, but it has some quirks. For example, Z axis homing takes way too long and grinds the motor significantly more than stock firmware. Once I figure out all the issues I will let you know.
@Ajimaru I have enabled the onboard EEPROM and uploaded the new binary to the K9 branch 9338b48, if you try it please let me know the results
I can confirm that this firmware is working now with out the EEPROM.DAT file spresent on the SD-Card. I also noticed the grinding noise when the Z-Motor has reached the physical endstop. This behaviour is not present in the stock firmware.
As a request can you please add Host Action Commands ?
I also noticed the grinding noise when the Z-Motor has reached the physical endstop.
I have noticed something similar, which is that it twitches when reaches the physical end stop, trying to step further and I think skipping steps/sequences of steps because of that. The original firmware might have had some mechanism to detect when a motor is not moving the axis any further, or they just drive it differently so that it reaches the end smoothly.
Speaking of motors: I have noticed that my motors are heating up a lot even at idle! I didn't test with the stock firmware, though. The screw that holds the cam in place is very hot, as is the bracket that holds down the motor. Is it a common thing in 3d printing? Should I be worried about damage to motors or parts of the printer?
Ah, and another note, regarding the main button behavior. Holding it down when printing is in progress doesn't stop the print immediately, but probably stops the queue from filling up, a number of operations sill still execute. The sock firmware stops the print immediately.
Also, after the print is finished, the button is still flashing like it's in printing mode, but it had already finished the routine (homed x and y axes). Holding down the button would stop the print and then revert to the default behavior of moving the print head 1cm up when held down for 3 seconds.
@Ajimaru I'll get host action commands added to the binary soon.
Can one of you please upload a copy of the original lite_cfg.txt, I have a theory about the homing and heat issues, maybe the vendor has reduced the current, these steppers are only rated for around 250ma and this firmware provides 1A. I didn't notice an issue on the K7 but the steppers are enclosed. Less current means less heat (steppers are always 'on' even when not moving); and less torque so the motor will stall more easily as the end of homing and not crunch as the belt slips.
Regarding button behaviour
@Ajimaru @JohnTheCoolingFan Here's a binary to test with items 1,2 and 3 addressed plus 5. speed increase on Z homing , can you let me know if it works or what doesn't?
@Ajimaru I'll get host action commands added to the binary soon.
- Can one of you please upload a copy of the original lite_cfg.txt, I have a theory about the homing and heat issues, maybe the vendor has reduced the current, these steppers are only rated for around 250ma and this firmware provides 1A. I didn't notice an issue on the K7 but the steppers are enclosed. Less current means less heat (steppers are always 'on' even when not moving); and less torque so the motor will stall more easily as the end of homing and not crunch as the belt slips.
Regarding button behaviour 3. The Marlin devs didn't like the hard stop when I merged into mainline, but happy to change it back because it makes more sense and replicates out of box behaviour. 4. Button still flashing after print sounds like a bug, can fix the state
@schmttc here is the factory lite_cfg.txt
@Ajimaru I'll get host action commands added to the binary soon.
- Can one of you please upload a copy of the original lite_cfg.txt, I have a theory about the homing and heat issues, maybe the vendor has reduced the current, these steppers are only rated for around 250ma and this firmware provides 1A. I didn't notice an issue on the K7 but the steppers are enclosed. Less current means less heat (steppers are always 'on' even when not moving); and less torque so the motor will stall more easily as the end of homing and not crunch as the belt slips.
Regarding button behaviour 3. The Marlin devs didn't like the hard stop when I merged into mainline, but happy to change it back because it makes more sense and replicates out of box behaviour. 4. Button still flashing after print sounds like a bug, can fix the state
I can confirm that 1. & 2. are fixed, good job thank you!
Thanks for the file and confirming the results @Ajimaru
The stepper current is 750/800ma in your config file, and I've reduced it to 500 from 1000, which is still double the rated 200ma so it should be fine. But if you get layer shifting problems or it feels like the printer is skipping steps, we can return it to the default setting.
These changes are in the 'k9-fixes' branch, I'll merge it with ET4000PLUS-K9 once the other changes are confirmed.
@Ajimaru @JohnTheCoolingFan Here's a binary to test with items 1,2 and 3 addressed plus 5. speed increase on Z homing , can you let me know if it works or what doesn't? 4. needs more time than I have at the moment
Trying out this firmware right now, immediately can say that it is much more quiet, no noise when reaching ends. The motors are not heating up, but I'm wondering how that would affect performance (skipped steps, layer shifts, lesser acceleration, printing speed). I like how fast the printer is with the custom firmware compared to stock. Doing a test print now, will post an update later
Trying out this firmware right now, immediately can say that it is much more quiet, no noise when reaching ends. The motors are not heating up, but I'm wondering how that would affect performance (skipped steps, layer shifts, lesser acceleration, printing speed). I like how fast the printer is with the custom firmware compared to stock. Doing a test print now, will post an update later mksLite.bin.txt
Here's one with the out of box current settings you can try as well. Let me know if the homing is still smooth and the heat OK, hopefully this is the right balance.
The motors heat is OK, getting a bit warm to the touch and just that. I haven't noticed layer shifts or skipped steps, only some backlash in the axes, which can be seen on a benchy, for example, and has been in the printer since day one, just a problem of the design. In the compartment behind the cabin the wall might have a consistent gap between it and the edge of the top surface Accounting for that would probably require klipper, but it's not a big issue for my prints.
There is an issue with the interface though: holding down the button for 3 seconds while printing stops the print, but after that the printer does not react to the action (trying to move the print head up)
Thanks @JohnTheCoolingFan
Regarding backlash, you can set backlash compensation in Marlin with M425. The Klipper folk don't do backlash compensation, their stance is that it should be resolved in the hardware, which is not possible with these printers. I use this tower to tune backlash settings https://www.thingiverse.com/thing:2371069
I'll look into the interface issue over the next week or two as I find time, will compile for my K7 so I can test before sending it over. If you want to use this firmware until then I suggest a quick power on/off between prints.
@schmttc thanks for the tools for backlash compensation, but I've re-encountered https://github.com/MarlinFirmware/Marlin/issues/23741 when I added the gcode, looks like you had or still have this problem too.
Ah, this is tracked in #2
Update on backlash compensation: I've managed to merge backlashfix
into k9-fixes
and compile that, which resolved the issue. I have calibrated my printer and now I use a 0.32mm backlash compensation value for all axes, as they are completely identical. I can probably put that into the firmware, but I don't want to do that right now. I still have a problem of seemingly squished first few layers.
The circles have become noticeably more round and less square, which is very nice to see. Still, a 3mm hole turned out to be 2.75mm on average.
Great! Regarding squashed first layers, try adding some start gcode to your slicer that raises the head say 0.2mm (or whatever you determine) And for slightly small/large holes, try tweaking Horizontal Expansion (at least that's what it's called in Cura)
Well, getting some pretty consistent layer shifts
And regarding squashed first layers, I think I am noticing some scratching on my bed surface, even though I leveled it.
And here's the gcode file I've been using: CFFFP_3DBenchy.gcode.txt
Layer Shift Looking back at #2 , this could be a more complex issue that's not fully resolved.
Squashed Layers I think the backlash comp should be pushing the head up not further down; but try adding some start gcode to lift the head by say 0.4mm
I've re-leveled the bed at 60C and now trying to print benchy with 0.2mm layer height. The heat from the hotbed causes the bottom plastic bracket to warp! That may be the cause of squashed layers, I'll have to see.
Regarding layer shifts, here is a better picture: I've already broken the piece up into small pieces for 3d printed waste storage, can't take more pictures. I can probably try with different speed, but only on 0.2mm layers, because even with the current speeds it takes much more time than cura predicts.
I have an EasyThreed K9 with ET4000+ board, but it has a few differences. Some perfipherals are missing and wifi board connector is used by the front panel buttons. Would you be interested in making another repo for K9 if I provide photos and pin/button mappings?