Skip to content

Instantly share code, notes, and snippets.

@varazir
Forked from adelyser/biqu_bx_klipper.md
Last active June 15, 2024 19:20
Show Gist options
  • Save varazir/f8994b0ebbe4ce2d1e1cdf88fb65621d to your computer and use it in GitHub Desktop.
Save varazir/f8994b0ebbe4ce2d1e1cdf88fb65621d to your computer and use it in GitHub Desktop.
Klipper on the BIQU BX V3

Klipper on the BIQU BX V3

NOTE: If you have a V2 board/screen(HDMI),click here

First, a few requirements:

  1. You need Klipper setup on your Raspberry PI ( borad that support DSI) with your favorite control interface (Octoprint, Fluidd, Mainsail, etc..).
  2. Install the Drivers for V3 screen https://github.com/bigtreetech/BIQU-BX/tree/master/Firmware/RPi-Linux-RPi-7inch-DSI
  3. You need your favorite Touchscreen UI installed (unless you just want to run headless).
    • Use this to install all you need https://github.com/dw-0/kiauh
      • If you have a issue with the screen is black, press the smal button under the turn knob
  4. You MUST have removed the Z endstop physical switch. Not disconnected, but completely removed.

NOTE: CAN will not work on this board due to a hardware mis-configuration
NOTE: I2C is not quite working yet!

Ok, so let's get started.


Klipper firmware configuration

When configuring the klipper firmware to run on the BTT SKR SE BX board, there are a couple things to know about.

  1. Use the main klipper branch.
  2. In order for the toucscreen to work, you will need to set GPIO pins PB5 and PE5 to an initial state during the config
  3. Use the config/printer-biqu-bx-2021.cfg file for your intial printer.cfg
  4. Once you are setup, you will need to calibrate your sensorless homing: https://www.klipper3d.org/TMC_Drivers.html?h=sensorless+ho#sensorless-homing

Klipper Firmware Configuration

A note on connection methods:

There are 4 different connections you can make from the Raspberry Pi to the mainboard, 2 Serial and 2 USB.

Communication Interface

  • Serial (on UART4 PA0/PA1) <--- For v3 board/screen you need to use this

To use serial connections, you have to enable the serial port on the raspberry pi and compile the correct serial port for the BX mainboard. Once you have the serial port enabled on the raspberry pi, it will show up as /dev/ttyAMAx, with x being the port number.

Once you have it setup, your printer.cfg should then contain the following under the MCU section: serial: /dev/ttyAMAx, substituting the x for your port number.


HDMI configuration

As v3 uses DSI you don't need any HDMI settings

Drivers for V3 screen

Config.txt

Example on /boot/config.txt

Make sure this are in the config.txt file, some wil be added by the drivers installation skript.
[all]
dtparam=i2c_vc=on
dtparam=i2c_arm=on
enable_uart=1
dtoverlay=disable-bt
dtoverlay=vc4-kms-dsi-btt-bxv3-7inch
disable_splash=1

Slicer configuration

For your slicer, you need to call the PRINT_START macro instead of any preliminary gcode. The NOZZLE and BED temps get passed in as arguments. Some examples for the more popular slicers:

  • Cura: PRINT_START BED={material_bed_temperature_layer_0} NOZZLE={material_print_temperature_layer_0}
  • PrusaSlicer: PRINT_START NOZZLE=[first_layer_temperature] BED=[bed_temperature]
  • Ideamaker: PRINT_START NOZZLE={temperature_heatbed} BED={temperature_extruder1}
  • Simplify3D: PRINT_START NOZZLE=[extruder0_temperature] BED=[bed0_temperature]
  • Kiri:Moto: PRINT_START NOZZLE={temp} BED={bed_temp}

Klipper Functionality

Here are some notes on how I have Klipper setup and working quite well for my machine.

Touchscreen Sleep

