[HN Gopher] Show HN: Bluetooth USB Peripheral Relay - Bridge Blu...
___________________________________________________________________
Show HN: Bluetooth USB Peripheral Relay - Bridge Bluetooth Devices
to USB
Hi HN! I built Bluetooth USB Peripheral Relay, a tool that lets
Bluetooth devices (like keyboards and mice) connect to USB-only
hosts using a Raspberry Pi Zero W. Why? My friend needed a way to
use his Bluetooth mouse and keyboard on a PC with Bluetooth
disabled due to policy restrictions. This tool acts as a bridge,
relaying Bluetooth input over USB. It also lets you use Bluetooth
peripherals with older devices that only support USB input. Tech:
Written in Go, optimized for Raspberry Pi Zero W. I love HN's
community and often lurk here--I'm hoping this project is useful or
at least sparks some interesting discussions. Feedback and
contributions are welcome!
Author : bahaaador
Score : 190 points
Date : 2024-11-13 13:24 UTC (9 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| AshamedCaptain wrote:
| I just miss the dual mode HID/HCI bluetooth adapters.
| Bjartr wrote:
| What could those do special?
| AshamedCaptain wrote:
| Exactly the same as what this device is doing, plus more. You
| would put it in HCI mode, pair whichever Bluetooth devices
| you wanted to pair with it (keyboards, mice, etc.). Then on
| the next reboot it would put itself back into HID mode, where
| all the paired devices would appear as USB HID devices. And
| therefore your keyboard would be available even during pre-
| boot, at the BIOS setup program.
|
| Once the operating system finished loading, it would send the
| adapter the command to switch to HCI mode, and the adapter
| would then re-appear as a normal bluetooth adapter. Under
| BlueZ, this operation was done by a command called hid2hci.
|
| I have several (even Apple used to do this), but they stopped
| being a thing during the 2.0 EDR era (therefore zero support
| for LE keyboards).
|
| In fact, if you google these keywords ("HID proxy",
| "HID2HCI", ...) you will find that there are several much
| older projects to also replicate this using RPi Zeros. I
| personally would like one which extends the concept to audio
| devices, serial ports, etc. so that I can use them from OSes
| without BT stack.
| tiernano wrote:
| This is brilliant! It just shows what can be done with the
| raspberry pi and other small computers, and some time! I love
| seeing stuff like this and the like. BlueSCSI is another example.
| If you think outside the box, the pi can act as a DPU, to an
| extent, for machines. It can already act as a KVM... and the
| PiKVM project has the option of mounting storage to the host, and
| even networking. Very cool stuff!
| bahaaador wrote:
| Thank you for the kind words, I'm glad you're finding it
| interesting! ^^
| anonym29 wrote:
| Cool project!
|
| Out of curiosity, do you think this concept could be extended to
| other common bluetooth use cases, such as wireless
| headphones/speakers, or file transfers over bluetooth to mobile
| devices, or are the audio/file transfer/etc stacks too far
| removed from the HID stack for that to cleanly translate?
| bahaaador wrote:
| Thank you!
|
| Great question. I can see this being fairly easily extendable
| to other HID devices and even modifying their behaviour
| slightly (e.g. remapping a key) but audio stack sounds like (no
| pun intended) a different beast altogether. A buddy of mine had
| a similar question around connecting his BT gamepad and headset
| to play PS games on PC so I'll be looking into this more.
| waiquoo wrote:
| This is awesome! I have some serial devices (RS 232) that I've
| wished I could make wireless. Are there any similar projects to
| bluetooth serial comms?
| wdfx wrote:
| You can just buy a very cheap module which does this directly,
| commonly called HC-06 or HC-05
|
| e.g.
| https://www.aliexpress.com/item/33010159305.html?spm=a2g0o.p...
| HeyLaughingBoy wrote:
| You can, of course, DIY something easily enough but you can
| also purchase devices like this off the shelf. Needing to make
| legacy RS232 devices wirelessly available is a common problem
| in industry. Search for "wireless RS232 gateway" and you should
| be able to find a ton of stuff.
|
| If you still want to DIY, an ESP32 (BLE and Wi-Fi capable
| microcontroller) board, and an RS232 to logic-level breakout
| board should be all you need. Again, I'm sure if you search,
| you'll find existing projects doing exactly this.
|
| If it's not actually at RS232 voltage levels and Classic
| Bluetooth is enough, then something like this will work just
| fine: https://www.amazon.com/Wireless-Bluetooth-Transceiver-
| Integr...
| agapon wrote:
| You may find esp-link interesting:
| https://github.com/jeelabs/esp-link I've built a WiFi<->RS232
| bridge using the firmware, ESP8266 and a UART<->RS232 converter
| module. All hardware is very cheap.
| jwr wrote:
| This is a wonderful hack!
|
| But -- using a Raspberry Pi and Linux is overkill for this. It
| introduces huge unnecessary complexity. A simpler approach would
| be to go with Zephyr and a small microcontroller (ARM Cortex M4).
| 0_____0 wrote:
| It's not unnecessary complexity if the thing wouldn't get made
| otherwise, especially for a personal project.
| imhoguy wrote:
| Right, I think it is doable (an would say even easier/faster)
| with Raspberry Pico Pi W controller, it has BT and can behave
| like USB HID device.
| JoBrad wrote:
| a.k.a.
|
| > A delightfully over-engineered solution
| bahaaador wrote:
| <3
| bahaaador wrote:
| Thank you!
|
| I think that's a fair point about potentially wasted resources,
| something like Pico would have been and a leaner choice if this
| was going to be mass-produced. But for me, part of the decision
| was my comfort level with system programming and what I desired
| to tinker with and learn along the way and still, it's a very
| affordable option (around 20 CAD I believe)
|
| Perhaps I'll look into porting it to Pico in future as new
| challenge and learning experience. Thank you for your sharing
| your thoughts.
| imhoguy wrote:
| I had same worries like yours but worry not, check
| MicroPython/CircuitPython when you get a chance. You load it
| up onto Pico and play with REPL in IDE. It is easier than
| debugging Go on large-RPi.
| jwr wrote:
| Please don't get me wrong: I really _do_ appreciate the hack
| value and I absolutely understand choosing this route to
| scratch a personal itch!
|
| My point was more general: I see a lot of things getting
| built using Linux that really have no need for this level of
| complexity. And it doesn't come free: complex systems are
| more fragile, there are more things that can go wrong.
|
| In this particular case, I'd recommend taking a look (for
| example) at the Seeed XIAO nRF52840 module and Zephyr: around
| $10, very capable CPU, very good Bluetooth stack
| (Zephyr+Nordic), USB-C connector.
| beardyw wrote:
| I would think an esp32 with Bluetooth would do wouldn't it?
| draxil wrote:
| I can't get past someone not being allowed to turn on bluetooth!
| athom wrote:
| My workplace doesn't even allow us to plug in (unapproved?) USB
| devices, so even this workaround likely wouldn't fly here.
| vardump wrote:
| Easy to spoof a whitelisted device. Of course this might risk
| your future employment...
| reaperducer wrote:
| Same here.
|
| I once plugged my personal phone into the USB port of a
| random machine in the office to get a quick charge, and a guy
| from Information Security showed up in under ten minutes
| ready to have a heart attack.
| imhoguy wrote:
| Cool stuff! Actually that tempts me to start a new rabbit hole
| research: could we do BT -> Internet -> BT. I would have so many
| uses to that.
| bahaaador wrote:
| Thank you, I'm glad you're finding this inspiring. I've been
| thinking about some similar ideas that excite me. Would be
| happy to help as well if you ran into any blockers.
| trklausss wrote:
| Well, you need a frame converter that sends it to an IP
| address/DNS server, and on the receiving side something that
| receives that packet on a specific port and translates it to a
| BT command.
|
| I would say the most complicated part would be the TCP/IP
| stack, and binding/publishing your address, but if you are
| running something with Embedded Linux it is doable :)
| mtucker502 wrote:
| ESPHome has this feature (called btproxy). It works well with
| BTLE devices. I use it for remote temperature sensors and a
| few other IoT btle devices.
|
| https://esphome.io/components/bluetooth_proxy.html
| g1sm wrote:
| This seems to be specific to Home Assistant:
|
| > Note that while this component is named bluetooth_proxy,
| only BLE devices (and their Home Assistant integrations)
| are supported.
|
| One specific use-case I have in mind is controlling a
| Chromecast over the internet. So a smartphone should have
| its bluetooth signal relayed over an IP network. I haven't
| found anything that would allow me to do that yet.
| sciencesama wrote:
| Hp had a wifi mouse !!
|
| https://www.techspot.com/review/420-hp-wifi-mouse/
| dspillett wrote:
| _> could we do BT - > Internet -> BT_
|
| Quite probably, though there might be protocol latency issues
| that you need to be careful of and they might limit the
| effective range (lookup the "We can't send mail more than 500
| miles" tale for a related issue!).
| lemonwastaken wrote:
| very cool
| fffrantz wrote:
| Damned, I just purchased a new keyboard with a 2.4 GHz dongle
| because my Bluetooth keyboard cannot with GRUB and I got tired of
| having to plug it in every time I rebooted.
|
| What a cool little project. I might build a couple of these for
| the KVMs at work.
| bahaaador wrote:
| Oops, I hope you can still return it!
|
| I'm glad you might find this useful, be sure to create an issue
| on GH in case you run into any and I'll try my best to help :)
| rkagerer wrote:
| So it's basically what I would expect to get if I asked for a
| generic Bluetooth dongle.
| bahaaador wrote:
| Not quite, if your PC has a policy that disables Bluetooth, a
| BT dongle would not work either.
|
| That's where this relay comes in--it bridges Bluetooth to USB,
| so you can still use your devices.
| theblazehen wrote:
| This would also work to allow you to use a BT keyboard /
| mouse in UEFI setup etc I believe
| fffrantz wrote:
| I think it should, yes. I'm going to try as soon as I can
| find my raspberry pi buried in the garage.
|
| It should work anywhere a USB keyboard works,
| realistically.
| rkagerer wrote:
| But that's exactly what I would want in the first place. Take
| my square and make it look like a circle (not a square with
| rounded corners).
| ChrisMarshallNY wrote:
| _> This project was born out of a desire to help a friend who
| couldn 't use his favorite Bluetooth mouse and keyboard due to
| Bluetooth being disabled on his work laptop._
|
| Protip: If their company's IT section is like the one at my old
| company, they are _quite_ unlikely to like this solution, either.
|
| But it's very clever. Kudos.
| bahaaador wrote:
| Thank you for sharing your thoughts, I had thought about this
| as well but came to the conclusion that from the company's
| perspective, this is no different than connecting a random
| keyboard bought from Amazon, what do you think?
|
| Another thought around this is that I don't even think there's
| anything intrinsically insecure about BT as an attack vector
| but most likely some old policy based on security issues that
| existed in the early days of Bluetooth. Or at least I don't
| know of any, but I'm no expert in this so I would love to hear
| other people's insights here.
| ChrisMarshallNY wrote:
| In my experience, the IT section didn't trust _anything_ they
| didn 't approve, themselves. They certainly wouldn't allow us
| to buy any random device from Amazon.
|
| It sucked. Big time, but they had the clout.
| jchw wrote:
| In my experience, I just never asked for permission when I
| was going to work around an annoying policy. I think while
| the company IT department will not love you, as long as you
| don't show up in one of their dashboards, it's pretty
| unlikely they will care. For years. Even if someone does
| bug you, I doubt it will amount to much other than being
| forced to adhere to the policy. As long as you ensure it
| doesn't look too much like you did it on purpose. (I would
| at least recommend a nice case for the device and picking
| innocuous USB IDs. Might be able to make it seem like a
| reasonable looking product, like a normal wireless keyboard
| receiver.)
|
| Remote work at startups has largely removed my need for
| this kind of behavior. Now I'm mostly just mad that I can't
| always run Linux at work anymore.
| dspillett wrote:
| _> In my experience, I just never asked for permission
| when I was going to work around an annoying policy._
|
| Same here, though I've never been in a significantly
| restrictive place with no authority (in current long-term
| DayJob I have some involvement in decisions wrt what
| restrictions are appropriate, and what exceptions to them
| are appropriate).
|
| If someone is in a truly restrictive environment, they
| should take care. A deliberate breach of policy could be
| a job terminating excuse, or at least further
| justification, if someone wants them out of the way for
| any other reason, and in such circumstances a workaround
| and a breach will be seen in the same light.
| mmsc wrote:
| The irony of it is that these types love to then support
| software and hardware that is full of vulnerabilities. "Oh,
| our management software/SSL-VPN has just been pwned for the
| sixth time in two years? Well at least the vendor has a fix
| and the security team can deal with the problem!" or "well
| our infrastructure is so poorly managed that a single
| Bluetooth device could, in fact, take over the whole
| company!"
| wongarsu wrote:
| Secure bluetooth requires manufacturers to get the
| cryptography right. Even big brands like Logitech have gotten
| that wrong in recent memory, allowing attackers both to
| decrypt what you type [1] and to inject keystrokes [2]. And
| these are long-lived devices, even if vulnerabilities get
| patched in newer devices there are still plenty of 5 year old
| or older mice and keyboards with outdated firmware floating
| around. Not to mention the possibility of 0-days known to
| your attacker.
|
| Wired connections are inherently more difficult to attack. In
| security critical applications banning bluetooth is perfectly
| reasonable.
|
| [1] https://www.youtube.com/watch?v=GRJ7i2J_Y80
|
| [2] https://www.youtube.com/watch?v=EksyCO0DzYs
| prmoustache wrote:
| Same with keyboards and mouses which use insecure usb radio
| receivers. This company policy doesn't really prevent that.
|
| The best way to correctly fight Shadow IT is to provide
| equipment and services so good nobody would even care using
| something else.
| wongarsu wrote:
| I'm always a proponent of just spending some money on
| your office equipment. Even a $90 mouse and $200 keyboard
| costs less than a tenth of a percent of salary of an
| average office worker, never mind developer (amortized
| over a very conservative 5 year lifespan). Give people
| the option to choose between 2-3 sanctioned models, throw
| in some vertical mice and split keyboard options and you
| can even brag about how much you care about your
| employees' health.
|
| Some people will always want to bring their own
| equipment, but a lot of it is caused by penny pinching or
| lack of options
| vel0city wrote:
| > Give people the option to choose between 2-3 sanctioned
| models
|
| It quickly grows past the 2-3 sanctioned models. Everyone
| wants something not on the list, lots of bickering of
| "why was _that_ model chosen? ", etc. Well that pre-
| approved model is $150, this is only $175. Bob got that
| $175 model, this is only $200, it's not that much. Jenny
| got that $200 model, this is only $250. Jenny's got a
| $250 keyboard? I gotta upgrade, here's this $300 model...
| Wait did the company just buy Bill a 55" 4K display? I
| need that too...
|
| Suddenly your $150/person budget has exploded to replace
| everyone's equipment for $1,000+ otherwise it's just not
| fair someone else got more.
|
| Personally I'm fine with me buying and owning my own
| kb+m. Maybe give a once a year or two office hardware
| stipend or whatever. Then otherwise make basic stuff
| available for free. If you're wanting a $200 keyboard
| you're probably wanting _a particular_ $200 keyboard, and
| it 's probably not one of those 2-3 approved models.
| kelvinjps10 wrote:
| But what they offer is crap, I like that my company let's
| me change the equipment
| a1o wrote:
| IT departments that are too restrictive will soon find that
| people have a parallel world executing in Excel sheets and
| using some external messaging app to keep the company
| operations running despite IT efforts to ensure it doesn't - I
| mean to ensure it is "secure"...
| Arcanum-XIII wrote:
| My CTO is quite adamant that he hates shadow IT. Especially
| those with mac, full of... well software used by those artsy
| employees. Or with strange software not validated by the IT.
|
| Well.
|
| Other departments ask for equipment, but only hear no back.
| Management product like Monday? No. Dedicated solution for
| jobs they don't understand? Hell no!
|
| It's tough to be part of this. I know security is hard.
| Budget limit stuff. But we can, and should do better.
| reaperducer wrote:
| My company is the same, but it's not necessarily about it
| being "hard." It's about not hiring the right people.
|
| My company's IT department is Windows clickops people who
| hire other Windows clickops people. When something goes
| wrong that requires the command line, they spend five
| figures on a consultant to fix it. Ditto for the few dozen
| Linux machines in the company.
|
| Some of our departments, including mine, run Macs. I can't
| count the number of times I've had someone from IT tell me
| "OK, now click 'Start'..." or whatever the Windows
| convention is these days.
|
| All they'd have to do is hire one guy who knows the command
| line, and one guy who knows how to support Macs. There must
| be a hundred people in the IT department, but they keep
| hiring the same type of people over and over.
|
| I wish it was unique to my company, but there was an
| identical situation where I worked a few years ago.
| atoav wrote:
| As someone who has worked in IT support: The problem is
| that people using that shadow IT will come running when
| they produce real tangible damage, because they lose data
| or some totally ridculous workflow stops working and you
| now have to reverse engineer some undocumented database
| format to extract at least the most urgent data. I am not a
| fan of IT GESTAPO, and everything should be measured,
| butbif I learned one thing it is that people will do the
| dumbest, riskiest shit if left tontheir own devices.
|
| Also: if you work with certain customer data a good way to
| not only loose your job, but a ton of money would be to
| e.g. put that data into your shadow IT that might be
| running on some servers somewhere. E.g. people constantly
| asked us to use Zoom "because it is free and works", but we
| were in the public sector and a contract with them that
| guaruantueed the privacy of our clients would have costed a
| significant fraction of our yearly IT budget -- and we are
| required by law to have such a contract.
|
| When you then ask those people if _they_ want to part with
| that money suddenly nobody is so adamant anymore.
| ChrisMarshallNY wrote:
| This is true. I suspect that a lot of these massive
| breaches, was because some less-technical person loaded
| the customer data onto an unsecured AWS instance, while
| they were running measurements on it.
| ChrisMarshallNY wrote:
| We wrote optimized C++ software.
|
| We had all kinds of scary tech, like custom-compiled
| metrics software from Intel.
|
| They insisted that _all_ of our machines run their malwa-
| er, _security software_.
|
| It would totally screw up our measurements.
| exe34 wrote:
| > "to keep the company operations running despite IT efforts
| to ensure it doesn't"
|
| Love this!
| bragr wrote:
| There's a name for this: Shadow IT
| bongodongobob wrote:
| No, it's just a USB device at that point. Unless they are
| against USB mice and keyboards, it's fine.
| tiagod wrote:
| It's a USB device that types stuff sent through the air into
| the computer. For example, if the BT keyboard is vulnerable,
| you just opened a door for an attacker to remotely type
| things into the company laptop. I don't think it has the same
| risk profile as a wired keyboard
| ChrisMarshallNY wrote:
| Our IT would not allow any USB that wasn't purchased through
| them, to be connected to the machine.
|
| This was _especially_ true for memory sticks, but keyboards,
| and even bus-powered things like fans (or nerf turrets) would
| get banned.
|
| They had the power to get you fired, if you crossed them.
|
| They did not like my team, because we were the only ones in
| the building, that knew what bullshitters they were.
| baq wrote:
| The clever IT department will put hot glue in all USB ports.
| Eisenstein wrote:
| 99% IPA will make it removable easily without dissolving it
| and will not damage any of the electronics.
| WhitneyLand wrote:
| Can't imagine when I'll ever need this, but I love it.
|
| Great work Bahador.
| bahaaador wrote:
| Thank you so much!
| threecheese wrote:
| A potential use case for this is using BT-only peripherals, like
| Apple Magic Trackpad/keyboard, with KVM/USB switches.
|
| Would this work? I'd buy one. I currently have to use Synergy to
| share peripherals between two MacBooks.
| givinguflac wrote:
| Have you tried usb? My Magic Trackpad and keyboard work fine
| without BT on both windows and pop os. Would love a way to
| actually disable the radios though.
| yencabulator wrote:
| At least older models of Apple Magic Trackpad work over USB
| just fine. I have one plugged via USB to my monitor, which acts
| as a KVM.
| jasomill wrote:
| Magic Trackpad 2 and (Mac) Magic Keyboards appear as USB HID
| devices when connected to a computer via Lightning-to-USB (-A
| or -C) cable.
|
| One annoyance is that macOS automatically Bluetooth pairs with
| these devices when connected via USB, overwriting any existing
| pairing, but this shouldn't matter for purely wired scenarios.
|
| For switching Bluetooth devices more generally, observe that
| most Bluetooth controllers are USB devices; with a bit of
| effort -- mostly just copy/pasting the device pairing keys
| across all connected hosts -- they can be switched just like
| any other USB peripheral (YMMV with "intelligent" USB KVM
| switches that virtualize USB HID device connections).
|
| IME the connection delay is a couple seconds longer than
| switching wired USB HID devices directly, but entirely
| reasonable for typical KVM use cases.
|
| Note here that "most Bluetooth controllers are USB devices"
| even extends to internal Wi-Fi/Bluetooth combo cards, which are
| commonly M.2 key A or E (= PCIe + USB 2.0 + ...), or M.2 key A
| or E preinstalled on a mostly passive PCIe adapter, with a
| separate cable connection to a USB port or motherboard USB
| header used exclusively for Bluetooth.
|
| This turns out to be a surprisingly useful implementation
| detail: on one of my work desktops, I'm currently virtual USB-
| switching the Bluetooth controller on an Intel BE200 PCIe card
| between a Linux host and a Windows VM running on that host,
| while keeping Wi-Fi connected to the host.
|
| I have a matching hot key set up in each OS to attach/detach
| the Bluetooth controller from the VM and simultaneously DDC
| switch the monitor input between the host (iGPU) and guest
| (PCIe dGPU passthrough), and it works great.
|
| Coincidentally, the Bluetooth devices I'm using in this
| configuration are a Magic Trackpad 2, a Magic Keyboard, and a
| Magic Mouse (the mouse was the motivation for using Bluetooth
| over USB in the first place, as, unlike the other Apple input
| devices, it's physically impossible to use when connected via
| USB).
| 76SlashDolphin wrote:
| Ooh, one thing that can be very useful for this is sending USB
| wakeup packets. I have an HTPC under my TV and game controllers
| (PS4, Xbox) at my coffee table and there is no way to wake up the
| PC with those over Bluetooth so I have to keep it on and idling
| at all times, wasting electricity.
| baq wrote:
| If you have a wired connection to the box you should be able to
| use wake on lan from a phone (this is what I used to do, now
| homeassistant took over this responsibility).
| mschuster91 wrote:
| I'd love to see something like this but the other way around - a
| _native_ implementation of a Bluetooth mouse and keyboard in
| either Android, an iPhone or a RPi with a touchscreen. It would
| make life in a server rack so much easier if I didn 't have to
| lug around a physical keyboard and mouse...
| bahaaador wrote:
| Oh interesting, I can see how something like that would be
| useful for myself as well. I think you just gave me some good
| ideas for future projects as I have a few ideas around using
| Bluetooth in React Native apps and potentially amalgamating
| them with Single-board computers. Thank you!
| myself248 wrote:
| Blackberries could do that, I think it was called Blackberry
| Connect or something like that. I used to use my Bold as a
| keyboard for my laptop when it was parked next to the
| projector.
| bashtian wrote:
| For Android there is an app that does this.
| https://play.google.com/store/apps/details?id=io.appground.b...
| Derbasti wrote:
| Awesome! This will finally let me use bluetooth devices behind a
| KVM!
| abind wrote:
| Awesome! I was going to build something like this for myself for
| connecting peripherals behind a KVM.
|
| I gotta test how this works with the Magic Trackpad. IIUC Magic
| Trackpad does something non standard to achieve smooth scroll.
| bahaaador wrote:
| I would be interested to know too, be sure to let me know how
| it goes!
| pwizzler wrote:
| Bluetooth was disabled but the USB port... wasn't?
| bambax wrote:
| Yes, that's weird. USB is a worse attack vector than Bluetooth.
| vel0city wrote:
| USB _requires_ physical access. Bluetooth doesn 't.
| bahaaador wrote:
| I know, it seemed to me like a pretty arbitrary policy as well,
| but what can you do other than turning limitations into
| opportunities? -\\_(tsu)_/-
| atomicUpdate wrote:
| The reasoning I've heard is that Bluetooth traffic is easily
| snoopable without physical access to the device. Someone could
| potentially steal password keystrokes while sitting outside the
| office building, on the other side of a window with the shades
| drawn, whereas with USB you still need to get past the physical
| security and be at their desk.
| reeddavid wrote:
| This solves a huge annoyance I've had: swap a Bluetooth
| keyboard/mouse between multiple laptops, without manually
| un0paring / re-pairing. I have a personal "hot desk" at home. I
| want to be able to plug in any laptop to the large monitor, and
| have the wireless keyboard/mouse on that desk instantly work. And
| when I leave the desk with my laptop, I don't want that
| keyboard/mouse connected anymore.
|
| This has been impossible so far, because even USB bluetooth
| dongles still require each host computer to pair (and un-pair)
| with the keyboard/mouse.
|
| I am going to try your solution, and I will plug the USB input
| into the large monitor on my desk. Then any laptop that plugs
| into that monitor should have access to the wireless
| keyboard/mouse. Thank you for creating and sharing this!
| mmh0000 wrote:
| All of this is being insanely overcomplicated.
|
| Throwing more complexity at a simple problem might be "fun"
| from a nerd's POV, and, TBH, building this USB device sounds
| fun. But entirely unneeded while introducing more points of
| failure.
|
| A simple solution to your problem:
|
| 1. Get a monitor with a built-in USB hub (nearly all of them?).
| Consider getting a USB-C monitor to reduce the number of cables
| to 1.
|
| 2. Don't use Bluetooth (for a keyboard, for multiple reasons,
| like needing the keyboard available in early boot). Get a
| keyboard/mouse with an external USB dongle like Logitech's
| Unify or Bolt, Corsair's SLIPSTREAM, or any of the other
| billion options that exist.
|
| 3. Plug keyboard/mouse into monitor, plug random computers into
| monitor. Bam. Unified mouse and keyboard without any pairing.
| FredFS456 wrote:
| A cheap USB switch would also work, that would reduce the
| switching to switching monitor inputs and pressing the button
| the USB switch
| seiferteric wrote:
| I did this for a while but was a bit annoyed with the delay
| since it "unplugs" and "plugs" in the mouse/keyboard each
| time you hit the button. What I ended up doing is buying a
| used KVM switch with DDM
| (https://en.wikipedia.org/wiki/Dynamic_device_mapping)
| which allows pretty much instant switching.
| jwells89 wrote:
| Be careful with these though, a lot of USB switches (most
| readily available ones, even) aren't wired correctly and
| can result in current flowing from one computer to the
| other.
| derefr wrote:
| So your solution to solving one tiny flaw with the GP's
| otherwise-working setup is to... throw away their monitor,
| keyboard, and mouse, and spend lots of money (many times more
| money than an RPi-with-a-hat costs) to replace them?
|
| All because you're offended by the complexity of... what?
|
| * The idea of a device that acts as a stable host for
| Bluetooth devices, while presenting as a wired USB hub to an
| upstream USB host controller?
|
| * The particular implementation here, which is a hacky proof-
| of-concept of the idea (and which could, in practice, be
| reduced to a single chip embedded into any USB-C-dock product
| if there was demand)?
|
| * The entire concept of Bluetooth?
|
| ---
|
| Also, I would like to point out that, given that this is HN,
| it's more than even odds that the GP:
|
| * likely has _multiple_ monitors (so using a monitor with a
| built-in hub is likely untenable);
|
| * and also, that their laptops are probably Macbooks, and
| their mouse and keyboard are therefore very likely a Magic
| Keyboard and Magic Trackpad [for which there is no 1:1
| substitute that does non-Bluetooth wireless while still
| having the same level of macOS support/integration];
|
| * and that, given what they've said, they're likely already
| using a Thunderbolt hub to talk to those multiple monitors +
| all their USB devices through "one cable" (and all they
| really want is to add one more USB connection to this dock to
| make it act like a "Bluetooth dock" too);
|
| * and that they likely have a big deep sit-stand desk, that
| they'd be cluttering/making it hard to put things on the 90%
| of the free "middle space" on, if they had to run actual
| wires from the keyboard and mouse over to the dock.
| bahaaador wrote:
| My pleasure, @reeddavid! I'm excited that you might find a use
| for it. Just a quick note: you may need an external power
| source for the RPi if you're switching between devices
| frequently.
|
| One popular request I've received is for certain RPi models
| (those with multiple USB ports as host) to act as a KVM,
| allowing them to serve as a USB host for multiple PCs
| simultaneously with easy switching--perhaps through shortcuts
| or physical buttons on the RPi. I'll need to give it more
| thought, but it seems feasible with minimal changes. I already
| have some ideas for better state management for the devices!
| vel0city wrote:
| I've had many BT mouse and keyboards which supported multiple
| pairing profiles on the device. When I want to switch the
| device I just press a button on the mouse or keyboard and it's
| connected almost instantly.
|
| My current keyboard:
|
| https://www.logitech.com/en-us/products/keyboards/mx-mechani...
| clort wrote:
| many Bluetooth USB dongles have NVRAM, you can write the link
| key for a device (eg the keyboard or mouse) into the NVRAM and
| then when connecting, the dongle doesn't ask the Host computer
| for the key. I have used this to dual boot with a Bluetooth
| keyboard and mouse in the past.
|
| I think the technique would be: pair in machine A (A has a link
| key). Then, pair again in machine B with the same dongle. Write
| _that_ key into NVRAM, and machine A considers the device
| paired but it never gets asked for the key so just works if you
| plug the dongle into either machine. I don 't know how the
| monitor thing works, does it act as a USB hub? I guess you can
| just leave the Bluetooth dongle plugged in there..
| jauntywundrkind wrote:
| Fun & cursed fact, the ArchWiki has a rather long section on
| dual boot pairing. Pair in Windows or Mac then painstakingly
| extract various bits of pairing info from the OS and toss it
| into Linux, so you can dual-boot & keep the pairing.
| https://wiki.archlinux.org/title/Bluetooth#Dual_boot_pairing
|
| I've always wondered how feasible it would be to copy Bluetooth
| pairing information. This particular series of hacks seems to
| rest at least somewhat on it being the same Bluetooth host
| adapter. (But maybe the host side can spoof, trade IDs with the
| other device?)
|
| Ideally I'd love to centrally and dynically manage what devices
| of mine are paired with what system... I think that might be
| technically feasible, as long as I'm not trying to pair
| multiple things with a single bt adapter.
| lathiat wrote:
| I had a similar problem but dual booting windows/linux. Though
| I managed to share the link keys with some registry hacks in
| the end.
|
| https://gist.github.com/madkoding/f3cfd3742546d5c99131fd19ca...
| Havoc wrote:
| Does this support headphones/audio too?
| rainbowskys wrote:
| Audio support would be awesome. I would love to be able to use
| my AirPods and other Bluetooth headphones on gaming consoles
| vel0city wrote:
| As someone who uses Bluetooth headphones on a Switch and
| gaming PC from time to time, it's generally not a great
| experience. Computers and phones and what not compensate for
| the delay often for video sources, but low latency gaming can
| become noticeable for things like SBC and what not. Those
| proprietary wireless headphones are doing a lot to try and
| optimize the latency.
| bahaaador wrote:
| Not at the moment, I might look into it as I've received the
| request a few times now. So stay tuned! :)
| Havoc wrote:
| Thank you! Currently fight (and losing) a battle with Sony
| headphones on windows & LDAC protocol
| willwade wrote:
| Nice. Check out this guys repos for stuff using nrf chips. It's
| generally the other way round. Really nice.
| https://github.com/gdsports/ble-usb-devices
|
| https://github.com/gdsports/usbhostcopro
| tanvach wrote:
| This is very cool. I have a Kinesis Freestyle2 Blue for Mac that
| keep having repeating key issue when paired with my Macbook. The
| Kinesis CS unhelpfully blame Apple's BT stack implementation and
| offered no solution. I never had issues with the keyboard when
| connected to a Linux machine, so this will work nicely for my
| home office setup!
|
| I'm assuming this also works with Pi Zero 2 W? (The repo only
| mention the original Zero W)
| bahaaador wrote:
| Actually, I meant to say Pi Zero 2 W as well. But basically,
| any device that supports USB OTG
| grnnja wrote:
| Related nrf52 based project: https://github.com/jfedor2/hid-
| remapper/blob/master/BLUETOOT...
| maxglute wrote:
| Thank you, I was looking for something similar years ago and was
| surprised there wasn't rando product on aliexpress.
| delduca wrote:
| I have a USB switch, this will help me to use with my bluetooth
| devices.
|
| Thank you!
___________________________________________________________________
(page generated 2024-11-13 23:01 UTC)