Not to get in the way of your progress, but I'm curious if someone can summarize or just comment on what you've learned about the relative speed of SDRAM to TCM, RAM, PSRAM?
Yes, only loop() will be blocked. What I'm saying is that if you want to avoid those occasional long blocking times of 40+ ms, there is an easy way to do it.
SdFat is blocking for both read and write. There is a fairly recent thread where someone modified SdFat to do non-blocking reads, but not writes. There is a way, though, to limit blocking times to 5-6 us and avoid the very long blocking times of...
You can't recreate source code from what is stored in the Teensy. but the Arduino build process does save something very close to your original source code. If your sketch was named MySketch.ino, search your disk for "MySketch.cpp", or perhaps...
Have you looked at the library below? It seems to be pretty well documented and there are examples of sending byte-oriented messages to a LIN slave. You should be able to translate the STM32 example into function calls for the Teensy library...
If you're willing to try one more thing, try the line below, which avoids the integer division and truncation of (RPMSum / RPMCount).
WRPM = (60.0f / PICKUPS) * RPMCount * RPM.countToFrequency(RPMSum);
I think the problem is you are using uint32 for both sum and count, and the integer division is throwing away all of the resolution. Make sum double and it should help.
Kris, glad you got the FMM library working for you. If the value on your Y axis is RPM, and X is seconds, I'm trying to understand why you have 0.5 RPM resolution. 900 rpm is 15 rev/sec, so you should have 15*4=60 (+/-1) periods per 1-second...