BTT Octopus Pro PT1000 issues

Basic Information:

Printer Model: Custom Cartesian (400X400X600)
MCU / Printerboard: BTT Octopus Pro (STM32F446) + Raspberry Pi 4 (8GB Ram)

Describe your issue:

Greetings,
I recently purchased a PT1000 (2-Wire) Thermocouple to replace the Thermistor on my Hermera XS Direct Drive + Volcano Setup.

My PT1000 is connected to the 2 center Pins (RTDIN_P[+] , RTDIN_P[-]) of the 4 Pin port on the Octopus Pro. (See Attached Image Below)

From My understanding, my issue has to do with the MAX31865 Chip using SPI1;
The Actual Error Says: error: pin PA6 is reserved for spi1.

What I do not understand is that typically with SPI, as long as the CS Lines are separate, There normally are no issues.

Here Is the MCU Starting Serial Connect Sequence from my klippy.log:


mcu 'mcu': Starting serial connect
webhooks client 3041025160: New connection
webhooks client 3041025160: Client info {'program': 'Moonraker', 'version': 'v0.8.0-138-gfe12095'}
Loaded MCU 'mcu' 105 commands (v0.10.0-478-g78454dd3 / gcc: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] binutils: (2.31.1-11+rpi1+11) 2.31.1)
MCU 'mcu' config: BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_i2c1a=PB8,PB9 RESERVE_PINS_USB=PA11,PA12 CLOCK_FREQ=180000000 BUS_PINS_spi1a=PB4,PB5,PB3 STATS_SUMSQ_BASE=256 BUS_PINS_spi3=PB4,PB5,PB3 STEPPER_BOTH_EDGE=1 ADC_MAX=4095 BUS_PINS_spi4=PE13,PE14,PE12 PWM_MAX=255 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi1=PA6,PA7,PA5 RESERVE_PINS_crystal=PH0,PH1 MCU=stm32f446xx
mcu 'rpi': Starting connect
Loaded MCU 'rpi' 107 commands (v0.10.0-364-g4d4c8d8f / gcc: (Raspbian 8.3.0-6+rpi1) 8.3.0 binutils: (GNU Binutils for Raspbian) 2.31.1)
MCU 'rpi' config: PCA9685_MAX=4096 ADC_MAX=4095 PWM_MAX=32768 CLOCK_FREQ=50000000 MCU=linux STATS_SUMSQ_BASE=256
Config error
Traceback (most recent call last):
  File "/home/pi/klipper/klippy/klippy.py", line 180, in _connect
    cb()
  File "/home/pi/klipper/klippy/mcu.py", line 753, in _connect
    self._send_config(None)
  File "/home/pi/klipper/klippy/mcu.py", line 692, in _send_config
    cmdlist[i] = pin_resolver.update_command(cmd)
  File "/home/pi/klipper/klippy/pins.py", line 53, in update_command
    return re_pin.sub(pin_fixup, cmd)
  File "/home/pi/klipper/klippy/pins.py", line 51, in pin_fixup
    name, self.reserved[pin_id]))
error: pin PA6 is reserved for spi1

In addition to that, here is also my Stepper Motor Settings / Driver Settings.
(This Might be Relevant since the Majority of my Drivers Use SPI to Connect)

######################################################################
# STEPPER MOTOR Settings
######################################################################
####################
# X Axis Settings
####################
[stepper_x]
step_pin: PF13
dir_pin: !PF12
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
endstop_pin: ^PG9
position_endstop: 0
position_max: 400
homing_speed: 270
full_steps_per_rotation: 200 

####################
# X1 Axis Settings
####################
[stepper_x1]
step_pin: PG0
dir_pin: !PG1
enable_pin: !PF15
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 200 


####################
# Y Axis Settings
####################
[stepper_y]
step_pin: PF11
dir_pin: !PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 40
endstop_pin: ^PG10
position_endstop: 0
position_max: 400
homing_speed: 270
full_steps_per_rotation: 200 

