In your situation, the ECM is speaking CANBus (industry standard protocal for engine control systems) and Command Link is speaking a Yamaha proprietary protocal. If you have temp data in Command Link, it’s available from somewhere.
Without doing a deep dive into the documentation, I don’t know why temp wasn’t available in NMEA until 2006. Could be they took temp off a different bus prior to 2006. Could be temp wasn’t added to the gateway until 2006 and you just need a different or updated gateway
In your situation, the ECM is speaking CANBus (industry standard protocal for engine control systems) and Command Link is speaking a Yamaha proprietary protocal. If you have temp data in Command Link, it’s available from somewhere.
Without doing a deep dive into the documentation, I don’t know why temp wasn’t available in NMEA until 2006. Could be they took temp off a different bus prior to 2006. Could be temp wasn’t added to the gateway until 2006 and you just need a different or updated gateway
It appears as though the ECM actually speaks both the CANBus protocol (specifically ISO 9141-2, or at least that is what my scantool identifies it as) as well as NMEA 2000 protocol because, when I looked at the wiring diagram in the service manual (LIT-18616-02-76) all the sensor wires go directly to the ecm as well as the blue & white NMEA 2000 wires, and finally the engine diagnostic bus wires.
This tells me that the ECU is receiving all the sensor data and it's available on both buses. Having said that, the Command Link gauge that my dad has (round, 6Y8T-20) is actually receiving data off the NMEA2000 bus.
I'm 100% certain of this because, before I installed the chartplotter, there wasn't a NMEA 2000 backbone (at least not separate from the cable being used for the gauge, no Yamaha hub) so I created a SeaTalk (NG) one for the Raymarine chartplotter (and other goodies). Since I used the same engine connector (with the blue & white wires) that the Command Link gauge was connected to, I needed to put the gauge on the newly installed backbone. To do this, I removed the inline 120 Ohm resistors from the cable (that originally ran from the engine to the gauge) and spliced the gauge into a spur cable (which connects to the SeaTalk NG backbone).
Thus, the round CL gauge and the Raymarine chartplotter are both on the same NMEA2000 bus and are both receiving the engine data off it. Since the CL gauge can see the temp, but the chartplotter can't I'm GUESSING that Yamaha was using a nonstandard parameter ID (or whatever NMEA 2000 calls it, I'm not familiar with the inner workings of it like I am with road vehicle protocols) prior to the 2006 model year for engine temp.
If so, as I see it, I'll need to either install a controller on the bus which also receives the sensor data and outputs it with the standard NMEA 2000 parameter ID, or upgrade the ECU to one that uses the standard NMEA 2000 parameter.