Messages
The data passed over the USB connection between the PC and the controller and used in the data files of the RDCAM software (*.rd) uses a message-based format. However, this data is scrambled and has to be descambled before it can be interpreted. The following description is about the descrambled data.
The first byte of every message has got its most significant bit (MSB) set. This bit is cleared for all remaining bytes. Thus, a message consists of a single byte in the range 0x80 ... 0xFF and zero or more following bytes in the range 0x00 ... 0x7F.
Encoding of Data Elements
ABSCOORD - Absolute Coordinate Value
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | ABSCOORD_HH |
1 | 0x00 ... 0x7F | ABSCOORD_H |
2 | 0x00 ... 0x7F | ABSCOORD_M |
3 | 0x00 ... 0x7F | ABSCOORD_L |
4 | 0x00 ... 0x7F | ABSCOORD_LL |
Value | Description |
---|---|
ABSCOORD_HH << 28 | ABSCOORD_H << 21 | ABSCOORD_M << 14 | ABSCOORD_L << 7 | ABSCOORD_LL | signed (2s complement) absolute cordinate value in micrometers |
0 | zero coordinate value |
1 | smallest encodable positive coordinate value, 1 micrometer |
0x3FFFFFFFF | largest encodable positive coordinate value, 17.18 kilometers |
0x400000000 | largest encodable negative coordinate value, -17.18 kilometers |
0x7FFFFFFFF | smallest encodable negative coordinate value, -1 micrometer |
COLOR - RGB Color
Offset | Range | Name |
---|---|---|
0 | 0x00 | fixed_byte |
1 | 0x00 ... 0x07 | COLOR_H |
2 | 0x00 ... 0x7F | COLOR_M |
3 | 0x00 ... 0x7F | COLOR_L |
4 | 0x00 ... 0x7F | COLOR_LL |
Value | Description |
---|---|
COLOR_H << 21 | COLOR_M << 14 | COLOR_L << 7 | COLOR_LL | 24 bit RGB color value (LSB red, MSB blue), blue << 16 | green << 8 | red |
0x000000 | black |
0x0000FF | red |
0x00FF00 | green |
0xFF0000 | blue |
0xFFFFFF | white |
DEVICES - Helper Devices (?)
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | DEVICE_FLAGS |
Value | Description |
---|---|
DEVICE_FLAGS | bitmask of devices (?) |
0x00 | all devices off |
0x01 | air blower on |
LAYER - Layer Number
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | LAYER_NO |
Value | Description |
---|---|
LAYER_NO | layer number |
0 | first layer (number 0) |
0x7F | last layer (number 127) |
PWR - Relative Laser Power
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | PWR_H |
1 | 0x00 ... 0x7F | PWR_L |
Value | Description |
---|---|
PWR_H << 7 | PWR_L | relative laser power in 0.0061 percent |
0 | zero power |
0x3FFF | maximum power |
RELCOORD - Relative Coordinate Value
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | RELCOORD_H |
1 | 0x00 ... 0x7F | RELCOORD_L |
Value | Description |
---|---|
RELCOORD_H << 7 | RELCOORD_L | signed (2s complement) relative cordinate value in micrometers |
0 | zero coordinate value |
1 | smallest encodable positive coordinate value, 1 micrometer |
0x1FFF | largest encodable positive coordinate value, 8.19 millimeters |
0x2000 | largest encodable negative coordinate value, -8.19 millimeters |
0x3FFF | smallest encodable negative coordinate value, -1 micrometer |
SPEED - Speed of Movements
Offset | Range | Name |
---|---|---|
0 | 0x00 ... 0x7F | SPEED_HH |
1 | 0x00 ... 0x7F | SPEED_H |
2 | 0x00 ... 0x7F | SPEED_M |
3 | 0x00 ... 0x7F | SPEED_L |
4 | 0x00 ... 0x7F | SPEED_LL |
Value | Description |
---|---|
SPEED_HH << 28 | SPEED_H << 21 | SPEED_M << 14 | SPEED_L << 7 | SPEED_LL | speed in micrometers per second |
1 | smallest encodable speed, 1 micrometer per second |
0x7FFFFFFFF | largest encodable speed, 34.36 kilometers per second |
More Data Elements
There are probably more data elements. Those have not been identified yet.
Messages
88 - Move to Absolute Position
Move the laser head to an absolute position as fast as possible with the laser turned off.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0x88 | fixed byte |
1 ... 5 | ABSCOORD | X coordinate of absolute position to move to |
6 ... 10 | ABSCOORD | Y coordinate of absolute position to move to |
89 - Move to Relative Position
Move the laser head to a relative position as fast as possible with the laser turned off. The coordinates for the cut are specified relative to the position of the laser head at the begin of this message.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0x89 | fixed byte |
1 ... 2 | RELCOORD | X coordinate of relative position to move to |
3 ... 4 | RELCOORD | Y coordinate of relative position to move to |
8A - Move to Relative Position in X Direction
Move the laser head to a relative position as fast as possible with the laser turned off. The X coordinate for the move is specified relative to the position of the laser head at the begin of this message. (The Y coordinate does not change.)
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0x8A | fixed byte |
1 ... 2 | RELCOORD | X coordinate of relative position to move to |
8B - Move to Relative Position in Y Direction
Move the laser head to a relative position as fast as possible with the laser turned off. The Y coordinate for the move is specified relative to the position of the laser head at the begin of this message. (The X coordinate does not change.)
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0x8B | fixed byte |
1 ... 2 | RELCOORD | Y coordinate of relative position to move to |
A8 - Cut to Absolute Position
Perform a straight cut to an absolute position with the configured speed while turning the laser on with the configured power.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xA8 | fixed byte |
1 ... 5 | ABSCOORD | X coordinate of absolute position to cut to |
6 ... 10 | ABSCOORD | Y coordinate of absolute position to cut to |
A9 - Cut to Relative Position
Perform a straight cut to a relative position with the configured speed while turning the laser on with the configured power. The coordinates for the cut are specified relative to the position of the laser head at the begin of this message.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xA9 | fixed byte |
1 ... 2 | RELCOORD | X coordinate of relative position to cut to |
3 ... 4 | RELCOORD | Y coordinate of relative position to cut to |
AA - Cut to Relative Position in X Direction
Perform a straight cut to a relative position in X direction with the configured speed while turning the laser on with the configured power. The X coordinate for the cut is specified relative to the position of the laser head at the begin of this message. (The Y coordinate does not change.)
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xAA | fixed byte |
1 ... 2 | RELCOORD | X coordinate of relative position to cut to |
AB - Cut to Relative Position in Y Direction
Perform a straight cut to a relative position in Y direction with the configured speed while turning the laser on with the configured power. The Y coordinate for the cut is specified relative to the position of the laser head at the begin of this message. (The X coordinate does not change.)
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xAB | fixed byte |
1 ... 2 | RELCOORD | Y coordinate of relative position to cut to |
C6 01/02/21/22 - Set Laser Power
Set the minimum or maximum laser power to be used for cutting.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xC6 | fixed byte |
1 | 0x01 | set minimum power of first laser |
1 | 0x02 | set maximum power of first laser |
1 | 0x21 | set minimum power of second laser |
1 | 0x22 | set maximum power of second laser |
2 ... 3 | PWR | relative laser power to use for cutting |
C6 31/32/41/42 - Set Laser Power for Layer
Set the minimum or maximum laser power for a layer.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xC6 | fixed byte |
1 | 0x31 | set minimum power of first laser |
1 | 0x32 | set maximum power of first laser |
1 | 0x41 | set minimum power of second laser |
1 | 0x42 | set maximum power of second laser |
2 | LAYER | layer number |
3 ... 4 | PWR | minimum relative laser power to use for cutting |
C9 02 - Set Speed for Cutting
Set speed to be used for cutting.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xC9 | fixed byte |
1 | 0x02 | fixed byte |
2 ... 6 | SPEED | speed to use for cutting |
C9 04 - Set Speed for Cutting of Layer
Set speed to be used for cutting on a layer.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xC9 | fixed byte |
1 | 0x04 | fixed byte |
2 | LAYER | layer number |
3 ... 7 | SPEED | speed to use for cutting |
CA 01 - Enable / Disable Devices
Enable and/or disable devices.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xCA | fixed byte |
1 | 0x01 | fixed byte |
2 | DEVICE_FLAGS | which devices to enable |
CA 02 - Set Current Layer
Set the current layer.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xCA | fixed byte |
1 | 0x02 | fixed byte |
2 | LAYER | layer number |
CA 06 - Set Color of Layer
Set the RGB color for a layer. It is unknown for which purpose the machine uses the RGB color. It might be used for visualization of the cuts in simulation only.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xCA | fixed byte |
1 | 0x06 | fixed byte |
2 | LAYER | layer number |
3 ... 7 | COLOR | RGB color of layer |
CA 22 - Set Maximum Layer Number
Set the maximum layer number used in the file.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xCA | fixed byte |
1 | 0x22 | fixed byte |
2 | LAYER | maximum layer number used in the file |
E7 03/07 - Minimum/Maximum Coordinates
Information about the minimum/maximum coordinates used in the file.
Offset | Value / Data Type | Meaning |
---|---|---|
0 | 0xE7 | fixed byte |
1 | 0x03 | minimum coordinates used in the file |
1 | 0x07 | maximum coordinates used in the file |
2 ... 6 | ABSCOORD | minimum/maximum X coordinate in the file |
7 ... 11 | ABSCOORD | minimum/maximum Y coordinate in the file |
More Messages
There are probably more messages. Those have not been identified yet.
Disclaimer
Please note that all information is to the best of my knowlege, but you may only use it at your own risk. All information is provided without warranty of any kind. The provided information is to be used for educational purposes only.