Interesting. If I understand correctly 1 most node is the ‘master’ and usually this is the headunit or gateway in the car system. I would have assumed that the main usecase for these boards is to use them in master mode, but I suppose that may not be the case.
The main use so far has not been as a master, there’s definitely a use case for it, however I am unsure if the HAT may serve a better purpose here, having the canbus channel too is useful when the original gateway also handles the CAN communication. I personally use a HAT version as a 44…1khz master, and use this to test the USB board on at 44.1khz, it does work quite well
I would have also assumed that (at least a 1st revision) of the USB most board would expose the relevant headers/pads to use it as a defacto hat as well, but from your comments I take it that this is not the case?
The HAT does direct spi comms to the MOST chip. The USB version, the MCU does this comms to the MOST chip, however it accepts the same (and currently more) commands that the HAT does over spi, it is just these commands are transmitted/received over USB CDC instead so much more compatible and easy to set up. You can see in the beta version of socketmost the api similarity between the HAT and the USB version. The USB version just also supports standalone mode when the extra features are not needed.
I understand you’re probably not willing to share the source for your firmware but I would be more than happy to assist in development if/where needed.
I will likely release the source code for the firmware when it’s a bit more mature, still lots of learning and development happening, and likely will do for some time as people are testing/feeding back.
I think I could probably use a headunit to act as a master node if needed, though I would ideally end up writing the relevant firmware to completely replace it, so not only injecting audio, but also changing settings/coding parameters or flashing firmware updates to the most-connected devices.
I have a lot of existing experience with reverse engineering canbus networks, so I expect this should be relatively quick assuming I can get set up, since I have all the relevant modules ready to test on the bench.
I’ve spent a huge amount of time now reversing CAN and MOST. I would say MOST is generally more straight forward, alot of the devices I have looked in to generally follow the MOST specification making it very easy. Sometimes, such as in JLR certain FBlocks like the AmFmTuner are completely custom, which then make it more of a pain. The way I have found best is to take the same address as the OEM FBlock, and then you can see all the messages that come in on any actions you perform. Then you can take the address of the device sending those messages and see the messages sent in to it aswell, it’s easier if you have two MOST Hats, but perfectly do-able with one.
I am assuming that since you are working on a Jaguar yourself the usb boards also have the ‘wrong’ timing crystals to work as a master node in a BMW?
I will do the same as the HAT and offer a version with the correct crystal for both 44.1khz (BMW, Mercedes, Saab) and also one for 48khz (JLR, Volvo etc). When not in master mode, if the board is set to legacy mode the crystal doesn’t matter.