The Touchscreen will go dark when the printer idle timeout occurs. This happens when there is not a print job in action and currently set for 5 minutes. Pressing the Menu Knob on the display will wake up the Touchscreen.

LEDS

The Neopixels are setup and will cycle through colors on bootup. I have the idle timeout set to shut off the LEDS when the printer is inactive. The LEDs automatically come on when a print is started or when the LCD is wakened.

Homing Routine

I have programmed a reliable homing routine that works well for me, however you can adjust or setup your own to taste. My routine will do the following:

  1. Raise the Z axis
  2. Home the X axis
  3. Home the Y axis
  4. Move the probe to the center of the bed (different than the nozzle at center)
  5. Home the Z with the probe.
  • When starting a print, additionally:
  1. After the bed reaches temp, the printer waits for 90 seconds with the probe close to the bed to warm up the probe.
  2. Steps 1-5 are repeated with a warm probe
  3. Move to the origin to start the print.
@Cracoukas
Copy link

Cracoukas commented May 28, 2024

Here is what I get:

Capture d'écran 2024-05-28 222800

@Cracoukas
Copy link

and the install.sh file:

Capture d'écran 2024-05-28 223356

@varazir
Copy link
Author

varazir commented May 28, 2024

Did you edit the file in notepad or editor that don't have unix end of line ?

@Cracoukas
Copy link

Cracoukas commented May 29, 2024

Did you edit the file in notepad or editor that don't have unix end of line ?

I normaly use Visual Studio Code for editing. But to be shure I deleted the directory and reloaded fresh from Github. It now compiles but with and error:
Capture d'écran 2024-05-29 113125
Does it need a 64 bit version of PI OS ?
Or a previous version of Raspberry PI (6.1.21) ?

@varazir
Copy link
Author

varazir commented May 29, 2024

@varazir
Copy link
Author

varazir commented May 29, 2024

The drivers are compiled for a specific kernel version. I talked to guy on a 3D print meetup(he was building custom hardware/software for Raspberry Pie projects ) and he thought you could reverse engineer the drivers/or use standard drivers and get it to work on newer image. He sent me som links to look at but I haven't looked into it much more as it's working on my RPi3b.

@Cracoukas
Copy link

Cracoukas commented May 29, 2024

You need this image https://downloads.raspberrypi.com/raspios_armhf/images/raspios_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf.img.xz download it and use the raspberryos installer.

Thank's, now I could install the Drivers for V3 screen, follow the whole installation, compile the Klipper.bin, copied to the printer SD card, renamed it firmware.bin.
The installation work ok (very fast, much faster then for Marlin) but I still have 2 problems.

  • The TFTV3 screen remains black (I wonder if the flat cable between the PI and the TFT really connect)
  • The PI does not connect to the printer

Capture d'écran 2024-05-29 222853

I am not shure where the printer.cfg file should be stored, in my /home/Jacques directory ?, /home/Jacques/printer_data/config directory ?
Should the printer-biqu-bx-2021.cfg be renamed printer.cfg ? I tried all possibilities but it does not seem to work.

In the klipper.log I found:
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 13] could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'
webhooks client 4124269608: New connection
webhooks client 4124269608: Client info {'program': 'Moonraker', 'version': 'v0.8.0-377-g4fe89d5'}
mcu 'mcu': Unable to open serial port: [Errno 13] could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'

@varazir
Copy link
Author

varazir commented May 29, 2024

Did you select as shown in the OP when you configured Klipper ?
The Data/power cable from the screen to the Pie is connected correct ?

Copy and rename the printer-biqu-bx-2021.cfg to /home/Jacques/printer_data/config/printer.cfg
If you load all posts here you can see my photos.

@Cracoukas
Copy link

Cracoukas commented May 30, 2024

Did you select as shown in the OP when you configured Klipper ? The Data/power cable from the screen to the Pie is connected correct ?

As I see the config is correct
Capture d'écran 2024-05-31 003950
Only the board version (V3.0 in my case) is not shown.