####################
# Y1 Axis Settings
####################
[stepper_y1]
step_pin: PG4
dir_pin: PC1
enable_pin: !PA0
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 200 


####################
# Z Axis Settings
####################
[stepper_z]
step_pin: PF9
dir_pin: !PF10
enable_pin: !PG2
microsteps: 16
rotation_distance: 40
gear_ratio: 80:16
full_steps_per_rotation: 200
endstop_pin: probe:z_virtual_endstop
#endstop_pin: ^PG8         #USE THIS WHEN THERE IS NO BL TOUCH ENABLED/WORKING -+\_____YOU MUST USE BOTH OF THESE!
#position_endstop: 0.2     #USE THIS WHEN THERE IS NO BL TOUCH ENABLED/WORKING -+/
homing_speed: 170
position_min: -20
position_max: 600

####################
# Z1 Axis Settings
####################
[stepper_z1]
step_pin: PC13
dir_pin: PF0
enable_pin: !PF1
microsteps: 16
rotation_distance: 40
gear_ratio: 80:16
full_steps_per_rotation: 200


####################
# E Axis Settings
####################
[extruder]
step_pin: PE2
dir_pin: PE3
enable_pin: !PD4
microsteps: 16
rotation_distance: 7.82
nozzle_diameter: 0.600  ##Make Sure To Change This Setting If You Change Your Printers Nozzle Size
filament_diameter: 1.750
heater_pin: PA2
min_temp: 0
max_temp: 420
min_extrude_temp: 175
pressure_advance: 0.06925
# The 2 Lines below Used With Thermistor
##sensor_type: EPCOS 100K B57560G104F
##sensor_pin: PF4
# The Settings Below are For using PT1000 Thermocouple 
sensor_type: MAX31865
sensor_pin: PF8
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
rtd_nominal_r: 1000
rtd_reference_r: 4300
rtd_num_of_wires: 2



######################################################################
# STEPPER MOTOR Drivers
######################################################################
####################
# X Axis Driver
####################
#Stepper Motor Used - LDO Super Power (LDO-42STH48-2804AC)
[tmc5160 stepper_x]
cs_pin: PC4
spi_bus: spi1
#diag1_pin: PG6
run_current: 1.800
#stealthchop_threshold: 999999

####################
# X1 Axis Driver
####################
#Stepper Motor Used - LDO Super Power (LDO-42STH48-2804AC)
[tmc5160 stepper_x1]
cs_pin: PD11
spi_bus: spi1
#diag1_pin: PG9
run_current: 1.800
#stealthchop_threshold: 999999


####################
# Y Axis Driver
####################
#Stepper Motor Used - LDO Super Power (LDO-42STH48-2804AC)
[tmc5160 stepper_y]
cs_pin: PC6
spi_bus: spi1
#diag1_pin: PG10
run_current: 1.800
#stealthchop_threshold: 999999

####################
# Y1 Axis Driver
####################
#Stepper Motor Used - LDO Super Power (LDO-42STH48-2804AC)
[tmc5160 stepper_y1]
cs_pin: PC7
spi_bus: spi1
#diag1_pin: PG11
run_current: 1.800
#stealthchop_threshold: 999999


####################
# Z Axis Driver
####################
#Stepper Motor Used - LDO Speedy Power (LDO-42STH48-2504AC)
[tmc5160 stepper_z]
cs_pin: PF2
spi_bus: spi1
#diag1_pin: PG12
run_current: 1.200
#stealthchop_threshold: 999999

####################
# Z1 Axis Driver
####################
#Stepper Motor Used - LDO Speedy Power (LDO-42STH48-2504AC)
[tmc5160 stepper_z1]
cs_pin: PE4
spi_bus: spi1
#diag1_pin: PG13
run_current: 1.200
#stealthchop_threshold: 999999


####################
# E Axis Driver
####################
#Stepper Motor Used - Hemera XS Motor
[tmc2209 extruder]
uart_pin: PE1
#Hemera XS Stepper Motor Recommends 0.99A RMS, 1.400A Peak
run_current: 1.100
#diag_pin: PG14

