What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

Yet Another printer.cfg Request (M8P w/EBB SB2209 CAN(RP2040))

Printer Model
Voron 2.4r2 (Formbot as a baseline)
Extruder Type
Galileo
Cooling Type
Stealthburner
I am working through merging the Voron 2.4 example config with the M8P v.2.0 and EBB SB2209 CAN(RP2040) sample config. This is a Formbot kit with Moons motors, When plugging things in, I used the pins and ports recommended in the documentation for each component.

If anyone can link to their working printer config for a similar setup, it would help loads. The main thing is the motors and stepper but in case it is relevant, here is my full build:
  • Formbot Voron 2.4r2 350 kit as a baseline
  • Manta M8P v2.0 with CM4 (eMMC)
  • EBB SB2209 CAN(RP2040)
    • Manta and SB2209 communicating by USB-to-CANBUS Bridge)
  • Galileo 2 Extruder in Stealthburner
  • Physical switch X and Y-endstops
  • ChaoticLabs CNC Tap V.2.0 as Z-endstop
  • Phatus Rapido HF w/PT1000 2-wire thermistor
  • BTT SFS V2.0 Smart Filament Sensor
  • Nevermore (and removed standard exhaust)
Many thanks in advance if anyone has a better starting point than the raw samples for this.
 
See attached. A 350
  • M8p v 1.1
  • BTT EBB2209 (not the RP2040)
  • micro switches for X/Y
  • Tap
  • BTT filament sensor
  • bed fans (fans like a nevermore, but no charcoal) and chamber exhaust (printer is in detached garage and I do mostly ABS , so need a hot chamber).
You will want to change the extension from .txt to .cfg.

The pins may be different for a 2.0 vs. a 1.1 M8P though.

Some of the smaller .cfg aren't really implemented, but the code structure is there.

I will say that I started small with these. Added stuff like better chamber code, bed fans, etc. I print 95% of the time with ABS and haven't implemented stuff like material specific pressure advance, etc. But starting small and adding code you want is part of the process. I'm fairly certain that there is no such thing as two printers that are identical owned by different people out there. It's a learning process and worth the effort to get a printer you want to use and works with how you use it. You may spend more time trying to figure out what I did then unwind what you don't want as opposed to starting small with your own code.

If you use a Max31865, then this is the code for the thermistor:
(Obviously, change the pins, this is off a Octo Pro board)


sensor_type: MAX31865
sensor_pin: PF8
spi_speed: 4000000
spi_software_sclk_pin: PA5 #EXP2_2
spi_software_mosi_pin: PA7 #EXP2_6
spi_software_miso_pin: PA6 #EXP2_1
rtd_use_50Hz_filter: True
rtd_nominal_r: 1000
rtd_reference_r: 4300
rtd_num_of_wires: 2
 

Attachments

  • Bed_Mesh.txt
    6.5 KB · Views: 140
  • Set_Material.txt
    845 bytes · Views: 112
  • fans_chamber.txt
    2.5 KB · Views: 135
  • sample_nozzle_scrub_menu.txt
    1.3 KB · Views: 108
  • variables.txt
    29 bytes · Views: 135
  • printer.txt
    11.7 KB · Views: 359
  • Macros.txt
    23.6 KB · Views: 146
  • LED_Stealthburner.txt
    10.1 KB · Views: 149
Last edited:
I am sure this will be a lot of help. You are right that there do not seem to be two identical printers among the self-built crowd. In hindsight, it may have been foolish to make my first home-built printer so heavily customized. But I'm making my way through it... It will be sweet when done.

Many thanks.
 
See attached. A 350
  • M8p v 1.1
  • BTT EBB2209 (not the RP2040)
  • micro switches for X/Y
  • Tap
  • BTT filament sensor
  • bed fans (fans like a nevermore, but no charcoal) and chamber exhaust (printer is in detached garage and I do mostly ABS , so need a hot chamber).
You will want to change the extension from .txt to .cfg.

The pins may be different for a 2.0 vs. a 1.1 M8P though.

Some of the smaller .cfg aren't really implemented, but the code structure is there.

I will say that I started small with these. Added stuff like better chamber code, bed fans, etc. I print 95% of the time with ABS and haven't implemented stuff like material specific pressure advance, etc. But starting small and adding code you want is part of the process. I'm fairly certain that there is no such thing as two printers that are identical owned by different people out there. It's a learning process and worth the effort to get a printer you want to use and works with how you use it. You may spend more time trying to figure out what I did then unwind what you don't want as opposed to starting small with your own code.

If you use a Max31865, then this is the code for the thermistor:
(Obviously, change the pins, this is off a Octo Pro board)
Thank you, it was very useful to share your config files.
Still configuring it ...
 
