Thanks for giving that end g-code a test. I’ve been tied up with another project and haven’t had a chance to play with it. I’ll have to give it a try, too!
Hello, a small update to my GitHub with the addition of the input shaper with the FYSTEC PIS and some improvements to the END_PRINT and purge lines. I’ve added the link to the PIS support in the MD file, as well as the commands to activate the Klipper functionality. Please be patient while the commands execute; some take a long time ![]()
You actually managed to get Klipper to run on the original hardware?! Congratulations!!
That is much easier than replacing the whole mainboard as I did three years ago!
I am curious to see your configuration files - when it comes to configuration values, Klipper is closer to the Duet than the original Snapmaker data mess. It is in J1s-Klipper-Macros/printer.cfg at main · FranckFG62/J1s-Klipper-Macros · GitHub, correct?
You can find my stuff here, if it’s helpful:
@DeSkwared Thanks! Out of curiosity: what is the logical difference between the Github repo of @FranckFG versus yours? One for testing, one for the stuff that actually works?
Just a divergence in programming methodology and configuration preferences. Mine has automated x/y and z offset, and assisted bed leveling using the factory datum points. His is manual. He got backup mode working for filament runout, but I never bothered with it, etc. you can try both and see what you prefer.
Ah, okay. Seems worthwhile to check both Github repos then - yours and the one @FranckFG ![]()
Luckily my automated leveling macros work fine since I wrote them, and RepRapFirmware is limited to gcode for such stuff anyway (which made output on the screen a tiny bit tricky…ASCII art rules
), but the autotune values you have in your repo are great, I wil definitely save those. Did you implement the “advanced stuff” (pressure advance and such) already and I overlooked those, or are you not there yet?
I set my pressure advance in Orca, since many filaments vary slightly from one another, so I did not attempt (or even think to try) to set it natively in the Klipper configs. I just run the PA calibration and save the result as a custom filament profile in my slicer.
I did implement input shaping, but I purposely didn’t upload that since it is specific to my accelerometer and my mounting technique. Seemed like it would just confuse people who didn’t know how to modify the .cfg, and for those that do know, it’s a simple config to make, bespoke.
I’ve been pretty busy these last few weeks, and I’m also working to get my ACE 2 Pro working with my U1, so I haven’t been doing a ton with my J1, lately. Really hoping to get back to it once things slow down a bit, but the honey-do-list is always longer in the summer…
Hi @Mechanickus,
To be honest, the J1’s migration to Klipper was done by Christoph: Snapmaker J1 Klipper Installation Wiki. We simply built on his work to further improve and optimize the Klipper configuration ![]()
As DeSkwared mentioned, we have a different approach to calibration. I went with a manual version that can be done directly on the bed. For X and Y head offset adjustments, it’s rarely needed, so Christoph’s wiki version was enough for me.
As for my configuration, the printer.cfg file includes only the essential information. I’ve tried to organize files into folders and name them clearly to make the configuration easier to understand.
-
Hardware folder: everything related to hardware configuration.
-
Macros folder: I’ll let you guess

-
Extras folder: additions requiring extra hardware beyond the printer’s base configuration (e.g.,
input_shapermanagement and independent auxiliary fan control).
@DeSkwared thanks, that explains it! I follow an approach in-between so far: filament settings (including pressure advance) are stored on the Duet for each filament type I use, and Prusaslicer defines the filament type. I did not check how Snapmaker did it after switching from the mess named Luban to “Snorca” though.
Input shaping is a different matter on the J1 though - @Wombley did quite some analysis there a while ago. He did not find the time to compile the results into something others do understand so far, but the basic result was the same as I had: the J1 does not have a fixed ringing frequency you can cancel, its freqencies are rather speed-dependent which is not possible to fully catch with IS AFAIR.
@FranckFG thanks for the link! - That must have been some serious reverse engineering if you keep in mind Snapmaker was and probably is not exactly cooperative when it comes to opening their systems.
You are right with calibration - I found the J1 is rock-solid in that respect. The only case when re-calbration is needed during use is if you change the hotends.
I did wire up an adxl345 and measure the resonances. The motors appeared to be driving the vibration making the spatial frequency speed dependent. Tried many of the usual things to get rid of them, but IS didn’t manage it.
Yeah, it’d take a good think to go back through the data.
got runout sensors working. ill upload to my codeberg later
the back part cooling fan?
@jbot Yes, I initially used the MCU fan control, but the auxiliary fan’s amperage caused the control stage to overheat. So I switched to a different approach with the MMB board from BigTreeTech.
i am curious what you are using that mmb board for. do you think our rear can port is now usable for custom projects
The MMB board was chosen because it was lying around at the bottom of a drawer, lol. Regarding the rear connector, I’m only using the 24V supply, and the MMB is connected via USB to a small hub plugged into the front port of the printer. This allows for independent control of the auxiliary fan; you also need to enable the option in Orca Slicer.
very good. did you make a writeup? i was plaaning to use a physical dial with marlin before
I simply wired the fan to a pwm controller with a temp probe and it runs automatically. I also wired an inline switch so I can turn it off entirely for ABS/ASA etc.
Good to know! Admittedly, I have not done any further testing other than to confirm it was operating correctly, so it will be interesting to dive in and see if I can get it optimized or not.
does anyone have usb webcam working

