the communication is at 115,200bps
packages are send separately by servo; it doesn’t seem to be a bulk send instruction
the package has the following structure:
byte 1 and 2 = preamble = 0xFA 0xAF
byte 3 = servo ID
byte 4 = Command; for go to command we have = 0x01; we will try to find some other commands shortly
byte 5 - 8 = Command parameters; for command = 0x01 (go to) they are:
byte 5 = position = 120 + desired position in degrees
byte 6 = duration = duration in ms / 20
byte 7 = 0x00 (? we don’t know what this is yet)
byte 8 = 0x01 (? we don’t know what this is yet)
byte 9 = checksum = sum(byte 3 through 8) mod 256
byte 10 = closure = 0xED (from END?)
the servo returns one byte that seems to contain something specific to the ID of the servo (for ID 1 it answers with 0xAB, for 5 it answers with 0xAF; the content could be a status information where each bit has a meaning, similar to the status packet in the Dynamixel protocol
FA AF 01 04 00 00 00 00 05 ED switch on led light
FA AF 01 04 01 00 00 00 06 ED switch off led light
Write servo:FA AF id 01 angle ? ? ? SUM ED
Servo response:FA AF id AA ? ?real angle sum ED
Read data:FA AF id 02 00 00 00 00 SUM ED
Present experiment order (CD order is modification servo ID.)
Order can do experiments in 01..FF sequence.
Frame header:FA AF;frame ender:ED,SUM=ID+order+parameter,get the lowest 1 byte
Frame header (2 byte) ID(1 byte) order(1 byte) parameter (4 byte) SUM(1 byte)frame ender(1 byte)
Communicaton protocol format (length:10 byte)
Initialization,electricity is on.And then separate it and control single servo with computer TTL.
Connect computer TTL serial to the servo port.The computer (sscom32 serial software) can record it to the file when playing robot.
Protocol analysis method:(need robot)
Modify ID:FA AF ID CD 0 newid 0 0 SUM ED
being able to control this LED eye with ezb would also be very cool ( https://alexsonea.com/2017/11/19/jimu-led-light-breakdown/ ) unfortunately I don't have the skills to create a plugin, but would be more than happy donate some $ to someone who can
yes they have a few FB off UB
The protocol can easily be reverse engineered using a logic analyizer. I use saleae logic 16
after getting 2 reasonably cheap ubtech Alpha 2 robots I'd also love to be able to use ezb to control them
I've been able to find the following,
from https://alexsonea.com/2017/10/15/jimu-hacking-the-communication-protocol/ For the time being here is a summary of the finds:
the communication is at 115,200bps packages are send separately by servo; it doesn’t seem to be a bulk send instruction the package has the following structure: byte 1 and 2 = preamble = 0xFA 0xAF byte 3 = servo ID byte 4 = Command; for go to command we have = 0x01; we will try to find some other commands shortly byte 5 - 8 = Command parameters; for command = 0x01 (go to) they are: byte 5 = position = 120 + desired position in degrees byte 6 = duration = duration in ms / 20 byte 7 = 0x00 (? we don’t know what this is yet) byte 8 = 0x01 (? we don’t know what this is yet) byte 9 = checksum = sum(byte 3 through 8) mod 256 byte 10 = closure = 0xED (from END?) the servo returns one byte that seems to contain something specific to the ID of the servo (for ID 1 it answers with 0xAB, for 5 it answers with 0xAF; the content could be a status information where each bit has a meaning, similar to the status packet in the Dynamixel protocol
https://www.thanksbuyer.com/ubtech-alpha1s-digital-servo-built-in-avr-develop-board-6v-9v-ubt12hb-55166Protocol analysis method:(need robot)
FA AF 01 04 00 00 00 00 05 ED switch on led light FA AF 01 04 01 00 00 00 06 ED switch off led light Write servo:FA AF id 01 angle ? ? ? SUM ED Servo response:FA AF id AA ? ?real angle sum ED Read data:FA AF id 02 00 00 00 00 SUM ED Present experiment order (CD order is modification servo ID.) Order can do experiments in 01..FF sequence. Frame header:FA AF;frame ender:ED,SUM=ID+order+parameter,get the lowest 1 byte Frame header (2 byte) ID(1 byte) order(1 byte) parameter (4 byte) SUM(1 byte)frame ender(1 byte) Communicaton protocol format (length:10 byte) Initialization,electricity is on.And then separate it and control single servo with computer TTL. Connect computer TTL serial to the servo port.The computer (sscom32 serial software) can record it to the file when playing robot. Protocol analysis method:(need robot)
Modify ID:FA AF ID CD 0 newid 0 0 SUM ED
being able to control this LED eye with ezb would also be very cool ( https://alexsonea.com/2017/11/19/jimu-led-light-breakdown/ ) unfortunately I don't have the skills to create a plugin, but would be more than happy donate some $ to someone who can
Dj can you do something with it?
I can. I won’t be able to test but I can whip something up. Stay tuned
thanks DJ, more than happy to test whatever you come up with
Thank you DJ you are the best
hey one question yet these servos run but without problems with the Ez-b v4?