Skip to content

Latest commit

 

History

71 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HackMan3D Control Deck

Version Platforms Hardware Firmware Controls Status Support

HackMan3D Control Deck (HCD) is a family of programmable desktop controllers. HCD-BASE and HCD Plus use an Arduino Pro Micro; HCD Pro uses an ESP32-S3 touchscreen. This repository contains the shared Windows/macOS/Linux configuration app, the branded interface and the firmware for all three models.

Download the app — version 1.5.7

The project is currently private. These downloads are available only to people who have access to this repository.

Quick start — recommended

You do not need Python, Arduino IDE or a manual AVRDUDE installation to build a working HackMan3D Control Deck.

  1. Assemble the controller using the wiring diagram and wiring notes.
  2. Download and install the HCD application for macOS or Windows. Linux users can choose the .deb or AppImage matching their x86_64 or ARM64 computer from the links above. Apple Silicon virtual machines normally need the ARM64/aarch64 package.
  3. Connect the compatible Arduino Pro Micro to the computer by USB.
  4. Open Firmware in the application, select HCD-BASE and click Install firmware.
  5. Wait for the upload and automatic reconnection, then assign actions to the keys from the 3D editor.

The application contains the official HCD firmware and flashing tools. Once the installation is complete, keep the app running in the background so it can maintain the heartbeat and execute the configured actions.

For developers: compiling the desktop app or firmware from source is optional. The build instructions later in this README are only needed to modify or contribute to the project.

HCD-BASE gallery

The screenshots below show the HCD-BASE only: nine physical MX keys in a 3 × 3 layout, the connection indicator and the white key-feedback bar. HCD Plus and HCD Pro are not shown because their hardware guides are still in development.

HCD-BASE desktop application

HCD-BASE main application interface

The central preview reproduces the nine controls of the BASE model. Profiles are managed on the left and the selected key is configured on the right.

HCD-BASE key editor

HCD-BASE key editor with the first MX key selected

Select any key on the 3D preview to configure its short-press and long-press actions, test the command and save it to the current HCD-BASE profile.

HCD-BASE hardware preview

HCD-BASE hardware with nine MX keys

How it works

  1. Connect the HCD to the computer and keep the desktop application running.
  2. Install or update the integrated HCD firmware directly from the application's Firmware manager. Arduino IDE is not required.
  3. The application detects the controller and maintains the connection LED through the HCD_PING / HCD_PONG heartbeat.
  4. Create or select a profile, then click one of the nine keys in the 3D preview.
  5. Assign a shortcut, system command, text, website or application to the short press and, optionally, a different action to the long press.
  6. Minimize the application to the macOS menu bar or the Windows/Linux notification area; profiles and actions continue to work in the background.

HCD-BASE hardware

  • 9 MX switches in a 3 × 3 layout
  • 1 red PC-connection LED
  • 1 white key-feedback LED
  • Arduino Pro Micro (ATmega32U4, 5 V / 16 MHz)

The complete electronics, printed-parts and screw list is available in the HCD-BASE bill of materials.

Estimated HCD-BASE component cost

When every part is priced only for the quantity actually used, and economical MX-compatible switches are selected, the electronics and hardware for one HCD-BASE cost approximately €15:

Component Estimated cost
Pro Micro USB-C €5.00
9 economical MX-compatible switches €3.60
2 IRLB8721 MOSFETs €1.20
Red LED €0.10
5 cm white COB strip €0.30
4 resistors €0.10
Complete screw set €1.20
Wire and heat-shrink tubing €0.50
USB-C data cable €2.50
Estimated total approximately €15

This estimate excludes the 3D-printed parts, filament, tools, shipping and spare components left over from multipacks.

The connection LED is controlled by the app heartbeat. It turns off about three seconds after the app stops responding. The feedback LED remains on while one or more of the nine MX keys is held, but only while the desktop app is connected.

The V1 deliberately has no rotary encoders. Pins D14 through D20 remain free for a possible V2.

Wiring

HackMan3D Control Deck V1 wiring diagram

The nine switches use the Pro Micro's internal pull-ups and share a common ground. The connection LED and key-feedback light are switched by separate IRLB8721 MOSFETs. See the complete wiring notes before powering the controller.

Future hardware previews

The firmware manager shows HCD Plus (in development) and HCD Pro (in development) so the planned product family is visible. These entries are development previews. Their firmware remains selectable for HackMan3D prototype testing, but the hardware and assembly guides are not ready for users. Regular users should build and flash only HCD-BASE.

Support matters

