MKS SKIPR CAN Bus

Hm… At least for me the combination UTOC-3 and SB2040 had worked directly out of the box. (Until it didn’t :slight_smile: at some point it wasnt flashable anymore, I mean I could flash but it wasn’t recognized anymore (also the lower LED did not light up anymore after flashing)).

SKIPR in normal UART Mode and SB2040 in CAN mode.

UTOC only connected to the PI part of the SKIPR with USB.

Ah, and I did not use CANBOOT, but that might be unrelated.

SKIPR in normal UART Mode and SB2040 in CAN mode.

We can do that? I thought that it is impossible to mix and match between CAN mode and UART mode. Someone told me it has to be all CAN or nothing.

Anyways, I think I got SB2040 to recognize as you said. Should have done this earlier and saved me a lot of headaches. Still it’s weird how SB2040 is not work in can mode from skipr

First print with SKIPR & CAN connected toolhead :blush:

It worked fine :+1:
For the fact that nothing is optimized, I am very satisfied!

Specs:

  • modded Creality CR10v1
  • linear rails
  • Spider hotend
  • Sherpa mini extruder
  • MKS SKIPR
  • Mellow fly SHT42
6 Likes

When you are using an UTOC you can do that. If you put the SKIPR as bridge you need to use an external USB cable

Thanks. I merged PR #5988 (commit 1a693c18).

-Kevin

3 Likes

Are we sure stm32f407 cannot have simultaneous USART1 and CAN2? Looking at the datasheet there may have been issues with simultaneous CAN1 and USART1 because of shared pins but this is not the case for CAN2, maybe this should be re-evaluated.

Could be a reason MKS used CAN2 instead of CAN1.

A virtual can0 on the host tunneled over uart might be a possible alternative to USB Bridge.

2 Likes

Ok, so I have been watching this on the forum and finally decided to try it. No luck.

Can you guys share the procedure for getting the can0 interface working?

I currently have the skipr board working with a utoc1 and sht46 (not installed in a printer).

I have tried several attempts at getting this working with the latest pull from klipper (it looks like this was merged) but it cannot find the can0 interface. What are all the klipper settings in menuconfig for the mcu? I set it up like Nakajima has pictured but no dice. Are there any settings in the usb section? Do I need to have a usb cable connected from the pi section of the board to the mcu port? I have tried several things but it just cannot find can0. I have not tested plugging the sht46 into the board yet since I cannot get it to recognize can0.

yes you need a usb cable from the mcu to the host soc, make sure you follow the guides to get can0 network configured and up

Please help, i don’t know what i can do.
The TMC are configured, and before the patched can.c the printer.cfg worked with my U2C board!

Might not be of any help.

Did you read this CANBUS Communication timeout while homing Z - #57 by terra?

@terra uses an RK3588.

???
I don’t have timeout problems, i have the problem, that klippy tries to setup bus_spi2

Loaded MCU ‘mcu’ 107 commands (v0.11.0-66-g4671cf2d-dirty-20230115_094005-SKIPR / gcc: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] binutils: (2.31.1-12+11) 2.31.1)
Loaded MCU ‘toolhead0’ 107 commands (v0.11.0-66-g4671cf2d-dirty-
Loaded MCU ‘skipr’ 111 commands (v0.10.0-530-g3387a9c2

what are you doing on such an old version? v0.10.0-530-g3387a9c2

update klipper (make flash) on linux host and mcu to latest, you dont need patched anymore. I have it working with latest klipper (v0.11.0-86) on ebb42 mcu, skipr mcu and skipr host.

The logbis from the old patched one.
I’m already on the newest github master version, but didn’t solve my problem

Actual klippy.log: Starting Klippy...Args: ['/home/mks/klipper/klippy/klippy.py', '/home/mks/klip - Pastebin.com

Loaded MCU ‘mcu’ 107 commands (v0.11.0-88-g6273d7e0 / gcc: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] binutils: (2.31.1-12+11) 2.31.1)
Loaded MCU ‘toolhead0’ 107 commands (v0.11.0-88-g6273d7e0 / gcc: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] binutils: (2.31.1-12+11) 2.31.1)
Loaded MCU ‘skipr’ 111 commands (v0.10.0-530-g3387a9c2

Still behind on linux host

Already edited my post :wink:

Still behind on linux host (v0.10.0-530)

make menuconfig → select linux under Architecture
make flash

It changed nothing

Why is it trying to reserve spi2 on the toolhead?
How can i get rid of it

On the SKIPR it is PB12+PB13 !

The commincation works !
I can see both devices on the canbus

What made it work?

I deleted my post because I was looking at the wrong log (old downloaded logs) and I was going to wait until I am back at my shop so I can turn on the board I was testing canbus with to get the right log.

The Canbus communication worked since the patched sources.
But i didn’t get klipper up and running cause of the spi2 reservation…

UNTIL NOW !!!

i’ve got it up and running :sunglasses:

i’ve messed with the sourcecode and searched for PB13 in the stm32 folder and deleted every declaration of the spi2 with PB13

et voila, i have control over my board and toolhead

but i seem to have trouble with writing to my stepper_x via spi

i think i have to change the spi2 declarations to PE12,PE13,PE14