Thanks again Manny for starting this topic, and thanks Alan for the isolation advice. I got everything buttoned up yesterday, and it's working great! It's not very pretty right now (I still need to clean some stuff up), but it's perfectly functional. I ended up developing the dashboard in .Net. It's what I use everyday at work, and I'm way quicker doing things in .Net than I am in Android Studio. Right now, everything is running on an Intel PC stick, but it should be relatively easy to get it to run on a Raspberry Pi or similar SBC using Mono. If anyone is interested, I'll post the sources once I clean things up.
Any HDMI screen would work. I went with this one because it was already in a decent case:
https://www.amazon.com/gp/product/B01I1 ... UTF8&psc=1
So far, the screen displays:
* battery State of Charge - I'm just using a SOC estimation based on no-load voltage assuming 20S pack. This could be changed very easily to any pack configuration.
* Speed - There's a wheel size constant that needs to be changed for different wheel sizes.
* Motor and Controller Temperature - these are plotted on an area chart at the bottom of the screen. The window period is approximately 3 minutes
* Pack voltage & average cell voltage (Pack V / # series cells)
The battery SOC estimation will only update when the throttle is completely "off" to prevent the voltage sag under load from impacting the estimated SOC. This means that if you go wide open throttle non-stop, the battery SOC will never update, and it will report no change until you release the throttle. A future improvement would be to create a definable battery source resistance and account for voltage sag under load. This should be doable since the controller reports both battery current and battery voltage. This would allow SOC updates to happen at any load.
Has anyone else noticed the offset in the returned value for motor temperature? The value returned by the controller increases by about 5-10 degrees C when the wheel is spinning. I observed this behavior both in the official Sabvoton app and my application. I tried to correct for this offset in software, but it's not perfect.