The Data/power cable from the screen to the Pie is connected correct ?

I Checked the cable (both power cable and DSI cable) for continuity and found no problem,
I also tried with a second set of TFT70-BX-V3.0 and PI4 without success, the screen stay black (but it works when I update the main board firmware)

Copy and rename the printer-biqu-bx-2021.cfg to /home/Jacques/printer_data/config/printer.cfg

The printer file (without any modification) is at the right place.

If you load all posts here you can see my photos.

?

I tried the "Debian 11 (Bullseye) udev bug - No board or serial found" (https://klipper.discourse.group/t/debian-11-bullseye-udev-bug-no-board-or-serial-found/10711) and it did not solved the connection problem.

@Cracoukas
Copy link

Cracoukas commented May 31, 2024

Capture d'écran 2024-05-31 124337

ls /dev/* shows a serial0 and serial1 symlink files.

@varazir
Copy link
Author

varazir commented May 31, 2024

Try sudo usermod -a -G tty jacques

@Cracoukas
Copy link

Try sudo usermod -a -G tty jacques

Now the command give more results:
Capture d'écran 2024-05-31 180518
but what about serial connection ?

@varazir
Copy link
Author

varazir commented May 31, 2024

The printer-biqu-bx-2021.cfg files contains the correct values for the printer.
This is my list
`brw-rw---- 1 root disk 1, 9 May 18 11:22 ram9

crw-rw-rw- 1 root root 1, 8 May 18 11:22 random

crw-rw-r-- 1 root netdev 10, 242 May 18 11:22 rfkill

lrwxrwxrwx 1 root root 7 May 18 11:22 serial0 -> ttyAMA0

lrwxrwxrwx 1 root root 5 May 18 11:22 serial1 -> ttyS0

drwxrwxrwt 2 root root 40 May 13 2023 shm

drwxr-xr-x 4 root root 240 May 18 11:22 snd

crw-rw---- 1 root spi 153, 0 May 18 11:22 spidev0.0

crw-rw---- 1 root spi 153, 1 May 18 11:22 spidev0.1`

@Cracoukas
Copy link

The printer-biqu-bx-2021.cfg files contains the correct values for the printer. This is my list `brw-rw---- 1 root disk 1, 9 May 18 11:22 ram9

crw-rw-rw- 1 root root 1, 8 May 18 11:22 random

crw-rw-r-- 1 root netdev 10, 242 May 18 11:22 rfkill

lrwxrwxrwx 1 root root 7 May 18 11:22 serial0 -> ttyAMA0

lrwxrwxrwx 1 root root 5 May 18 11:22 serial1 -> ttyS0

drwxrwxrwt 2 root root 40 May 13 2023 shm

drwxr-xr-x 4 root root 240 May 18 11:22 snd

crw-rw---- 1 root spi 153, 0 May 18 11:22 spidev0.0

crw-rw---- 1 root spi 153, 1 May 18 11:22 spidev0.1`

How did you get these values ?

@varazir
Copy link
Author

varazir commented May 31, 2024

ls /dev -all

@Cracoukas
Copy link

From the hundred values listed:

`brw-rw---- 1 root disk 1, 9 May 18 11:22 ram9
brw-rw---- 1 root disk 1, 9 May 31 17:02 ram9

crw-rw-rw- 1 root root 1, 8 May 18 11:22 random
crw-rw-rw- 1 root root 1, 8 May 31 17:02 random

crw-rw-r-- 1 root netdev 10, 242 May 18 11:22 rfkill
crw-rw-r-- 1 root netdev 10, 242 May 31 17:02 rfkill

lrwxrwxrwx 1 root root 7 May 18 11:22 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 7 May 31 17:02 serial0 -> ttyAMA0

lrwxrwxrwx 1 root root 5 May 18 11:22 serial1 -> ttyS0
crw-rw---- 1 root dialout 4, 64 May 31 17:02 ttyS0

drwxrwxrwt 2 root root 40 May 13 2023 shm
drwxrwxrwt 2 root root 40 Sep 13 2022 shm

drwxr-xr-x 4 root root 240 May 18 11:22 snd
drwxr-xr-x 3 root root 140 May 31 17:02 snd

crw-rw---- 1 root spi 153, 0 May 18 11:22 spidev0.0
spidev0.0 not found

crw-rw---- 1 root spi 153, 1 May 18 11:22 spidev0.1`
spidev0.1 not found

Just for the sake of understanding how you debug this kind of problem, why did you select theses values out of the hundred ones listed by ls /dev -all ?

In any case thank you for our patience 🙏

@Cracoukas
Copy link

Cracoukas commented May 31, 2024

From the hundred values listed:

`brw-rw---- 1 root disk 1, 9 May 18 11:22 ram9
brw-rw---- 1 root disk 1, 9 May 31 17:02 ram9

crw-rw-rw- 1 root root 1, 8 May 18 11:22 random
crw-rw-rw- 1 root root 1, 8 May 31 17:02 random

crw-rw-r-- 1 root netdev 10, 242 May 18 11:22 rfkill
crw-rw-r-- 1 root netdev 10, 242 May 31 17:02 rfkill

lrwxrwxrwx 1 root root 7 May 18 11:22 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 7 May 31 17:02 serial0 -> ttyAMA0

lrwxrwxrwx 1 root root 5 May 18 11:22 serial1 -> ttyS0
crw-rw---- 1 root dialout 4, 64 May 31 17:02 ttyS0

drwxrwxrwt 2 root root 40 May 13 2023 shm
drwxrwxrwt 2 root root 40 Sep 13 2022 shm

drwxr-xr-x 4 root root 240 May 18 11:22 snd
drwxr-xr-x 3 root root 140 May 31 17:02 snd

crw-rw---- 1 root spi 153, 0 May 18 11:22 spidev0.0
spidev0.0 not found

crw-rw---- 1 root spi 153, 1 May 18 11:22 spidev0.1`
spidev0.1 not found

Just for the sake of understanding how do you debug this kind of problem, why did you select theses values out of the hundred ones listed by ls /dev -all ?

In any case thank you for your patience 🙏

@varazir
Copy link
Author

varazir commented May 31, 2024

In your printer.cfg dose it say
[mcu]
serial: /dev/ttyAMA0 ?

@Cracoukas
Copy link

In your printer.cfg dose it say [mcu] serial: /dev/ttyAMA0 ?

Yes
/home/Jacques/printer_data/config/printer.cfg
[mcu]
serial: /dev/ttyAMA0
restart_method: command

@varazir
Copy link
Author

varazir commented May 31, 2024

in the web gui what happens when you try to restart klipper ?
How dose your config.txt file look like ?

@Cracoukas
Copy link

Cracoukas commented May 31, 2024

in the web gui what happens when you try to restart klipper ? How dose your config.txt file look like ?
It tryies to connect
Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.
and then fails.

The /boot/config.txt file:

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
#display_auto_detect=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
dtparam=i2c_vc=on
dtparam=i2c_arm=on
dtoverlay=vc4-kms-dsi-btt-bxv3-7inch
enable_uart=1
dtoverlay=disable-bt
disable_splash=1

and the /home/Jacques/klipper/.congig.txt

CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32h743xx"
CONFIG_CLOCK_FREQ=400000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x200000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x20000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8020000
CONFIG_STM32_SELECT=y
# CONFIG_MACH_STM32F103 is not set
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32G474 is not set
# CONFIG_MACH_STM32H723 is not set
CONFIG_MACH_STM32H743=y
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
CONFIG_MACH_STM32H7=y
CONFIG_HAVE_STM32_USBOTG=y
CONFIG_HAVE_STM32_FDCANBUS=y
CONFIG_HAVE_STM32_USBCANBUS=y
CONFIG_STM32_DFU_ROM_ADDRESS=0
CONFIG_STM32_FLASH_START_20000=y
# CONFIG_STM32_FLASH_START_0000 is not set
# CONFIG_STM32_CLOCK_REF_8M is not set
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
CONFIG_STM32_CLOCK_REF_25M=y
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=25000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
# CONFIG_STM32_USB_PB14_PB15 is not set
# CONFIG_STM32_SERIAL_USART1 is not set
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
CONFIG_STM32_SERIAL_UART4=y
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB12_PB13 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
# CONFIG_STM32_MMENU_CANBUS_PB0_PB1 is not set
# CONFIG_STM32_MMENU_CANBUS_PD12_PD13 is not set
# CONFIG_STM32_MMENU_CANBUS_PC2_PC3 is not set
# CONFIG_STM32_USBCANBUS_PA11_PA12 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_LDC1612=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_NEED_SENSOR_BULK=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS="PB5, PE5"
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y

@varazir
Copy link
Author

varazir commented May 31, 2024

What happens when you run this command ?
DISPLAY=:0 xrandr

Mine looks like this
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 2048 x 2048
HDMI-1 disconnected primary (normal left inverted right x axis y axis)
DSI-1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x600 38.40*+

You are sure the printer has klipper? Try to flash it again.

@varazir
Copy link
Author

varazir commented May 31, 2024

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
#display_auto_detect=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
dtparam=i2c_vc=on
dtparam=i2c_arm=on
enable_uart=1
dtoverlay=disable-bt
dtoverlay=vc4-kms-dsi-btt-bxv3-7inch
disable_splash=1

@Cracoukas
Copy link

What happens when you run this command ? DISPLAY=:0 xrandr

Mine looks like this Screen 0: minimum 320 x 200, current 1024 x 600, maximum 2048 x 2048 HDMI-1 disconnected primary (normal left inverted right x axis y axis) DSI-1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1024x600 38.40*+

DISPLAY=:0 xrandr
Can't open display :0

I checked the flat cable continuity with a multimeter, board-to-board, and it's ok. Since I have 2 sets of TFT70 and PI I tried the second set with the sane result !

You are sure the printer has klipper? Try to flash it again.
I tried to flash it many times, at start-up it displays firmware update 0%-100% and then rename the firmware.bin into firmware.cur so I suppose it was flaseh correctly.

@varazir
Copy link
Author

varazir commented Jun 1, 2024

Hmm, and it's a RPi and not a BTT Pi ? That would explain the screen. But the communication with the MCU should be the same.

@varazir
Copy link
Author

varazir commented Jun 1, 2024

the cable is like this on the board
image

@Cracoukas
Copy link

Yes, it's a RPi4 B / 2018, the red wire on the 5V.
Using Octoprint to control the printer flashed with Marlin it used to work, so I guess the connection through the TFT70 is functional

@Cracoukas
Copy link

I am wondering if it could be possible to bypass the TFT70 board and connect the PI to the printer using the USB ports ?
I am also considering switching to a Manta board, may be easyer to get working with Klipper ?

@Cracoukas
Copy link

Cracoukas commented Jun 15, 2024

I am now able to connect to the MCU using using pin 6-8-10 of the PI and the TFT pins of the SKR-SE-BX-V3.0 (crossing Rx and Tx).
The TFT display is useless (just to confirm that the MCU is flashed correctly).

and configuring serial USART1 PA10/PA9

@varazir
Copy link
Author

varazir commented Jun 15, 2024

I am now able to connect to the MCU using using pin 6-8-10 of the PI and the TFT pins of the SKR-SE-BX-V3.0 (crossing Rx and Tx). The TFT display is useless (just to confirm that the MCU is flashed correctly).

Strange that you need to do that.
Well it's not the best screen. I have issue that it's all white until it's "warm"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment