Help getting started with custom Klipper setup for unique build

Basic Information:

Printer Model: Custom, Polar Coordinate, Direct Ink Write
MCU: BTT SKR Pico w/ RPi 4B

Describe your issue:

I’m an undergraduate mechanical engineering student working with a team to build a custom 3D printer. Specifically we’re designing a Direct Ink Write (DIW) system, essentially a hybrid between FDM & SLA (somewhat like this). We chose the BTT board based on physical footprint and we’re starting with Klipper at the recommendation from another student.
Because DIW does not use a typical hotend with temperature feedback, a lot of the safety features built in to Klipper for thermal control have proven difficult to extricate (especially given my limited exposure to Python & C++). Therefore, my current request for help is as follows, in order of convenience:

  • Does a repository exist that has already removed all hotend/thermistor/thermocouple-related code for an application similar to this?
  • Is there a state diagram for Klipper that would help me identify where to start?
  • Are there alternative firmwares that would be better suited to this task?

It’s worth mentioning that the final build will be running independent of any online utility such as Octoprint. I will also reiterate that I’m not a CS major, so I’m hoping the adjustments in code are simpler than I thought because of my lack of experience. I’m happy to provide additional details of the build if needed, but will do so on a limited basis until the build is finished since it’s for a competition. We will make the entire thing open-source once it’s complete.

You misunderstand the software involved here. Klipper is the firmware, and Mainsail/Fluidd are web based frontends for Klipper similar to Octoprint.

It’s not clear to me what you’re trying to accomplish with regard to heaters so I can’t offer advice on how to modify Klipper, but alternative firmwares would be RRF or Marlin. I’m not sure if either will run on a Pico.

Thanks for the clarification! I apologize for the misunderstanding and I’ll revise my original post accordingly.
Our build does not involve a hotend at all, therefore we’re attempting to remove or disable any code related to it. So far we haven’t been able to start a print because the code expects a hotend to be present and stops operation when it doesn’t get temperature feedback.

Klipper doesn’t require an extruder or any heaters to be defined, so it will work as is. If you want to “extrude” something other than molten plastic, try using a manual stepper.

The other option is adding min_temp: -273.15, and min_extrude_temp: -273.15 to the extruder section.

We have tried adjusting the min temp settings, which worked to allow us to even test the steppers for each axis. However, it still aborts a print when the reported temperature of the nonexistent thermocouple (usually some constant value like -20, but changes slightly every time we cycle power on the system) fails to approach the value set in gcode. Since every slicing software I’m aware of requires an extruder temp, and the reported thermocouple value is dynamic between trials, we need a way to circumnavigate whatever code is checking for proper behavior of the heater cartridge.
As far as I can tell, the code that is causing us problems is intended as a safety measure for typical heater cartridge systems and prevents things like thermal runaway by ensuring the proper execution of a feedback control loop.

If you can’t prevent the slicer from adding temperatures, then just postprocess the gcode to remove any lines with M104 or M109. As I mentioned above you still need to set min_extrude_temp to use Klipper this way. You don’t need to modify any Klipper code to make this work.

1 Like

Thanks for the idea, and your patience! That was the key we were missing, and I hadn’t thought to look at the specific gcode commands.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.