{"id":15015465,"url":"https://github.com/wolfmanjm/kivy-smoothie-host","last_synced_at":"2025-10-09T18:09:15.932Z","repository":{"id":66490487,"uuid":"89171393","full_name":"wolfmanjm/kivy-smoothie-host","owner":"wolfmanjm","description":"AKA Smoopi. A Smoothie host, running on rpi with touch screen, or on a Desktop. Supporting CNC operations and 3D printing.","archived":false,"fork":false,"pushed_at":"2025-04-02T18:27:51.000Z","size":2427,"stargazers_count":61,"open_issues_count":2,"forks_count":13,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-09T20:07:35.462Z","etag":null,"topics":["cnc","kivy","printing-3d","rpi","smoothie","smoothieware","touch-screen"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wolfmanjm.png","metadata":{"files":{"readme":"README-pendants.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-23T20:44:50.000Z","updated_at":"2025-04-02T18:27:55.000Z","dependencies_parsed_at":"2023-12-27T21:14:10.973Z","dependency_job_id":"e8133432-609d-497d-a643-2fad1a4cf6dd","html_url":"https://github.com/wolfmanjm/kivy-smoothie-host","commit_stats":{"total_commits":1126,"total_committers":3,"mean_commits":375.3333333333333,"dds":0.02042628774422739,"last_synced_commit":"d005febfa57fb25f5a1c93b1b6f5d9401d8e2007"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfmanjm%2Fkivy-smoothie-host","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfmanjm%2Fkivy-smoothie-host/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfmanjm%2Fkivy-smoothie-host/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfmanjm%2Fkivy-smoothie-host/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolfmanjm","download_url":"https://codeload.github.com/wolfmanjm/kivy-smoothie-host/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnc","kivy","printing-3d","rpi","smoothie","smoothieware","touch-screen"],"created_at":"2024-09-24T19:47:30.456Z","updated_at":"2025-10-09T18:09:10.900Z","avatar_url":"https://github.com/wolfmanjm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pendant README\nSupported pendants are documented here.\n\n## Pendants\nThere is support for a home made MPG pendant using a Teensy as a rawhid device. Also the LHB04 Mach3 pendant and the WHB04B (wired and wireless)\n\n### General\nIf the pendant supports macros they can be edited in the appropriate ini file.\nA Tools menu entry will be added to quickly edit the file using the built in text editor. If the file was modified it will automatically be reloaded.\n\n### Home made\nProject here...\n* https://github.com/wolfmanjm/mpg-usb\n* install as described there\n\nThen you need to do the following on the rpi...\n\n* sudo apt-get install libffi-dev\n* sudo apt-get install libhidapi-libusb0 libhidapi-hidraw0\n* git clone https://github.com/ahtn/python-easyhid\n* cd python-easyhid\n* sudo python3 setup.py install\n* add to the smoothiehost.ini file...\n\n        [modules]\n        mpg_rawhid = 0x16C0:0x0486\n\n* create a file /etc/udev/rules.d/49-teensy.rules and add the following...\n\n    ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"04[789B]?\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"\n    ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"04[789A]?\", ENV{MTP_NO_PROBE}=\"1\"\n    SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"04[789ABCD]?\", MODE:=\"0666\"\n    KERNEL==\"ttyACM*\", ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"04[789B]?\", MODE:=\"0666\"\n\n\nThen you will have the MPG/Pendant controller available for jogging etc.\n\n(NOTE you need the latest version of smoothieware)\n\n### HB04 wired USB (old one)\nSupport for the wired LHB04 MACH3 USB pendant is available.\nadd the following to the smoothiehost.ini file...\n\n    [modules]\n    hb04 = 0x10ce:0xeb70\n\nThe button functions can be defined in the hb04.ini file (see the sample-hb04.ini file)...\n\n    [macros]\n    # user defined macro buttons\n    macro1 = G0 X20 Y20\n    macro2 = G0 {axis}0\n    #macro7 = \n    #macro3 = \n    #macro6 = \n    #rewind = \n    # predefined buttons can be overriden\n    #start = runs last file viewed or run\n    #safez = G91 G0 Z20 G90\n    #origin = G90 G0 X0 Y0\n    #probez = G38.3 Z-25\n    #zero = G10 L20 P0 {axis}0\n    #home = $H\n    #spindle = M3 or M5 depending on whether spindle switch is on or off\n    #half = \"G90 G0 {}{}\".format(axis, self.app.wpos[axis-88]/2)\n\nPython Easyhid needs to be installed...\n\n* sudo apt-get install libffi-dev\n* sudo apt-get install libhidapi-libusb0 libhidapi-hidraw0\n* git clone https://github.com/ahtn/python-easyhid\n* cd python-easyhid\n* sudo python3 setup.py install\n\nthen add this to ```/etc/udev/rules.d/50-HB04.rules```...\n\n    SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"10ce\", ATTRS{idProduct}==\"eb70\", MODE:=\"0666\"\n\nPlug in the HB04 and turn it on, then run smoopi.\n\nMany of the buttons have default actions, but can be redefined in the ```[macros]``` section of the hb04.ini file. NOTE that if ```{axis}``` appears in the macro it will be replaced by the currently selected axis.\n\n#### Hard coded buttons\nStep button which when held down will increase or decrease the move multiplier based on the wheel moves (clockwise increases).\nat x1 each encoder click moves 0.001mm, at x10 it moves 0.01mm, at x100 it moves 0.1mm etc.\n\nHolding the MPG button will enable continuous jog mode. In continuous jog mode the gantry will move in the selected axis direction based on the direction the wheel is turned after entering cont mode, it will continue to move until the MPG button is released. The speed it moves is selected by the move multiplier, where 1x is 1/1000 of maximum actuator speed, 100x is 100/1000=0.1 of max speed and 1000x is full actuator speed.\nIn Step mode (when MPG is not held down) then the selected axis will move by the amount selected when the wheel is turned.\n\nThe Stop button will send a kill/halt (control X) to smoothie and the reset will send ```$X``` to unkill.\n\nThe Start/Pause button will run the last viewed/Run file or will pause if already running.\n\nThe move to origin and home buttons do as you would expect.\nThe ```=0``` button sets the WCS of the selected axis to 0.\nThe spindle button will toggle the spindle switch on and off (if one is defined)\nThe ```=1/2``` button will set the WCS of the currently selected axis to half the current position. (eg if WCS is set to 0 at left edge and spindle is at right edge it would set the WCS X to half the current value so then going to G0 X0 it would move the spindle to the center X position)\n\n### WHB04B wired or wireless with USB dongle\nSupport for the wired and wireless WHB04B MACH3 USB pendant is available in both the -4 and -6 axis versions.\n\nadd the following to the smoothiehost.ini file...\n\n    [modules]\n    whb04b = 0x10ce:0xeb93\n\nThe macro button functions can be defined in the ```whb04b.ini``` file (for starting you can copy and rename the ```sample_whb04b.ini``` file)...\n\n    [macros]\n    # user defined macro buttons\n    (see the sample file)\n\nNOTE that if ```{axis}``` appears in the macro it will be replaced by the currently selected axis.\n\nPython Easyhid needs to be installed...\n\n* sudo apt-get install libffi-dev\n* sudo apt-get install libhidapi-libusb0 libhidapi-hidraw0\n* git clone https://github.com/ahtn/python-easyhid\n* cd python-easyhid\n* sudo python3 setup.py install\n\nthen add this to ```/etc/udev/rules.d/50-whb04b.rules```...\n\n    SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"10ce\", ATTRS{idProduct}==\"eb93\", MODE:=\"0666\"\n\nPlug in the WHB04B or the dongle and turn the unit on, then run smoopi.\n\nThe Fn buttons (hold down Fn key) have hard coded actions to match the printed function.\n\nThe other hard coded buttons are the ```step``` button which sets the mode to step mode (described below). The ```Continuous``` button sets continuous jog mode, and ```Fn Continuous``` will set the MPG jog mode which sets velocity mode for the wheel.\n\nThe Stop button will send a kill/halt (control X) to smoothie and the Reset will send ```$X``` to unkill.\n\nThe Start and Pause button will run the last viewed or Run file or will pause if already running.\n\nFn and the Macro10 button will toggle the display from WCS to MCS display.\n\n#### Jog modes\n\n* Step jog mode issues jog commands each time the wheel turns, it moves the distance set by the right knob (in mm so full counter clockwise it jogs 0.001mm). The jogs are issued at the full speed of the selected axis.\n* Continuous jog mode the gantry will move the selected axis in the direction based on the direction the wheel is turned after entering cont mode, it will continue to move until the ```Continue``` button is released. The speed it moves is selected by the right knob (marked in % of the maximum axis speed).\n* MPG jog mode is similar to Step mode except for each turn of the wheel it moves a percentage of 1mm (based on the right knob, so full clockwise is 100% which is 1mm), and the velocity of the move is based on how fast the wheel is turned.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfmanjm%2Fkivy-smoothie-host","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolfmanjm%2Fkivy-smoothie-host","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfmanjm%2Fkivy-smoothie-host/lists"}