Ruida

The educational technology and digital learning wiki
Jump to navigation Jump to search

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.


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

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.

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 send .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.

Example

In this example we'll see a very basic project cutting a quickly drawn rectangle.

Header text Header text Header text
d810 (Ref Point Mode 2)
f0 (Program Item 2)
e601 (Set Absolute)
f10200 (Enable Block Cutting (0))
d800 (Start Process)
e70600000000000000000000 (Origin Point (0.000000,0.000000))
e70300000c0c6a000003132e (Process TopLeft (7805.118110, 2032.677165))
e7070000102f000000072904 (Process BottomRight(10557.480315, 4722.047244))
e75000000c0c6a000003132e (Document Min Point (60.944882, 21136665.944882))
e7510000102f000000072904 (Document Max Point(10557.480315, 4722.047244))
e7040001000100000000000000000000 (Process Repeat (1, 1, 0, 0))
e70500 (Program Item 12 (0))
c904000000060d20 (Part 0, Speed set at 100.000000)
c631001319 (Part 0, Power 1 Min=(14.996338))
c632001828 (Part 0, Power 1 Max=(14.996338))
c641002632 (Part 0, Power 2 Min (29.992676))
c642002632 (Part 0, Power 2 Max (29.992676))
c635002632 (Part 0, Power 3 Min (29.992676))
c636002632 (Part 0, Power 3 Max (29.992676))
c637002632 (Part 0, Power 4 Min (29.992676))
c638002632 (Part 0, Power 4 Max (29.992676))
ca06000000000000 (Part 0, Color #000000)
ca410000 (Part 0, Work Mode 0)
e7520000000c0c6a000003132e (Part 0, MinX: 7805.118110 MinY: 2032.677165)
e753000000102f000000072904 (Part 0, MaxX: 10557.480315 MaxY: 4722.047244)
e7610000000c0c6a000003132e (Part 0, MinX: 7805.118110 MinY: 2032.677165)
e762000000102f000000072904 (Part 0, MaxX: 10557.480315 MaxY: 4722.047244)
ca2200 (Part 0, Max Layer)
e754000000030650 (Part, Pen Offset 0: 1968.503937)
e754010000030650 (Part, Pen Offset 1: 1968.503937)
e755000000000000 (Part, Layer Offset 0: 0.000000)
e755010000000000 (Part, 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 (F2 02 (56346267.755906,51038781.732283))
f20300000c0c650000031331 (Element Array Min Point (7804.921260,2032.795276))
f2040000102f030000072908 (Element Array Max Point (10557.598425,4722.204724))
f20600000000000000000000 (Element Array Add (0.000000,0.000000))
f20700 (Element Array Mirror (0))
f20500010001000004221e0000041557 (Element Array (1,1,0,69918,68311))
ea00 (Array Start (0))
e76000 (E7 60 (0))
e71300000c0c650000031331 (Array Min Point (7804.921260,2032.795276))
e7170000102f030000072908 (Array Max Point (10557.598425,4722.204724))
e72300000000000000000000 (Array Add (0.000000,0.000000))
e72400 (E7 24 (0))
e70800010001000004221e0000041557 (E7 08 (14 characters))
ca0100 (End Layer / Default Work Mode)
ca0200 (Part 0, Layer Number)
ca0130 ()
ca0110 (Layer Device 0)
ca0113 (Air Assist On.)
c9020000060d20 (Speed Laser 1 at 100.000000)
c6150000000000 (Laser On)
c6160000000000 (Laser Off)
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 ()
ca1000 (2 Start Vector Mode 00)
880000102f040000031331 (Move Absolute (10557.637795, 2032.795276))
a800000c0c650000031331 (Cut Absolute (7804.921260, 2032.795276))
a800000c0c650000072908 (Cut Absolute (7804.921260, 4722.204724))
a80000102f040000072908 (Cut Absolute (10557.637795, 4722.204724))
a80000102f040000031331 (Cut Absolute (10557.637795, 2032.795276))
eb (Finish)
e700 (Stop.)
da01062000000002140000000214 (Set 06 20)
d7 (End Of File)

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 (which are truncated to 32 bits).

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. The top three are simply ignored. These are zeroed so for signed versions it must be signed at the 32nd bit.

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
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 <Part> 0x31 <Power> 5 Part, Power Min 1 <Part> <Power>
0xC6 0x41 0xC6 <Part> 0x41 <Power> 5 Part, Power Min 2 <Part> <Power>
0xC6 0x35 0xC6 <Part> 0x35 <Power> 5 Part, Power Min 3 <Part> <Power>
0xC6 0x37 0xC6 <Part> 0x37 <Power> 5 Part, Power Min 4 <Part> <Power>
0xC6 0x32 0xC6 <Part> 0x32 <Power> 5 Part, Power Max 1 <Part> <Power>
0xC6 0x42 0xC6 <Part> 0x42 <Power> 5 Part, Power Max 2 <Part> <Power>
0xC6 0x36 0xC6 <Part> 0x36 <Power> 5 Part, Power Max 3 <Part> <Power>
0xC6 0x38 0xC6 <Part> 0x38 <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 <Laser> <Part> 0x60 <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 <Part> 0x04 <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 0x13 3 Set DbHead
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 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> <int35> 9 Write/Respond Param <Param> <Value>
0xDC 0x01 0xDA 0x01 ?? ?? Upgrade Font
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 0x07 0xE7 0x06 <Abscoord> <Abscoord> 12 Origin Point <X> <Y>
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 <int_7> 3 ?? Common ??
0xE7 0x35 0xE7 0x35 ??? ?? Block X Size
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 TopLeft <X> <Y>
0xE7 0x53 0xE7 0x53 <Part> <Abscoord> <Abscoord> 13 Part BottomRight <X> <Y>
0xE7 0x54 0xE7 0x54 <Part> <Abscoord> 8 Part, Pen Offset <Abscoord>
0xE7 0x55 0xE7 0x55 <Part> <Abscoord> 8 Part, Layer Offset <Abscoord>
0xE7 0x60 0xE7 0x60 <Index> 3 Set Current Element Index <Index>
0xE7 0x61 0xE7 0x61 <Part> <Abscoord> <Abscoord> 13 Part TopLeft ?? <X> <Y>
0xE7 0x62 0xE7 0x62 <Part> <Abscoord> <Abscoord> 13 Part BottomRight ?? <X> <Y>
0xE8 0x00 0xE8 0x00 12 Delete Document
0xE8 0x01 0xE8 0x01 <FileNumber> <c_string> 4 + N Document Name <FileNumber> <FileName>
0xE8 0x02 0xE8 0x02 2 File Transfer
0xE8 0x03 0xE8 0x03 <Index> 3 Select Document <Index>
0xE8 0x04 0xE8 0x04 2 Calculate Document Time
0xE9 0x10 0xE9 0x10 ?? 2 + ?? Update Logo
0xE9 0x30 0xE9 0x30 ?? 2 + ?? Update Color Logo
0xEA 0xEA <Index> 2 Array Start
0xEB 0xEB 1 Array End
0xF0 0xF0 ?? Unknown Common
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 ?? 14 Unknown Common (same as E7 08)
0xF2 0x06 0xF2 0x06 <Abscoord> <Abscoord> 12 Element Array Add <X> <Y>
0xF2 0x07 0xF2 0x07 <Index> 3 Element Array Mirror <Index>

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

Properties 0xDA

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 Key_Value
0x04 0x03 Acc G0 Ratio
0x02 0x1A Acc Ratio
0x02 0x17 Array Feed Repay
0x00 0x1e Auto Type Space
0x00 0x2B Axis Backlash 1
0x00 0x3B Axis Backlash 2
0x00 0x4B Axis Backlash 3
0x00 0x5B Axis Backlash 4
0x00 0x28 Axis Btn Acc 1
0x00 0x38 Axis Btn Acc 2
0x00 0x48 Axis Btn Acc 3
0x00 0x58 Axis Btn Acc 4
0x00 0x27 Axis Btn Strt Vel 1
0x00 0x37 Axis Btn Strt Vel 2
0x00 0x47 Axis Btn Strt Vel 3
0x00 0x57 Axis Btn Strt Vel 4
0x00 0x29 Axis Estp Acc 1
0x00 0x39 Axis Estp Acc 2
0x00 0x49 Axis Estp Acc 3
0x00 0x59 Axis Estp Acc 4
0x00 0x2A Axis Home Offset 1
0x00 0x3A Axis Home Offset 2
0x00 0x4A Axis Home Offset 3
0x00 0x5A Axis Home Offset 4
0x00 0x25 Axis Max Acc 1
0x00 0x35 Axis Max Acc 2
0x00 0x45 Axis Max Acc 3
0x00 0x55 Axis Max Acc 4
0x00 0x23 Axis Max Velocity 1
0x00 0x33 Axis Max Velocity 2
0x00 0x43 Axis Max Velocity 3
0x00 0x53 Axis Max Velocity 4
0x00 0x21 Axis Precision 1
0x00 0x31 Axis Precision 2
0x00 0x41 Axis Precision 3
0x00 0x51 Axis Precision 4
0x00 0x26 Axis Range 1
0x00 0x36 Axis Range 2
0x00 0x46 Axis Range 3
0x00 0x56 Axis Range 4
0x00 0x24 Axis Strt Velocity 1
0x00 0x34 Axis Strt Velocity 2
0x00 0x44 Axis Strt Velocity 3
0x00 0x54 Axis Strt Velocity 4
0x03 0x00 Card Language
0x0b 0x11 Card Lock
0x02 0x37 Eng Acc Ratio (0-200)
0x00 0x0B Eng Facula
0x00 0x0E Eng Vert Velocity
0x02 0x07 Feed Delay After
0x02 0x0b Feed Delay Prior
0x02 0x0e Focus Depth
0x02 0x0a G0 Acc
0x02 0x03 G0 Delay
0x00 0x05 G0 Velocity
0x02 0x0f Go Scale Blank
0x00 0x0c Home Velocity
0x00 0x16 Laser Attenuation
0x00 0x13 Max Power 1
0x00 0x19 Max Power 2
0x00 0x64 Max Power 3
0x00 0x69 Max Power 4
0x00 0x12 Min Power 1
0x00 0x18 Min Power 2
0x00 0x63 Min Power 3
0x00 0x68 Min Power 4
0x00 0x11 Laser PWM Frequency 1
0x00 0x17 Laser PWM Frequency 2
0x00 0x65 Laser PWM Frequency 3
0x00 0x6a Laser PWM Frequency 4
0x00 0x1a Laser Standby Frequency 1
0x00 0x1c Laser Standby Frequency 2
0x00 0x66 Laser Standby Frequency 3
0x00 0x6B Laser Standby Frequency 4
0x00 0x1b Laser Standby Pulse 1
0x00 0x1d Laser Standby Pulse 2
0x00 0x67 Laser Standby Pulse 3
0x00 0x6C Laser Standby Pulse 4
0x60 0x1155 Set Machine Type (54, 55)
0x60 0xaa55 Set Machine Type (22, 55)
0x02 0x0c Manual Dis
0x02 0x31 Manual Fast Speed
0x02 0x32 Manual Slow Speed
0x03 0x01 - 0x08 PC Lock
0x04 0x08 Pre Work Time
0x02 0x21 Rotate D
0x02 0x1F Rotate Pulse
0x02 0x0D Shut Down Delay
0x02 0x02 Syn Acc
0x10 0x?? System Control Mode
0x02 0x?? System Settings
0x04 0x11 Total Laser Work Time
0x04 0x01 Total Open Time
0x04 0x23 Total Work Length
0x04 0x03 Total Work Number
0x04 0x02 Total Work Time
0x02 0x09 Turn Acc
0x02 0x1B Turn Ratio
0x02 0x01 Turn Velocity
0x06 0x00 U Home Velocity
0x02 0x26 User Para 1
0x02 0x2D U Work Velocity
0x02 0x25 X Eng Acc
0x02 0x24 X Minimum Eng Velocity
0x02 0x35 Y Eng Acc
0x02 0x34 Y Minimum Eng Velocity
0x02 0x2A Z G0 Velocity
0x02 0x28 Z Home Velocity
0x02 0x2B Z Pen Up Position
0x02 0x29 Z Work Velocity
0x07 0x10-0x74 Document Time
0x04 0x00 Machine Status (0b00110111 relevant bits).

Machine Status:

    0x10 = IsMove

Links

Official

Other Sources