Working to decode the CAN bus messages of the BMW F800, I've managed to control my light bar using:
ESP-32 (Overkill but all I had)
MCP2515 module
IRLZ44N MOSFET
12v to 5v buck converter.
I've posted the code in a gist along with a means to try and decode messages.
https://gist.github.com/SilverCory/1e...
I plan on writing an easy detect program which can decode actions by asking to repeat several times and comparing messages each time.
I've yet to experiment with sending data to the canbus, the port I am using is for a Tyre Pressure Monitoring System (TPMS) and may be firewalled accordingly.