VOTOL serial communication protocol

recently I tried on Arduino, below codes tested fine with bluetooth as well as serial direct connection, the serial port/BT connects to pin 8 (Rx) and pin 9(Tx) of Arduino pro mini in my case. notice you need to cross connect from 8 to Tx of Serial port/BT, and 9 to Rx of Serial port/BT. the real time information (24 bytes) stored in Rdata[24], and show on serial monitor, you can insert your code in dataProcess() to show on OLED, LCD, etc.

C++
#include <Arduino.h>
#include <AltSoftSerial.h>
#define LED 13
AltSoftSerial AltSerial;
const byte Sdata[] = {0xc9, 0x14, 0x02, 0x53, 0x48, 0x4f, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x1e, 0xaa, 0x04, 0x67, 0x00, 0xf3, 0x52, 0x0d};
const size_t dataLength = 24;
const int flash_msec = 200;
byte Rdata[dataLength];
int index;
int arrIndex = 0;
unsigned long currentMillis;
void dataProcess()
{
for (int i = 0; i < 24; i++)
{
if(Rdata < 16)
{
Serial.print('0');
}
Serial.print(Rdata, HEX);
Serial.print(" ");
}
Serial.println();

}
void setup() {
// initialize serial communication at 9600 bits per second:
pinMode(LED, OUTPUT);
AltSerial.begin(9600);
Serial.begin(9600);
delay(200);
currentMillis = millis();
}


void loop()
{
if(millis()-currentMillis > flash_msec)
{
currentMillis = millis();
AltSerial.write(Sdata, dataLength);
}
if(AltSerial.available() >= dataLength){
AltSerial.readBytes(Rdata, dataLength);
dataProcess();
}



}
 
compared with SIF communication, I prefer the serial port, especially when no load testing at home. the resolution of SIF is only 1A, you have 0.1A at serial port.

with a bluetooth (slave mode) connecting directly on votol serial port, you can pick the data and show via another BT in mast mode binding with the salve BT, or you can connect via phone/PC to adjust the parameters just not at the same time will be ok.
 
Last edited:
compared with SIF communication, I prefer the serial port, especially when no load testing at home. the resolution of SIF is only 1A, you have 0.1A at serial port.

with a bluetooth (slave mode) connecting directly on votol serial port, you can pick the data and show via another BT in mast mode binding with the salve BT, or you can connect via phone/PC to adjust the parameters just now at the same time will be ok.
Yes, serial gives far more complete and useful data, you have no EMI issues. However you lose the mobile app connectivity that I really need. On my votol I use serial instead of SIF and do passthrough so that I can do bluetooth programming also.
 
tha

that is emi. first of all make sure the ground you are using to power up your esp32 comes directly from the votol. I am still having some emi issues with my 72680 fardriver when drawing big phase currents.
By ground, do you mean B- or should some other ground wire be used? For the LIN (or one-line?, 1-wire? SIF?), the controller has a single round connector - at least that's what the diagrams state.

I'm not exactly sure how the wiring works on the other port either. My EM260GTSP has 3 pins on the debug port - orange, blue and brown. The USB dongle that came with it has just orange and blue. Works fine with my PC, in both directions, with the settings of 115200 baudrate and CAN disabled.

I've been powering my Votol with a lab bench isolated PSU, and the dongle being connected to PC has the USB ground. If that's RS485, I think that can work without common ground? Is that the case here? If it was CAN, it would be more understandable...

In 12V lead acid systems and ICE engines, virtually every vehicle connects the ground to the chassis, engine, all mechanical parts. I'm not sure if going with this with the huge electric battery is a good idea, I thought most of those are left floating.
 
I think I get it now, the blue USB dongle isn't just transcoding serial, it does some internal processing to convert the input serial frames (24B) into two 8-byte CAN frames, and then returns the 3x8B response frames.
 
Just wondering is any chance to control the EM100 or EM150 by uart (from my micro-controller) ?
I mean throttle, brake signals are all from uart or CAN ?
cheers
Hey, Have you tried with any other micro-controller like arduino, esp32,... ?? If you are able to connect it and communicate between votol em100 controller and other microcontroller, I would like to know about it. I want to connect it.
 
I just want to thank you guys for sharing this data.
I am now controlling my KT LCD8H display with my votol em50-4 with the help of a little arduino nano board.
At the moment I'm using the serial programming port to get the data, but I intend to use the one-line output so I can keep a hc05 to the programming port and have access to the controller settings via bluetooth.
Hey,
How did you connect arduino nano board with votol controller? I want to connect esp32, But i am not able to do it. Can you please explain me?
 
Back
Top