Samuel's Stuff Samuel's Stuff 0

SFW Macropad

SFW BLE Macropad

A macro pad you build yourself, with as many switches as you want. One download sets up the PC, flashes the firmware and then the app finds which pin each switch is on. No Arduino IDE needed.

The wireless one: six switches on an ESP32-C3 that pairs over Bluetooth like a keyboard. Same app, same download – it flashes the C3, finds your switches and drives the pad over Bluetooth. No Arduino IDE needed.

Download for Windows SFW-Macropad-Setup.exe · 38.0 MB · v1.6.72 · USB + Bluetooth pads
Linux? Download the AppImage · Ubuntu 22.04+ / Mint 21+, x86_64
Got an ESP32-S2 SuperMini instead? Download the ESP32-S2 beta · test build, not checked on real hardware yet
Last updated 31 Oct 2026 · what's new

What it does

USB or BluetoothBuild the wired pad on an ESP32-S3, or the wireless one on an ESP32-C3. One app runs both and finds the pad on its own, by cable or over Bluetooth.
Any number of switchesWire up 1 switch or 20 (the Bluetooth pad takes up to 9). Each one goes to its own pin, and the app finds it when you press it.
Tap, double-tap, holdThree actions per switch: key combos, media keys, typed text, opening a program or website, mouse clicks, or a macro made of steps.
Profiles per appSwitches can do something different in each program. The profile changes on its own when you switch windows.
Works without the app tooEach switch can also store a key combo or some text on the pad, so it still types on a computer that doesn't have the app.
AutoclickerSet a switch to click as fast as you want until you press it again.
Settings follow the padYour profiles are saved on the pad as well, so they come with it to another computer. The pad can update its own firmware over Wi-Fi.

usb · esp32-s3

What you need

ESP32-S3 SuperMinithe brain: its own USB-C port does the typing and the flashing
Switches (MX-style)as many as you like, any 3-pin MX-style switch
Keycapsany MX-stem keycaps, printed or bought
Wire + soldering irontwo wires per switch
A case3D print the one in the video (free on MakerWorld), or use anything that holds the switches
A USB-C data cablesome cables only charge, and those won't work

bluetooth · esp32-c3

What you need

ESP32-C3 SuperMinithe brain: pairs over Bluetooth LE and types like a keyboard. Its USB-C port is for power and flashing
6 switches (MX-style)any 3-pin MX-style switch (the firmware takes up to 9)
6 keycapsany MX-stem keycaps, printed or bought
Wire + soldering irontwo wires per switch
The 6-switch casea snap-fit top shell and a deep base tray (free on MakerWorld)
A USB-C cable + powera data cable once to flash it, then any USB charger or port powers it
A PC with BluetoothWindows 10 / 11 with Bluetooth LE, built in or a USB dongle

Print the case

The case, lid and keycaps are free on MakerWorld, ready to print on a Bambu Lab printer (0.2 mm layers, 2 walls, 15% infill, PLA, no supports). The case fits 4 switches.

Download on MakerWorldcase · lid · 4 keycaps · 3MF

Wiring

Each switch has two legs. One goes to a GPIO pin, the other goes to GND. All the GND wires can share one GND pin. No resistors or diodes are needed because the pad uses the chip's built-in pull-ups.

Pins you can use on the SuperMini:

GPIO 1GPIO 2GPIO 3GPIO 4GPIO 5GPIO 6GPIO 7GPIO 8GPIO 9GPIO 10GPIO 11GPIO 12GPIO 13GPIO 43GPIO 44
GPIO 019 / 2045 / 4648

The crossed-out pins are used for booting, USB and the LED, so the app won't offer them. Any order works, and you don't have to remember which pin you used. The app asks you to press each switch and works it out.

Wiring

The same as the USB pad: one leg of each switch to a GPIO pin, the other to GND, and all the GND wires can share one pin. No resistors or diodes.

Pins you can use on the C3 SuperMini:

GPIO 0GPIO 1GPIO 2GPIO 3GPIO 4GPIO 7GPIO 9GPIO 10GPIO 20GPIO 21
GPIO 5 / 6818 / 19

