Skip to content

This repository contains infornation about data exchange protocol of goldenmotor VECxxx family controllers and PI-800 program.

Notifications You must be signed in to change notification settings

SunnyWolf/goldenmotor_protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Goldenmotor Protocol

This repository contains infornation about data exchange protocol of Goldenmotor's VECxxx family controllers and PI-800 program.

Navigation

  1. Intro
  2. Protocol description
  3. Commands

Intro

Many times I was trying to get info from Goldenmotor's managers about possibility of connection between their controller and external systems, but every time they told me that it's not possible and didn't reply me any more. But their site contains following info: "Controller has UART, CAN, Bluetooth interfaces". So I decided to conduct a study and present some results here.

In this repo you will find information about connection protocol and C code examples from PI-800 program.

If you have additional information about Goldenmotor's controllers and you want to help this project, please contact me or make pull request.

Protocol description

Data packets

All data packets in this protocol has length <= 256 bytes.

START CMD LENGTH PAYLOAD CRC
0x66 1 byte 1 byte 0 .. 32 bytes 1 byte

START

Start byte 0x66. All packets start with this byte.

CMD

Command type. For more info see list of commands page.

Length

This fild indicates payload length in bytes.

Payload

According code that I found in PI-800, data payload length can be 0 or 32 bytes. If payload length = 0, controller request for data or check connection. If payload length > 0, controller send data to user. Mainly payload contains items with 1 or 2 bytes length. Byte order is little-endian.

1 2
HByte LByte

CRC

Data verification value (1 byte). The value is calculated by summing all bytes in data packet and takes low byte.

uint8_t crc = 0;
for (int i = 0; i < packetLen - 1; i++) {
	crc = (uint8_t) (crc + packetBuffer[i]);
}

About

This repository contains infornation about data exchange protocol of goldenmotor VECxxx family controllers and PI-800 program.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published