Skip to content

Instantly share code, notes, and snippets.

@meksor
Created March 30, 2021 17:09
Show Gist options
  • Save meksor/0eafd268c085a840a224c1ac02dbd19f to your computer and use it in GitHub Desktop.
Save meksor/0eafd268c085a840a224c1ac02dbd19f to your computer and use it in GitHub Desktop.

Observations

Setup Message

0x69 
0x34 

Seem to be at the beginning of every setup(?) message from the driver.

0x69 
0xb4

Seem to be at the beginning of every setup(?) response message.

Laser/Axis Power Message

< 0x75 (u)
< <axis/laser byte>
< 0x34 (4)
< <value byte>
< <value byte>

The last 4 bits of the Axis/Laser are always the same in two consecutive messages.

(0x84, 0xf4) (0x02, 0x72)

The whole byte is incremented by 0x70.

Setting Laser Power Min and Max to 100.00 in the commerical driver software yields 0xcece in the value bytes.

Data

Click Search

# Hello?
< 0x69 (i)
< 0x34 (4)
< 0xb8
< 0x4e (N)
> 	0x69 (i)
> 	0xb4
> 	0xb8
> 	0x4e (N)
> 	0x36 (6)
> 	0x2c (,)
> 	0xb4
> 	0x76 (v)
> 	0x34 (4)

# Info?
< 0x69 (i)
< 0x34 (4)
< 0x34 (4)
< 0x84
> 	0x69 (i)
> 	0xb4
> 	0x34 (4)
> 	0x84
> 	0x34 (4)
> 	0xb2
> 	0xd4
> 	0x0a
> 	0x14

Select COM

< 0x69 (i)
< 0x34 (4)
< 0x34 (4)
< 0x24 ($)
> 	0x69 (i)
> 	0xb4
> 	0x34 (4)
> 	0x24 ($)
> 	0x34 (4)
> 	0x34 (4)
> 	0xb4
> 	0x74 (t)
> 	0x34 (4)

Send Job

# Same as Hello? (twice)
< 0x69 (i)
< 0x34 (4)
< 0xb8
< 0x4e (N)
> 	0x69 (i)
> 	0xb4
> 	0xb8
> 	0x4e (N)
> 	0x36 (6)
> 	0x2c (,)
> 	0xb4
> 	0x76 (v)
> 	0x34 (4)
< 0x69 (i)
< 0x34 (4)
< 0xb8
< 0x4e (N)
> 	0x69 (i)
> 	0xb4
> 	0xb8
> 	0x4e (N)
> 	0x36 (6)
> 	0x2c (,)
> 	0xb4
> 	0x76 (v)
> 	0x34 (4)

# Something else?
< 0x69 (i)
< 0x34 (4)
< 0xba
< 0x22 (")
> 	0x69 (i)
> 	0xb4
> 	0xba
> 	0x22 (")
> 	0xbe
> 	0xa4
> 	0x58 (X)
> 	0x34 (4)
> 	0x34 (4)

# Again Hello?
< 0x69 (i)
< 0x34 (4)
< 0xb8
< 0x4e (N)
> 	0x69 (i)
> 	0xb4
> 	0xb8
> 	0x4e (N)
> 	0x36 (6)
> 	0x2c (,)
> 	0xb4
> 	0x76 (v)
> 	0x34 (4)

# Home Point or translate or something??? 
< 0x69 (i)
< 0x34 (4)
< 0x38 (8)
< 0x34 (4)
> 	0x69 (i)
> 	0xb4
> 	0x38 (8)
> 	0x34 (4)
> 	0x34 (4)
> 	0xb2
> 	0x4e (N)
> 	0x34 (4) <- This byte changes when moving the whole line down
> 	0x34 (4)


< 0x69 (i)
< 0x34 (4)
< 0xb8
< 0x4e (N)
> 	0x69 (i)
> 	0xb4
> 	0xb8
> 	0x4e (N)
> 	0x36 (6)
> 	0x2c (,)
> 	0xb4
> 	0x76 (v)
> 	0x34 (4)

# Actual Job?
< 0x6b (k)
< 0x22 (")
< 0x6b (k)
< 0x34 (4)
< 0xd5
< 0x36 (6)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0xd5
< 0xb2
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0xd5
< 0xb6
< 0x34 (4)
< 0x34 (4)
< 0x36 (6)
< 0x26 (&)
< 0x3a (:)
< 0x34 (4)
< 0x34 (4)
< 0xbe
< 0x92
< 0x1c
< 0xd5
< 0x38 (8)
< 0x34 (4)
< 0xb4
< 0x34 (4)
< 0xb4
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0xd5
< 0xb8
< 0x34 (4)

# == Speed ==

# Prefix 
< 0xfb
< 0x38 (8)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)

# Value
< 0x36 (6)
< 0xc0
< 0x14

# == / Speed ==

# == Power ==

# Axis
< 0x75 (u)
< 0x84
< 0x34 (4)

# Power Min/Max/L1/L2 
< 0x16 # MSB
< 0x02

# Axis
< 0x75 (u)
< 0xf4 (0x84 + 112, last 4 bits same as last axis message)
< 0x34 (4)

# Power Min/Max/L1/L2
< 0x16
< 0x02

# Axis
< 0x75 (u)
< 0x02
< 0x34 (4)

# Power Min/Max/L1/L2 
< 0x16
< 0x02

# Axis
< 0x75 (u)
< 0x72 (r) (0x02 + 112, last 4 bits same as last axis message)
< 0x34 (4)

# Power Min/Max/L1/L2 
< 0x16
< 0x02

# == / Power ==

< 0x79 (y)
< 0x36 (6)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x79 (y)
< 0x12
< 0x34 (4)
< 0x79 (y)
< 0xb4
< 0x34 (4)
< 0x79 (y)
< 0x32 (2)
< 0x34 (4)
< 0x79 (y)
< 0xb4
< 0x24 ($)
< 0x79 (y)
< 0xb4
< 0xa2

# == Speed (Again?) ==

< 0xfb
< 0x32 (2)
< 0x34 (4)
< 0x34 (4)

< 0x36 (6)
< 0xc0
< 0x14

# == / Speed ==

< 0x75 (u)
< 0x22 (")
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x75 (u)
< 0xa2
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)

# == Power (Again? Or is it "Turn the laser off", but why are the values also encoded?) ==

< 0x75 (u)
< 0xb4 <-- last 4 bits are the same as in the first set of messages
< 0x16
< 0x02

< 0x75 (u)
< 0x94 <-- last 4 bits are the same as in the first set of messages
< 0x16
< 0x02

< 0x75 (u)
< 0x32 (2) <-- last 4 bits are the same as in the first set of messages
< 0x16
< 0x02

< 0x75 (u)
< 0x12 <-- last 4 bits are the same as in the first set of messages
< 0x16
< 0x02

# == / Power ==

< 0x79 (y)
< 0xb2
< 0xb2
< 0x79 (y)
< 0x24 ($)
< 0x34 (4)
< 0x3b (;)
< 0x34 (4)
< 0x34 (4)
< 0x36 (6)
< 0x26 (&)
< 0xc0
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x1b
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0x34 (4)
< 0xbe
< 0x92
< 0x16
< 0xd5
< 0x34 (4)
< 0xe5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment