MKS SKIPR CAN Bus

Hmm, really strange.
When i’m home again, i’ll try to figure it out with an oszilloscope.
Maybe someone has a data analyzer, would be easier.

120ohm resistors on both ends activated?

I have an oszilloscope and a logic analyzer with CAN-bus support :slightly_smiling_face:
I will take some measurements next weekend.
I have just measured the resistance between can-H and can-L: 117 ohm on the SKIPR side and 60 ohm on the SHT36 side :thinking:
As far as I know is 60 ohm the correct value. The two 120 ohm terminating resistors are connected in parallel and thus form an equivalent resistance of 60 Ω.

Why skipr has 120 ohm between H/L?

I took a deeper look under the microscope and can say that R265 and R266 are 60 ohm each and connected in series.

Could this be the reason for the malfunction?
I have never worked with the CAN bus and don’t really know anything about it.

1 Like

Nope, both side should have 120 ohm resistors, when the line is connected, you should measure 60 ohm on each end, like you said equivalent resistorvalue.

If you put two 60 ohm resistors in serial, you’ll get 120 ohm, that’s ok. But why they used two of 60 instead one 120. Maybe they had the 60 loaded in their pnp system and did want to use an extra amount of 120 for only one position

1 Like

The reason is a capacitor between the resistors…

The fly sht36 board has a different wiring…


The two resistors are not between H/L, they are into the lines :person_shrugging:
I’ll dig deeper after sleeping :yawning_face:

They placed the capacitor at the wrong place :rofl:

Who? Mellow or MKS? Could this be the reason?

Mellow, they connected the resistor directly to ground and the capacitor between both resistors.

You need 120 ohm terminator resistors for the bus, this way you won’t get it.

Should be the same like on the mks, the capacitor between ground and both resistors

But i don’t understand why both grounded this parts.

A termination should be only between both data lines, one single 120 ohm.

But on the Octopus it’s grounded too, so this shouldn’t be the problem.
BIGTREETECH Octopus Pro_SCH (1).pdf (363.0 KB)

Okay, but the Mellow works flawless with my RS485 Can Hat on a Raspi Pi :person_shrugging:

I found an explanation for that wiring:

"Instead of providing a single bus termination resistor at each of the ends of the communication channel, the ends of the [CAN bus] may be terminated with a split bus termination instead.

A split bus termination, consisting of two identical resistors (60 Ohm) and one capacitor (typically 4.7 nF), acts like a low-pass filter; high-frequency signals are shunted to ground without affecting the d.c. voltage relationships. Measurements have shown that this can improve noise immunity and reduce emissions."

So IMHO it seems to be ok.

Yeah, i think it may work, because the bus length isn’t that long.

But i would recommend only one side to grund, so i myself would short the capacitor on the mellow and cut the ground connection.

Common way in electrical environments to have only one side to ground.

1 Like

This all sounds good, but the problem persists on different toolheads it seams. SB2040( which has one 120ohms resistor), Fysetc CAN TH, the SHT boards…
I really think the problem is on the SKIPRs side, not the toolheads. (As one can read elsewhere Octopus seems to work with the different toolheads)

Yes, I absolutely agree with you.
I have hopes that I will find a fault on the Skipr PCB that does not match the schematic. Next weekend I will measure the PCB and also put the logic analyzer on it.

1 Like

This screams for a live stream :stuck_out_tongue_winking_eye:

I know that the resistors shouldn’t be the problem here. It’s only a general consideration for the signaling and interferences.

1 Like

May I suggest that you read the CAN BUS Specification (especially page 4):

CAN has two floating differential data lines that are terminated at each end. The capacitor between the two 60 Ω resistors is known as a “split termination” and provides reduced emissions as the resistor/capacitor networks form a low-pass filter. This is discussed on page 7 of the TI document linked above.

1 Like

Nice document, thanks.
But it’s what i said, like in 4.4
Ground only on one side!


And if you look at the mellow, they made a mistake, they put the capacitor in the wrong place.

Yes, grounding only on one side is correct in terms of shielding!
But grounding the capacitors on both sides of the bus has nothing to do with the shielding. So we can disregard that.
In case of the split termination grounding on each side is correct.

split

Yeah, ok.
But mellow did it wrong.

But shouldn’t be the problem of no communication

Okay guys, because I’m so curious, I started taking measurements today and not at the weekend.
Here is what I have found out:

  1. First measurement - CAN-L/CAN-H at CAN-Connector - No signals measurable at the logic analyser!
  2. Second measurement - input pins TXD/RXD at VD1050 CAN Bus Transceiver - No signals measurable!
  3. Third measurement - output pins PB12/13 (CAN2_RX, CAN2_TX) at STM32F407 - No signals measurable!!!

Here are the measuring points on the circuit diagram:



Test conditions:

  • Mellow SHT36 toolhead connected (CAN). Not initialized
  • Klipper connected via built-in USB-CAN-converter. Initialized and running
  • Start of data acquisition on the logic analyzer (7s)
  • UUID-scan on linux to generate traffic on the CAN bus

As expected, the CAN-H line showed a high signal and the CAN-L line a low signal. However, no data was transmitted and no signals could be measured.

My conclusion:

  • Either the issue is on the Klipper Software site

  • or the STM32F446 (Octopus) behaves different to STM32F407 (Skipr)(Klipper driver?)

Other ideas?

1 Like

Okaaaaay? Nice work dude.
So, than it’s not wondering why we can’t find any devices.
Maybe you can desolder the transceiver or R263 and R264 to get a clear signal without any interferences maybe from there