Ruida
Introduction
Ruida controllers are laser cutter controller boards with several beefier features. They are built for lasering, and run a download and execute scheme. They are natively supported by RDWorks (which is free) and supported by Lightburn (Proprietary, $80). They have a control panel that can often display the program to be run and perform jogging operations. There have been a number of reverse engineering and supporting operations.
Ruida controllers can control 4 axises. These are X, Y, Z, and U.
Models
There are several Ruida Models which cause slightly different interactions.
644XG
Default Model.
644XS
Replying 0 to a DA0004 request causes a communication error.
320
Replying 0 to a DA0004 request causes a communication error.
633X
Replying 0 to a DA0004 request causes a communication error.
634XG
Uses an altered form of the scrambling algorithm.
The xor magic value is 0x11
654XG
Replying 0 to a DA0004 request causes a communication error.
Card Values
There are a variety of different swizzles for different model numbers and these are specified by the Card ID.
Model | Card ID | Swizzle |
---|---|---|
0x6320 | swizzle 0x11 | |
0x6302 | swizzle 0x83 | |
0x6301 | swizzle 0x88 | |
0x6300 | swizzle 0x33 | |
0x2210 | swizzle 0x16 | |
0x630b | swizzle 0x33 | |
0x6425 | swizzle 0x88 | |
0x6501 | swizzle 0x34 | |
0x6511 | swizzle 0x77 | |
0x6531 | swizzle 0x77 | |
0x6512 | swizzle 0x75 | |
0x6513 | swizzle 0x99 | |
0x6514 | swizzle 0x13 | |
0x651e | swizzle 0x60 | |
0x6533 | swizzle 0x60 | |
0x651f | swizzle 0x76 | |
0x651f | swizzle 0x76 | |
0x6530 | swizzle 0x10 | |
0x6532 | swizzle 0x10 | |
0x6920 | swizzle 0xa1 | |
0x6811 | swizzle 0x77 | |
0x690f-0x6911 | swizzle 0xa1 | |
0x6912 | swizzle 0x88 | |
0x6930 | swizzle 0x1a | |
0x693f | swizzle 0x1a | |
0x7230 | swizzle 0x10 | |
0x7235 | swizzle 0x10 | |
0x7236 | swizzle 0x10 | |
0x7430 | swizzle 0x10 | |
0x7930 | swizzle 0x10 | |
Others | Others | swizzle 0x88 |
Protocol
The laser can be controlled through a few different means. It accepts USB files in an .rd format, it can be set to listen for UDP packets on port 50200, and can directly transfer files via USB to the device.
UDP:50200
The device listens on port 50200 on the laser, and sends from port 40200.
The payload is an RD file with the same payload, command, and syntax. It also has the same swizzling so an RD file for a 634XG will be swizzled with 0x11 and not 0x88 for the magic number.
UDP packets requires an extra 16 bit checksum for each packet. Since UDP can lose packets it requires an ACK reply after every packet. The checksum doesn't require any special operations it's literally just the lower 16 bits sum of the value of each byte in the packet. Beyond those differences the remaining elements are Ruida commands which follow a fairly well understood structure.
The first two bytes of any UDP packet are big endian checksum. This response to this is either 0xCC Checksum match or 0xCF checksum fail. On fail the packet must be resent. Too long of a time will cause a time out.
In UDP the packet size is limited to 1474 bytes. However most modern versions simply cut at around 1000 bytes. These cuts are permitted to occur mid-command but modernly do not do that. They cut at command boundaries.
There is no header, arbitration, or handshaking. Anything that is interpreted as correct will execute.
The timeout is about 4 seconds. It expects a reply ACK packet by then.
The first chunk will retry other chunks will simply fail.
The payload has an EOF command.
UDP:50207
In addition to the normal listening port at 50200 three is one located at 50207 which sends from port 40207.
The payload are simple commands which do not have any real detail to them and they correspond to a ruida android app that gives basic commands. The protocol is different in that there is no swizzling. All bytes are sent in the clear without any byte manipulation.
0xCC is replied to with 0xCC during the handshake as a ACK packet.
0xCE is sent regularly as a sort of keep-alive packet.
All regular commands sent are 0xA5 commands.
--> a55006 (Interface Start/Pause) <-- cc (ACK) --> a55009 (Interface Stop) <-- cc (ACK) --> a5505a (Interface Reset) <-- cc (ACK) --> a5500f (Interface Trace On/Off) <-- cc (ACK) --> a55007 (Interface ESC) <-- cc (ACK) --> a55012 (Interface Laser Gate) <-- cc (ACK) --> a55005 (Interface Pulse Down) <-- cc (ACK) --> a55105 (Interface Pulse Up) <-- cc (ACK) --> a55008 (Interface Origin) <-- cc (ACK) --> a55300 (Interface Frame) <-- cc (ACK) --> a5500c (Interface +U Down) <-- cc (ACK) --> a5510c (Interface +U Up) <-- cc (ACK) --> a55003 (Interface +Y Down) <-- cc (ACK) --> a55103 (Interface +Y Up) <-- cc (ACK) --> a5500a (Interface +Z Down) <-- cc (ACK) --> a5510a (Interface +Z Up) <-- cc (ACK) --> a55001 (Interface -X Down) <-- cc (ACK) --> a55101 (Interface -X Up) <-- cc (ACK) --> a55011 (Interface Speed) <-- cc (ACK) --> a55002 (Interface +X Down) <-- cc (ACK) --> a55102 (Interface +X Up) <-- cc (ACK) --> a5500d (Interface -U Down) <-- cc (ACK) --> a5510d (Interface -U Up) <-- cc (ACK) --> a55004 (Interface -Y Down) <-- cc (ACK) --> a55104 (Interface -Y Up) <-- cc (ACK) --> a5500b (Interface -Z Down) <-- cc (ACK) --> a5510b (Interface -Z Up) <-- cc (ACK)
The protocol is also unique in that some instructions have a keydown and keyup meaning so 0xa5500b means start moving in the -Z direction, and 0xa5510b means stop moving in the -Z direction.
USB
There are two methods of USB transfer, direct transfer with a USB device between the machine and computer, and through the use of a thumb drive.
When plugged in to USB it uses USB 1.1 at full speed. The connected communications chip is the FT245R chip. This uses a standard communications serial port.
- 19200 bps
- 8 data bits
- No parity
- 1 stop bit
- hardware flow control [1]
Swizzling
All packet data is lightly swizzled at the byte level. The checksum is calculated preswizzle.
644XG - Magic = 0x88 644XS - Magic = 0x88 320 - Magic = 0x88 633X - Magic = 0x88 634XG - Magic = 0x11 654XG - Magic = 0x88 RDL9635 - Magic = 0x38 [2]
Swizzling:
b ^= (b >> 7) & 0xFF b ^= (b << 7) & 0xFF b ^= (b >> 7) & 0xFF b ^= magic b = (b + 1) & 0xFF
Unswizzling:
b = (b - 1) & 0xFF b ^= magic b ^= (b >> 7) & 0xFF b ^= (b << 7) & 0xFF b ^= (b >> 7) & 0xFF return b
The general algorithm swaps the first and last digit, xors the data and adds 1. The reverse unswizzling requires subtracting one, xor, and swapping the first and last digit. In the presented code the swap is done there with an xor swap.
Ruida Encoding
The UDP and USB modes perform some jogging and realtime controls and data queries but mostly it sends .rd files.
Structure
The basic structure of an .rd file is a header and body.
Header
The header has two main sections, the main header, and the layer headers.
The main header sets the origin point, and the bounding boxes for the entire project.
Each layer/cut used has it's own header that corresponds to the Work information in RDWorks, conveying the speed to travel at, the min power, several other power values, the color of that layer, frequency etc.
Body
The body intros with a series of prestart commands and configuration elements before starting the actual layers. All layer data is conveyed before closing the element with an End of File command.
Data Types
Each command in Ruida starts with a a high bit meaning all bytes sent that are 0x80 or above are commands. All other bytes consequently cannot use that bit. This leads to the strange bit-count numbers, namely 14 bit integers and 35 bit integers.
The basic raw types:
Raw Type | Bits | Bytes |
---|---|---|
int_7 | 7 | 1 |
int_14 | 14 | 2 |
uint14 | 14 | 2 |
int_35 | 32 | 5 |
cstring | 7*(N+1) | N+1 |
The 35 bit numbers require 5 bytes (5 * 7 bits) which gives 35 bits. These are signed and unsigned at 35 bits. You could likely truncate them at 32 bits without any ill effects.
Type | Raw Type | Bits | Bytes | Units |
---|---|---|---|---|
Abscoord | int_35 | 32 | 5 | micrometers |
Relcoord | int_14 | 14 | 2 | micrometers |
Power | uint_14 | 14 | 2 | (100 / 2^14) percent |
Time | int_35 | 32 | 5 | microseconds |
Frequency | int_35 | 32 | 5 | Hz |
Color | int_35 | 24 | 5 | #BBGGRR 3-component 8-bit color. |
Part | int_7 | 7 | 1 | Part / Layer Index. |
Commands
Byte 0 | Byte1 | Byte2 | Syntax | Length | Meaning |
---|---|---|---|---|---|
0x80 | 0x00 | 0x80 0x00 <Abscoord> | 7 | Axis X Move | |
0x80 | 0x08 | 0x80 0x08 <Abscoord> | 7 | Axis Z Move | |
0x88 | 0x88 <Abscoord> <Abscoord> | 11 | Move Absolute <X> <Y> | ||
0x89 | 0x89 <Relcoord> <Relcoord> | 5 | Move Relative <DX> <DY> | ||
0x8A | 0x8A <Relcoord> | 3 | Move Horizontal Relative <DX> | ||
0x8B | 0x8B <Relcoord> | 3 | Move Vertical Relative <DY> | ||
0xA0 | 0x00 | 0xA0 0x00 <Abscoord> | 7 | Axis Y Move | |
0xA0 | 0x08 | 0xA0 0x08 <Abscoord> | 7 | Axis U Move | |
0xA5 | 0x50 | <interface value> | 0xA5 0x50 <interface value> | 6 | UDP:50207 command. Keypress or Keydown. |
0xA5 | 0x51 | <interface value> | 0xA5 0x50 <interface value> | 6 | UDP:50207 command, Key Up. |
0xA8 | 0xA8 <Abscoord> <Abscoord> | 11 | Cut Absolute <X> <Y> | ||
0xA9 | 0xA9 <Relcoord> <Relcoord> | 5 | Cut Relative <DX> <DY> | ||
0xAA | 0xAA <Relcoord> | 3 | Cut Horizontal Relative <DX> | ||
0xAB | 0xAB <Relcoord> | 3 | Cut Vertical Relative <DY> | ||
0xC7 | 0xC7 <Power> | 3 | Immediate Power 1 <Power> | ||
0xC0 | 0xC0 <Power> | 3 | Immediate Power 2 <Power> | ||
0xC2 | 0xC2 <Power> | 3 | Immediate Power 3 <Power> | ||
0xC3 | 0xC3 <Power> | 3 | Immediate Power 4 <Power> | ||
0xC8 | 0xC8 <Power> | 3 | End Power 1 <Power> | ||
0xC1 | 0xC1 <Power> | 3 | End Power 2 <Power> | ||
0xC4 | 0xC4 <Power> | 3 | End Power 3 <Power> | ||
0xC5 | 0xC5 <Power> | 3 | End Power 4 <Power> | ||
0xC6 | 0x01 | 0xC6 0x01 <Power> | 4 | Power Min 1 <Power> | |
0xC6 | 0x21 | 0xC6 0x21 <Power> | 4 | Power Min 2 <Power> | |
0xC6 | 0x05 | 0xC6 0x05 <Power> | 4 | Power Min 3 <Power> | |
0xC6 | 0x07 | 0xC6 0x07 <Power> | 4 | Power Min 4 <Power> | |
0xC6 | 0x02 | 0xC6 0x02 <Power> | 4 | Power Max 1 <Power> | |
0xC6 | 0x22 | 0xC6 0x22 <Power> | 4 | Power Max 2 <Power> | |
0xC6 | 0x06 | 0xC6 0x06 <Power> | 4 | Power Max 3 <Power> | |
0xC6 | 0x08 | 0xC6 0x08 <Power> | 4 | Power Max 4 <Power> | |
0xC6 | 0x10 | 0xC6 0x10 <Time.> | 7 | Laser Interval | |
0xC6 | 0x11 | 0xC6 0x11 <Time.> | 7 | Add Delay | |
0xC6 | 0x12 | 0xC6 0x12 <Time.> | 7 | Laser On Delay | |
0xC6 | 0x13 | 0xC6 0x13 <Time.> | 7 | Laser Off Delay | |
0xC6 | 0x15 | 0xC6 0x15 ?? | 7 | Laser On2 | |
0xC6 | 0x16 | 0xC6 0x16 ?? | 7 | Laser Off2 | |
0xC6 | 0x31 | 0xC6 0x31 <Part> <Power> | 5 | Part, Power Min 1 <Part> <Power> | |
0xC6 | 0x41 | 0xC6 0x41 <Part> <Power> | 5 | Part, Power Min 2 <Part> <Power> | |
0xC6 | 0x35 | 0xC6 0x35 <Part> <Power> | 5 | Part, Power Min 3 <Part> <Power> | |
0xC6 | 0x37 | 0xC6 0x37 <Part> <Power> | 5 | Part, Power Min 4 <Part> <Power> | |
0xC6 | 0x32 | 0xC6 0x32 <Part> <Power> | 5 | Part, Power Max 1 <Part> <Power> | |
0xC6 | 0x42 | 0xC6 0x42 <Part> <Power> | 5 | Part, Power Max 2 <Part> <Power> | |
0xC6 | 0x36 | 0xC6 0x36 <Part> <Power> | 5 | Part, Power Max 3 <Part> <Power> | |
0xC6 | 0x38 | 0xC6 0x38 <Part> <Power> | 5 | Part, Power Max 4 <Part> <Power> | |
0xC6 | 0x50 | 0xC6 0x50 <Power> | 4 | ThroughPower <Power> | |
0xC6 | 0x51 | 0xC6 0x51 <Power> | 4 | ThroughPower <Power> | |
0xC6 | 0x55 | 0xC6 0x55 <Power> | 4 | ThroughPower <Power> | |
0xC6 | 0x56 | 0xC6 0x56 <Power> | 4 | ThroughPower <Power> | |
0xC6 | 0x60 | 0xC6 0x60 <Laser> <Part> <Frequency> | 9 | Part, Frequency <Laser> <Part> <Frequency> | |
0xC9 | 0x02 | 0xC9 0x02 <Speed> | 7 | Velocity <Speed> | |
0xC9 | 0x03 | 0xC9 0x03 <Speed> | 7 | Axis Velocity <Speed> | |
0xC9 | 0x04 | 0xC9 0x04 <Part> <Speed> | 8 | Part Velocity <Speed> | |
0xC9 | 0x05 | 0xC9 0x05 <Speed> | 7 | Force Velocity <Speed> | |
0xC9 | 0x06 | 0xC9 0x06 <Speed> | 7 | Axis Move Speed <Speed> | |
0xCA | 0x01 | 0x00 | 0xCA 0x01 0x00 | 3 | End Layer |
0xCA | 0x01 | 0x01 | 0xCA 0x01 0x01 | 3 | Work Mode 1 |
0xCA | 0x01 | 0x02 | 0xCA 0x01 0x02 | 3 | Work Mode 2 |
0xCA | 0x01 | 0x03 | 0xCA 0x01 0x03 | 3 | Work Mode 3 |
0xCA | 0x01 | 0x04 | 0xCA 0x01 0x04 | 3 | Work Mode 4 |
0xCA | 0x01 | 0x55 | 0xCA 0x01 0x55 | 3 | Work Mode 5 |
0xCA | 0x01 | 0x55 | 0xCA 0x01 0x05 | 3 | Work Mode 6 |
0xCA | 0x01 | 0x10 | 0xCA 0x01 0x10 | 3 | Layer Device=0 |
0xCA | 0x01 | 0x11 | 0xCA 0x01 0x11 | 3 | Layer Device=1 |
0xCA | 0x01 | 0x12 | 0xCA 0x01 0x12 | 3 | Air Assist Off |
0xCA | 0x01 | 0x13 | 0xCA 0x01 0x13 | 3 | Air Assist On |
0xCA | 0x01 | 0x14 | 0xCA 0x01 0x14 | 3 | Set DbHead |
0xCA | 0x01 | 0x30 | 0xCA 0x01 0x30 | 3 | EnLaser2Offset 0 |
0xCA | 0x01 | 0x31 | 0xCA 0x01 0x31 | 3 | EnLaser2Offset 1 |
0xCA | 0x02 | 0xCA 0x02 <Part> <Index> | 4 | Part, Layer Number <Part> <Index> | |
0xCA | 0x03 | 0x00 | 0xCA 0x03 <EnLaserTube> | 3 | EnLaserTube Start |
0xCA | 0x04 | 0x00 | 0xCA 0x04 <X-Sign-Map> | 3 | X Sign Map |
0xCA | 0x05 | 0xCA 0x05 <Color> | 7 | Layer Color <Color> | |
0xCA | 0x06 | 0xCA 0x06 <Part> <Color> | 8 | Part, Layer Color <Color> | |
0xCA | 0x10 | 0xCA 0x10 <EnExIO> | 3 | EnExIo Start | |
0xCA | 0x22 | 0xCA 0x22 <Part> | 3 | Part, Max Layer | |
0xCA | 0x30 | 0xCA 0x30 ?? | 6 | U File ID | |
0xCA | 0x40 | 0xCA 0x40 <V0> | 3 | ZU Map | |
0xCA | 0x41 | 0xCA 0x41 <Part> <Mode> | 4 | Part, Work Mode <Part> <Mode> | |
0xCC | 0xCC | 1 | Msg Acknowledge | ||
0xCD | 0xCD | 1 | Msg Error | ||
0xD7 | 0xD7 | 1 | End of File | ||
0xD8 | 0x00 | 0xD8 0x00 | 2 | Start Process | |
0xD8 | 0x00 | 0xD8 0x01 | 2 | Stop Process | |
0xD8 | 0x02 | 0xD8 0x02 | 2 | Pause Process | |
0xD8 | 0x03 | 0xD8 0x03 | 2 | Restore Process | |
0xD8 | 0x10 | 0xD8 0x12 | 2 | Ref Point Mode 0 | |
0xD8 | 0x10 | 0xD8 0x11 | 2 | Ref Point Mode 1 | |
0xD8 | 0x10 | 0xD8 0x10 | 2 | Ref Point Mode 2 | |
0xD8 | 0x2C | 0xD8 0x2C | 2 | Home Z | |
0xD8 | 0x2D | 0xD8 0x2C | 2 | Home U | |
0xD8 | 0x2E | 0xD8 0x2E | 2 | Focus Z | |
0xD9 | 0x00 | 0xD9 0x00 <Options> <Abscoord> | 8 | Move X <Options> <Abscoord> | |
0xD9 | 0x01 | 0xD9 0x01 <Options> <Abscoord> | 8 | Move Y <Options> <Abscoord> | |
0xD9 | 0x02 | 0xD9 0x02 <Options> <Abscoord> | 8 | Move Z <Options> <Abscoord> | |
0xD9 | 0x03 | 0xD9 0x03 <Options> <Abscoord> | 8 | Move U <Options> <Abscoord> | |
0xD9 | 0x10 | 0xD9 0x10 <Options> | 3 | Home XY <Options> <Abscoord> | |
0xDA | 0x00 | 0xDA 0x00 <Param> | 4 | Read Param <Param> | |
0xDA | 0x01 | 0xDA 0x01 <Param> <int_35> <copy int_35> | 14 | Write/Respond Param <Param> <Value> | |
0xE6 | 0x01 | 0xE6 0x01 | 2 | Set Absolute | |
0xE7 | 0x00 | 0xE7 0x00 | 2 | Block End | |
0xE7 | 0x01 | 0xE7 0x01 <c_string> | 2 + N | Filename | |
0xE7 | 0x03 | 0xE7 0x03 <Abscoord> <Abscoord> | 12 | Process TopLeft <X> <Y> | |
0xE7 | 0x07 | 0xE7 0x07 <Abscoord> <Abscoord> | 12 | Process BottomRight <X> <Y> | |
0xE7 | 0x04 | 0xE7 0x04 <int_14> <int_14> <int_14> <int_14> | 16 | Process Repeat ?? | |
0xE7 | 0x05 | 0xE7 0x05 <Direction> | 3 | Array Direction | |
0xE7 | 0x06 | 0xE7 0x06 ?? | 12 | Feed Repeat | |
0xE7 | 0x08 | 0xE7 0x08 <V0> <V1> | 16 | Array Repeat <V0> <V1> | |
0xE7 | 0x09 | 0xE7 0x09 ??? | 7 | Feed Length | |
0xE7 | 0x13 | 0xE7 0x13 <Abscoord> <Abscoord> | 12 | Array Min Point <X> <Y> | |
0xE7 | 0x17 | 0xE7 0x17 <Abscoord> <Abscoord> | 12 | Array Max Point <X> <Y> | |
0xE7 | 0x23 | 0xE7 0x23 <Abscoord> <Abscoord> | 12 | Array Add <X> <Y> | |
0xE7 | 0x24 | 0xE7 0x24 <V0> | 3 | Array Mirror | |
0xE7 | 0x35 | 0xE7 0x35 <V0> <V1> | 12 | Block X Size <V0> <V1> | |
0xE7 | 0x36 | 0xE7 0x36 <int_7> | 3 | Set File Empty | |
0xE7 | 0x46 | 0xE7 0x46 '0x11227766' | 12 | BY Test (static value) | |
0xE7 | 0x50 | 0xE7 0x50 <Abscoord> <Abscoord> | 12 | Document Min Point <X> <Y> | |
0xE7 | 0x51 | 0xE7 0x51 <Abscoord> <Abscoord> | 12 | Document Max Point <X> <Y> | |
0xE7 | 0x52 | 0xE7 0x52 <Part> <Abscoord> <Abscoord> | 13 | Part, MinPoint <X> <Y> | |
0xE7 | 0x53 | 0xE7 0x53 <Part> <Abscoord> <Abscoord> | 13 | Part, MaxPoint <X> <Y> | |
0xE7 | 0x54 | 0xE7 0x54 <0 or 1> <Abscoord> | 8 | Pen Offset <Abscoord> (0 then 1, always) | |
0xE7 | 0x55 | 0xE7 0x55 <0 or 1> <Abscoord> | 8 | Layer Offset <Abscoord> (0 then 1, always) | |
0xE7 | 0x60 | 0xE7 0x60 <Index> | 3 | Set Current Element Index <Index> | |
0xE7 | 0x61 | 0xE7 0x61 <Part> <Abscoord> <Abscoord> | 13 | Part, MinPointEx <X> <Y> | |
0xE7 | 0x62 | 0xE7 0x62 <Part> <Abscoord> <Abscoord> | 13 | Part, MaxPointEx <X> <Y> | |
0xE8 | 0x00 | 0xE8 0x00 | 12 | Delete Document | |
0xE8 | 0x01 | 0xE8 0x01 <FileNumber> | 4 | Document Name <FileNumber> | |
0xE8 | 0x02 | 0xE8 0x02 | 2 | File Transfer | |
0xE8 | 0x03 | 0xE8 0x03 <Index> | 3 | Select Document <Index> | |
0xE8 | 0x04 | 0xE8 0x04 | 2 | Calculate Document Time | |
0xEA | 0xEA <Index> | 2 | Array Start | ||
0xEB | 0xEB | 1 | Array End | ||
0xF0 | 0xF0 | 1 | Ref Point Set | ||
0xF1 | 0x00 | 0xF1 0x00 <Index> | 3 | Element Max Index <Index> | |
0xF1 | 0x01 | 0xF1 0x01 <Index> | 3 | Element Name Max Index <Index> | |
0xF1 | 0x02 | 0xF1 0x02 <Enable> | 3 | Enable Block Cutting | |
0xF1 | 0x03 | 0xF1 0x03 <Abscoord> <Abscoord> | 12 | Display Offset <X> <Y> | |
0xF1 | 0x04 | 0xF1 0x04 <Index> | 3 | Feed Auto Calc <Index> | |
0xF1 | 0x10 | 0xF1 0x10 <Index> <Index> | 4 | Unknown Common | |
0xF2 | 0x00 | 0xF2 0x00 <Index> | 3 | Element Index <Index> | |
0xF2 | 0x01 | 0xF2 0x01 <Index> | 3 | Element Name <Index> | |
0xF2 | 0x02 | 0xF2 0x02 <c_string 10 bytes> | 12 | Element Name | |
0xF2 | 0x03 | 0xF2 0x03 <Abscoord> <Abscoord> | 12 | Element Array Min Point <X> <Y> | |
0xF2 | 0x04 | 0xF2 0x04 <Abscoord> <Abscoord> | 12 | Element Array Max Point <X> <Y> | |
0xF2 | 0x05 | 0xF2 0x05 <V0> <V1> | 16 | Element Array (Same: E7 08) | |
0xF2 | 0x06 | 0xF2 0x06 <Abscoord> <Abscoord> | 12 | Element Array Add <X> <Y> | |
0xF2 | 0x07 | 0xF2 0x07 <V0> | 3 | Element Array Mirror |
Options for D900, D901, D902, D903, D910:
Value | Origin | Light | Meaning |
---|---|---|---|
0 | X | Move with origin. | |
1 | X | X | Move with origin and light |
2 | Move with no options | ||
3 | X | Move with light |
Interface Values for A5 commands.
Command | Meaning |
---|---|
a55006 | Interface Start/Pause |
a55009 | Interface Stop |
a5505a | Interface Reset |
a5500f | Interface Trace On/Off |
a55007 | Interface ESC |
a55012 | Interface Laser Gate |
a55005 | Interface Pulse Down |
a55105 | Interface Pulse Up |
a55008 | Interface Origin |
a55300 | Interface Frame |
a5500c | Interface +U Down |
a5510c | Interface +U Up |
a55003 | Interface +Y Down |
a55103 | Interface +Y Up |
a5500a | Interface +Z Down |
a5510a | Interface +Z Up |
a55001 | Interface -X Down |
a55101 | Interface -X Up |
a55011 | Interface Speed |
a55002 | Interface +X Down |
a55102 | Interface +X Up |
a5500d | Interface -U Down |
a5510d | Interface -U Up |
a55004 | Interface -Y Down |
a55104 | Interface -Y Up |
a5500b | Interface -Z Down |
a5510b | Interface -Z Up |
Properties
The command DA is quite commonly used and helpful. It gets and sends information to the laser cutter.
Data is requested from and to the machine for bidirectional data flow. For general usability the mission critical element is that the reply to 05 7E is 0x65006500. This is requested early on in most communications.
Byte 0 | Byte 1 | Addr 0 | Addr 1 | Value | Meaning |
---|---|---|---|---|---|
0xDA | 0x00 | Byte0 | Byte1 | Query <Byte0 Byte1> | |
0xDA | 0x01 | Byte0 | Byte1 | <int_32_5byte> | Set <Byte0 Byte1> <Value> |
Here is the list of known properties.
Byte 0 | Byte 1 | Address(hex) | Address(dec) | Key_Value |
---|---|---|---|---|
0x00 | 0x04 | 0x004 | 4 | IO Enable |
0x00 | 0x0B | 0x00b | 11 | Eng Facula |
0x00 | 0x05 | 0x005 | 5 | G0 Velocity |
0x00 | 0x0E | 0x00E | 14 | Eng Vert Velocity |
0x00 | 0x0C | 0x00C | 12 | Home Velocity |
0x00 | 0x10 | 0x010 | 16 | System Control Mode |
0x00 | 0x11 | 0x011 | 17 | Laser PWM Frequency 1 |
0x00 | 0x17 | 0x017 | 23 | Laser PWM Frequency 2 |
0x00 | 0x65 | 0x065 | 101 | Laser PWM Frequency 3 |
0x00 | 0x6a | 0x06A | 106 | Laser PWM Frequency 4 |
0x00 | 0x12 | 0x012 | 18 | Laser Min Power 1 |
0x00 | 0x18 | 0x018 | 24 | Laser Min Power 2 |
0x00 | 0x63 | 0x063 | 99 | Laser Min Power 3 |
0x00 | 0x68 | 0x068 | 104 | Laser Min Power 4 |
0x00 | 0x13 | 0x013 | 19 | Laser Max Power 1 |
0x00 | 0x19 | 0x019 | 25 | Laser Max Power 2 |
0x00 | 0x64 | 0x064 | 100 | Laser Max Power 3 |
0x00 | 0x69 | 0x069 | 105 | Laser Max Power 4 |
0x00 | 0x1A | 0x01A | 26 | Laser Standby Frequency 1 |
0x00 | 0x1C | 0x01C | 28 | Laser Standby Frequency 2 |
0x00 | 0x66 | 0x066 | 102 | Laser Standby Frequency 3 |
0x00 | 0x6B | 0x06B | 107 | Laser Standby Frequency 4 |
0x00 | 0x20 | 0x020 | 32 | Axis Control Para 1 |
0x00 | 0x30 | 0x030 | 48 | Axis Control Para 2 |
0x00 | 0x40 | 0x040 | 64 | Axis Control Para 3 |
0x00 | 0x50 | 0x050 | 80 | Axis Control Para 4 |
0x00 | 0x1e | 0x01E | 30 | Auto Type Space |
0x00 | 0x2B | 0x02B | 43 | Axis Backlash 1 |
0x00 | 0x3B | 0x03B | 59 | Axis Backlash 2 |
0x00 | 0x4B | 0x04B | 75 | Axis Backlash 3 |
0x00 | 0x5B | 0x05B | 91 | Axis Backlash 4 |
0x00 | 0x28 | 0x028 | 40 | Axis Btn Acc 1 |
0x00 | 0x38 | 0x038 | 56 | Axis Btn Acc 2 |
0x00 | 0x48 | 0x048 | 72 | Axis Btn Acc 3 |
0x00 | 0x58 | 0x058 | 88 | Axis Btn Acc 4 |
0x00 | 0x27 | 0x027 | 39 | Axis Btn Start Vel 1 |
0x00 | 0x37 | 0x037 | 55 | Axis Btn Start Vel 2 |
0x00 | 0x47 | 0x047 | 71 | Axis Btn Start Vel 3 |
0x00 | 0x57 | 0x057 | 87 | Axis Btn Start Vel 4 |
0x00 | 0x29 | 0x029 | 41 | Axis Estp Acc 1 |
0x00 | 0x39 | 0x039 | 57 | Axis Estp Acc 2 |
0x00 | 0x49 | 0x049 | 73 | Axis Estp Acc 3 |
0x00 | 0x59 | 0x059 | 89 | Axis Estp Acc 4 |
0x00 | 0x2A | 0x02A | 42 | Axis Home Offset 1 |
0x00 | 0x3A | 0x03A | 58 | Axis Home Offset 2 |
0x00 | 0x4A | 0x04A | 74 | Axis Home Offset 3 |
0x00 | 0x5A | 0x05A | 90 | Axis Home Offset 4 |
0x00 | 0x25 | 0x025 | 37 | Axis Max Acc 1 |
0x00 | 0x35 | 0x035 | 53 | Axis Max Acc 2 |
0x00 | 0x45 | 0x045 | 69 | Axis Max Acc 3 |
0x00 | 0x55 | 0x055 | 85 | Axis Max Acc 4 |
0x00 | 0x23 | 0x023 | 35 | Axis Max Velocity 1 |
0x00 | 0x33 | 0x033 | 51 | Axis Max Velocity 2 |
0x00 | 0x43 | 0x043 | 67 | Axis Max Velocity 3 |
0x00 | 0x53 | 0x053 | 83 | Axis Max Velocity 4 |
0x00 | 0x21 | 0x021 | 33 | Axis Precision 1 |
0x00 | 0x31 | 0x031 | 49 | Axis Precision 2 |
0x00 | 0x41 | 0x041 | 65 | Axis Precision 3 |
0x00 | 0x51 | 0x051 | 81 | Axis Precision 4 |
0x00 | 0x26 | 0x026 | 38 | Axis Range 1 |
0x00 | 0x36 | 0x036 | 54 | Axis Range 2 |
0x00 | 0x46 | 0x046 | 70 | Axis Range 3 |
0x00 | 0x56 | 0x056 | 86 | Axis Range 4 |
0x00 | 0x24 | 0x024 | 36 | Axis Start Velocity 1 |
0x00 | 0x34 | 0x034 | 52 | Axis Start Velocity 2 |
0x00 | 0x44 | 0x044 | 68 | Axis Start Velocity 3 |
0x00 | 0x54 | 0x054 | 84 | Axis Start Velocity 4 |
0x00 | 0x16 | 0x016 | 22 | Laser Attenuation |
0x00 | 0x1B | 0x01B | 27 | Laser Standby Pulse 1 |
0x00 | 0x1d | 0x01D | 29 | Laser Standby Pulse 2 |
0x00 | 0x67 | 0x067 | 103 | Laser Standby Pulse 3 |
0x00 | 0x6C | 0x06C | 108 | Laser Standby Pulse 4 |
0x00 | 0x60 | 0x060 | 96 | Machine Type (0x1155, 0xaa55) |
0x02 | 0x00 | 0x100 | 256 | System Settings |
0x02 | 0x0c | 0x10C | 268 | Manual Dis |
0x02 | 0x31 | 0x131 | 305 | Manual Fast Speed |
0x02 | 0x32 | 0x132 | 306 | Manual Slow Speed |
0x02 | 0x21 | 0x121 | 289 | Rotate D |
0x02 | 0x1F | 0x11F | 287 | Rotate Pulse |
0x02 | 0x1B | 0x11B | 283 | Turn Ratio |
0x02 | 0x01 | 0x101 | 257 | Turn Velocity |
0x02 | 0x02 | 0x102 | 258 | Syn Acc |
0x02 | 0x09 | 0x109 | 265 | Turn Acc |
0x02 | 0x07 | 0x107 | 263 | Feed Delay After |
0x02 | 0x0B | 0x10B | 267 | Feed Delay Prior |
0x02 | 0x0E | 0x10E | 270 | Focus Depth |
0x02 | 0x0A | 0x10A | 266 | G0 Acc |
0x02 | 0x1C | 0x11C | 284 | Acc G0 Ratio |
0x02 | 0x0D | 0x10D | 269 | Shut Down Delay |
0x02 | 0x03 | 0x103 | 259 | G0 Delay |
0x02 | 0x26 | 0x126 | 294 | User Para 1 |
0x02 | 0x2C | 0x12C | 300 | U Home Velocity |
0x02 | 0x2D | 0x12D | 301 | U Work Velocity |
0x02 | 0x25 | 0x125 | 293 | X Eng Acc |
0x02 | 0x24 | 0x124 | 292 | X Minimum Eng Velocity |
0x02 | 0x35 | 0x135 | 309 | Y Eng Acc |
0x02 | 0x34 | 0x134 | 308 | Y Minimum Eng Velocity |
0x02 | 0x37 | 0x137 | 311 | Eng Acc Ratio |
0x02 | 0x2A | 0x12A | 298 | Z G0 Velocity |
0x02 | 0x28 | 0x128 | 296 | Z Home Velocity |
0x02 | 0x2B | 0x12B | 299 | Z Pen Up Position |
0x02 | 0x29 | 0x129 | 297 | Z Work Velocity |
0x02 | 0x1A | 0x11A | 282 | Acc Ratio |
0x02 | 0x17 | 0x117 | 279 | Array Feed Repay |
0x02 | 0x0F | 0x10F | 271 | Go Scale Blank |
0x03 | 0x00 | 0x180 | 384 | Card Language |
0x03 | 0x01 | 0x181 | 385 | PC Lock 1 |
0x03 | 0x02 | 0x182 | 386 | PC Lock 2 |
0x03 | 0x03 | 0x183 | 387 | PC Lock 3 |
0x03 | 0x04 | 0x184 | 388 | PC Lock 4 |
0x03 | 0x05 | 0x185 | 389 | PC Lock 5 |
0x03 | 0x06 | 0x186 | 390 | PC Lock 6 |
0x03 | 0x07 | 0x187 | 391 | PC Lock 7 |
0x04 | 0x11 | 0x211 | 529 | Total Laser Work Time |
0x04 | 0x01 | 0x201 | 513 | Total Open Time |
0x04 | 0x23 | 0x223 | 547 | Total Work Length 1 |
0x04 | 0x33 | 0x233 | 563 | Total Work Length 2 |
0x04 | 0x43 | 0x243 | 579 | Total Work Length 3 |
0x04 | 0x53 | 0x253 | 595 | Total Work Length 4 |
0x04 | 0x03 | 0x203 | 515 | Total Work Number |
0x04 | 0x02 | 0x202 | 514 | Total Work Time |
0x04 | 0x08 | 0x208 | 520 | Pre Work Time |
0x04 | 0x05 | 0x205 | 517 | Total Doc Number |
0x04 | 0x21 | 0x221 | 545 | Axis Preferred Position 1 |
0x04 | 0x31 | 0x231 | 561 | Axis Preferred Position 2 |
0x04 | 0x41 | 0x241 | 577 | Axis Preferred Position 3 |
0x04 | 0x51 | 0x251 | 593 | Axis Preferred Position 4 |
0x04 | 0x00 | 0x200 | 512 | Machine Status (0b00110111 relevant bits). |
0x05 | 0x7E | 0x2FE | 766 | Card ID |
0x05 | 0x7F | 0x2FF | 767 | Mainboard Version |
0x07 | 0x10-0x74 | 0x390 | 912 | Document Time |
0x0b | 0x11 | 0x591 | 1425 | Card Lock |
Default Values
Parameter Type | RDWorks Name | Default Value | Code | Parameter Name |
---|---|---|---|---|
Cut | Idle speed | 200 mm/s | 0x00 0x05 | G0 Velocity |
Cut | Idle Acc | 3000.000 mm/s2 | 0x02 0x0a | G0 Acc |
Cut | Start Speed | 20 mm/s | 0x02 0x01 | Turn Velocity |
Cut | Min Acc | 400mm/s2 | 0x02 0x09 | Turn Acc |
Cut | Max acc | 3000mm/s2 | 0x02 0x02 | Syn Acc |
Cut | Idle delay | 0ms | 0x02 0x03 | G0 Delay |
Cut | Acc factor | 100% | 0x02 0x1A | Acc Ratio |
Cut | G0 Acc factor | 100% | 0x02 0x1C | Acc G0 Ratio |
Cut | Speed factor | 100% | 0x02 0x1B | Turn Ratio |
Sweep | x Start Speed | 10mm/s | 0x02 0x24 | X Min Eng Velocity |
Sweep | y Start Speed | 10mm/s | 0x02 0x34 | Y Min Eng Velocity |
Sweep | x Acc | 10000.000mm/s2 | 0x02 0x25 | X Eng Acc |
Sweep | y Acc | 3000mm/s2 | 0x02 0x35 | Y Eng Acc |
Sweep | Line Shift Speed | 100 mm/s | 0x00 0x0E | Eng Vert Velocity |
Sweep | Scan Mode | Common Mode | ||
Sweep | Facula Size | 80% | 0x00 0x0B | Eng Facula |
Sweep | Engraving factor | 100 | 0x02 0x37 | Eng Acc Ratio |
Feeding | Delay before feed | 0s | 0x02 0x0B | Feed Delay Prior |
Feeding | Delay after feed | 0ms | 0x02 0x07 | Feed Delay After |
Feeding | Progressive Feeding | No | ||
Feeding | Progressive feeding repay | 0mm | 0x02 0x17 | Array Feed Repay |
Feeding | Last feeding | Yes | ||
Home | Home speed | 20mm/s | 0x00 0x0C | Home Velocity |
Home | Auto home X | Yes | 0x00 0x20 | Axis Control Para 1 |
Home | Auto home Y | Yes | 0x00 0x30 | Axis Control Para 2 |
Home | Auto home Z | No | 0x00 0x40 | Axis Control Para 3 |
Home | Auto home U | No | 0x00 0x50 | Axis Control Para 4 |
Go Scale | Go scale mode | Close laser | ||
Go Scale | Go scale blank | 0 mm | 0x02 0x0F | Go Scale Blank |
Other | Array processing | Bi-dir Array | ||
Other | Return position | Absolute Origin | 0x00 0x10 | System Control Mode |
Other | Focus depth | 5mm | 0x02 0x0E | Focus Depth |
Other | Backlash X | 0mm | 0x00 0x2B | Axis Backlash 1 |
Other | Backlash Y | 0mm | 0x00 0x3B | Axis Backlash 2 |
Panel | Enable Speed shift | No | ||
Panel | Fast moving | 100 mm/s | 0x02 0x31 | Manual Fast Speed |
Panel | Slow moving | 10mm/s | 0x02 0x32 | Manual Slow Speed |
System Settings Parameter:
Setting | Value | V |
---|---|---|
0x0000 | Return Position=Origin | |
0x4000 | Return Position=No return | |
0x8000 | Return Position=Absolute Origin |
Machine Status:
0x10 = IsMove
Examples
Example 1, Simple Rect
In this example we'll see a very basic project cutting a quickly drawn rectangle.
Command | Interpretation | Comment |
---|---|---|
d810 | Ref Point Mode 2 | |
f0 | Ref Point Set | |
e601 | Set Absolute | |
f10200 | Enable Block Cutting (0) | |
d800 | Start Process | |
e70600000000000000000000 | Feed Repeat (0, 0) | |
e70300000b51120000021258 | Process TopLeft (7504.330709, 1384.251969) | |
e707000011164c0000064e02 | Process BottomRight(11079.527559, 4263.385827) | |
e75000000b51120000021258 | Document Min Point(58.622047, 21136660.866142) | |
e751000011164c0000064e02 | Document Max Point(11079.527559, 4263.385827) | |
e7040001000100000000000000000000 | Process Repeat (1, 1, 0, 0, 0, 0, 0) | |
e70500 | Array Direction (0) | |
c904000000060d20 | 0, Speed 100.000000mm/s | |
c631001319 | 0, Power 1 Min=(14.996338) | |
c632001828 | 0, Power 1 Max=(14.996338) | |
c641002632 | 0, Power 2 Min (29.992676) | |
c642002632 | 0, Power 2 Max (29.992676) | |
c635002632 | 0, Power 3 Min (29.992676) | |
c636002632 | 0, Power 3 Max (29.992676) | |
c637002632 | 0, Power 4 Min (29.992676) | |
c638002632 | 0, Power 4 Max (29.992676) | |
ca06000000000000 | 0, Color #000000 | |
ca410000 | 0, Work Mode 0 | |
e7520000000b51120000021258 | 0, Min Point(7504.330709, 1384.251969) | |
e75300000011164c0000064e02 | 0, MaxPoint(11079.527559, 4263.385827) | |
e7610000000b51120000021258 | 0, MinPointEx(7504.330709, 1384.251969) | |
e76200000011164c0000064e02 | 0, MaxPointEx(11079.527559, 4263.385827) | |
ca2200 | 0, Max Layer | |
e754000000030650 | Pen Offset 0: 1968.503937 | |
e754010000030650 | Pen Offset 1: 1968.503937 | |
e755000000000000 | Layer Offset 0: 0.000000 | |
e755010000000000 | Layer Offset 1: 0.000000 | |
f10300000306500000030650 | Display Offset (1968.503937,1968.503937) | |
f10000 | Element Max Index (0) | |
f10100 | Element Name Max Index(0) | |
f20000 | Element Index (0) | |
f20100 | Element Name Index (0) | |
f202052a391c41046a150820 | Element Name (b'\x05*9\x1cA\x04j\x15\x08 ') | |
f20300000b51120000021255 | Element Array Min Point (7504.330709,1384.133858) | |
f20400001116500000064e03 | Element Array Max Point (11079.685039,4263.425197) | |
f20600000000000000000000 | Element Array Add (0.000000,0.000000) | |
f20700 | Element Array Mirror (0) | |
f205000100017f7f7a3a430000043b2d | Element Array (1, 1, -1, -710, -7808, 4, 7597) | |
ea00 | Array Start (0) | |
e76000 | Set Current Element Index (0) | |
e71300000b51120000021255 | Array Min Point (7504.330709,1384.133858) | |
e71700001116500000064e03 | Array Max Point (11079.685039,4263.425197) | |
e72300000000000000000000 | Array Add (0.000000,0.000000) | |
e72400 | Array Mirror 0 | |
e708000100017f7f7a3a430000043b2d | Array Repeat (1, 1, -1, -710, -7808, 4, 7597) | |
ca0100 | End Layer | |
ca0200 | 0, Layer Number | |
ca0130 | EnLaser2Offset 0 | |
ca0110 | Layer Device 0 | |
ca0113 | Air Assist On | |
c9020000060d20 | Speed Laser 1 100.000000mm/s | |
c6150000000000 | Laser On2 0.000000ms | |
c6160000000000 | Laser Off2 0.000000ms | |
c6011319 | Power 1 min=14.996338 | |
c6021828 | Power 1 max=18.994141 | |
c6212632 | Power 2 min=29.992676 | |
c6222632 | Power 2 max=29.992676 | |
c6052632 | Power 3 min=29.992676 | |
c6062632 | Power 3 max=29.992676 | |
c6072632 | Power 4 min=29.992676 | |
c6082632 | Power 4 max=29.992676 | |
ca030d | EnLaserTube Start | |
ca1000 | EnExIO Start 0 | |
8800001116500000021256 | Move Absolute (11079.685039, 1384.173228) | |
a800000b51120000021256 | Cut Absolute (7504.330709, 1384.173228) | |
a800000b51120000064e03 | Cut Absolute (7504.330709, 4263.425197) | |
a800001116500000064e03 | Cut Absolute (11079.685039, 4263.425197) | |
a800001116500000021256 | Cut Absolute (11079.685039, 1384.173228) | |
eb | Array End | |
e700 | Block End | |
da01062000000002470000000247 | Set Param 06 20 (None) = [0, 0, 0, 2, 71, 0, 0, 0, 2, 71] | |
d7 | End Of File |
Example #2 three rect
This time we'll use the same rectangle but add another rectangle with different properties to the mix. And then the first rectangle properties again.
Header text | Header text | Header text |
---|---|---|
d810 | Ref Point Mode 2 | |
f0 | Ref Point Set | |
e601 | Set Absolute | |
f10200 | Enable Block Cutting (0) | |
d800 | Start Process | |
e70600000000000000000000 | Feed Repeat (0, 0) | |
e7030000052d3c0000021258 | Process TopLeft (3454.330709, 1384.251969) | |
e707000011164c00000c3f3a | Process BottomRight(11079.527559, 8060.236220) | |
e7500000052d3c0000021258 | Document Min Point(26.968504, 42273310.944882) | |
e751000011164c00000c3f3a | Document Max Point(11079.527559, 8060.236220) | |
e7040001000100000000000000000000 | Process Repeat (1, 1, 0, 0, 0, 0, 0) | |
e70500 | Array Direction (0) | |
c904000000060d20 | 0, Speed 100.000000mm/s | |
c631001319 | 0, Power 1 Min=(14.996338) | |
c632001828 | 0, Power 1 Max=(14.996338) | |
c641002632 | 0, Power 2 Min (29.992676) | |
c642002632 | 0, Power 2 Max (29.992676) | |
c635002632 | 0, Power 3 Min (29.992676) | |
c636002632 | 0, Power 3 Max (29.992676) | |
c637002632 | 0, Power 4 Min (29.992676) | |
c638002632 | 0, Power 4 Max (29.992676) | |
ca06000000000000 | 0, Color #000000 | |
ca410000 | 0, Work Mode 0 | |
e7520000000a31080000021258 | 0, Min Point(6697.637795, 1384.251969) | |
e75300000011164c00000c3f3a | 0, MaxPoint(11079.527559, 8060.236220) | |
e7610000000a31080000021258 | 0, MinPointEx(6697.637795, 1384.251969) | |
e76200000011164c00000c3f3a | 0, MaxPointEx(11079.527559, 8060.236220) | |
c904010000047100 | 1, Speed 80.000000mm/s | |
c631013f7f | 1, Power 1 Min=(49.993896) | |
c632013f7f | 1, Power 1 Max=(49.993896) | |
c641012632 | 1, Power 2 Min (29.992676) | |
c642012632 | 1, Power 2 Max (29.992676) | |
c635012632 | 1, Power 3 Min (29.992676) | |
c636012632 | 1, Power 3 Max (29.992676) | |
c637012632 | 1, Power 4 Min (29.992676) | |
c638012632 | 1, Power 4 Max (29.992676) | |
ca0601000000017f | 1, Color #ff0000 | |
ca410100 | 1, Work Mode 0 | |
e752010000052d3c0000065d5c | 1, Min Point(3454.330709, 4342.519685) | |
e75301000008066400000a537e | 1, MaxPoint(5194.488189, 6873.622047) | |
e761010000052d3c0000065d5c | 1, MinPointEx(3454.330709, 4342.519685) | |
e76201000008066400000a537e | 1, MaxPointEx(5194.488189, 6873.622047) | |
ca2201 | 1, Max Layer | |
e754000000030650 | Pen Offset 0: 1968.503937 | |
e754010000030650 | Pen Offset 1: 1968.503937 | |
e755000000000000 | Layer Offset 0: 0.000000 | |
e755010000000000 | Layer Offset 1: 0.000000 | |
f10300000306500000030650 | Display Offset (1968.503937,1968.503937) | |
f10000 | Element Max Index (0) | |
f10100 | Element Name Max Index(0) | |
f20000 | Element Index (0) | |
f20100 | Element Name Index (0) | |
f202052a391c41046a150820 | Element Name (b'\x05*9\x1cA\x04j\x15\x08 ') | |
f2030000052d3d0000021255 | Element Array Min Point (3454.370079,1384.133858) | |
f204000011165000000c3f3a | Element Array Max Point (11079.685039,8060.236220) | |
f20600000000000000000000 | Element Array Add (0.000000,0.000000) | |
f20700 | Element Array Mirror (0) | |
f2050001000100000b691200000a2c64 | Element Array (1, 1, 0, 1513, 2304, 10, 5732) | |
ea00 | Array Start (0) | |
e76000 | Set Current Element Index (0) | |
e7130000052d3d0000021255 | Array Min Point (3454.370079,1384.133858) | |
e717000011165000000c3f3a | Array Max Point (11079.685039,8060.236220) | |
e72300000000000000000000 | Array Add (0.000000,0.000000) | |
e72400 | Array Mirror 0 | |
e7080001000100000b691200000a2c64 | Array Repeat (1, 1, 0, 1513, 2304, 10, 5732) | |
ca0100 | End Layer | |
ca0200 | 0, Layer Number | |
ca0130 | EnLaser2Offset 0 | |
ca0110 | Layer Device 0 | |
ca0113 | Air Assist On | |
c9020000060d20 | Speed Laser 1 100.000000mm/s | |
c6150000000000 | Laser On2 0.000000ms | |
c6160000000000 | Laser Off2 0.000000ms | |
c6011319 | Power 1 min=14.996338 | |
c6021828 | Power 1 max=18.994141 | |
c6212632 | Power 2 min=29.992676 | |
c6222632 | Power 2 max=29.992676 | |
c6052632 | Power 3 min=29.992676 | |
c6062632 | Power 3 max=29.992676 | |
c6072632 | Power 4 min=29.992676 | |
c6082632 | Power 4 max=29.992676 | |
ca030d | EnLaserTube Start | |
ca1000 | EnExIO Start 0 | |
8800001116500000021256 | Move Absolute (11079.685039, 1384.173228) | |
a800000b51120000021256 | Cut Absolute (7504.330709, 1384.173228) | |
a800000b51120000064e03 | Cut Absolute (7504.330709, 4263.425197) | |
a800001116500000064e03 | Cut Absolute (11079.685039, 4263.425197) | |
a800001116500000021256 | Cut Absolute (11079.685039, 1384.173228) | |
ca0100 | End Layer | |
ca0201 | 1, Layer Number | |
ca0130 | EnLaser2Offset 0 | |
ca0110 | Layer Device 0 | |
ca0113 | Air Assist On | |
c9020000047100 | Speed Laser 1 80.000000mm/s | |
c6150000000000 | Laser On2 0.000000ms | |
c6160000000000 | Laser Off2 0.000000ms | |
c6013f7f | Power 1 min=49.993896 | |
c6023f7f | Power 1 max=49.993896 | |
c6212632 | Power 2 min=29.992676 | |
c6222632 | Power 2 max=29.992676 | |
c6052632 | Power 3 min=29.992676 | |
c6062632 | Power 3 max=29.992676 | |
c6072632 | Power 4 min=29.992676 | |
c6082632 | Power 4 max=29.992676 | |
ca030d | EnLaserTube Start | |
ca1000 | EnExIO Start 0 | |
8800000806670000065d5c | Move Absolute (5194.606299, 4342.519685) | |
a80000052d3e0000065d5c | Cut Absolute (3454.409449, 4342.519685) | |
a80000052d3e00000a5401 | Cut Absolute (3454.409449, 6873.740157) | |
a8000008066700000a5401 | Cut Absolute (5194.606299, 6873.740157) | |
a800000806670000065d5c | Cut Absolute (5194.606299, 4342.519685) | |
ca0100 | End Layer | |
ca0200 | 0, Layer Number | |
ca0130 | EnLaser2Offset 0 | |
ca0110 | Layer Device 0 | |
ca0113 | Air Assist On | |
c9020000060d20 | Speed Laser 1 100.000000mm/s | |
c6150000000000 | Laser On2 0.000000ms | |
c6160000000000 | Laser Off2 0.000000ms | |
c6011319 | Power 1 min=14.996338 | |
c6021828 | Power 1 max=18.994141 | |
c6212632 | Power 2 min=29.992676 | |
c6222632 | Power 2 max=29.992676 | |
c6052632 | Power 3 min=29.992676 | |
c6062632 | Power 3 max=29.992676 | |
c6072632 | Power 4 min=29.992676 | |
c6082632 | Power 4 max=29.992676 | |
ca030d | EnLaserTube Start | |
ca1000 | EnExIO Start 0 | |
8800000c5b2300000a313d | Move Absolute (8200.433071, 6699.724409) | |
a800000a310500000a313d | Cut Absolute (6697.519685, 6699.724409) | |
a800000a310500000c3f3a | Cut Absolute (6697.519685, 8060.236220) | |
a800000c5b2300000c3f3a | Cut Absolute (8200.433071, 8060.236220) | |
a800000c5b2300000a313d | Cut Absolute (8200.433071, 6699.724409) | |
eb | Array End | |
e700 | Block End | |
da01062000000005320000000532 | Set Param 06 20 (None) = [0, 0, 0, 5, 50, 0, 0, 0, 5, 50] | |
d7 | End Of File |
Links
Official
Other Sources
- Roger Clarke Network Aware Laser Cutter Security.
- Fablab - Detail Rich Ruida Breakdown.
- Reverse Engineering of Laser Cutter Controller RDLxxx and RDCAM Software