> Proprietary use, commercial redistribution, or publishing modified versions with ads or tracking is strictly prohibited under GPLv3 or later.
These all sound to me like "Further restrictions" which the GPL says:
> If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
It seems like if you want those clauses that GPL doesn't seem like the license you want?
The reason I included that note is that, as an open-source developer, I’ve seen many projects that weren’t actively maintained get picked up by bad actors as they modify the code and publish it on Google Play with ads or IAPs. I wanted to discourage that.
Other than this notice, MBCompass is fully licensed under GPLv3 or later.
The sum of the note and the gpl doesn't behave as though the notice has any precedence over the gpl. It behaves as additional restrictions and a license that allows you to ignore the additional restrictions. I'm no lawyer but it seems like it isn't achieving what you want.
What a cool project and I really appreciate the way you are emphasizing the foss nature of it.
Have you had any luck using vector maps? I know for the web SDKs, vector maps are finally getting some love for OpenStreetMap, but I'm not sure what the situation is on Android or if something like https://openfreemap.org/ can be used.
As a FOSS maintainer myself, I recommend you to charge (a small amount of) money for the app. People could always compile and run the app themselves still, so paying for the app is a clear way to support the project. I see that you have donation on your page, but it rarely happens that people donate. Just my 2 cents.
Thanks for the suggestion. I do plan to publish the app on Google Play as well. While much of the audience is FOSS-oriented, there are also users who aren’t familiar with open source or compiling apps themselves, like here: https://github.com/CompassMB/MBCompass/issues/48.
For them, donations are a simple way to support the project, and they’re definitely appreciated.
Just installed. It looks very neat, but I wonder how accurate the compass is. I am in a train now on a completely straight track and I get compass deviation of >60° as if the train is making curves all the time. OpenStreetmap places me in New York instead of Netherlands.
MBCompass uses sensor fusion for accuracy, combining sensor data from the accelerometer, gyroscope, and magnetometer.
It is one of the most accurate compass apps. Don't trust my words, try it with different apps on Google Play and with some FOSS options like Compass by Philip Bobek: https://f-droid.org/en/packages/com.bobek.compass
And importantly, for true compass accuracy, I'd recommend you use the "true north" (magnetic declination) function, which requires location access. It takes some time to lock GNSS hold (the same goes for the current location button on the map view, default map location is Paris, France), but if you're moving, it locks pretty quickly and shows your current location with tracking (if you're moving.)
Nice and thank you! I think there's a great opportunity to apply the same love and care and compete with utility apps that tend to come with ads and exploits today. Thinking of music tuners/metronomes, barcode scanners, unit converters, bubble levels, flashlight strobe apps.
I found MB Compass a few weeks ago and it's been very helpful for everyday things. For example, I just moved to a new apartment and I used the app to identify which room would get the best sunlight for my office. Works great!
Neat. If you want to make it more practically useful you will need to include some kind of magnetic compensation map. That's one of the reason navigation apps usually are a bit larger, they require a lot of data to function well world wide. Best of luck with this, it looks very promising!
Thanks! Currently, MBCompass can show both magnetic north using Android’s sensor fusion and true north (based on WGS84 geodetic coordinates).
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
This is a wonderful app. Thanks for making builds available via Obtainium. You will be getting a donation shortly. I will assuredly use this when I go hiking and fishing.
Beyond donating, the best way to support MBCompass is simply spreading the word. That helps more people discover it, contribute to it, and make it better for everyone.
I would like to say that an in app way of purchasing the app would be great.
Something like what FUTO software does.
Just add the card details and click pay button, easy two step process.
If you want to receive compensation for the work you put into making the app, then you need to start treating it as work and call it a payment and not donation.
Yep, I’m aware that many FOSS projects use in-app payments, but for MBCompass, I want to keep it free on every platform, regardless of the audience. Without funding or community contributions, it’s hard to maintain a FOSS project with meaningful features and improvements, rather than just vague “bug fixes/version bumps.”
As a FOSS advocate, I started this project as a community contribution to address the gap between user needs and available apps.
I can maintain it long-term without major contributions, but support really helps (especially maintaining in different apps stores). I’m planning a non-intrusive in-app prompt to remind users about donations something subtle, because many users forget once they start using the app, rather than only seeing the donation info in the README.
Currently, the app shows the user’s live location with real-time tracking on an OpenStreetMap-based map. It does not calculate routes or provide turn-by-turn navigation instead, it focuses on orientation and situational awareness.
I’m actively working on features like waypoint tracking, offline maps, and a GPS speedometer. The goal is to keep MBCompass a useful navigation utility, not a full routing app.
Routing isn’t planned at the moment (maybe with plugins later), since adding it would shift the app away from its core purpose and increase complexity. The main priority is to remain fully functional offline-friendly and extremely lightweight (currently under 1.5 MB).
It's incredible how small apps get when you throw away all the bullshit: useless frameworks, ads, third party libraries that require you to include a huge binary.
People are always amazed when i show them my apps are 2-5 megs, and that's because there's 2-5 megs of assets.
Exactly! That’s exactly the philosophy behind MBCompass keeping the core functionality focused and lightweight, without unnecessary frameworks or bloat.
People are often surprised by how much you can do in under 2 MB.
There are also frameworks that don't bring in anything unless required. I use B4X for most of my apps.
It has a fundamental issue, which is being single threaded (with exceptions), but it's truly lightweight and easy to extend, and the team behind it really know their business.
TBH, that’s a great idea! It’s actually on my roadmap for MBCompass, something like waypoint tracking, where you can mark a location and get a directional arrow to it. Appreciate the suggestion!
> Proprietary use, commercial redistribution, or publishing modified versions with ads or tracking is strictly prohibited under GPLv3 or later.
These all sound to me like "Further restrictions" which the GPL says:
> If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
It seems like if you want those clauses that GPL doesn't seem like the license you want?
The reason I included that note is that, as an open-source developer, I’ve seen many projects that weren’t actively maintained get picked up by bad actors as they modify the code and publish it on Google Play with ads or IAPs. I wanted to discourage that.
Other than this notice, MBCompass is fully licensed under GPLv3 or later.
The sum of the note and the gpl doesn't behave as though the notice has any precedence over the gpl. It behaves as additional restrictions and a license that allows you to ignore the additional restrictions. I'm no lawyer but it seems like it isn't achieving what you want.
Maybe look into dual licensing. You could allow all free use but require a custom license fee for all commercial use.
What a cool project and I really appreciate the way you are emphasizing the foss nature of it.
Have you had any luck using vector maps? I know for the web SDKs, vector maps are finally getting some love for OpenStreetMap, but I'm not sure what the situation is on Android or if something like https://openfreemap.org/ can be used.
As a FOSS maintainer myself, I recommend you to charge (a small amount of) money for the app. People could always compile and run the app themselves still, so paying for the app is a clear way to support the project. I see that you have donation on your page, but it rarely happens that people donate. Just my 2 cents.
Thanks for the suggestion. I do plan to publish the app on Google Play as well. While much of the audience is FOSS-oriented, there are also users who aren’t familiar with open source or compiling apps themselves, like here: https://github.com/CompassMB/MBCompass/issues/48.
For them, donations are a simple way to support the project, and they’re definitely appreciated.
Some projects offer the app for free on Fdroid and charge a small fee on Play. Might be an option as well.
4 replies →
Just installed. It looks very neat, but I wonder how accurate the compass is. I am in a train now on a completely straight track and I get compass deviation of >60° as if the train is making curves all the time. OpenStreetmap places me in New York instead of Netherlands.
> but I wonder how accurate the compass is
MBCompass uses sensor fusion for accuracy, combining sensor data from the accelerometer, gyroscope, and magnetometer.
It is one of the most accurate compass apps. Don't trust my words, try it with different apps on Google Play and with some FOSS options like Compass by Philip Bobek: https://f-droid.org/en/packages/com.bobek.compass
And importantly, for true compass accuracy, I'd recommend you use the "true north" (magnetic declination) function, which requires location access. It takes some time to lock GNSS hold (the same goes for the current location button on the map view, default map location is Paris, France), but if you're moving, it locks pretty quickly and shows your current location with tracking (if you're moving.)
Is it an electric train with power lines above? They produce huge magnetic fields and will cause any compass to deviate.
Nice and thank you! I think there's a great opportunity to apply the same love and care and compete with utility apps that tend to come with ads and exploits today. Thinking of music tuners/metronomes, barcode scanners, unit converters, bubble levels, flashlight strobe apps.
As part of the MBCompass v2 proposal, I’m working on:
- Waypoint tracking (with GPX import/export support)
- GPS speedometer
- Offline maps with offline POI search using GeoPackage (an OGC-compliant standard supporting spatial queries)
I’d love to hear your thoughts or suggestions your feedback is really appreciated!
I found MB Compass a few weeks ago and it's been very helpful for everyday things. For example, I just moved to a new apartment and I used the app to identify which room would get the best sunlight for my office. Works great!
That’s great to hear! Glad it’s helping with everyday use cases like that.
Neat. If you want to make it more practically useful you will need to include some kind of magnetic compensation map. That's one of the reason navigation apps usually are a bit larger, they require a lot of data to function well world wide. Best of luck with this, it looks very promising!
Thanks! Currently, MBCompass can show both magnetic north using Android’s sensor fusion and true north (based on WGS84 geodetic coordinates).
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
YW, there are some pretty compact representations possible of that data but it will come at a considerable expense in computational overhead.
https://www.ncei.noaa.gov/products/earth-magnetic-model-anom...
Is a good starting point.
This is a wonderful app. Thanks for making builds available via Obtainium. You will be getting a donation shortly. I will assuredly use this when I go hiking and fishing.
Thank you so much that really means a lot!
Beyond donating, the best way to support MBCompass is simply spreading the word. That helps more people discover it, contribute to it, and make it better for everyone.
I would like to say that an in app way of purchasing the app would be great. Something like what FUTO software does. Just add the card details and click pay button, easy two step process.
If you want to receive compensation for the work you put into making the app, then you need to start treating it as work and call it a payment and not donation.
Yep, I’m aware that many FOSS projects use in-app payments, but for MBCompass, I want to keep it free on every platform, regardless of the audience. Without funding or community contributions, it’s hard to maintain a FOSS project with meaningful features and improvements, rather than just vague “bug fixes/version bumps.”
As a FOSS advocate, I started this project as a community contribution to address the gap between user needs and available apps.
I can maintain it long-term without major contributions, but support really helps (especially maintaining in different apps stores). I’m planning a non-intrusive in-app prompt to remind users about donations something subtle, because many users forget once they start using the app, rather than only seeing the donation info in the README.
Nice. Without trying it, just by looking at screenshots, I wonder how your navigation works.
Are you calculating the route or just pointing the user in the general direction?
Currently, the app shows the user’s live location with real-time tracking on an OpenStreetMap-based map. It does not calculate routes or provide turn-by-turn navigation instead, it focuses on orientation and situational awareness.
I’m actively working on features like waypoint tracking, offline maps, and a GPS speedometer. The goal is to keep MBCompass a useful navigation utility, not a full routing app.
Routing isn’t planned at the moment (maybe with plugins later), since adding it would shift the app away from its core purpose and increase complexity. The main priority is to remain fully functional offline-friendly and extremely lightweight (currently under 1.5 MB).
> The main priority is to remain fully functional offline-friendly and extremely lightweight (currently under 1.5 MB).
By offline-friendly you're referring to the compass part only, right?
Otherwise users would have to download the map in advance which would take more that 2MB. Am I reading this right?
1 reply →
It's incredible how small apps get when you throw away all the bullshit: useless frameworks, ads, third party libraries that require you to include a huge binary.
People are always amazed when i show them my apps are 2-5 megs, and that's because there's 2-5 megs of assets.
Exactly! That’s exactly the philosophy behind MBCompass keeping the core functionality focused and lightweight, without unnecessary frameworks or bloat.
People are often surprised by how much you can do in under 2 MB.
There are also frameworks that don't bring in anything unless required. I use B4X for most of my apps.
It has a fundamental issue, which is being single threaded (with exceptions), but it's truly lightweight and easy to extend, and the team behind it really know their business.
A feature I have been looking for:
Let me indicate a location and point an arrow at it!
TBH, that’s a great idea! It’s actually on my roadmap for MBCompass, something like waypoint tracking, where you can mark a location and get a directional arrow to it. Appreciate the suggestion!