i wrote this guide over at bimmerpost:https://g80.bimmerpost.com/forums/showthread.php?p=29397382
gist here is that ESP32 is much much faster than nRF52 chips for CAN + BLE.
i have managed to get quite a list of decoded can bus values:
longitudinal acceleration 50 hz
lateral acceleration 50 hz
yaw rate 50 hz
speed 50 hz
wheel speed (for each wheel) 50 hz
battery voltage 10 hz
air temperature 1 hz
steering angle 5 hz
coolant temperature ~5 hz
engine oil temperature ~5 hz
gearbox shift speed (S1,S2,S3) 10 hz
very close to having:
brake pressure front 50 hz
brake pressure rear 50 hz
i have identified the messages, still figuring out the actual units / data range.
note that because of some bluetooth le performance issues, i have temporarily throttled some can frames:
100 hz -> 33 hz (every 3rd message)
50 hz -> 25 hz (every other message)
any messages at 25 hz or less, i deliver them as-is. no throttling.
i wrote my own CAN-bus driver for ESP32 (interrupt based) and i can handle 2500+ messages / second with many many CPU cycles to spare. The bluetooth stack is trash and i am hoping to write my own limited BLE stack with basic advertising and notify/read/write support for RaceChrono, as i am not limited by BLE bandwidth or ESP32 CPU, but the ESP32 BLE drivers (i have tried quite a few)
still have to release my source code on github, but waiting until i get out to the track later this month to give it a proper run before releasing the code.
here is a video of all this working in RaceChrono: