Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

MR-C3024 Bits'n Bytes

Hitec robotics including ROBONOVA humanoid, HSR-8498HB servos, MR C-3024 Controllers and RoboBasic
4 postsPage 1 of 1
4 postsPage 1 of 1

MR-C3024 Bits'n Bytes

Post by i-Bot » Mon Jul 24, 2006 8:17 pm

Post by i-Bot
Mon Jul 24, 2006 8:17 pm

In preparation for writing some class libraries for serial interface to the RoboNova and the MR-C3024, I have updated my files describing the protocol and the intermediate byte code.

The control protocol is complete for the V2.5e, except for the commands listed as unknown, which I have yet to decode and understand. I still have much to find out, especially about the status bytes which indicate the run and motion status. This will have to wait till I have the class library better developed.
http://web.ukonline.co.uk/r.ibbotson/fi ... Serial.pdf

To help understand the commands and intermediate byte code, I included a brief description of the internal operation of the MR-C3024. Still no information on the operation of the bootloader, but at least Minirobot included the MR-C3024 code payload in the latest RoboBasic release.
http://web.ukonline.co.uk/r.ibbotson/fi ... ernals.pdf

The IM code file which describes the byte code which is downloaded to the MR-C324 is very preliminary. I include it in case someone recognises the format and can give some greater insight. I have no compiler experience, so it would great if someone could give some more structure to the syntax. I have a lot more data, but again it will be easier when I have the library complete.
http://web.ukonline.co.uk/r.ibbotson/fi ... 20Code.pdf
In preparation for writing some class libraries for serial interface to the RoboNova and the MR-C3024, I have updated my files describing the protocol and the intermediate byte code.

The control protocol is complete for the V2.5e, except for the commands listed as unknown, which I have yet to decode and understand. I still have much to find out, especially about the status bytes which indicate the run and motion status. This will have to wait till I have the class library better developed.
http://web.ukonline.co.uk/r.ibbotson/fi ... Serial.pdf

To help understand the commands and intermediate byte code, I included a brief description of the internal operation of the MR-C3024. Still no information on the operation of the bootloader, but at least Minirobot included the MR-C3024 code payload in the latest RoboBasic release.
http://web.ukonline.co.uk/r.ibbotson/fi ... ernals.pdf

The IM code file which describes the byte code which is downloaded to the MR-C324 is very preliminary. I include it in case someone recognises the format and can give some greater insight. I have no compiler experience, so it would great if someone could give some more structure to the syntax. I have a lot more data, but again it will be easier when I have the library complete.
http://web.ukonline.co.uk/r.ibbotson/fi ... 20Code.pdf
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by heinrichr » Wed Jul 26, 2006 2:34 pm

Post by heinrichr
Wed Jul 26, 2006 2:34 pm

I'm total new to Robonova, just bough one two days before, it's even not assembled yet, but ... I'm already playing around with the MR-C3024 board and the programming language.

Even not seen my robot in action I detected that the programming interface it very limited :-((

Thanks to the good work from i-Bot I have now a good understanding how the RoboBasic works. It remembers me to my youth, when I was working with C64 commodore computers.

In my opinion there are only two possibilities to eliminate the limitation of Robonova. Replace the MR-C3024 board or use it just as an intelligent interface to servos and sensors. I will go the later way. The main work has then to be done by another computer.

Therefore a communication link is necessary, I see two possibilities. Connect a Bluetooth adapter as shown in the forum and write a RoboBasic program for dispatching. Or even better, replace the programming cable with the Bluetooth adapter. In this case all commands that are used by the RoboBasic application can be used and it’s bidirectional. Has anybody already done such a thing?

So "i-Bot", I can offer you my help in writing a class library and in further investigation of the intermediate code, just let me know what you need.

Richard
I'm total new to Robonova, just bough one two days before, it's even not assembled yet, but ... I'm already playing around with the MR-C3024 board and the programming language.

Even not seen my robot in action I detected that the programming interface it very limited :-((

Thanks to the good work from i-Bot I have now a good understanding how the RoboBasic works. It remembers me to my youth, when I was working with C64 commodore computers.

In my opinion there are only two possibilities to eliminate the limitation of Robonova. Replace the MR-C3024 board or use it just as an intelligent interface to servos and sensors. I will go the later way. The main work has then to be done by another computer.

Therefore a communication link is necessary, I see two possibilities. Connect a Bluetooth adapter as shown in the forum and write a RoboBasic program for dispatching. Or even better, replace the programming cable with the Bluetooth adapter. In this case all commands that are used by the RoboBasic application can be used and it’s bidirectional. Has anybody already done such a thing?

So "i-Bot", I can offer you my help in writing a class library and in further investigation of the intermediate code, just let me know what you need.

Richard
heinrichr
Newbie
Newbie
User avatar
Posts: 2
Joined: Wed Jul 26, 2006 1:00 am

Post by Bullit » Thu Jul 27, 2006 2:26 pm

Post by Bullit
Thu Jul 27, 2006 2:26 pm

One major problem with using bluetooth to replace the programming cable, the robobasic programming / control interface uses 2 baud rates. 9600 baud for reading servos and sensors, 115k for programming. 9600 baud is to slow for most realtime apps. Bluetooth serial adapters don't allow baud rate switching without special commands so you are fixed at one baud rate. If only the folks at micro robots could change it to be always 115k then we would have something.
One major problem with using bluetooth to replace the programming cable, the robobasic programming / control interface uses 2 baud rates. 9600 baud for reading servos and sensors, 115k for programming. 9600 baud is to slow for most realtime apps. Bluetooth serial adapters don't allow baud rate switching without special commands so you are fixed at one baud rate. If only the folks at micro robots could change it to be always 115k then we would have something.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

Baud rate

Post by heinrichr » Thu Jul 27, 2006 2:59 pm

Post by heinrichr
Thu Jul 27, 2006 2:59 pm

You are correct, 9600 baud rate is not much.

But to move one servo you only trave to trasfer 3 bytes and receive 3 bytes.

Together with one stop bit it's 2 * 3 * 9 althougher 54 bits, with 9600 baud this should take 0.006 seconds. That's not a big limitation.

Since 4 hours I'm writting on a .NET application to control the MR-C3024.

Thanks to the good work of i-Bot I can now execute the following commands:
- Read the Controller information, same as the command "Controller->Controller Information" in the roboBASIC application
- Read and Write bytes to the data and code memory of MR-C3024
- Read and set the position of all servos

Now I'm working on a replacement of the command "Controller->Server Motor Real-Time Control". It's working more or less but the look and feel is very poor.

And I'm very war away from the theoretical speed of the communication :-(
You are correct, 9600 baud rate is not much.

But to move one servo you only trave to trasfer 3 bytes and receive 3 bytes.

Together with one stop bit it's 2 * 3 * 9 althougher 54 bits, with 9600 baud this should take 0.006 seconds. That's not a big limitation.

Since 4 hours I'm writting on a .NET application to control the MR-C3024.

Thanks to the good work of i-Bot I can now execute the following commands:
- Read the Controller information, same as the command "Controller->Controller Information" in the roboBASIC application
- Read and Write bytes to the data and code memory of MR-C3024
- Read and set the position of all servos

Now I'm working on a replacement of the command "Controller->Server Motor Real-Time Control". It's working more or less but the look and feel is very poor.

And I'm very war away from the theoretical speed of the communication :-(
heinrichr
Newbie
Newbie
User avatar
Posts: 2
Joined: Wed Jul 26, 2006 1:00 am


4 postsPage 1 of 1
4 postsPage 1 of 1