Author Topic: TSC1 SPN4206; 4207  (Read 25223 times)


  • Guest
TSC1 SPN4206; 4207
« on: June 29, 2015, 02:44:42 PM »
Hello everybody,

is there anyone out there who can help us...?
We are trying to set up a Volvo TIER IV final engine.
To control this engine via PGN0 we need to provide the checksum and counter (SPN4206; SPN4207)
Unfortunately these SPNs are not provided from Danfoss.
The counter seems not to be a problem. It counts from 0..7 and is provided in the first 4 bits of byte 7 (8).
When we code the calculation of the checksum as described in J1939 to plus+1, we receive other results, then expected from the Volvo engine.
Has anyone tried to control a engine which need these SPNs?


Offline ssutherington

  • PLUS+1 User
  • **
  • Posts: 5
  • Karma: +0/-0
Re: TSC1 SPN4206; 4207
« Reply #1 on: June 29, 2015, 07:16:01 PM »

On a recent Danfoss training day, one of the developers suggested there was an issue with the CRC calculation in the Plus 1 TSC1 block. It was suggested that the block would be fixed in the next release.

We recently had a project involving a Volvo D11 TIER IV final, after some testing on the machine and some communication from Volvo, we found that the message counter and CRC are optional. We finished up using the standard TSC1 block (V2.21) supplied by Danfoss in an earlier J1939 library. The older TSC1 Block did not support message counting or CRC, as a result it transmits 0xFF in its place. Volvo's ECM see's these parameters as not supported and disregards them.

We did investigate creating our own block, calculating the CRC is not difficult to do, we found the calculation in the documentation from Volvo.

We have since had many machine in the filed with no issues.

One trap for the younger player.. the source address for the TSC1 has to match a value pre-set in the Volvo ECM. That one had use scratching our heads for a while.


  • Guest
Re: TSC1 SPN4206; 4207
« Reply #2 on: June 30, 2015, 11:51:10 AM »
Thanks for your reply.
Unfortunatenly our Volvo dealer says, that we had to use the checksum and the counter.  >:(
When we code the calculation manually, the engine rejects it :'(. Are you able to provie a screenshot from your calculation? Maybe I could locate the mistake.
Meanwhile we switch over to PGN65350. There is also a checksum needed, but this calculation works fine.


  • Guest
Re: TSC1 SPN4206; 4207
« Reply #3 on: July 05, 2015, 01:50:35 AM »
Hi Quax76

If you've received the same documentation as I have received from Volvo, you probably have a text telling you the counter is to be placed on bit 44-47 and the checksum on bit 40 - 43, while the included Volvo screenshot places the counter value on 40-43 and the checksum on 44-47...  AFAIK the counter needs to be placed on bits 40-43.... 
I'll find out in a few weeks, since I'm on the verge of power up...

This is an extra layer of CRC in the 8 byte data field, and has nothing to do with the CAN Frame CRC field  (15+1 bits, just before the ack bits)

@Mr SSutherington:  What version is possibly Bogey?

Offline ssutherington

  • PLUS+1 User
  • **
  • Posts: 5
  • Karma: +0/-0
Re: TSC1 SPN4206; 4207
« Reply #4 on: July 06, 2015, 10:01:16 AM »
Just my two cents from our experience...

The latest TSC1 block from the 2012 library will calculate the CRC and add the msg counter.
Around 1 year ago we used this on a Volvo D11 T4f, the engine rejected the TSC1 message and suggested the CRC was bad.
As a quick fix we changed back to an older TSC1 block (V2.21) which did not calculate the CRC, just sets the bits high. This allowed us to control the engine without any issue. As is always the case there was not any time to dig into the issue during the startup of the machine.

In March of this year we were at a Danfoss conference, where one of the developers suggested there was a newer J1939 library due for release this year, one of the updates was a fix to the TSC1 CRC calculation. ( A ha, that's why our Volvo engine was giving us bother !!)

Looking at the CAN data this morning, using the later TSC1 block, the CRC never changes as the message counter changes, this looks a little strange.

The J1939 SAE spec suggest the CRC calculation to be

Checksum = (Byte1 + Byte2 + Byte3 + Byte4 + Byte5 + Byte6 + Byte7 + message counter & 0x0F + message ID low byte + message ID mid low byte + message ID mid high byte + message ID high byte)
Message Checksum = (((Checksum >> 6) & 0x03) + (Checksum >>3) +  Checksum) & 0x07

focusing on
+ message counter & 0x0F +
suggest that the msg count is included in the calculation, given that the lower nibble of byte 8 is the counter and the upper nibble is the CRC.

I have nothing to test against or compare it to, its only my two cents. Attached is a quick attempt to calculate the CRC given the above calculation.

The best action here is to contact the help desk, chances are they already now of the issue and have solutions.

Attached are 3 files

Trace_TSC1_V221.png - screen dump of a CAN trace from our Volvo machine, Not using CRC and Msg counter.
Trace_TSC1_V3.png - screen sump of a CAN trace using the later V3 TSC1 block with the CRC and Msg counter.
CRC.SCS - my attempt at calculating the crc, note- this was never used on a machine so may still be incorrect.

Offline spittet

  • PLUS+1 Guru
  • *****
  • Posts: 118
  • Karma: +6/-1
Re: TSC1 SPN4206; 4207
« Reply #5 on: March 30, 2016, 04:55:14 PM »
I want to add to this thread.

We tried controlling engine speed on a Hatz 4H50TIC engine which is Tier4 Final. We used the TSC1_TX1 block v3.00 from Danfoss. The engine responded to engine speed request change up to 1200 RPM. More than that and the the engine returns at idle with a SPN1108 engine code.

As stated above, the solution was to set the CANData_7 at 0xFF instead of the variable checksum.

To do it, we build a custom TX message, but it would be nice if the TSC1_TX1 block could be updated so that this checksum can be set ON or OFF.


Offline Nilla

  • PLUS+1 Guru
  • *****
  • Posts: 253
  • Karma: +13/-0
Re: TSC1 SPN4206; 4207
« Reply #6 on: April 25, 2016, 03:02:34 PM »
Hello Spittet!

There is a later released version 3.03 from July 2015, have you tried that? If you have and still have the same problem please send your project and problem description to so that we can investigate it.

Best regards,

Nilla Troedsson
PLUS+1 Helpdesk

Offline pinias

  • PLUS+1 Guru
  • *****
  • Posts: 220
  • Karma: +7/-0
Re: TSC1 SPN4206; 4207
« Reply #7 on: February 14, 2020, 01:38:29 AM »
Hey guys,

did you solve your issue?

I am trying to set engine RPM of an FPT TIER4 engine but it seems to ignore my request.

I am using the TSC1 V5 of Danfoss it comes with the checksum choice but still the mesage is not taken by the engine ECM

has anyone used the latest TSC1 V5 from danfoss in a Tier4 engine, ?

if so, what were your settings?