Get the top HN stories in your inbox every day.
grishka
Expected a github repo link but instead it's closed source and it costs $9 and it apparently doesn't even allow you to set the noise cancellation level. So it's $9 for an app that has two buttons that send bluetooth packets and it also reads the battery level in some clearly standard way because Android and iOS both show that natively. There's probably less than a screen worth of code.
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
urda
Honestly it feels really scummy to have reversed engineer (which itself is not an issue) the protocol, use a name way-too-similar too "Bose", closed source, and of course charging 9 bucks for a page of Javascript.
neb_b
Who cares how it's built if it solves a problem for people?
grishka
In a $9 app that is this simple you would at the very least expect exceptional quality. But Electron makes that impossible.
iscrewyou
On the plus side(sarcastically), an app that doesn’t have a subscription model!
xtat
came here to say this- dont understand why this is so upvoted
some1else
Great app! If you want to keep distributing it, you'll have to find a less "Bose-sounding" name. I am not a lawyer, but as far as I can tell: a) they can't prevent you from implementing a reverse-engineered protocol, b) they can take legal action against you for trademark infringement / damages.
rzzzt
Re: a), the best thing is to document the protocol, then let someone else (who has not seen the insides of the original application) implement it based on the documentation.
stavros
It doesn't sound like the OP has seen the insides of the original application either, sounds like it was just the protocol that was reverse engineered, from the packets.
codetrotter
Agree. The name for this is clean room design.
geofft
In the US at least, clean room reverse engineering is not required (see the "case law" section of the article, which documents two cases where clean-room separation was not maintained and the reverse engineers still prevailed) nor does it necessarily protect you (all the examples in the article predate the DMCA, which puts significant restrictions on reverse-engineering itself, and as the article points out, the clean-room approach is it relevant for patents).
abcd_f
If they would want to make OP’s life difficult, they will find a way. Even through the protocol reversing angle.
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.
drcross
>Even through the protocol reversing angle.
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.
eps
They won't sue. They will just threaten to do that and the OP will need to decide if he can afford to "engage" with them even if he may technically be in clear. To argue that reversing a protocol is not an issue you'd need to be in front of a judge and it's expensive to get there.
nickserv
> Will this void my warranty or destroy my beloved headphones? > > No! > Boze.app communicates with your headphones in the exact same way that the official Bose Connect app does.
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.
mmmmmbop
Super cool project! Sharing two related pieces of feedback:
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...
neurostimulant
He does provide his email address on the purchase email.
ev1
This is insufficient; requirement is Before an order is placed You must provide: your business name, contact details and address
henvic
I'd advice you stop charging and just place Amazon ads on your page. Besides being safer as people said, it'd easily generate more money for you.
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).
inetknght
No, do not place Amazon ads on your page.
Do not place any ads on your page.
henvic
I'm gladly going to remove all my ads on my page if you promise to give me money through GitHub Sponsors or something lol
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
elliekelly
They might not be visually intrusive but they are indeed very intrusive. If you went to the mall would you find it intrusive if Macy’s put a little beacon on your shoulder every time you walked in the door so they could follow you around and track your movement for the next few days? The beacon is small and unassuming and tasteful - you’ll hardly even notice it! Who cares? A stalker is a stalker no matter how nicely it blends with the aesthetic.
bassdropvroom
> I'm gladly going to remove all my ads on my page if you promise to give me money through GitHub Sponsors or something lol
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".
12ian34
Ads aren't just intrusive, they're a manipulative dark pattern
jen20
It doesn't matter how unintrusive _your_ ads are - the shysters that make up most of the industry have poisoned the well, making _any_ ads unacceptable.
passivate
Systemic issues prevent individual devs from finding alternative means of revenue. Its easy for someone to say stop using ads, but most people here work for companies that advertise online, and thus their livelihood is interlinked with ads in some fashion or another. We can acknowledge this reality and simultaneously work towards changing it.
Humphrey
I like the idea... But... My QC35ii's already:
- 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.
jonathanlydall
Thank you!
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.
Humphrey
Hehe! I can now understand why you went to th effort of reverse engineering! But yes, just slide the power button past the on position.
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.
hanselot
Are we genuinely in hell? Are these real people?
Anyone that has issues with religion better not be buying Apple products, because sir, you are in a cult.
Disclaimer: I'm not religious, but having been religious before, its not hard to spot a cult.
callahad
> Have a button that cycles through which 2 devices are simultaneously connected.
I'm feeling very dumb asking this, but... which button is that?
Humphrey
The Power button. Just push it past the on position.
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.
jonathanlydall
I wanted to know myself, so I just checked the guide on the iOS app which actually tells you this. The slider on right ear piece which is also used to turn the headset on/off. A short held slide to the right apparently switches connected devices, while a long held slide opens it for pairing.
7ewis
Oh wow, owned mine for years... never knew that.
Often been annoyed when despite nothing playing on one device, it wouldn't switch. Great tip, thanks!
synecdoche
> Have a button that cycles through which 2 devices are simultaneously connected.
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.
dijit
For those on Linux; I had great success with the “based-connect” program, which enables me to configure “known devices” (which one is primary and so on) and, crucially, configure noise cancelling.
Mandatum
Charging for a Bose product with a Boze name.. You’re going to get sued.
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.
dubcanada
The maker has been advertising the product like crazy and even though they have been told this already has yet to change the name.
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.
arcticbull
I don't take quite the same bearish view on this app.
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
crooked-v
This is a trademark issue, not a copyright one.
kickapps
In the audio industry, professionals describe Bose as a litigious company - so its more than likely to get litigated. Bose has an army of lawyers on staff for stuff like this.
threeseed
In this case it would be completely normal and legitimate for Bose to sue.
You need to defend your trademarks otherwise courts will render them moot.
CrazyStat
> 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.
shp0ngle
To their defense, Boze _really does_ sound similar to Bose, and it can be called intentionally confusing.
Calling it anything else would be fine.
johnwheeler
The tone of this comment is unfortunate. Likely, the app will not make enough money for bose to care, and if it does, he’ll receive a cease and desist. But, “hope you’ve got a lawyer”? Serious? Why the vitriol towards a maker? The subtext of your comment is the OP is stupid. They could just change the name and destroy half your argument.
aardvarkr
Unfortunately Bose HAS to care in order to protect their trademark. That’s literally how trademark works. It has nothing to do with how big they are. Lawyers are 100% going to get involved and any of your bizarre posturing to the contrary is ridiculous.
quonn
What if they don‘t know officially?
johnwheeler
Bizarre posturing? That’s a strange choice of words. I didn’t say lawyers wouldn’t get involved, but at any rate, the chance isn’t 100%. I said OP is not likely to be sued.
Mandatum
Didn't intend vitriol or malice with that statement. And it's not about how much money they make - I suspect they probably at most made $100 off of this, it's the fact they're even charging for it - puts it squarely in the "for commercial gain" camp to the lawyers.
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.
bsder
He missed a step by not calling it "Bozo".
The "consumer confusion" headlines and legal filings would be works of art.
dcolkitt
Exactly. Like when Nathan Fielder opened a coffee shop named “Dumb Starbucks”, called it a conceptual art project, and operated for [:strikethrough: months] days, making hundreds of thousands without ever getting sued.
manarth
> "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).cluelessmaker
I have the same feeling. OP might can ask for donations, but charging is way too risky
xmodem
I don't think free/paid/donationware matters. There are plenty of both free and paid utilities around for working with AirPods, but they're not from "Appel".
ghaff
Noncommercial use can be one factor in copyright fair use. (And it's a factor in a defense. The other party can still take you to court.)
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.
lioeters
Apparently there is a company called Appel, Inc.
https://www.bbb.org/us/fl/port-saint-lucie/profile/accountin...
Of course, they're not in software or hardware, so your point stands.
robbrown451
He'll just get a cease and desist. No need for lawyers unless he wants to fight it, or if he is making significant money off this app (which I doubt).
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.
dubcanada
This isn't a david vs goliath this is a clear violation of trademark law and other laws and borderline illegal.
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.
robbrown451
That is not cyber squatting... it's not like they are trying to get people who accidentally misspell Bose. I don't think they are trying to deceive either, they are making it crystal clear that this isn't a Bose produced app, but they are also making clear that it is FOR Bose devices.
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)
jeffreyrogers
> 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.
None of these things are crimes.
jonplackett
You need to at least use a different URL. They are going to pinch that off you in no time.
densekernel
Hopefully this isn't the only possible outcome...
Someone at Bose may also be interested in this kind of development.
p49k
The best outcome is just to change the name right now and be careful not to violate trademarks and avoid any chance of conflict. They won’t be sued if they hurry to rename it to something generic, change the domain name, change the wording to say “compatible with headphones made by Bose”, include prominent text that says “Bose is a trademark of Bose Corporation and this product is not endorsed or supported by them in any way”, stop using their trademarks incorrectly (some instances are improperly lowercase), etc.
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.
bellyfullofbac
Interestingly in OP's tweet (same username as his HN username): [1], he credits [2], who made a Linux CLI for the same functionality, and named it "based-connect". And the CLI-coder got a summer internship at Bose, so it doesn't seem Bose was that mad.
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
undefined
jonny_eh
"Just" develop a nice UI?
tr1ll10nb1ll
This sounds so great! I wish I could do this for my Sony Headphones app.
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.
driverdan
What settings are you changing? I have the same headphones and never change anything. I use the Wavelet app on my phone to properly balance its frequencies.
tr1ll10nb1ll
I'm using the Sony Headphones app for mainly changing the Clear Bass to my liking and for checking the battery status of the case and the buds. Just to be clear, I'm referring to WF and not WH.
dawnerd
Battery levels show up natively on iOS so I’m not sure why they don’t on macOS as well. Starting to think the macOS Bluetooth stack is just incomplete.
seumars
Totally agree. Just to be able to see the battery level on macOS would be a great improvement.
tr1ll10nb1ll
Guess I need to start looking at macOS development properly and learn reverse engineering. Price worth paying for that additional flexibility haha since I'm pretty sure I'll be upgrading to another pair of Sony wireless buds or the WH series if I have to.
driverdan
All you have to do is tap the power button on the XM3 headphones and it will tell you the battery level.
jrnkntl
I have trouble with the value proposition. If I understand correctly only the noise-cancelling toggle is a proprietary Bluetooth feature of the Bose? Since f.e. Toothfairy[1] also handles the connection of -all- BT devices for your mac (not only Bose headphones), shows battery info and is $ 5.99.
ibrarmalik
This is interesting. The biggest problem I have with my Bose is that they are listening to another device (e.g. my phone) instead of my macbook, even if they are Bluetooth connected. What I would do with the authors app is disconnect my phone from the headphones. I'm not sure I can do this with Toothfairy.
jrnkntl
Not sure if this is on other Bose headphones, but my QC35's can cycle through known devices with the power button
[edit] removed assumption about functionality presence on all Bose headphones
jsgo
By chance do you know of a Windows alternative (likely w/o the battery level indicator and the like, but specifically the redirecting the headphones/airpods/whatever to the device or to another such as a paired phone part)?
petard
How did you figure out the Bluetooth protocol and commands? I have a Cannondale app for my bike, which is reading the Bluetooth wheel sensor to display speed and mileage. I'd like to build my own app for it but clueless on how to figure out the pairing and transmitted data.
nsteel
I found these articles helpful/educational:
* 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...
mcky
The ANT+ protocol is pretty standard in cycling tech, it might be worth seeing if you can reverse engineer anything using that, as it'll likely have more standard data than trying to reverse engineer BLE payloads
tyingq
He mentioned Denton Liu in a tweet, who made this: https://github.com/Denton-L/based-connect
dannyaziz97
Hopefully this helps? https://medium.com/propeller-health-tech-blog/bluetooth-le-p...
halfdan
You might enjoy this guy who figured out the Bluetooth protocol for good under desk bike: https://codaris.github.io/UnderDeskBike/
Get the top HN stories in your inbox every day.
I really love my Bose headphones and in the past year I've used them almost exclusively on my Mac.
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