Arduino Pro Micro with 32U4 MCU.
Arduino Project:
CmdPanel.zip
Expression file:
Expr_CmdPanel.txt
#OnInit print("#OnInit CmdPanel: ", scope_name); cmd("Machine.Override.Spindle.Show", 1); hnd = array_new(); path = "\\?\hid#vid_2341&pid_8036&mi_02#a&11bee4d1&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"; usb_open(path); usb_addlistener(path, "#OnUsbCmdPanel", hnd, 16); #OnShutdown ;print("#OnShutdown CmdPanel:", scope_name); usb_remlistener(path); usb_close(path); array_delete(hnd); #OnUsbCmdPanel ;print("#OnUsbCmdPanel: Path=", .arg1); ;print("#OnUsbCmdPanel: Hnd=", .arg2); ;print("#OnUsbCmdPanel: Len=", .arg3); ;array_printdata(hnd, 16); if (array_getdata(.arg2, 0) && array_getdata(.arg2, 1), exec("#CmdPanelBtn1")); if (array_getdata(.arg2, 4) && array_getdata(.arg2, 5), exec("#CmdPanelBtn2")); if (array_getdata(.arg2, 8) && array_getdata(.arg2, 9), exec("#CmdPanelBtn3")); .delta = s16(array_getdata16(.arg2, 14)); .value = trunc(s16(array_getdata16(.arg2, 12))/2); if (.delta && (.value != valuelast), exec(.delta, .value, "#CmdPanelEnc")); valuelast = .value; #CmdPanelBtn1 ;print("Button 1"); ;cmd("Machine.Spindle", 0); spindle(0); #CmdPanelBtn2 ;print("Button 2"); ;cmd("Machine.Spindle", 1); spindle(1); #CmdPanelBtn3 ;print("Button 3"); #CmdPanelEnc ;print("delta = ", .arg1, ", value = ", .arg2); ovrd = 1 + (.arg2 / 10); ;cmd("Machine.Override.Spindle.Reset", ovrd); ovrdspindle(ovrd); #CmdPanelBlink print("#CmdPanelBlink: arg1=", .arg1); usb_writedata(path, 0, 1, .arg1 & 255, (.arg1>>8) & 255);