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
That makes no difference: while I am not a layer and you absolutely should contact your lawyer before doing something like this to get your ducks in a row (and generally you would thereby be a fool to use what I say as "legal advice"), the relevant fair use here comes from legal precedent and even explicit exemptions required to ensure "software interoperability", not some concept surrounding "non-commercial use" (which I think is highly unlikely to protect you in almost any situation).
Which is always where these projects get screwed: the lawyers are able to get easy cease and desists and make credible threats for leverage merely due to trademark law; and yet somehow people make this same mistake over and over again :/.
Yeah, the Bose legal department is probably laughing right now at the easy slam dunk...
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])
And not because they are evil... IIKC you have to demonstrate your credible effort in defending your trademark or you risk legally losing it. So even if you are ok with such use, you still have to defend your trademark legally or it can bite you in the future.
But then there would be a bit of a Streisand effect - as it draws attention to their lack of a non-phone tool to control their expensive headphones.
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.
To the corporation, the value of protecting their trademark vastly outweighs any profit loss from pissing off the couple of hundred people who are using this app (who, coincidentally, already own Bose headphones).
That's a program that you can run on your machine to interoperate with your peripherals. If we have concerns about this being legal, our standards for ownership are way too low.
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.
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
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.
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.
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).
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.
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.
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.
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.
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.
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.
I use QC35s with Windows and Linux and have always found them excellent despite having what appears to be the same behaviour as you. This is what I have:
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.
Interesting that the HFP is usable for you. When I've tried to get it working on Linux using blueman, pavucontrol and pulseaudio-bluetooth, switching to HFP is so terrible that I default back to the trusty 3.5mm TRRS jack for calls.
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.
Yes - I get the same (good) performance as Windows on multiple Linux machines. I'm running Fedora which may help, but I had to do no fiddling - just worked 'out of the box'.
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.
Thanks for linking this, I hadn't come across this before. You're right there does seem to be some very recent progress. I'll have a go with what's in the master branch there.
I've been using QC35s with a Macbook for a long while and thanks to your comment I finally understand why sometime the headphones would switch to a different "mode" where there is a lot of hissing in the background and the button (which I have configured to switch NR levels) wouldn't do anything.
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.
It's absolutely infuriating that there's no easy way to configure this. I'd love to be able to turn off HFP altogether to always ensure that I use an external mic.
Instead every app seems to figure out their own behavior for this.
Interestingly, I have the opposite problem! On my Windows computer and Android phone, I get decent quality bidirectional audio for calls, but on my (2014) Macbook it always switches to mono.
On a side note: some while ago MacOS was showing battery status for bluetooth connected headphones. Now it doesn't. Is there any way to turn it on again? On the other hand: iPhones are still showing battery level.
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.
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.
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.
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.
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.
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])
All these things that require and support only a mobile app to set up are tremendously irritating. I use my headphones with my Mac and would like to be able to configure and update them there.
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.
You don't need a mobile app to set these headphones up at all. Everything is available on the device with phyiscal buttons (part of the reason it's such a good pair of headphones), the tech existed before people became conditioned on having apps for everythng.
As far as I know, you can't manage the list of paired devices from just the headphones, as well as managing the noise cancellation level on the original QC35.
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.
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.
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.
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?
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".
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.
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.
> 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 it a Bose product? It sounds like he reversed engineer the protocol for controlling bose headphones. That's OK. He is infringing on the trademark though.
Even if he weren't infringing on the trademark and everything was above board, Bose would likely still sue him as you can sue anyone for any reason. Would they win?, probably not, but does he have the money to make them lose?, definitely not.
Is that what you'd do if you were Bose? That seems incredibly foolish. It would waste a lot of money, and get them bad publicity, only to stop someone who actually is making their products more attractive.
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.
The problem is the name: it's too close to the protected mark. You need to enforce your trademark or else you weaken the protections afforded by it.
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.
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.
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.
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.
Trademark has to be actively defended. It is quite unlike copyright in that respect. They can allow you to use the name under generous conditions, but if there is any chance that they could have reasonably known, and this post is definitely proof of that IMO, then they have to defend their trademark against infringement.
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.
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.
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.
> 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.
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.
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)
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.
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.
I don't know if this app works or not, but if there were a piece of software that I could use for my Sony XM2 headphones to cleanly switch between devices, it'd be in "shut up and take my money" territory by default. Was tempted to buy the XM4 headphones because I thought this was what they were advertising with the bluetooth switching, but I've read that feature doesn't work well for the devices that implement it (not the Sony headphones specifically).
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.
For what it's worth, I just replaced my o.g QC35s with the XM4s and get along just fine with 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.
- 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 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.
> 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.
> 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.
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.
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.
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.
Some people get upset when others buy or like BOSE. You're not supposed to!
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.
I see posts saying Sony as having better sound and similar of not better active noice cancelling for about an the same price. Haven't tried Sony first hand but my Bose qc35 are extremely comfortable.
I dont know, most of the equipment I have bought was not worth the price. There are other vendors with better quality for the same price. There was only one system from Bose I really liked though, the car audio in the older Infiniti cars.
I have a bunch of Bose gear, and I'm generally happy with them.
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.
Battery level is way off from what my Bose headphones say. Shows my iPhone twice, trying to connect to them say failed to connect. Eh, at least it was only $9.
I tried the app on my mojave macbook and it's throwing an error when trying to connect to the headphone (I sent the details to your email). Hopefully it's something that easy to fix as there are many people like me who still stuck on mojave for the time being due to 32-bit apps support.
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.
* 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).
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.
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.
If you're this worried about being tracked, you can always choose to turn off cookies, JavaScript, and maybe try the ToR browser. No problem with this either!
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.
I do take steps to prevent internet stalking but I don’t find the “stalkers are part of society and need to earn a living, too” argument all that persuasive.
Then it’s a good thing I haven’t put forth such an argument! Advertisements aren’t what I take issue with - it’s the tracking that comes along with them that I find repugnant.
If you are going to call ads a "dark pattern", you might as well call capitalism a dark pattern. That's not say either are positive, but I think your terminology is extreme.
Many ads fit that description. Many don't. Characterizing ads in general as a dark pattern dilutes your message about the problematic ones, in my opinion.
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.
> 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".
That's right. Then when someone mentions they'd rather have a product that can be bought because ads and trackers are the devil, OP suggests they'll remove ads if they pinky promise to to sponsor. Buying a product is different from being a sponsor.
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.
If you provide a service I want, sure. I’m more than happy to pay for software and moderately happy to pay for subscriptions, but with it I expect ironclad guarantees about data being local, and absolutely no tracking.
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).
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.
Can confirm. I made the first unofficial Dropbox client for Android years ago called "Droidbox". Different name, different logo, explicit labeling of "unofficial" and they still wanted to sue the pants off me.
Did you tell them you could build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem?
This one never gets too old. Even with the no-jokes policy here, I can't resist upvoting "you could build such a system yourself quite trivially" posts.
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.
>HN is famous for knee-jerk dismissals of tech and companies that then go on to become wildly successful:
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...
What they built isn't illegal. The naming and branding of what they built likely infringes on a trademark. Either way, the point was more this communities urge to knee-jerkingly dismiss a project for whatever reason. There is often a default of "this is why it won't work" or "this is why you are wrong".
>For “greatest comment” I was thinking of cmdrtaco’s comment about the iPod
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.)
I’d argue it was - maybe not obvious, but I knew it was a big deal.
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 wasn't really into digital music at the time and only had a Windows system in any case. I definitely viewed Apple through the lens of a computer company. I even wrote a research note in 2003 (as an IT industry analyst) suggesting that Apple should perhaps view itself more as a home entertainment company [1]. I noted that they had the iPod and iTunes music download service but I pretty much mentioned that in passing, perhaps because I was really thinking of home entertainment in the context of a living room home theater system.
I did buy a 4G the following year. (It also took me a few years to get an iPhone after initial release.)
Flyertalk wasn't keen on the next big thing either
"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? "
At least with that one whatsapp's original idea switched from statuses to messaging because they saw the users using their ability to set statuses to message each other. That paired with awful SMS in most of the world let them dominate.
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.
Legitimate question, from someone who had just built an app (that will have a cost) that is a helper to Dropbox and has 'Dropbox' in the name.
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?
Interesting. I once wrote/sold a voicemail-reading app that logged in, scraped Vonage's web site, and let you listen to your voicemail. I was careful to not use trademarked image assets, but I did mention that my software was compatible with their service, mentioning them by name in the app store description. They never went after me! Maybe I got very lucky, or I was just small potatoes. The app wasn't popular, so they didn't think they could squeeze any money out of me (they would be right).
In theory, this should be okay under "Nominative Fair Use": You're only using the name to refer to the actual thing. People are more justifiably sued when
their name for their product can be confused as being possibly associated with whatever they work with.
In practice, you can get sued anyway. You'll probably win, but getting sued sucks even if you win.
I made the first unofficial Google Voice mobile app back in the day, and less that 100 people ever used it, so I didn't hear a daggum word from them. Would have been nice to catch their eyes though.
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.
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.
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)?
249 comments
[ 4.9 ms ] story [ 290 ms ] threadStarted 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
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.
* 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...
https://en.wikipedia.org/wiki/Clean_room_design
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.
https://github.com/Denton-L/based-connect
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
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.
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...
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.
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.
The "consumer confusion" headlines and legal filings would be works of art.
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
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.
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.
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.
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.
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.
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.
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)
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
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.
- 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'm feeling very dumb asking this, but... which button is that?
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.
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.
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.
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.
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.
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.
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.
More and more monkeys.
https://www.wisdompills.com/monkey-ladder/
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.
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.
[0]: https://en.wikipedia.org/wiki/Dark_pattern
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.
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".
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).
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.
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...
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?
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.
https://news.ycombinator.com/item?id=35079
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...
In practice, you can get sued anyway. You'll probably win, but getting sued sucks even if you win.
[1] https://c-command.com/toothfairy/
[edit] removed assumption about functionality presence on all Bose headphones
`blueutil --paired` to list devices and their addresses, then `blueutil --connect <address>` and `blueutil --disconnect <address>` to switch.