HackMan3D Control Deck is designed, developed and shared free of charge. Donations help fund prototypes, electronics, printing tests and the time needed to improve the firmware and the macOS/Windows applications. Feedback and social media follows are also important: they help validate ideas and make the project visible.

HCD roadmap

HackMan3D Control Deck is developed and shared free of charge. Community support helps fund the prototypes, components and development time needed for the next editions.

The application displays one community progress bar from 0 to 100%:

  • HCD Plus is the milestone shown at 50%;
  • HCD Pro is the final milestone shown at 100%;
  • the bar is updated through the HackMan3D release feed as support is received;
  • only the resulting percentage is public. Donation totals and financial targets are never included in the application, its public feed or the source repository.

The application does not collect payments. The support button only opens the external HackMan3D PayPal page. The exact feature set will continue to evolve after prototype testing and community feedback.

HCD Plus

HCD Plus development preview

The Plus edition expands the physical controls while keeping the same software and the same two status lights:

  • 12 physical buttons;
  • separate short-press and long-press assignments, providing up to 24 functions;
  • 2 clickable rotary encoders, independently configurable for output volume, microphone volume, brightness or other actions;
  • the same connection LED and action-feedback LED as HCD-BASE;
  • configuration and integrated firmware installation from the HCD application.

HCD Pro

HCD Pro development preview

The Pro edition focuses on direct visual identification and a more compact, interactive surface:

  • no additional physical buttons;
  • 28 programmable touch buttons with one vertical slider; or
  • 24 programmable touch buttons with two vertical sliders;
  • labels synchronised automatically from the active desktop profile;
  • a direct USB connection for discovery, heartbeat, actions and icon transfer;
  • configurable sliders for functions such as speaker volume, microphone level or display brightness;
  • the same connection LED and action-feedback LED as HCD-BASE and HCD Plus;
  • configuration and integrated firmware installation from the HCD application.

Support for the current HCD directly contributes to the research and prototypes needed to explore these Plus and Pro editions.

Repository layout

firmware/HackMan3DControlDeck/       HCD-BASE firmware
firmware/HackMan3DControlDeckPlus/   HCD Plus firmware
firmware/HackMan3DControlDeckPro/    HCD Pro ESP32-S3 USB firmware
software/                            shared PySide6 desktop app
docs/                                protocol and wiring notes

Desktop app

The same PySide6 application runs on Windows, macOS and Linux. It detects the connected Control Deck, keeps its heartbeat active and provides one place to manage profiles, actions, diagnostics and firmware.

Run from source

Python 3.11 or newer is recommended.

Windows

cd software
py -m venv .venv
.venv\Scripts\activate
python -m pip install -e .
hackman3d-control-deck

macOS

cd software
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
hackman3d-control-deck

Linux

cd software
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
hackman3d-control-deck

Profiles and actions

  • Create, rename, duplicate and delete profiles.
  • Import or export a portable .hcdprofile, or create a complete .hcdbackup archive.
  • Configure separate Short press and Long press actions for every key.
  • Assign keyboard shortcuts, text, websites, applications and system commands such as volume, media playback and screen brightness.
  • Actions are saved automatically as they are selected or edited.
  • Test an action directly in the editor and detect conflicting assignments.
  • Drag an application from Finder or Explorer directly onto a key. Its name and native icon are added automatically.
  • Reset all key assignments in the current profile with one confirmation.

The shortcut catalogue adapts to Windows, macOS or Linux and shows the purpose of each combination. Custom key combinations remain available when a preset is not listed.

Device, firmware and diagnostics

  • Automatic serial discovery prioritises compatible Arduino and USB devices.
  • The app displays the model reported by the firmware, such as HCD-BASE, instead of a system port name such as cu.usbmodem101.
  • The integrated firmware manager installs HCD-BASE without Arduino IDE. HCD Plus and HCD Pro remain visible as clearly marked development previews. Their firmware can be selected for prototype testing, but their public assembly guides are not available yet.
  • Compatible firmware updates are detected automatically and offered through a pop-up.
  • The diagnostics page displays the model, firmware version, serial port, heartbeat, physical controls, LED states and HCD Plus encoder activity.
  • The 3D preview mirrors the red connection LED and the white key-feedback light in real time.

The firmware manager includes AVRDUDE for Base/Plus and esptool for Pro on Windows, macOS and Linux. It can update an identified deck or install the selected firmware on compatible new hardware without Arduino IDE.

