I have an ESP32 sending a PWM to vesc PPM (Spintend 100v U1) , ESP32 powered by VESC 5v . I use it as a cruise control when on ebike pedal assist. I am using the SolidGeek library to send data to a display. Everything works great except when accelerating the processor seems to slow down I can see the data sent to the phone while riding. All the calculations slow down. When testing the bike wheel off the ground, the data is as fast as lightning! So current seems to affect UART performance?
I tried using bluetooth UART with the Solidgeek library but port not receiving any data, I tried to have it read UART every 10ms or so, that makes it faster but getting other weird effect. has anyone used Solidgeek with bluetooth or even better, CANBUS?
Data speed deterioration at higher current is caused usually by interference (from the high current). You can try to shield the wiring and/or move them further away from phases and battery wires, or anything else carrying high current. But CANbus is really the way to go because it's designed specifically to tackle these kind of issues.
NextGen FOC High voltage 144v/34s, 30kw (https://vesc-project.com/node/1477)
Thank you. I just solved it, I use two I2C buses at the same time for a display, and that was slowing down the esp32 rx/tx UART, all I did is change some code and have the I2C called at intervals, in my case every 300ms was enough for my nixie tube display to run.