;hid: 0x2341, 0x8036; Arduino Leonardo
hid: 0x2341, 0x8037; Arduino Micro
;hid: 0x16c0, 0x0486, 1; Teensy 3.2
name: "Micro"

readsize: 64
read: kbd,     0,  0, u2
read: kbdch,   0,  2, u2

read: an1,     0,  4, u2; Analog 1
read: an2,     0,  6, u2; Analog 2
read: an3,     0,  8, u2; Analog 3

read: btn1,    0, 10, u1
read: btn1ch,  0, 11, u1
read: btn1tm,  0, 12, u2
;read: btn2,   0, 14, u1
;read: btn2ch, 0, 15, u1
;read: btn2tm, 0, 16, u2

read: enc1d,   0, 18, s2; Encoder 1
read: enc1s,   0, 20, s2; Encoder 1
read: enc2d,   0, 22, s2; Encoder 2
read: enc2s,   0, 24, s2; Encoder 2

;test loopback
read: _tst1,  0, 48, flt
read: _tst2,  0, 52, flt
read: _tst3,  0, 56, flt
read: _tst4,  0, 60, u4; Time

expr: "if(and(kbdch, 1), print('Btn 11'));"
expr: "if(and(kbdch, 2), print('Btn 12'));"
expr: "if(and(kbdch, 4), print('Btn 13'));"
expr: "if(and(kbdch, 8), print('Btn 14'));"

expr: "if(and(kbdch, 16), print('Btn 21'));"
expr: "if(and(kbdch, 32), print('Btn 22'));"
expr: "if(and(kbdch, 64), print('Btn 23'));"
expr: "if(and(kbdch, 128), print('Btn 24'));"

expr: "if(and(kbdch, 256), print('Btn 31'));"
expr: "if(and(kbdch, 512), print('Btn 32'));"
expr: "if(and(kbdch, 1024), print('Btn 33'));"
expr: "if(and(kbdch, 2048), print('Btn 34'));"

expr: "if(and(kbdch, 4096), print('Btn 41'));"
expr: "if(and(kbdch, 8192), print('Btn 42'));"
expr: "if(and(kbdch, 16384), print('Btn 43'));"
expr: "if(and(kbdch, 32768), print('Btn 44'));"

expr: "if(btn1, print('Button 1 (', btn1tm, ')'));"
;expr: "if(btn2, print('Button 2 (', btn2tm, ')'));"

expr: "an1=centerex((an1-512)/512, 0.15, 1, 0.8);"
expr: "an2=centerex((an2-512)/512, 0.15, 1, 0.8);"
expr: "jog(0, an1, an2, 0);"

expr: "if(enc1d, cmd('Machine.Options.Override.Feed.Increase', enc1d/50));"
expr: "if(enc2d, cmd('Machine.Options.Override.Spindle.Increase', enc2d/50));"

writetime: 100
writesize: 64
write: _hw_work_x,  0, flt 
write: _hw_work_y,  4, flt
write: _hw_work_z,  8, flt
write: _hw_work_a,  12, flt
write: _hw_work_b,  16, flt
write: _hw_work_c,  20, flt
write: _hw_work_u,  24, flt
write: _hw_work_v,  28, flt
write: _hw_work_w,  32, flt
write: _hw_speed,   36, flt
write: _hw_spindle, 40, flt

exit