Pendant with pyserial?

Has anyone run a serial/usb snoop and found the up/down/left/right signals?

I would think that it would be possible use pyGame and pySerial to move the gantry with any buttons or even a gamepad. I searched and see so many people asking for a pendant, some people even saying they’re going to manufacture one… Is there some kind of magic obfuscation in the web code or serial interfaces that move the gantry?

Thanks Phil, though these are many of the same things I saw. The solutions seem to require:

  1. ‘faking’ a key press by mapping the keys to a gamepad or other input device and having easel open
  2. wiring new hardware to the hardware
  3. using a new gcode sender

My question was whether anyone has used Python libraries to open a port, connect to the x-carve machine, and jog it around. Or emulate a web browser, load the java and send the commands via their own web interface. This wouldn’t require the three above I wouldn’t think.

You can buy wireless numerical keypad to jog your machine. And you don’t have to change anything, they’re very small and portable.

1 Like

Doesn’t this require having easel up, and your browser being the active application, then being in the either homing screen or machine options of easel?

Easel doesn’t even see that as an external controller. Just like your standard Keyboard. All you have to release your NumLock on your main keyboard, turn on portable one. Main keyboard works for numbers, while other one is controlling arrow keys plus minus keys.


I run jkeys (uses pygame) and bCNC (uses pyserial) on a RPi to map a gamepad’s buttons and axes to keystrokes. All button and axis ids have been previously identified with jstest.

These keys are associated to either standard or custom shortcuts. Look here for more info.

All three components are free and open source.

Reading the whole thread again it seems that you wish your jogging script to be the one talking to the serial port. Is this jogging for the sake of jogging? Don’t you wish to run a job after you jog somewhere?

If yes, it seems best if the gamepad interfaces with the gcode sender and the gcode sender interfaces with the controller via the serial port.

DIY pendant

This is my joggind device. Intrudes into the serial stream but everything seems to keep working like it should.

I thought that the keys only worked when specific Easel contexts were open, like the homing context, or the settings. If the only requirement for the keys to work to jog the gantry is that the easel tab is active/front and center, then awesome!

For some reason, the keys only worked for me in the aforementioned contexts.

It would be nice to move the gantry at any time, regardless of whether my internet is working, or browser is open. This was my reasoning for wanting to move it myself and not thinking that keyboard remappers were a good solution.

Like yesterday, I wanted to lift it to check the fit of a dust collection shoe I printed.

Hi guys, taking some tips from here, I installed all the drivers and stuff to get UGS up n working, however, from a bit of online sleuthing, I can’t find where the up/down/left/right jog button key strokes are for UGS.

Numerical keys . 8 up - 2 down - 4 left - 6 right - PgUp Z up - PgDn Z down.

Thank you so much!