GPIO 18 and 19 are the USB port, 8 is the LED and 5 / 6 are kept for a small screen. GPIO 9 is the board's BOOT button, so a switch on it works fine, just don't hold it down while plugging the pad in. As with the USB pad, the app asks you to press each switch and finds the pins itself.

Setting it up

  1. Download and run SFW-Macropad-Setup.exeIt installs itself for your Windows account (no admin needed), adds a Start menu shortcut and starts with Windows. Because the app is new and unsigned, Windows may show “Windows protected your PC”. If it does, click More info and then Run anyway.
  2. It checks your PCThe flashing tool (esptool) and the firmware are built into the app. The USB driver comes with Windows 10 and 11, so there is nothing else to install: no Arduino IDE, Python or board packages.
  3. Plug in the SuperMini and press FlashPick its port. The app sees whether it's an ESP32-S3 or an ESP32-C3 and puts the right firmware on. It writes the firmware, checks it, and waits for the pad to start. If it can't connect, hold BOOT, tap RST, let go of BOOT, and it tries again. If the board already has the firmware, click Already flashed? Skip here →.
  4. Tell it where your switches areThe app opens on its Pins tab. Press Detect, then press the switch, and do this for each one. Add as many as you've got (at least 1) and press Save to pad. You can change them on the same tab any time.
  5. Pair it over BluetoothOpen Windows Settings → Bluetooth & devices → Add device → Bluetooth, and pick SFW BLE Macropad. After that the pad types on its own, and the app finds it over Bluetooth whenever it isn't plugged in. You can unplug it from the PC and power it from any USB charger.
  6. Set what each switch doesThe app opens. Give each switch a tap, double-tap and hold action, and add profiles for your apps.

Error when you open it: “DLL load failed … An Application Control policy has blocked this file” (German: “Eine Anwendungssteuerungsrichtlinie hat diese Datei blockiert”)? Nothing is broken – that's Windows 11's Smart App Control, which blocks apps that aren't signed yet. Open Windows Security → App & browser control → Smart App Control settings, set it to Off, then run SFW-Macropad-Setup.exe again. Heads-up: on some Windows versions Smart App Control can't be switched back on without resetting Windows. On a work or school PC this is set by IT – ask them to allow SFW Macropad.

Uninstalling: use Settings → Apps → SFW Macropad, or the Uninstall button in the app. The pad keeps its firmware and its built-in settings either way.

Ratings & builds

Built one? Rate it and show it off. Every rating is checked before it appears here.

What's new