Interface and personalisation

  • Drag the two vertical separators to resize the profiles, preview and action columns. Their positions are restored at the next launch.
  • HCD Pro colors can be selected from ready-made palettes or a full color picker for the screen, keys, outlines, header and connection LED.
  • HCD Pro icon conversion and synchronization are cached, coalesced and paced to keep the Windows editor responsive and avoid overlapping display updates.
  • The minimum white feedback-light duration is adjustable from 0 to 2000 ms.
  • Optional anonymous usage sharing sends only a temporary live session and grouped action totals. It never sends profiles, actions, application names, shortcuts, hardware identifiers or personal data.
  • Social, feedback and PayPal buttons are available beside the HackMan3D logo.
  • The update feed supplies desktop update notifications and the HCD Plus/Pro roadmap percentages. It never stores or displays donation amounts.
  • The interface supports English, French, Italian, Spanish, Portuguese, Chinese, German, Hindi, Arabic, Bengali, Indonesian, Russian, Japanese, Korean, Turkish, Vietnamese and Thai. Arabic uses a right-to-left layout.

Background operation

Windows: Run in background hides the window while keeping the heartbeat and configured actions active. The notification-area icon reopens or quits the application.

macOS: the yellow minimize button sends HCD to the menu bar without creating a blank Dock window. The menu-bar icon restores the existing interface. Keep in Dock, Start with Mac and Start minimized in menu bar can be configured independently.

Linux: minimizing to the notification area keeps the heartbeat and actions active. The application supports X11 and Wayland desktops with a compatible system tray. See the Linux guide for USB permission details.

Native macOS volume controls do not require Accessibility permission. Keyboard injection, brightness and media-key actions do; the built-in permissions assistant checks their status and opens the correct System Settings page.

Release feed

release/manifest.example.json documents the optional feed used for desktop updates and the Plus/Pro roadmap. The feed is disabled by default while the project is private. It can be tested by setting HCD_RELEASE_MANIFEST_URL without publishing any repository. Publishing a new version requires changing latest_version, the two platform download links and, when appropriate, the the public roadmap percentage. The feed deliberately contains no donation amounts.

Donation totals and targets can remain private in release/roadmap.private.json (this file is ignored by Git). Copy release/roadmap.private.example.json, enter the private values, then run python3 release/build_public_manifest.py. The generated public manifest contains only the two rounded percentages. Users can read the percentages used by the application, but cannot access the private amounts or modify the feed.

macOS application

On a Mac, run the packaging script to create the native application bundle:

cd software
./build_macos.sh

The result is software/dist/HackMan3D Control Deck.app. Detailed installation and permission notes are in docs/MACOS.md.

Run ./build_dmg.sh afterward to create the branded drag-to-Applications installer.

Windows application

On a Windows 10 or Windows 11 computer, install Python 3.11 or newer and Inno Setup 6, then run software\build_windows.ps1 from PowerShell. The script builds the portable application and creates software\dist\HackMan3D-Control-Deck-Windows-1.5.7-Setup.exe. The installer is per-user, requires no administrator rights, includes the HCD firmware and AVRDUDE, and provides clean Start menu, optional desktop and uninstall entries.

Linux application

On a 64-bit Linux computer, run the Linux build on Linux itself:

cd software
./build_linux.sh

It creates a portable .AppImage and a graphical .deb installer for Ubuntu, Debian and Linux Mint. End users do not need Python or Arduino IDE. Complete installation and USB permission notes are in docs/LINUX.md.

Firmware

The desktop application contains the HCD-BASE firmware and flashes it directly from the Firmware manager. Arduino IDE is not required for normal installation or updates. HCD Plus and HCD Pro are shown in the selector as in development. Their firmware remains selectable for prototype testing, although their public assembly documentation is not ready.

The source sketch remains available in firmware/HackMan3DControlDeck/HackMan3DControlDeck.ino and firmware/HackMan3DControlDeckPlus/HackMan3DControlDeckPlus.ino, plus the ESP32-S3 source in firmware/HackMan3DControlDeckPro/, for firmware development.

software/build_firmware.sh produces the branded firmware bundled with the app. It gives each model its own USB product name and sets the manufacturer to HackMan3D.

See the HCD-BASE wiring notes or the HCD Plus wiring notes before connecting hardware. HCD Pro setup and USB requirements are documented in docs/HCD_PRO.md. Its optional physical feedback light is driven through a MOSFET from the accessible AD / IO6 signal on the rear Sensor AD connector.

About

HackMan3D Control Deck — cross-platform PySide6 app and HCD-BASE firmware

Topics

Resources

Stars

59 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages