Last active
December 31, 2024 19:36
-
-
Save trebled-tech/23f478fdfb0a22156cd3fc4ed35cff8d to your computer and use it in GitHub Desktop.
Using the VEC Infinity foot pedal as input device in macOS 10.13.x, aka "High Sierra"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Using the VEC Infinity foot pedal as input device in macOS 10.13.x, aka "High Sierra" | |
environment | |
Mac mini (Late 2012 model) | |
macOS 10.13.6 | |
VEC Infinity foot pedal, originally sold as a bundled product with one of their transcription packages | |
initial state | |
non-optimal software / driver | |
Apple's System Integrity Protection has blocked required kernel extensions | |
background | |
This VEC foot pedal, Infinity model IN-USB-1, was used with a Windows 7 PC years ago as the hardware aspect of a package solution intended for medical transcription. Over the years, medical transcription and Windows PC receded into history, and the current goal was to use the pedal with an Apple computer as an augmentation to keyboard and mouse in the interest of minimizing RSIs. | |
USB Overdrive was a known-working solution prior to Apple introducing System Integrity Protection. USB Overdrive allowed basic key remapping, though the shareware nag timeout was annoying. With the introduction of System Integrity Protection, USB Overdrive became problematic. While version 3.4 should have worked fine with macOS 10.13.x (High Sierra), even when properly installed and allowed via System Integrity Protection, it failed to recognize the foot pedal. Testing on an alternate Mac Mini with a fresh install of 10.13.6 showed that version 3.3 was the last version that would successfully see the pedal. | |
At the outset of this fix, USB Overdrive had been previously installed and uninstalled several times, NX's NoMachine had been installed for other purposes, and the software detailed below, ControllerMate, was also present. None of these items were working due to multiple blocked kernel extensions stuck in a disallowed state. | |
solution | |
The process to resolve the issues involved several steps: address issues with System Integrity Protection without reinstalling the operating system, and install the ideal software solution for the foot pedal. | |
1. clean up the OS | |
My preferred tool for periodic maintenance in macOS is OnyX, https://www.titanium-software.fr/en/onyx.html. Download and install OnyX 3.4.9, then run its default Maintenance tasks. These will complete and the computer will reboot. Be aware that on the initial reboot, a number of critical system caches rebuild, which results in an unusually lengthy boot process. | |
2. allow disallowed system extensions | |
The main reason for the cleanup using OnyX is that it deletes the kernel extensions cache. When this cache is rebuilt, previously disallowed extensions are rediscovered, giving one a chance to allow them anew. When one fails to properly allow multiple extensions, System Integrity Protection gets into a confused state, where earlier disallowed extensions block the ability to allow subsequently installed extensions, and unanticipated intervention is required. | |
First, open the Security & Privacy pane in System Preferences, and select its General tab | |
Next and critically, click the lock icon in the lower left corner and authenticate - this must be done BEFORE attempting to click the Allow button | |
Now, click the Allow button. If multiple items requiring approval have been detected in the rebuilt cache, a dropdown will appear, listing the detected items. Check the checkboxes next to all items, then click OK. | |
Geek note: interestingly, a look at Disabled Software in System Information will still show previously installed, 'orphaned' items, but because the allow process references only what is in the current extensions cache, these old entries do not interfere with existing installed extensions. As far as I know, there are only two ways to clean up these orphans: reinstall the relevant software, allow the extensions, and then uninstall the software; or reinstall macOS. | |
3. install the best software solution | |
Geeky context: I have learned via longtime experience that there are two kinds of logic at work in the major operating systems. Microsoft and Apple have always related hardware support to manufacturers and device IDs. Linux, conversely and to maximize the valuable contributions of generally unpaid developers, focuses on chipsets first, device IDs second, and manufacturers almost not at all. | |
I almost see Apple's approach as a holdover from the pre-OS X days, since under the hood, OS X's recognition of hardware is almost identical to Linux', and 10 years ago I easily solved device driver issues for a Broadcom WLAN card by simply opening the kernel extension's plist, adding a missing device ID for hardware the existing Broadcom family driver was known to support, rebuilt the kext cache, and viola - wireless. | |
It was with this Linux logic in mind that I looked for evidence of someone using the foot pedal in Linux. As we geeks often struggle with multiple operating systems at the same time, we often note relevant solutions for Windows or macOS in the same blog entry as a Linux fix. | |
As detailed in the very useful blog post https://catswhisker.xyz/log/2018/8/27/use_vecinfinity_usb_foot_pedal_as_a_keyboard_under_linux/, the author had done exactly what I describe above, noting there's an excellent and very powerful software solution is available for this foot pedal called ControllerMate. It's a freely available GUI solution using powerful scripting to interface P.I. Engineering's foot pedals as input devices, which are - wait for it - exactly the same hardware as VEC's Infinity models! | |
ControllerMate is very powerful, and for the purposes of button remap, it's quite easy to configure. Referencing the menus, simply open Window > Palette Window > Controllers and Window > Keystrokes Palette. Drag the Button items under Device in the Controllers view to the ControllerMate main window, which will create Programming Page "New Page 1". Then drag the desired buttons from the Keystrokes Palette to positions directly under the desired Device buttons on New Page 1. For example, under VEC USB Footpedal Button #1, drag the button and the 'S' button directly below it. Now the foot pedal's left control generates Save in most applications! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment