Sync 3 APIM Bench Test Project Completed

Can you share what CAN-bus messages worked for you by pasting them here? I can then incorporate them back to my project.

It’s actually the exact same CAN-bus messages incorporated into your project. I’m just using a MCP2515 with a Mega2560 Pro Board. This combined with a 120ohm resistor and a dual channel relay to bridge the can for the 2020+ APIM/Displays. I’m by no means good at coding so I used GPT along with bits of your code to come up with my own. Here are the two revisions of code for my Arduino project if that helps any.

Revision 1: Worked on any APIM <2019 and worked on APIM’s 2020+ only after adding a specific Asbuilt configuration…Don’t recall any brightness issues.

Revision 2: Tested and works on any APIM 2016+(Haven’t tested Sync 4 APIMs, or Sync 2 APIMS) with any asbuilt configuration… Has brightness issues on sync 3.4(Dim display)

So same CAN messages. Then what is different? Your code looks like a copy of mine except modified to work against “mcp_can.h” instead of the excan library.

Also what is this dual channel relay thing? Where does that go in the circuit?

Exactly. I’m not one for coding at all so its practically yours with a bit of GPT mixed in LOL. The “Dual Channel Relay” is a HK19F-8P-12V connected to a 12v switch this just bridges HSCAN and ICAN to get FORscan functionality. Although switching the relay makes no difference in actually powering on the display. I will also note that I changed “uint8_t txDataLen = 8” to “11” and for whatever reason this worked to properly turn it on. Again I’m not good at coding what so ever and kind of just tinkered with things until I got it working.

Interesting, I think that could be something. How did you arrive at 11 vs 8?

I honestly do not recall how I got 11. I went through my GPT conversation and I just stated that the value 11 worked over 8.

I believe I originally attempted to use “12” or some other value, I even recall at some point it being “29” all of these values worked to some degree but 11 just happened to turn the display on. It was kind of a educated guessing game of just putting numbers in.

Weird, but cool I will have to try it and see if it makes a difference, except I don’t have a newer APIM or screen. Probably time to get a new ride.

Well that’s just nuts.
I’m working on a long-shot project and trying (and failing) to bench-test one of the newer IPMAs. The gateway module keeps going to sleep, so I wanted to try hooking up my old Sync APIM to keep it awake.
Well, the APIM keeps going to sleep too, so came across this project.

I was honestly surprised to see a link to my own findings on Explorer Forums in the source code, and my pastebin in this thread :wink: Really glad to see someone else was able to make use of it!

That is awesome, thanks for providing that info in your original post. That was helpful.

I changed the can_message array length and txDataLen variable values from 8 to 11 and tested it on STM32 and Arduino Nano based CAN bus emulators, but the modified code failed to display anything on SYNC 3 screen when I connected the 54 pin connector to APIMs manufactured in 2019 and 2020. After these failed attempts, I decided to check the APIM AS-Built data and connected the OBD2 adapter to the CAN bus emulator OBD2 port. Then using FORScan changed the 7D0-08-01 - 7D0-09-03 settings to all zeros and that change fixed the issue. Next, I changed one value at a time and found out that Message Set (MS) setting in the 7D0-08-01 was causing the problem.

7D0-08-01 xxx* xxxx xx

0, 1, 2, 3, 8, 9, A, B ← These values work fine and set the Message Set(MS) to Legacy from New.

4, 5, 6, 7, C, D, E, F ← Change these values to 0, if you are using the STM32 or Arduino based emulators.