Show HN: Control your Bose headphones from your Mac's menubar
boze.app
boze.app
Started running into problems where because I didn't have visibility on the battery level they would die on me during focused work or meetings
I know there's some way to get the voice assistant to tell me the battery level but that's not as useful as being able to glance in the top-right hand corner and having to move from my keyboard to press some buttons I can't see on my head is a bit silly?
So thanks to this repo (https://github.com/Denton-L/based-connect) and the ability to dump Bluetooth logs from Android to Wireshark I was able to figure out how the official Bose app communicates to the headphones not just to get information but also to send commands such as Connecting/Disconnecting paired devices, changing the noise canceling level and media control
It wasn't all easy, there's not great support for Bluetooth in the JS world and I wanted it to be cross-platform one day so Swift was off the table but it turns out to use the SPP protocol on Macos you have to go through the IOBluetooth APIs - Thanks to Pyobjc I was able to call the native Objective-C api's from Python and thanks to Pybluez I was able to use an interface that was a complete replica of Python's built-in sockets
Would to head some feedback
edit: looking at the tweet[1] it's an electron app... An electron mac app for $9. Let that sink in.
[1] https://twitter.com/DannyAziz97/status/1389482681608679424
Most likely there’s a clause in their EULA that prohibits reversing anything related once you start using a product. The only way around it is to show that you never accepted the EULA in the first place. That in itself is difficult, especially since the OP is being open about already using their products.
Not to be a skeptical old fart, but this won’t end well. Especially since it’s a $ software.
This is reverse engineering in the same way that I redraw a map of my drainage pipes when there's a leak in my house. My plumber is not going to sue me and neither will Bose.
I'm not sure how you can know that the protocol is exactly the same without access to Bose's technical documentation, and extensive testing on all supported models.
Furthermore, it would be Bose that decides what constitutes a violation of their warranty, not you.
This seems borderline unethical to me.
1. I'd be willing to buy the app, but I'm missing info on support guarantees. I.e. is there some commitment to support potential changes to the Bose communication protocol for some time period? Personally, I'd be hesitant to pay $9 for an app that might just break with the next Bose update.
2. I wanted to reach out to you to ask about 1, but I didn't find a way to contact you. I don't have Twitter, and there seems to be no e-mail address or anything on the website.
(Also related to 2: Not wanting to sound like a buzzkill, but I think at least in the UK you are legally obliged to have some contact information on your website. [0])
[0] https://www.legislation.gov.uk/uksi/2002/2013/regulation/6/m...
Ads are not "worse", and it's going to be safer for you, and you could've made a lot more money from it because people would go to your website and many would download it, even if they feel they don't need it... Also, many people are interested in noise canceling headphones, and this would likely be how you'd make money out of Amazon's affiliate program :)
I myself have a Bose QC35 headphone, but use it on wired mode (to my Blue Yeti X mic), so I'd be one of the people who downloads it... but I wouldn't pay for it. However, if you had an ad there maybe I'd click on it if it showed the newer and greater 700 headphone with a nice price.
https://affiliate-program.amazon.com/
* I speak this from experience, as I made about ~500 USD with this post here https://henvic.dev/posts/homelab/ even though I added ads on it just when it was not hot anymore (had a few dozen thousands views, but mostly on the first days when I still didn't have ads).
Do not place any ads on your page.
Money matters. Not everyone is rich to not care about that. In my case, what I make is still below what makes a difference in my life, but if I can multiply by 10 times it's going to make a lot of difference.
* I promise my ads aren't that intrusive. lol
If I placed a magnetic beacon holder in my arm, I sure wouldn't bother. That is the case with most browser users, unfortunately. If they aren't happy with that, they might consider switching browser vendors to ones that protect more their privacy.
Awful as they might be, ads are part of society and a source of revenue (and information!) for many.
Half of the internet doesn't work without JavaScript these days, the rest barely works on TOR because of the likes of Cloudflare.
OP's product doesn't rely on goodwill of individuals though. You get the app for $9. Full stop. Not "please donate $9 but you don't have to if you don't feel like it".
Some of them are just telling me about, say, a TV show or movie that is coming out. Nothing deceptive, nothing bothersome about it. I think it is quite a stretch to consider that the term "dark pattern" applies to that.
I understand that ads that are targeted are bothersome to many due to privacy issues, but I personally don't mind that Amazon and Ebay regularly show me ads for skateboard/roller sport equipment, music keyboards and other midi controllers, shoes of styles I like, and so on. But you seem to be simply saying ALL ads, even untargeted, non deceptive ads such as for a movie or car or something are "dark patterns." I don't get that.
If so, maybe you want to use my https://github.com/henvic/httpretty
Just give me, say, $300/month, and I'm taking out all ads from my website. Don't lose this unique opportunity :P
Yes
> ... maybe you want to use my https://github.com/henvic/httpretty
No, because I have a commercially licensed version of Proxie available, which is more flexible since it doesn’t require code modification, and (in my opinion) produces prettier output.
Additionally, there is no incentive to buy httpretty since it is distributed under a permissive license - by using it, I would likely never see an ad (though I would, of course, carefully audit the code before adopting it to ensure it does not do anything underhand).
- tell me the battery level when turn them on, and the batteries last for so long that they rarely get low enough for me to care what the level is.
- Have a button that cycles through which 2 devices are simultaneously connected. I can't imagine a system menu being anymore convenient than a dedicated button on my ear.
I wouldn't consider buying it unless it changed the deeper settings such as self voice level (I change this often while zooming). That's the only setting that doesn't have a quick shortcut physical button on the device.
I have QC36ii's as well and I didn't know that I could use the headphones themselves to switch which devices are connected. I've always used the app on my iPhone to control this, which is problematic if I'm on a call on my computer and it's paired with my AppleTV.
First slide will tell you which device's are connected.
Subsequent slides will cycle through the device's in what appears to be most recently connected order. Subsequent slides cycle to the next device and when you hear the name you want, stop.
Also, since two devices can be connected at once, the device you least recently connected to will be disconnected.
It's super intuitive once you get the hang of it.
I'm feeling very dumb asking this, but... which button is that?
First slide will tell you which device's are connected.
Subsequent slides will cycle through the device's in what appears to be most recently connected order. Subsequent slides cycle to the next device and when you hear the name you want, stop.
Once device is connected, you can cycle again to select a second device.
Also, since two devices can be connected at once, the device you least recently connected to will be disconnected.
It's super intuitive once you get the hang of it.
Often been annoyed when despite nothing playing on one device, it wouldn't switch. Great tip, thanks!
I understand this as being able to cycle through all combinations of two stored devices. I'm only able to select the next previously paired device, not a combination of two devices. Have I misunderstood the GP? I can't find any mention in the help about selection of two devices, only iteration of previously paired devices.
When a new device is selected, the least recently selected device is disconnected. So once your first device is selected, start cycling again and select your second device. It's just a FIFO (First in first out) queue of devices.
If it was free or open source you could argue you’re not profiting from it, but the way it’s presented..
You’re selling software with the likeness of a brand for the products sold by the brand.
Hope you’ve got a lawyer.
You’re probably lucky that they’re a research driven organisation given the founder donated majority shares for it to MIT with a mission lock clause which means it’s never going to be acquired by a tech giant or private equity. This is good because it means they don’t have for profit lawyers on staff to fuck over people like you. Nevertheless you’re still screwed.
So more then likely expect this to be taken down in the next few weeks.
I would expect a C&D from a lawyer company any day now, and more then likely they will ask for the domain as well. Since ACPA will classify this as "cyber squatting" since you are charging for the product.
You're also reverse engineering which is a gray zone as it is AND charging for the result.
So I wouldn't be surprised if instead of a C&D they just went straight to lawsuit.
I suspect the "reverse engineering" here was just looking at Bluetooth LE GATT attributes and values, which you can just look at using something like Bluetility [1]. There appears to be some exemptions to DMCA for compatibility so long as the author didn't copy Bose' code, but IANAL. [2]
The name I think is the more challenging part because it's very close - probably a C&D if it becomes popular to change the name.
[1] https://github.com/jnross/Bluetility
[2] https://www.eff.org/issues/coders/reverse-engineering-faq
You need to defend your trademarks otherwise courts will render them moot.
Sort of.
You need to prevent your trademark from becoming generic.
You also need to go after infringers in a reasonable amount of time, or you may lose the ability to collect monetary damages from that particular infringer at a later time (laches); however, progressive encroachment mitigates this to some extent (if you ignore a minor infringement, you can still sue if the infringement substantially expands, overriding the laches defense).
There's no requirement that you defend every case of trademark infringement, that's just overzealous lawyers who like to get paid a lot of money for sending threatening letters.
In this case Bose could ignore Boze and it wouldn't cause any issues. If Boze later expanded their business in a way that would increase the threat to the Bose trademark (for example, launching their own branded headphones, or directly competing with a Boze iOS app) then Bose could sue at that time under the progressive encroachment doctrine.
All that said,
> In this case it would be completely normal and legitimate for Bose to sue.
is completely correct.
Calling it anything else would be fine.
But the OP clearly doesn't have much of a background or worry for this, likely due to inexperience, age or just doesn't care. If they don't care, all the power to them - but I think they should be worried because litigation sucks for anyone.
The "consumer confusion" headlines and legal filings would be works of art.
> "and operated for months"
3ish days: opened Friday evening, closed down on Monday. And gave away the coffee (OK, I'm sure there was a fair amount made from the TV show).This seems IANAL to be, reverse engineering aside, to be more about trademark. I agree with the other comments that cease and desist now is the best path to hopefully avoid expensive legal bills.
https://www.bbb.org/us/fl/port-saint-lucie/profile/accountin...
Of course, they're not in software or hardware, so your point stands.
Good chance Bose will be aware of the bad publicity it would create to be too aggressive about this, it just would make them look bad for not providing such a thing in the first place. They have to defend their trademark, yeah, but unless this is actually a well known product, they aren't at risk of it being genericized.
They reverse engineer a protocol, built an app for it, bought a domain with a single character (s -> z) difference (cyber-squatting) and are charging for it.
And it isn't a "clear violation of trademark law" either, almost nothing is clear in trademark law until a court makes a ruling.
Regardless, fine, big corporations will do what big corporations will do. I don't think the Bozeapp guy is risking anything other than having to change the name, or possibly pull the app. Big deal. "Hope you hire lawyers" is an extreme comment.
I wish more of us in communities like this would cheer on the little guy, rather than jumping to the defense of big litigious companies (before they have even acted). Reverse engineering a protocol, because the big company didn't bother accommodating your device, seems well within the spirit of a forum called "Hacker News." To me, reverse engineering a protocol so you can add functionality is no different from what hot rodders have done to their automobile engines for a century. You're figuring out how it works so you can make it work more to your liking.
(and yes, in my opinion it is totally a David and Goliath situation)
None of these things are crimes.
Perhaps, but no one is talking about criminal charges. Torts, like the trademark violation here, are still illegal and a basis for legal consequences, you just don’t get prison, death, or other uniquely-criminal penalties for them.
Someone at Bose may also be interested in this kind of development.
They can even redirect the old domain to the new one for a while. A company like Bose is not going to punish a mistake that was corrected in good faith in a timely manner.
But still, using the name Boze is cease and desist magnet.
Makes me wonder how much work OP did, did he just wrap the CLI around an Electron UI?
[1] https://twitter.com/DannyAziz97/status/1389481926113775616 [2] https://dentonliu.com/projects.html
So agreeing with everyone, go with a different name. Also selfishly, try and figure out a way to do this with non-Bose headphones and add it.
I keep it connected to my Pixel 5 and a Pi running OSMC attached to a TV and can pretty seamlessly switch between the devices by playing media on whichever device I want to hear.
A smarter idea would be to send a cease and desist. Maybe before that, a nice email to start with. "Hey, we like what you're doing, but unfortunately you'll have to change the name."
I am not sure anymore. With twitter and cancel culture around? I can't imagine the legal fees and terrible optics would NOT be worth this. Maybe if this person was Sony with deep pockets. But there is no reason for Bose to chase some app that makes $50 a month.
I doubt it would come to a lawsuit though unless the developer resisted. More than likely Bose will send a C&D and the developer will comply. It's a fairly reasonable request in this case.
I use my Sony WF-1000XM3s almost exclusively with my Mac and it's a shame that each time I need to pair with my iPhone to change the settings. I could possibly use an external software and set the settings to default from the Sony Headphones app but then I won't be able to control Clear Bass, so well yes, there needs to be a Mac app for Sony too.
[edit] removed assumption about functionality presence on all Bose headphones
* https://urish.medium.com/reverse-engineering-a-bluetooth-lig...
* http://travisgoodspeed.blogspot.com/2011/12/introduction-to-...
* https://github.com/dlenski/ttblue/blob/master/tt_bluetooth.m...
The Bose app for iOS is a dumpster fire. I fired up Charles Proxy to poke around and found out it was using the Facebook SDK. I just want to control my headphones—I’d prefer it if I didn’t have to send telemetry to FB to do that! (App since deleted and I’ve accepted having fewer controls.)
Great to hear! I have had a lot of issues with getting high quality bi-directional audio (e.g. for video calls) to work with my QC35s on both Windows and Linux on both my Thinkpad and desktop since it defaults back to the HFP profile instead of A2DP. I don't fully understand the problem and I don't get why it seems to work fine on Macbooks. I'd (unfortunately) be happy to pay the price you've quoted for this app if it solves that problem well.
Once paired, two audio output devices are created - "Bose QuietComfort 35 Stereo" (A2DP) and "Bose QuietComfort 35 Hands-Free AG Audio" (HFP). The A2DP one is the default output source for the PC, so I get this behaviour:
* When I'm not in a call of any form, normal system audio (Youtube, Spotify etc.) comes through A2DP with good quality
* When I start a call, the headphones switch to HFP (you can tell due to increase in hiss) and audio quality drops. During this time you can't hear what the PC is playing over the A2DP output (unless I switch the default Windows output).
I'd be curious to know if you get different behaviour on Macbooks because the above "one profile at a time" always seemed to me to be a fixed limitation of the hardware and Bluetooth.
I haven't personally tried it on a MacBook but I do know that colleagues seem to use their bluetooth headphones just fine with no clear quality drop.
Edit: actually there might have been some movement on this after all? Some comments in that ticket seem to indicate that this has been improved on master.
I've been using it for weeks (months?) with great results.
Super interesting, thank you!
So apparently this "mode" comes from the headphones switching to HFP. Interesting that in this mode the left button presses are ignored...
I'll try to notice when it's doing this. I have the feeling it's when I am on a call but not all programs do that. I use Slack, Facetime, and sometimes Google Meet via Chrome. I'm pretty confident only some of these trigger the switch, and whenever the call ends the phones go back to A2DP.
Instead every app seems to figure out their own behavior for this.
"Bluetooth LE Audio" is supposed to resolve this in the future.
Keywords to search for:
bluez5.sbc-xq-support = true
bluez5.headset-roles = [ hfp_ag ]
bluez5.msbc-support = true
It's $9... And most apps don't give you access to source. This seems very reasonable.
I bought it because i couldnt be bothered to set up XCode, figure out the build, and sideload it. Im not a pro-developer so that always takes me time. Also the price was reasonable. In fact, that the source is open encouraged the purchase for many reasons.
I think one of the problems of Stallman and the GPL (I love Stallman, anI think he was the most prescient visionary of the field of computing as it pertains to society) is that there is little recourse for a GPL project to get punked by a freeloading company (who will often not even acknowledge their use of GPL nevermind open source their code). I think Stallman and the GPL are still right, but there are issues that need to be better addressed (i don't know how)
FOSS is a gift. No one is obligated to give a gift.
Can we get over this "mobile is replacing everything" meme? It's obviously not happening. I never thought it would happen, but a bunch of people started predicting it via faulty reasoning by loose analogy with the mainframe to PC transition.
Edit: forgot the link to repo: https://github.com/Plutoberth/SonyHeadphonesClient
You may not and You agree not to, or to enable others to, copy (except as expressly permitted under this Agreement), decompile, reverse engineer, disassemble, attempt to derive the source code of, modify, decrypt, or create derivative works of the Apple Software, Apple-issued certificates or any services provided by the Apple Software or otherwise provided hereunder, or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by licensing terms governing use of open-sourced components or sample code included with the Apple Software).I purchased the add-on yesterday and never received an email with a download link. I emailed Danny twice, per his website's instructions in case the email was not received, and he's not responding. Sure it's only been 24 hours and I'll wait a little longer before doing a charge back, but just a warning for the wise.
@dannyaziz97 if you see this, please either deliver on your product or refund me my purchase.
Thanks!
AFAIK the Apple APIs don't display that on macOS because it doesn't fully implement the Bluetooth spec (it does on iOS).
One of my apps gathers battery info for all almost Apple devices (and some non-Apple), but I had trouble getting battery info for Bose, Logitech, Sennheiser (etc..) bluetooth devices without very low-level hacks that I wouldn't ship in an app destined for casual users.
Does anyone know of any Bluetooth adapters that have a connection app like Bose Connect that would allow me to add Bluetooth to an existing receiver via RCA? That would be awesome!
Ideally I’d be able to use an adapter to pair to a set of speakers I use on my desk, and be able to specify which devices are connected to those speakers. I don’t care whether it’s a desktop or mobile app
Wish someone would do this for Logitech Harmony remote controls.
1. The software was terrible but hardware was awesome.
2. The entire line is discontinued.
I'd wish I looked at their user forums before buying QC35.
`blueutil --paired` to list devices and their addresses, then `blueutil --connect <address>` and `blueutil --disconnect <address>` to switch.
Neat project, I hope the author doesn’t have legal hassles.
To elaborate, the lawyers will probably say the fact that it's made to work with their headphones, and the name which can be confused with theirs, means it's a misuse of their trademark, and it's confusing enough that people might think it's an official Bose app, and who knows what sort of nastiness might be hiding in there.
Should've called it "esob app" or something. Or wait for the cease and desist and rename it to "Butt-Head Headphone Company app" (reference: [1])
[1] https://en.wikipedia.org/wiki/Apple_Inc._litigation#Libel_di...
If they were to just shut Boze down, then they'll have angry customers.
If they were to create their own version of the tool, then most people would be happy.
If they were also prepared to give the Boze creator a fraction of the money earmarked for their lawyers, to pull the app and point to the official one - then everybody's happy.
In practice, you can get sued anyway. You'll probably win, but getting sued sucks even if you win.
Where do you think the line is? There are several apps on the Mac app store that have 'Dropbox' in their name and are charged. Is the difference they they are all 'sidecar's that rely on you have Dropbox?
BOX, INC. v. DROPBOX, INC. | United States Patent and Trademark Office [1]
[1] https://ttabvue.uspto.gov/ttabvue/v?pno=91200450&pty=OPP&eno...
https://slashdot.org/story/01/10/23/1816257/apple-releases-i...
HN is famous for knee-jerk dismissals of tech and companies that then go on to become wildly successful: https://news.ycombinator.com/item?id=19270689
Mostly HN comments about this kind of thing should be ignored. It’s easy to be critical and negative about anything new, it’s a lot harder to be right.
And getting a 53 on the Putnam at 14 is wild. I wonder how that happens, what leads to that (in addition to obvious high ability).
Good parents? Early access to good books? Do some people just have a more intuitive sense for math? Tons of practice?
It is extra funny to find this comment considering the top comment in this thread. Someone makes a good looking, simple, and useful app and the top comment is nothing about the work put in, the quality of the app, potential improvements, or anything like that. Instead it is a knee-jerk dismissal of "you’re going to get sued" and "hope you’ve got a lawyer." The more things change...
In fairness, it probably wasn't obvious that Apple had a hit until the 4th generation iPod in 2004. (iTunes didn't even run on Windows to support earlier models when they were released.)
The nomad and other players at the time sucked (I wanted to get one for my dad). Plastic, poor build quality, software would often freeze up and crash.
The nomad looked like a cd player, why? Just bad design and not thinking about it.
You’re right though that 2004 it started to really take off.
I did buy a 4G the following year. (It also took me a few years to get an iPhone after initial release.)
[1] http://bitmasons.com.s3-website-us-east-1.amazonaws.com/pubs...
"ever since i semi-retired a little over a year ago, i been traveling A LOT and i hated it when people tried to reach me when i am on the plane or out of the country. so i asked myself -- wouldn't it be cool if i just set a status for my iPhone, similar to how you can set a status on yahoo messenger or skype."
Only response was
" It appears that this requires the other party to also have the app installed, right? "
https://www.flyertalk.com/forum/travel-technology/952359-tho...
That's quite a different thing from what (I'm guessing Jan Koum?) is pitching here. So it'd be easier to not make the jump I think.
Pay no attention to the hivemind or the audiophile cult. I've had plenty headphones in my life and BOSE are among the best I've had at their price point. YMMV.
Why did I get them? I like the industrial design of their products, and the sound is more than good enough for me.
Do I know that I can get better sounding gear for my money? Yes, absolutely. In fact, I used to hate on Bose for that very reason when I was younger.
Do I care that I can get better sounding gear for my money? Not nearly as much as I used to. When I am buying audio gear, I'm no longer interested in doing research. I just want something (preferably compact) that looks nice in my home and sounds good to my non-audiophile ears. Having said that, everyone has their own set of priorities, and should do what is best for their own situation.
More and more monkeys.