31 Oct 2026 · v1.6.72Getting ready for Christmas.
31 Oct 2026 · v1.6.71Christmas in the app (1 November to 1 January): lights along the top, snow behind your pad and a Santa hat on the title. Turn it off in settings.
31 Oct 2026 · v1.6.70The tour tips now look like the rest of the app: no outline and rounded corners. A second pad's keys only show while it is plugged in.
30 Oct 2026 · v1.6.69The tour moves on twice as fast, and it waits while you are in another app (it also stops floating over that app).
30 Oct 2026 · v1.6.68The tour now plays by itself - no need to click next. Hover the tip (or press pause) to stay on a step.
show older versions (74) · back to v1.0.0
30 Oct 2026 · v1.6.67Fixes updating from 1.6.65: the update could stop with an error saying SFW Macropad was still open. Includes the new tour from 1.6.66.
30 Oct 2026 · v1.6.66New tour: each tip now opens in its own little window beside the app, with a white line pointing at the part of the app it is about.
30 Oct 2026 · v1.6.65Starts about 4x faster on Windows (about 1 second instead of 4: it is now installed as a normal folder, so it no longer unpacks itself every time). Updating shows an Updating box until the new version is open, and then shows what is new instead of the tour. The tour now walks you through the real app. Scroll on the 3D pad (and in Edit look) to zoom in. Two pads: rename them in the pad list. A refresh button next to minimise checks for an app update right away.
30 Oct 2026 · v1.6.64The action picker no longer flickers when you move the mouse over it, and it stays the same size while you search.
30 Oct 2026 · v1.6.63Choosing what a switch does is easier: instead of one long dropdown, the actions are shown in groups (keyboard, mouse, sound & voice, streaming...) with a line about each, and you can search (try volume, obs or type).
30 Oct 2026 · v1.6.62Fixed: after recording a macro, pressing stop (or F9) could leave the app frozen - the editor stayed hidden while still blocking the main window. The log (Ctrl+L) now also notes if the window ever stops responding, and where.
30 Oct 2026 · v1.6.61New: a log (settings → log, Ctrl+L, or “show log” while flashing) that shows what the app and the pad have been doing, so a problem can be copied into a bug report. Wi-Fi details, what your switches type and your settings are never written to it.
30 Oct 2026 · v1.6.60A switch's details and the stats list no longer turn what you typed into lowercase (Type “Hello” now shows as type “Hello”, not “hello”). Linux: “start at login” now follows the app file after an update or if you move it.
30 Oct 2026 · v1.6.59Text that doesn't fit in the app (the status line, the message line at the bottom, long names) now scrolls slowly back and forth so you can read all of it, instead of being cut off.
30 Oct 2026 · v1.6.58Settings → port has a new choice, Nothing: the app then doesn't connect to any pad. Linux: editing a switch saves again (from 1.6.57).
30 Oct 2026 · v1.6.57Linux app: editing a switch (and the app's other pop-up windows) works again - the editor closed straight away on Linux, so changes weren't saved. Windows is unchanged (1.6.56).
30 Oct 2026 · v1.6.56ESP32-S2 pads now update their firmware over the USB cable only (Wi-Fi updates didn't work on the S2): the update prompt offers Update over USB, and the Wi-Fi update buttons are off for an S2. New action: TikTok LIVE Studio (go LIVE / end LIVE, recording, mic, scenes, sound effects) using LIVE Studio's own hotkeys. Linux: the Bluetooth pad no longer keeps disconnecting and reconnecting.
30 Oct 2026 · v1.6.55ESP32-S2: fixed updating the pad over Wi-Fi (the firmware download was failing on the S2; it now downloads over plain HTTP, still checked by its signature). The bundled S2 firmware is sfws2-3.
29 Oct 2026 · v1.6.53ESP32-S2 SuperMini support is ready: the app now flashes an S2 (no BOOT button needed - it talks to the board over USB) and recognises every S2/S3/C3 variant. A fresh install now shows the flashing step first, then the tour once the app opens.
29 Oct 2026 · v1.6.54Setup: if your pad already has the firmware, the app now skips the flashing step and opens straight away. You can also still skip flashing yourself from that screen.
29 Oct 2026 · v1.6.52The settings tab now scrolls, so the buttons at the bottom (flash firmware again, back up, restore) are always reachable on smaller screens. Pins tab: the "that GPIO isn't one of your switches" note no longer gets cut off and now lists your switches' pins, and the knob settings fold away into one line. Beta: ESP32-S2 SuperMini support, with help for putting an S2 into flashing mode.
29 Oct 2026 · v1.6.51Switches page: picking a key no longer slides the pad into the fog on the right or off the bottom of the window.
29 Oct 2026 · v1.6.50ESP32-S2 SuperMini support (beta): the app flashes it with its own build of the USB pad firmware and shows the S2's pins. Also fixed scrolling errors after closing some windows.
29 Oct 2026 · v1.6.49Key turbo: new "As fast as possible" option (like the autoclicker's) - about 60 presses a second, still long enough for games to see each one.
29 Oct 2026 · v1.6.48Two pads: Settings - second pad - show it "as its own pad" (pick pad 1 / pad 2 above the pad picture, its switches are numbered from 1) or "joined onto pad 1" (one big pad).
29 Oct 2026 · v1.6.47Key turbo fix: the presses now work in games too (each press carries the key's real scan code and stays down a moment). A "while held" turbo on a switch that also has a double-tap or hold now runs until you press it again.
29 Oct 2026 · v1.6.46Gallery: send a new version of a profile you shared - likes, ratings and comments stay.
29 Oct 2026 · v1.6.45Gallery: report a profile that's harmful, spam or broken.
29 Oct 2026 · v1.6.44Gallery: tags (gaming, streaming, editing...) and a tag filter, on the website and in the app.
29 Oct 2026 · v1.6.43Gallery: featured profiles - starting with the official Starter streaming kit.
29 Oct 2026 · v1.6.42Gallery: rate profiles out of 5 and comment on them (on the website).
29 Oct 2026 · v1.6.41Two pads at once: Settings - second pad. Its switches come after the first pad's.
29 Oct 2026 · v1.6.40Icon by the clock: Open / Pause pad / Quit, and choose how the app opens with Windows (minimised, by the clock only, or as a window).
29 Oct 2026 · v1.6.39Light theme: Settings - theme - light.
29 Oct 2026 · v1.6.38Undo: take back the last 30 changes (the undo link, or Ctrl+Z).
29 Oct 2026 · v1.6.37Search: find any action in every profile, page, combo and the knob (the search link, or Ctrl+F).
29 Oct 2026 · v1.6.36Pad lock: one key locks every other key until you press it again.
29 Oct 2026 · v1.6.35Key heatmap: the stats page shows which keys you press most.
29 Oct 2026 · v1.6.34Per-key colours on the 3D pad: edit look - key colours - "by what they do" colours each key by its action.
29 Oct 2026 · v1.6.33Info pop-up: a key shows the weather or a line from any web address (with a JSON path).
29 Oct 2026 · v1.6.32Webhooks: a key calls any web address (IFTTT, Zapier, n8n, your own server). Never shared with a profile.
29 Oct 2026 · v1.6.31Home Assistant: switch lights, plugs, scenes and scripts from a key.
29 Oct 2026 · v1.6.30Discord: push-to-talk (hold a key while the switch is held) and jump to a voice channel by name.
29 Oct 2026 · v1.6.29Crosshair: a key shows a crosshair in the middle of the screen - pick the shape, size and colour.
29 Oct 2026 · v1.6.28Key turbo: a key that presses itself again and again - while the switch is held, or press to start and again to stop.
29 Oct 2026 · v1.6.27Game profiles: the gallery's "my games" lists your Steam and Epic games - make a profile that switches on by itself while the game is in front, or find one in the gallery.
29 Oct 2026 · v1.6.26Soundboard upgrades: fade sounds out instead of cutting them off, a key that plays a random sound, and a volume for each sound.
29 Oct 2026 · v1.6.25Countdown timer: a key starts a countdown that can show in an OBS text source, with a pop-up when time's up.
29 Oct 2026 · v1.6.24OBS extras: set the transition, play / stop a media source, filters on / off, studio mode and send it live.
29 Oct 2026 · v1.6.23Privacy key: mute every mic and / or turn the camera off and on again.
29 Oct 2026 · v1.6.22Text variables: typed text can include {date}, {time}, {day}, {datetime}, {year} and {clipboard}.
29 Oct 2026 · v1.6.21Clipboard history: paste something you copied earlier - the last 10 things you copied, kept in memory only.
29 Oct 2026 · v1.6.20Launch groups: one key opens several programs and websites at once (e.g. everything for streaming).
29 Oct 2026 · v1.6.19Window snapping: snap the window in front left / right, maximise, minimise, centre it, keep it on top or move it to the other screen.
29 Oct 2026 · v1.6.18Screenshots: the whole screen, the window in front, or snip an area - saved as a PNG.
29 Oct 2026 · v1.6.17PC keys: lock the PC, sleep, turn the screen off, show the desktop, empty the Recycle Bin, open Task Manager.
29 Oct 2026 · v1.6.16Switch audio output: a key that flips between your speakers and headset (or goes to one you pick).
29 Oct 2026 · v1.6.15Back up and restore: Settings - back up / restore. One file with your settings, profiles, sounds and stats - handy for a new PC. Restoring saves what you had first.
29 Oct 2026 · v1.6.14Gallery: like profiles on the website and sort by most liked, most downloaded or newest (in the app's gallery too).
29 Oct 2026 · v1.6.13Spotify: like / unlike the song that's playing, show what's playing, play / pause, next and previous - with the song in the pop-up. Works with the Spotify app, no login.
29 Oct 2026 · v1.6.12OBS: show / hide a source (a BRB image, your webcam...) - toggle, show or hide, in the live scene or one you pick.
28 Oct 2026 · v1.6.11Delete a profile: "delete profile" next to the profile list (any profile except Default).
28 Oct 2026 · v1.6.10Shared profiles keep their sounds: every sound you use goes into the file, sounds made from a YouTube link also carry the link (so they're downloaded again if the file is missing), and you're told about any sound that couldn't be included.
28 Oct 2026 · v1.6.9Took the I2C expander option out again for now - it needs more work. The knob and everything else from 1.6.1-1.6.6 stays.
28 Oct 2026 · v1.6.6Knob: wire a rotary encoder to two GPIOs and pick them on the Pins tab. Turning it does anything a switch can (volume by default); its click is a normal switch. Needs the new pad firmware (Settings - flash firmware).
28 Oct 2026 · v1.6.5Profile gallery: browse profiles other owners shared and import one in a click ("gallery" under the pad picture), or share yours on samuelssstuff.xyz/sfwmacropad/gallery.
28 Oct 2026 · v1.6.4Recorded macros: press Record in a macro, do it once on your keyboard and mouse (F9 to stop) and it's saved as steps - typing, key combos, clicks at the spot you clicked and the pauses.
28 Oct 2026 · v1.6.3Combos: press two switches together to do something of their own ("combos" under the pad picture).
28 Oct 2026 · v1.6.2Layers: set a switch to "Switch page - only while this switch is held" and the other switches do that page's actions while you hold it.
28 Oct 2026 · v1.6.1Profiles: picking a profile in the list now puts it in use (it gets a tick), and "+ new profile" is in the list - an everyday profile or one that follows an app. Imported profiles are used straight away.
28 Oct 2026 · v1.6.0Big update: OBS controls (switch scenes, start/stop streaming and recording, mute sources), Discord mute/deafen, per-app volume, sound pages (one switch flips the pad to another set of actions), trim and preview for sounds, a voice changer for voice chat, key labels on the pad picture, profile sharing (export/import a profile with its sounds), usage stats, and a quick tour on first start. Also fixes switch 1 showing no GPIO on the Pins page of the Bluetooth pad.
28 Oct 2026 · v1.5.3YouTube sounds now keep working when YouTube changes: the app fetches the newest YouTube downloader by itself (checked once a day when you use it).
28 Oct 2026 · v1.5.2YouTube sounds: paste a link (and optional start/end) to turn a video into a sound. Voice chat: your sounds and mic go into Discord etc. through VB-CABLE, installed with one click. Sounds with emoji in their names now play.
28 Oct 2026 · v1.5.1Soundboard: put sounds on your switches (14 built in, or add your own .mp3/.wav) and pick which speakers or headphones play them. Also: turn the 3D pad by dragging it, choose the colour of the selected-key ring, smoother window dragging, and pop-ups that match the app.
28 Oct 2026 · v1.5.0New look: a 3D model of your pad that tilts and zooms to the key you pick, a start-up logo, and a pad look editor to match your case's colours and layout. Also fixes a crash when dragging the window.
28 Oct 2026 · v1.4.0The app now updates itself: when a new version is out it offers to install it in one click.
28 Oct 2026 · v1.3.0Pads with old firmware are asked to update (over Wi-Fi or USB) before the app runs their switches.
27 Oct 2026 · v1.2.0Bluetooth pad support (SFW BLE Macropad, ESP32-C3). The flasher picks the right firmware for an S3 or C3. Fixed the USB pad sometimes dropping into download mode.
26 Oct 2026 · v1.0.0First release.

In the download

SFW Macropad appv1.6.72 · 38.0 MB · Windows 10 / 11, 64-bit
Firmwaresfw-1 for the ESP32-S3 (USB pad) and sfwble-8 for the ESP32-C3 (Bluetooth pad). Later versions arrive over Wi-Fi once you add a network in Settings
Flasheresptool 4.8.1, built in
LinuxSFW-Macropad-x86_64.AppImage – no install: make it executable and open it. Settings in ~/.config/SFW Macropad
Installs to%LOCALAPPDATA%\Programs\SFW Macropad
Settings saved in%APPDATA%\SFW Macropad and on the pad