See attached. A 350
  • M8p v 1.1
  • BTT EBB2209 (not the RP2040)
  • micro switches for X/Y
  • Tap
  • BTT filament sensor
  • bed fans (fans like a nevermore, but no charcoal) and chamber exhaust (printer is in detached garage and I do mostly ABS , so need a hot chamber).
You will want to change the extension from .txt to .cfg.

The pins may be different for a 2.0 vs. a 1.1 M8P though.

Some of the smaller .cfg aren't really implemented, but the code structure is there.

I will say that I started small with these. Added stuff like better chamber code, bed fans, etc. I print 95% of the time with ABS and haven't implemented stuff like material specific pressure advance, etc. But starting small and adding code you want is part of the process. I'm fairly certain that there is no such thing as two printers that are identical owned by different people out there. It's a learning process and worth the effort to get a printer you want to use and works with how you use it. You may spend more time trying to figure out what I did then unwind what you don't want as opposed to starting small with your own code.

If you use a Max31865, then this is the code for the thermistor:
(Obviously, change the pins, this is off a Octo Pro board)
The files are very helpful in assisting my education. The last time I built a functioning printer was over 20 years ago, a Geetech i3 Pro using Marlin. I have a 1/2 functioning Voron 2.4 M8p v1.1 sb2209 RP2040 and trying to educate myself on the klipper configuration syntax. In your printer.cfg file is your [mcu] the SB2209 and the [mcu EBBCan] the M8P/CB1? It's backwards from the way I am approaching it but thinking about it, my RP2040 could function as a host. If i am way off base, I apologize. My mind is fading as well as my cognitive ability but I hope challenging myself with this build will help me.
 
Code:
[mcu]
canbus_uuid: ca90cdaf1bc3

[mcu EBBCan]
canbus_uuid: 41aa0e263ad8

MCU = M8p
MCU EBBCan = sb2209

Klipper assumes that the "MCU" is the main controller. Other MCUs - PIs, can devices, etc. need to explicitly called out with the [mcu xxxxx] notation.

That works in concert with the rest of the code:

Code:
[extruder]
step_pin: EBBCan: PD0
dir_pin: EBBCan: PD1
enable_pin: !EBBCan: PD2
microsteps: 16
rotation_distance: 22.6789511
gear_ratio: 50:10 #CW2 Gear Ratio
microsteps: 16
full_steps_per_rotation: 200    #200 for 1.8 degree, 400 for 0.9 degree

nozzle_diameter: 0.400
filament_diameter: 1.750
pressure_advance: 0.035

heater_pin: EBBCan: PB13
sensor_type: Generic 3950 ## Use "Generic 3950" for NTC 100k 3950 thermistors
sensor_pin: EBBCan: PA3
#control: pid
#pid_Kp: 26.5
#pid_Ki: 1.4
#pid_Kd: 131.9
min_temp: 0
max_temp: 310
min_extrude_temp: 190

where the "enable_pin: !EBBCan: PD2" (for example) tells klipper that the enable pin is on the MCU EBBCan board.

I suppose it's possible to have the main MCU as:

[mcu M8P]

But then you would need to have EVERY line have M8P in it so that klipper knows it's that MCU. (which is a waste of code and makes for poor read-ability.
 
Thanks for the reply. Glad you were kind. The last working printer i built was 20 years ago. It was a Geetech iPro using Marlin. Now I have a much more limited cognitive capacity and am dealing with an OS that uses a printer.cfg file with layers of xxx.cfg files..... I'm in the middle of the initial setup with a Manta M8P v1.1-CB1 / SB2209 RP2040 / TAP. I'm having trouble trying to configure virtual end stop, homing setting, [Probe] etc. for the Z... Once again, Thank you.
 
I'd recommend not starting with virtual end stops - it's one more thing that needs to be tuned that doesn't need to be.

My Tap probe code:

Code:
###################################
#    Tap Probe
###################################

[probe]
pin: EBBCan: PB5 (should be GPIO21 or 22 depending on what pin you use)

x_offset: 0
y_offset: 0
#z_offset: 0
speed: 10
samples: 3
samples_result: median
sample_retract_dist: 5.0
samples_tolerance: 0.008
samples_tolerance_retries: 3

# Tap code:
activate_gcode:
    _STATUS_CALIBRATING_Z
    {% set PROBE_TEMP = 150 %}
    {% set MAX_TEMP = PROBE_TEMP + 5 %}
    {% set ACTUAL_TEMP = printer.extruder.temperature %}
    {% set TARGET_TEMP = printer.extruder.target %}

    {% if TARGET_TEMP > PROBE_TEMP %}
        { action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
        M109 S{ PROBE_TEMP }
    {% else %}
        # Temperature target is already low enough, but nozzle may still be too hot.
        {% if ACTUAL_TEMP > MAX_TEMP %}
            { action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
            TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
        {% endif %}
    _STATUS_READY
    {% endif %}
 
Top