Ender 3 Max + Cr touch: want to make sure I won't break my printer

I’d like to switch over from the stock Creality firmware to klipper. As I’m already using Octoprint on my Pi4-8gb I’ll be using octoklipper. I self host spaghetti detective so I have to use octoprint regardless.

I have a few questions to make sure I won’t cause irreparable damage when I first start up the printer.

Printer is an Ender 3 max with a 4.2.2 board, and the 522K STM32F103 RET6 CPU.

Q1: My CR-Touch is already hooked up and I know my z-offset. I’ll be measuring the X and Y offsets via a manual measurement. The concern I have is if I dont have the code correct my printhead will smash into the build plate when I turn on my printer and try to Home it. As well, how do I verify the pins mentioned in the example below to that of my board?

[bltouch]
sensor_pin: ^PB1
control_pin: PB0
x_offset: -42
y_offset: -10
z_offset: 0

[safe_z_home] 
home_xy_position: 150,150 # Change coordinates to the center of your print bed
z_hop: 10                 # Move up 10mm z_hop_speed: 5

I know the ^ means pullup resistor, but below there is a ^! and I dont know what the ! means.

Q2: The screen. I have a 12864 LCD screen and would like to use it. After a lot of searching I was able to find a post somewhere that said the following:

Try using the klipper code below. I'm pretty sure it's for the Max.

[display]
lcd_type: st7920
cs_pin: EXP1_7
sclk_pin: EXP1_6
sid_pin: EXP1_8
encoder_pins: ^EXP1_5, ^EXP1_3
click_pin: ^!EXP1_2

[output_pin beeper]
pin: EXP1_1
 
Make sure you have an aliases section in your config to alias the EXP port

I’m used to alias usage from Bash alias’. I’m just unclear as to how to make it work for klipper configs.

I found a marlin page for the STM32F1 boards but I’m not sure if its the right board as it states v4.h. I found This pic where it shows some pinouts for the display on the board but I’ve no idea where to put them in the config.

Any assistance would be appreciated. Thank you

For homing, it doesn’t matter what the initial z_offset is set to, the printer will stop when the bltouch triggers. Once the printer is homed, you need to run PROBE_CALIBRATE to establish the correct z_offset. See the documentation here.

Using a ! inverts the logic, so trigger low or trigger high.

Klipper provides a sample config for the Ender 3 Max that has all the pins you need pre-configured, including the display. See this link.

Thank you so much. This was very informative.