All Projects → rgerganov → Footswitch

rgerganov / Footswitch

Licence: mit
Command-line utility for PCsensor foot switch

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Footswitch

tmo-live-graph
A simpe react app that plots a live view of the T-Mobile Home Internet Nokia 5G Gateway signal stats, helpful for optimizing signal.
Stars: ✭ 15 (-94.68%)
Mutual labels:  osx
AnyOption
C/C++ Command line and resource file option parsing
Stars: ✭ 83 (-70.57%)
Mutual labels:  osx
Imessage
💬 Send iMessages from command-line
Stars: ✭ 261 (-7.45%)
Mutual labels:  osx
installme-osx
My personal script to setup a new OSX
Stars: ✭ 57 (-79.79%)
Mutual labels:  osx
Phew
FLIF image viewer and QuickLook plugin for macOS
Stars: ✭ 74 (-73.76%)
Mutual labels:  osx
nodejs-system-sleep
Sleep function for Node.js All platforms.
Stars: ✭ 47 (-83.33%)
Mutual labels:  osx
Themeable
Easy, type-safe UI theming in Swift
Stars: ✭ 38 (-86.52%)
Mutual labels:  osx
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+1049.29%)
Mutual labels:  osx
Popover
Custom macOS Popover 💬
Stars: ✭ 71 (-74.82%)
Mutual labels:  osx
12306formac
An unofficial 12306 Client for Mac
Stars: ✭ 2,796 (+891.49%)
Mutual labels:  osx
rocksmithconvert
Simple standalone OSX app to convert Rocksmith 2014 .psarc (CDLC) files between PC and MAC.
Stars: ✭ 45 (-84.04%)
Mutual labels:  osx
osx-ch341-serial
CH340/CH341 based USB to Serial Port Adapter driver for Mac OSX
Stars: ✭ 17 (-93.97%)
Mutual labels:  osx
Xdebug Osx
Simple bash script to toggle xdebug on/off in OSX
Stars: ✭ 258 (-8.51%)
Mutual labels:  osx
yout
🔥 YouTube playlist player for desktop. Free, no YouTube ads, floating window. Available for Linux, Mac and Windows.
Stars: ✭ 82 (-70.92%)
Mutual labels:  osx
Ltfinderbuttons
My Finder buttons collection for macOS.
Stars: ✭ 269 (-4.61%)
Mutual labels:  osx
jdk8u-xcode10
How to compile JDK 8u with Xcode 9, 10, 11 or 12 on macOS. Also with Shenandoah and JavaFX
Stars: ✭ 34 (-87.94%)
Mutual labels:  osx
omnitty
Omnitty: Multiple-Machine SSH Multiplexer
Stars: ✭ 20 (-92.91%)
Mutual labels:  osx
Mapmap
Open source video mapping software
Stars: ✭ 282 (+0%)
Mutual labels:  osx
Chronos Timetracker
Desktop client for JIRA. Track time, upload worklogs without a hassle.
Stars: ✭ 273 (-3.19%)
Mutual labels:  osx
Vimmode.spoon
Adds vim keybindings to all OS X inputs
Stars: ✭ 262 (-7.09%)
Mutual labels:  osx

Build Status

Footswitch

Command line utlities for programming PCsensor and Scythe foot switches. There is support for both single pedal devices and three pedal devices. Use the footswitch binary for the following combinations of vendorId:productId:

  • 0c45:7403
  • 0c45:7404
  • 413d:2107
  • 1a86:e026

Scythe switches with vendorId:productId=0426:3011 can be programmed with the scythe binary. You can find the vendorId and productId of your device using the lsusb command on Linux.

The same kind of foot switches are used for building the popular VIM Clutch.

Building

The programs are using the hidapi library and should work on Linux and OSX. To build on Linux:

sudo apt-get install libhidapi-dev
git clone https://github.com/rgerganov/footswitch.git
cd footswitch
make
sudo make install

To build on OSX:

brew tap rgerganov/footswitch https://github.com/rgerganov/footswitch.git
brew install --HEAD footswitch

Usage

footswitch [-123] [-r] [-s <string>] [-S <raw_string>] [-ak <key>] [-m <modifier>] [-b <button>] [-xyw <XYW>]
   -r          - read all pedals
   -1          - program the first pedal
   -2          - program the second pedal (default)
   -3          - program the third pedal
   -s string   - append the specified string
   -S rstring  - append the specified raw string (hex numbers delimited with spaces)
   -a key      - append the specified key
   -k key      - write the specified key
   -m modifier - ctrl|shift|alt|win
   -b button   - mouse_left|mouse_middle|mouse_right
   -x X        - move the mouse cursor horizontally by X pixels
   -y Y        - move the mouse cursor vertically by Y pixels
   -w W        - move the mouse wheel by W

You cannot mix -sSa options with -kmbxyw options for one and the same pedal

_

scythe [-123] [-r] [-a <key>] [-m <modifier>] [-b <button>]
   -r          - read all pedals
   -1          - program the first pedal
   -2          - program the second pedal (default)
   -3          - program the third pedal
   -a key      - append the specified key
   -m modifier - ctrl|shift|alt|win
   -b button   - mouse_left|mouse_double|mouse_right

You cannot mix -a and -m options with -b option for one and the same pedal

Examples for PCsensor

footswitch -r
    read the persisted function in each pedal and print it on the console
footswitch -k a
    program the second pedal to print the letter 'a' (also work for single pedal devices);
    as a general rule you don't need to specify -1, -2 or -3 if you have only one pedal
footswitch -1 -k a -2 -k b -3 -k c
    program the first pedal to print 'a', second pedal to print 'b' and third pedal to print 'c'
footswitch -1 -k esc -2 -k enter
    program the first pedal as Escape key and the second pedal as Enter key
footswitch -1 -m ctrl -k a -3 -m alt -k f4
    program the first pedal as Ctrl+a and the third pedal as Alt+F4
footswitch -m ctrl -b mouse_middle
    program the second pedal as Ctrl+<middle_mouse_click>
footswitch -s 'hello world'
    program the second pedal to print 'hello world'
footswitch -s 'hello' -s ' ' -s 'world'
    this will also program the second pedal to print 'hello world';
    you can specify multiple -s options and each option will append to the resulting string
footswitch -a esc -a i
    program the second pedal to produce Escape and then the letter 'i'
footswitch -s ls -a enter
    program the second pedal to print 'ls' and then hit Enter
footswitch -S '29 C'
    program the second pedal with the specified 'raw' string (hex numbers delimited with spaces);
    you can find the hex code for each key at http://www.freebsddiary.org/APC/usb_hid_usages.php
footswitch -1 -x 10 -2 -w 15 -3 -y -10
    program first pedal to move the mouse cursor 10 pixels left;
    second pedal to move mouse wheel 15 units up;
    third pedal to move the mouse cursor 10 pixels right

Examples for Scythe

scythe -r
    read the persisted function in each pedal and print it on the console
scythe -1 -a a -2 -a b -3 -a c
    program the first pedal to print 'a', second pedal to print 'b' and third pedal to print 'c'
scythe -1 -m ctrl -a h -a o -2 -m alt -a f4 -3 -b mouse_double
    program the first pedal as Ctrl+h+o, the second pedal as Alt+F4 and the third pedal as double click

Hardware issues

Several people have reported misbehaviors with the PCsensor footswitch due to hardware issues. If the pedal is continuously sending a keypress without being pressed, then most probably some of the elements do not make good contact with the PCB. Follow the instructions contributed by @krasiyan on how to verify and fix this.

Author

Radoslav Gerganov

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].