Lastly, Here Is A Detailed Image Of The Octopus Pro Board.

Here Is The PDF Version (For Better Resolution)
BTT-Octopus-Pro-V1.0-Color-PIN-V4.0.zip (7.1 MB)

Please let me know if you need any other information.

I really appreciate any & all help!
Thanks

What I’d really appreciate is users reading and following the instructions given, instead of producing an unreadable post:

4 Likes

I apologize,
Here is my Log.
Thanks again
klippy.log (45.3 KB)

This is strange. Unless I have missed something, your cfg looks correct.

  • Do you use a LCD display or anything else connected to EXP?
    • If yes, try disconnecting it and try again
    • If no, try deleting the [board_pins] section (or comment out all lines)
  • OR try modifying your extruder to
    [extruder]
    ...
    spi_software_sclk_pin = EXP2_2
    spi_software_mosi_pin = EXP2_6
    spi_software_miso_pin = EXP2_1
    ...
    

Whereas this is a bit of spitballing, since I would have expected your config work.

When I tried changing the [Extruder] spi_software pins to EXP2_2, etc…, It resulted in me getting the error:
“pin EXP2_1 is reserved for spi1”


I am using a few pins from EXP 1, And The GND on EXP 2.
Here is what I am using:


I was curious if it was throwing the error since I am using SPI (TMC 5160HV) for all of my stepper drivers aside of [Extruder], which is using TMC2209 (UART).

Does it matter that I am putting SPI Pin numbers under [Extruder] for PT1000 when [Extruder] is using UART?

Thanks again for all of the help!

Try replacing:

[extruder]
...
sensor_type = MAX31865
sensor_pin = PF8
spi_software_sclk_pin = PA5
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
...

with

[extruder]
...
sensor_type = MAX31865
sensor_pin = PF8
spi_bus = spi1
...

Greetings,

Since My last Post, I first
switched my BLTouch From Connecting to those few EXP ports to The UART2 Ports instead:

# New BLTouch Wiring Chart
#
# Orange Wire = GND (Next To PD5)
# Yellow Wire = 5VDC (Above Blue Wire)
# Green Wire = PD5 (TX2) [control_pin: PD5]
# Blue Wire = GND (Next To PD6 )
# Red Wire = PD6 (RX2) [sensor_pin: ^PD6]

However, Still No luck.

After that, I tried your latest Suggestion which resulted in a fail, However, it gave me an interesting Error Message.

Here is the Error it is now showing:

=====================================
Klipper reports: ERROR

MCU Protocol error

This is frequently caused by running an older version of the
firmware on the MCU(s). Fix by recompiling and flashing the
firmware.

Your Klipper version is: v0.11.0-271-g5f990f93-dirty
MCU(s) which should be updated:
mcu: Current version v0.10.0-478-g78454dd3
rpi: Current version v0.10.0-364-g4d4c8d8f
Up-to-date MCU(s):

Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.

mcu ‘mcu’: Unable to extract params from: query_thermocouple

===================================

All of the versions of my Klipper, Mainsail, Moonraker, etc… are up to date, so I am not sure what to make of this error.

Unless… :thinking:
Do I also have to reflash my Octopus Pro board in order to update it?

I was under the impression that the Update Manager already pushes all updates that I would be able to get from reflashing.

I have never had to do that with any of my other 3D Printer motherboards, but I suppose it is possible. :man_shrugging:

Is this something anyone else has had to do before?

Thanks again

You have a Klipper version running on your RPi (which is recent) AND ONLY this version can be updated via the Update Manager in the webinterface.

Then you have the Klipper parts that are running on OR as a MCU. This can be the additional MCU process on the RPi as per RPi microcontroller - Klipper documentation and the Klipper parts on your printer board. They CANNOT be updated via the Update Manage since you need to run a make menuconfig

This error message notifies you that these versions are too old. You need to rebuild / reflash

In general this is a good message, since it shows that we are one step further and Klipper does no longer error out already at checking your config

Edit:
Also see Klipper Architecture / Ecosystem for a bit of background knowledge