There is another thread where people initially were trying to set up non-standard data channels for ND2 Miata, but it quickly turned into a broader discussion about CAN logging, etc.https://racechrono.com/forum/discussion/1854/can-bus-data-logging-was-custom-obd-ii-channnels-for-miata-nd2/
I figured it would be valuable to start a new thread with all the important information presented in a more beginner-friendly way.
OBDLink MX+ in the "Experimental CAN" mode.
It provides refresh rates of ~40 updates per second, which is significantly higher than what you can get using the regular OBD-II mode.https://github.com/timurrrr/RaceChronoDiyBleDevice/blob/master/can_db/mazda_mx5_nd.md
lists how to set up the most common/important channels.
Accelerator position (%)
(Surprisingly, the standard OBD PIDs for accelerator communicate values in some weird ranges. This PID gives data in a 0–200 range, but at least that looks deliberate)
Brake position (%)
OBD-II header: 0x760 (not sure if necessary, what's the default value?)
Equation: max(0, bytesToInt(raw, 1, 2)) / 2.3
(You can try other multipliers if you find the number to be too high or too low for you. You can also wrap it with "min(100, ...)" to limit to 100%.)
Tire pressures, if your Miata has TPMS sensors (I believe earlier model year NDs had indirect TPMS only):
OBD-II header: 0x720
PIDs: 0x222a05 (FL), 0x222a07 (FR), 0x222a06 (RL), 0x222a08 (RR)
Equation: B * 1.373
You'll probably want to use the PIDs for tire pressures to be set up as "Slow channels". Their values don't change that often, and making them "Fast channels" would consume too much of the limited OBD-II bandwidth, negatively affecting the update rates for the more time-sensitive channels such as pedals.
There the CAN mapping for the steering angle is documented on my github.
(although it might be a little off/buggy, I've seen some interesting data artifacts from NDs on that channel)