For fun, I put together a circuit with a display. The finished board with Teensy and MAX3051 drivers was assembled four years ago.
There is a CEM L with the number 30728542 (it is in the sketch list). So, Teensy, with different sketches, either does not find a single byte correctly or finds only the first two bytes to be correct. We tested options with USB power and external power via a 7805 converter.
In addition, Smok UHDS on the same CEM finds all bytes correctly in 7-10 minutes.
What is the problem with the Teensy circuit in this case?
Vida CEM swapping
-
vtl
- Posts: 4723
- Joined: 16 August 2012
- Year and Model: 2005 XC70
- Location: Boston
- Has thanked: 114 times
- Been thanked: 603 times
30728542 is a "difficult" one. I have it, the third byte success is always on the edge. My semi-guessed explanation why some CEMs are difficult: viewtopic.php?p=602113#p602113 Have seen 3 different routine alignments in memory, that one is the most difficult.repair wrote: ↑16 Oct 2025, 01:58 For fun, I put together a circuit with a display. The finished board with Teensy and MAX3051 drivers was assembled four years ago.
There is a CEM L with the number 30728542 (it is in the sketch list). So, Teensy, with different sketches, either does not find a single byte correctly or finds only the first two bytes to be correct. We tested options with USB power and external power via a 7805 converter.
In addition, Smok UHDS on the same CEM finds all bytes correctly in 7-10 minutes.
What is the problem with the Teensy circuit in this case?
How Smok cracks it? P3-style, via hash collision?
-
vtl
- Posts: 4723
- Joined: 16 August 2012
- Year and Model: 2005 XC70
- Location: Boston
- Has thanked: 114 times
- Been thanked: 603 times
The cracker has to deal with a lot of clock domain transitions. Each transition adds jitter and steals the precision. Some transceivers are worse than others. I never played with MAX3051, but it could be it adds more jitter than SN65HVD230DR does. You can try connecting Teensy's pin 2 to L pin of high speed CAN bus directly, that would avoid dealing with the transceiver.
Clock (frequency) domain problem explanation: viewtopic.php?p=659200#p659200
Assuming your hw was assembled right. This P/N is what I've used the most during cracker development. First two bytes are 100% reliable for me.
- repair
- Posts: 19
- Joined: 22 March 2021
- Year and Model: S60 II 2015
- Location: Latvia
- Has thanked: 2 times
- Been thanked: 3 times
I don't know how he does it. But Smok, after several attempts on this CEM, always identifies all bytes correctly and quickly. Although there were two different CEMs on which he only found two bytes correctly.
Volvo S40, V40, V50, V60, S60, S80, V70, XC60, XC70, XC90, C30, C70 - Р1, Р2, Р3, 1998 - 2016 - language replacement DIM, ICM, PHM.
- repair
- Posts: 19
- Joined: 22 March 2021
- Year and Model: S60 II 2015
- Location: Latvia
- Has thanked: 2 times
- Been thanked: 3 times
- Attachments
-
- LOG.jpg (112.81 KiB) Viewed 322 times
Volvo S40, V40, V50, V60, S60, S80, V70, XC60, XC70, XC90, C30, C70 - Р1, Р2, Р3, 1998 - 2016 - language replacement DIM, ICM, PHM.
-
vtl
- Posts: 4723
- Joined: 16 August 2012
- Year and Model: 2005 XC70
- Location: Boston
- Has thanked: 114 times
- Been thanked: 603 times
I lot of counterfeit Chinese junk these days. A few stories right in this thread that people got it working by replacing the transceivers with the same ones, but from a different seller.
-
dikidera
- Posts: 1304
- Joined: 15 August 2022
- Year and Model: S60 2005
- Location: Galaxy far far away
- Has thanked: 67 times
- Been thanked: 175 times
After analysis from Claude on the vida sources, it appears that when enumerating ECUs , the communication layer for each ECU is stored in Scripts, and not in the T_Init tables which are fetched via vadis_GetHwInit or vadis_GetDiagTimings SQL stored procedures. Those return incorrect speeds for our profiles, so Scripts instead supersede these tables, scripts describe how to read and clear DTCs, how to enter DownloadMode etc.
-
Arty
- Posts: 12
- Joined: 9 May 2024
- Year and Model: 2006 S60
- Location: Russia, Krasnodar
- Has thanked: 7 times
If I understand correctly, then using this method I can get the flash from my CEM-L, modify it and write it back, right?vtl wrote: ↑10 Sep 2021, 08:33 Yes. And this: viewtopic.php?p=575090#p575090
Get both versions of m16c-flasher.de, beta can read, release can writeAdd next to the config file:
[Controller]
Name=M32C@0xFC0000
Group=Generic
BaseAdr=FC0000
Blocks=1
From=FC0000
Size=40000
[end]
And select this controller in the menu.
-
- Similar Topics
- Replies
- Views
- Last post
-
- 1 Replies
- 6396 Views
-
Last post by RickHaleParker
-
- 5 Replies
- 8644 Views
-
Last post by forumoto






