The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Yes—a cheap Bluetooth selfie shutter can act as a wireless button for LEDs or other GPIO-controlled hardware. Linux sees many remotes as Bluetooth HID input devices; a Python program reads that input event and changes GPIO outputs. The original implementation, published on August 1, 2016, uses a Next Thing Co. C.H.I.P., evdev, and C.H.I.P.-specific CHIP_IO. It remains a useful concept, but C.H.I.P. hardware and software are obsolete, so treat the build as a historical reference or port it to a currently supported board.
How the hack works
The remote is not controlling a camera application. It is being used like a tiny wireless keyboard:
- The remote pairs with the computer through BlueZ.
- A button press appears in Linux’s input subsystem.
- Python reads the event with
evdev. - The program sets GPIO outputs.
- Resistor-protected LEDs display the result.
This separates Bluetooth pairing, event detection, GPIO control, and the physical LED circuit. A remote must expose a usable Bluetooth HID event; “selfie remote” is not a single standardized device category.
Recommended Free Tools
The original project and its schematics are documented on Hackster.io.
#1 Best Overall
- CONVENIENT AND EASY HANDS-FREE SHUTTER CONTROL FOR MOBILE DEVICES: Perfect for taking selfies and steady tripod shots.【Update】: compatible with Instagram and Snapchat(long press for taking video and short press for photo
- SMALL ENOUGH TO KEEP ON A KEYCHAIN OR IN YOUR POCKET: The remote is very small and lightweight, so it is convenient to carry with you
- OPERATIONAL UP TO 30 FEET (10M): Take photos even when at a distance from your device
- COMPATIBLE WITH ANDROID 4.2.2 OS AND UP / APPLE IOS 6.0 AND UP: Option to use in-built app or Google Camera 360 app
- COMPATIBLE WITH WIDE RANGE OF DEVICES: Including iPhone17 17 pro 17pro max 17 air, iPhone 16,16 Pro,16 Pro max, iPhone 15 15 pro 15 Pro max , 14, 14pro, 14 pro max, 13 13 pro max, iPhone 12 pro max, 12 pro, 12, 11, 11 pro, 11 Pro max, Xs, Xs max, XR, X, 8, 8 Plus, 7, 7 Plus, 6, 6 Plus, ; iPad 3, 4,5,6, Mini , Pro, Air; Samsung Galaxy S24 S23,S22,S21,S10, Note 20, NOTE 10 NOTE 10 PLUS S9+, S9, S8, S7, S7 Edge, S6, ; and other smart andriod device.
Hardware
Minimum two-LED version
- One C.H.I.P. computer (the original platform)
- One generic Bluetooth selfie remote
- Two LEDs
- Two 1 kΩ resistors, one per LED
- Breadboard and jumper wires
The original example uses C.H.I.P. pins XIO-P5 and XIO-P4; other pins require corresponding source-code changes. Connect each GPIO through its own resistor to an LED, then to ground, observing LED polarity. The 1 kΩ value is the project’s listed value, not a universal rule: brightness and current depend on GPIO voltage, LED forward voltage, and board limits.
Never connect an LED directly to a GPIO pin. Do not drive strips, lamps, motors, relays, or other high-current loads directly; use a transistor, MOSFET, relay module, or dedicated LED driver.
Four-LED expansion
The original expansion uses a 2-to-4 demultiplexer (74139) and a 7404 inverter. Two GPIO lines select among four logic outputs, reducing the number of GPIO pins at the cost of extra wiring and logic-state complexity. A demultiplexer is not automatically four independently latched GPIO outputs; whether LEDs remain on independently depends on the circuit and the program’s state handling. The project describes a state machine, LED-state variables, and last-change timestamps for event timing.
Free tools Windows power users keep installed
One-click scans. No signup required.
Pair the remote
On the original C.H.I.P. image, BlueZ 5.x is used through the correctly spelled bluetoothctl command:
Rank #2
- Handy Little Gadget ►This Bluetooth remote makes it exciting to take selfies, group and steady shots hands-free! Post amazing photos and videos on Snapchat, Instagram, Facebook or YouTube with the help of this shutter.
- Lightweight and Convenient to Carry ►The remote is easy to store. You can bring it anywhere! Just slip it in your pocket and keep it on a keychain. It comes with an adjustable wrist strap for quick access when in use.
- Smooth Pairing Guaranteed ►The CamKix Remote Control Camera Shutter uses Certified Bluetooth Wireless Technology for maximum reliability and fast operation. It can trigger your phone and tablet even if it is 30ft (10m) away. You only need to pair it once and it will be automatically recognized on your next use.
- Capture Pictures and Video Instantly ►The remote has two buttons for taking photos and videos. Press the small button for Android and the big button for iPhone. It also has a separate ON/OFF switch.
- Compatible with a wide range of Devices ►The remote pairs perfectly with phones and tablets operating on Android 4.2.2 OS and up / Apple iOS 6.0 and up. Option to use in-built app or Camera 360 app. It can be used with a wide range of devices including iPhone Xs, Xs Max, X, 8, 8 Plus, 7, 7 Plus, SE, 6s, 6s Plus, 6, 6 Plus, 5S, 5C, 5, 4s, 4; iPad Pro, 4, 3, 2, Mini 2, Mini, Air; Samsung Galaxy S9, S9+, S8, S8+, S7, S7 Edge, S6, S6 Edge, S5, S5 Mini, S4, S4 Mini, Note 9, 8, 7, 5, 4, 3, 2.
bluetoothctl
At its prompt:
power on
scan on
- Turn on the remote or place it in discoverable mode.
- Wait for its name and Bluetooth address (MAC address) to appear.
- Pair and connect using that address:
pair <your MAC address>
connect <your MAC address>
quit
The Hackster example calls the device “AB Shutter 3,” but its address is only an example. Do not reuse it. If discovery fails, replace the battery, restart scanning, ensure the remote is not connected to a phone, and remove stale pairings before trying again.
Basic reconnect script
The project supplies Blue.sh:
#!/bin/bash
bluetoothctl << EOF
power on
connect <your MAC address>
quit
EOF
sudo chmod +x Blue.sh
This is one connection attempt, not a service manager. It can fail if the remote is off, asleep, connected elsewhere, forgotten, or unavailable when Bluetooth starts. A production project should use a service or retry loop appropriate to its operating system.
Find the actual button event
Do not hard-code an event number or key code from another remote. Device names, event paths, and HID usages vary. Inspect the target system:
sudo evtest
cat /proc/bus/input/devices
Use evtest to select the newly paired remote, press its button, and record the key-down/key-up events. Some remotes report a camera-shutter key; others report volume-up or another HID usage. Linux may also restrict access to /dev/input/event*. If the program reports “Permission denied,” investigate the system’s input group or a narrowly scoped udev rule rather than assuming the application must always run as root.
Rank #3
- 【Zoom in & out】This remote shutter with zoom feature (Must open zoom in accessibility setting for iPhone/iPad) can help you easily zoom in and out from a distance when taking photos and videos, bringing great convenience and making your shooting more professional
- 【Front & Rear Camera Switch】There is a bluetooth button on the side of the wireless remote control that can switch the camera. Click once to switch the system camera, and double-click to switch the camera within the application. This unique feature can help you easily and quickly switch between front and rear cameras, making it perfect for content creation
- 【Video Scrolling & Page Turner】Compared to other single function remote controls, our upgraded wirless remote control not only has a shutter function, but also multiple functions such as zooming, switching between front and rear cameras, flipping pages, scrolling short videos and adjusting volume. This Versatile remote control can meet all your needs for taking photos & videos, Tiktok and reading e-books at the same time
- 【Reachageable & Portable】This camera remote control only takes 1 hour to charge and can last for 30 days of standby after being fully charged. The weight of 28 grams and compact size make it easy to store and carry, making it convenient to use both indoors and when traveling
- 【Widely Compatible】The Multi-functional wirless shutter is compatible with all iPhone, iPad, iPod and most smartphones and tablets with Android systems, compatible with most camera applications
Install the historical software
The original instructions use:
sudo pip install chip-io
pip install evdev
These are historical C.H.I.P.-era commands. Modern Python environments commonly discourage system-wide sudo pip, and CHIP_IO is tied to C.H.I.P.-specific hardware. On a current Linux board, use a virtual environment for Python packages and replace CHIP_IO with that board’s supported GPIO library. Pin names and electrical behavior must be translated; C.H.I.P. labels cannot be copied to another board.
What the controller program must do
The Python application should:
- Open the input device identified during inspection.
- Filter for the relevant key-down event and ignore key-up or auto-repeat events as appropriate.
- Maintain LED state rather than treating a press as a permanent electrical level.
- Write the resulting states to the selected GPIO pins.
- Turn all outputs off and release resources on exit, including
KeyboardInterruptor input errors.
The original two-LED design uses XIO-P5 and XIO-P4. The complete historical script is available from the project page; its event code and API calls should be verified against the actual C.H.I.P. image before reuse.
Troubleshooting
Paired, but no button events
Confirm that the remote is exposed as an input device, select the correct /dev/input/eventX in evtest, and check the actual key code. Reconnect after the remote wakes from sleep.
LEDs stay dark or are dim
Check polarity, common ground, resistor placement, GPIO initialization, active-high versus active-low logic, and whether the chosen pin is reserved for another function. A 1 kΩ resistor may produce relatively dim output on a 3.3 V system.
Rank #4
- The remote shutter can take pictures and start/stop recording videos. (Compatible with Instagram and Snapchat; Does not work with page-turning for TikTok or Kindle App)
- Wireless Technology, 30 feet(10 meters) effective distance.
- Lightweight and small, low power and long working life. Only need to pair once, the remote will be automatically recognized on the next use.
- The wireless camera remote is compatible with all iPhone, iPad (iOS 6.0+), and most Android phones (4.2.2 OS+) and tablets. Option to use in-built app or Camera 360 app.
- Each remote comes with an adjustable wrist strap for added portability and security.
LEDs remain on after exit
Add cleanup that explicitly drives every output low (or the circuit’s off state) and releases GPIO resources, even when the input device disappears.
Repeated presses
Mechanical contacts can generate bounce, and HID devices can generate key-repeat events. Distinguish key-down, key-up, and repeat events. The original four-LED design tracks state and timestamps, but its exact debounce interval should be taken from the source code rather than guessed.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Modern ways to build it
| Platform | Advantages | Trade-offs |
|---|---|---|
| Current Linux SBC | Preserves the Bluetooth HID → evdev → Python → GPIO architecture |
Requires a board-specific GPIO library and input permissions |
| Bluetooth microcontroller | Low power, fast startup, compact deployment | Bluetooth-profile compatibility and firmware work must be verified |
| Wired button | Simplest and most predictable input | Lacks the wireless convenience of the remote |
Choose the hack when the button must control something outside a phone—an indicator, prop, light controller, or installation. If the only goal is taking photos, the remote needs no custom electronics.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Safety and design limits
- Check each board’s recommended GPIO source and sink current.
- Confirm logic voltage and whether an IC such as the 74139/7404 is suitable.
- Keep high-current loads behind a properly rated driver.
- Use a stable supply, strain relief, and an enclosure for a permanent installation.
- Expect compatibility work: the C.H.I.P. ecosystem and original package versions are not established as readily available today.
The original project is clever and inexpensive in concept, but its C.H.I.P.-specific implementation is best treated as a legacy build or a porting starting point, not a guaranteed plug-and-play recipe for modern Linux.
Best Value
- CONVENIENT AND EASY OPERATION: Just by pushing the on/off of the remote, open your phone Bluet function on and fine the "ab shutter3" from the list, and select to connect. Perfect for taking selfies and steady tripod shots.
- SMALL AND LIGHTWEIGHT: The remote is very small and lightweight, also it come with a wrist strap, so it is convenient to carry with you.
- [UPDATE] OPERATIONAL UP TO 50 FEET (15M): you can take photos easily even when at a long distance from your device. A nice gift for your family and friend
- COMPATIBLE WITH ANDROID 4.2.2 OS AND UP / APPLE IOS 6.0 AND UP: Option to use in-built app or Google Camera 360 app.
- COMPATIBLE WITH MOST SMART DEVICES: compatible with iphone 16, 15, 14, 13, 13pro,13 pro max, 12, 12 pro,12 pro max, 12 mini, iPhone 11, 11 pro, 11 Pro max, Xs, Xs max, XR, X, 8, 8 Plus, 7, 7 Plus, 6, 6 Plus, ; tablet like: iPad 2, 3, 4, ipad mini, ipad air, ipad pro; Samsung Galaxy note 20 S20 S10, S10+, NOTE 10 NOTE 10 PLUS S9+, S9, S8, S7, S7 Edge, S6, S6 Edge,; and other devices.
Frequently Asked Questions
Will every Bluetooth selfie remote work?
No. It must expose a usable Bluetooth HID input event, and different models may use different key codes, sleep behavior, or pairing procedures.
Can I connect an LED strip directly to the GPIO pins?
No. GPIO pins are intended for low-current signals and indicators. Use a properly rated transistor, MOSFET, relay, or LED driver for strips and other high-power loads.
Can this project run unchanged on a Raspberry Pi or another modern board?
Not unchanged. The Bluetooth and evdev portions may translate well, but C.H.I.P. pin names and CHIP_IO calls must be replaced with the target board’s GPIO library and wiring.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

