Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Bring the GPS support for F3 back! #4415

Closed
MB3Drift opened this issue Oct 21, 2017 · 39 comments
Closed

[Feature Request] Bring the GPS support for F3 back! #4415

MB3Drift opened this issue Oct 21, 2017 · 39 comments

Comments

@MB3Drift
Copy link

Building my rig for mid/long range on a BFF3 on 3.2.1, I was unable to activate the GPS in the configuration tab.
I found the problem: I'm on betaflight F3, and it seems that GPS support has been removed from all the F3 board!
I'm am hugely disappointed, and even more because I bought the BFF3 board thinking: "this is a Betaflight FC it should run absolutely every feature of the BF firmware", and it is not.
So I ask a question: since the Long Range trend is booming right now (thanks to the TBS Mini Crossfire), and since Betafight offers so many GPS informations in the OSD (coordinates, altitude, gps speed, home arrow, distance from home, etc...), WHY remove this features from virtualy HALF of the FC's of the market?
I saw it was work in 3.1.7, I flashed immediatly the 3.1.7 and the GPS is supported, but I don't have all of the top cool features of the 3.2 like dynamic filter and ironically all the OSG GPS features?
So I can have GPS working but no GPS OSD indicator (or a really few useless ones), or I can have no GPS support but everything I want on the OSD! Nobody find this ironic?
I saw that it was removed because of chip capacity, but can you not remove really useless features that nobody use? Like servo output support, and support for all useless aircraft like octoX, Wings, Airplanes etc?
I saw many comments saying that people should go using Inav, but we want fly quads so we fly Betaflight. People flying airplanes, wings and OctoX already use Inav or other firwares instead of betaflight, so why not make room here instead of GPS?

I'm really not into programming and I have a huge respect for the developpers, but I think that this is a bad choice. GPS Wings and airplanes don't need turtle mode, Dshot 1200, my 5inch GPS long range quad does!

Please bring back the GPS support for F3! Thnaks for reading if you made it to the end!

@mikeller
Copy link
Member

mikeller commented Oct 21, 2017

The answer to that is simple: Flash space limitation. All of the optimisations and the addition of faster protocols like Dshot and things like onboard OSD have caused the size of the Betaflight firmware to grow, and now we are at a point where the 256kB flash on the F3 aren't enough any more to contain Betaflight with all of the features. At some point when the flash on F3 was overrunning and something had to be removed, GPS was the least useful for racing that was left, and so GPS was removed. Sorry to say, but if you want race performance and all of the other features, you're going to have to upgrade to an F4.

Have you tried iNav for your long range quad? If you can live without Dshot, then iNav should work just fine for this.

@MB3Drift
Copy link
Author

MB3Drift commented Oct 21, 2017

I understand the Flash space limitation, and the fact that GPS was removed because of that. But it can be reintroduced in the code, and an other feature that si REALLY useless, like servo support or wings, octoX etc, be removed? Because if the GPS is really the least usefull, why to developpe such OSD features.
There is really NO other useless feature to remove for F3?? Servo support is really useless I think, more than GPS.
I'm kinda angry right know, I bought the FC 2 weeks ago because I loved it on my last build, my long range build isn't even finished yet and already outdated, had to change the FC, and on my other quad too...
Running iNav like I said is not even a thought, not having the Dshot and the other coolest features of Betaflight is not a option! Stay in 3.1.7 is the least painfull option...

If I were good at programming I'll try to compile a version of 3.2.1 without servo support but with GPS support...

@wind0r
Copy link
Member

wind0r commented Oct 21, 2017

Here you have a bff3 with gps but without dshot

betaflight_3.2.1_BETAFLIGHTF3.zip

Default Targets are amied to have the most features possible. We can remove dshot to make gps fit. Then people will start gps is a useless feature add dshot back and so on.
To create this custom binary just #undef USE_DSHOT and #define GPS need to be added to the bff3 target file.
You can play tertris(adding/removing features so long until they fit in flash) and remove Telemtry Features you do not need or other stuff to make it fit your needs.

@jflyper
Copy link
Contributor

jflyper commented Oct 22, 2017

other feature that si REALLY useless, like servo support or wings, octoX etc

FYI, there are many users of servos and plane-like mixers.

OCTOX has a user, too. #3139

So, they are not completely useless.

@gregm412
Copy link

can u give me a colibri race with gps and no dshot for my vendetta? i use gps on my long range vendetta

@mikeller
Copy link
Member

betaflight_3.2.1_COLIBRI_RACE.zip

@fiveangle
Copy link
Contributor

Perhaps pointing F1 and F3 users toward an easy build environment is the answer ? A pre-configured VirtualBox VM for example would be ideal. Anyone know if something like that exists already ?

@wind0r
Copy link
Member

wind0r commented Oct 23, 2017

There allready is a preconfigured VirtualBox VM(vagrent) and a Docker Container for a long long time.

@AndersHoglund
Copy link
Contributor

We should have a binary plug-in system, and a Tetris game in BFC where the user can mix and match feature-plugs until it all fits on the FC.

@mikeller
Copy link
Member

I think if we went that way, we should look into a server based build system like OpenTX and nodeMCU are using. But I don't even want to think into the bug reporting / debugging aspect of this ('I've got a build for F3, with options X, Y, Z, but not A, B, and now option Y does not work as it should...').

@MikeyZee
Copy link
Contributor

I agree with bringing back this feature.
I am currently in the process of creating a HSC major project which will be a simple an easy to use flight log interpreter. Obviously black box render and things like that exist but I am planning on creating something a little different. Is there a way I can have the f3 omnibus (board I purchased for this project) activated with a GPS only for logging purposes on the black box?
Obviously the flashing of INAV is an option but with flashing there is always a relatively high chance of bricking the board which is the last thing I would want to do at this point.
It sounds like the whole feature on f3 boards has been disabled which is a shame and I understand that it is flash storage restraints but what I don't understand is the NAZE32 runs an f1 chip, which is extremely slow and nearly clocks out the CPU during flight with a few settings enabled in beta flight although, correct me if I am wrong, but GPS can be used on this?
I don't understand that, or is there more flash storage on a really really old board?

Thank you,
I look forward to the replies and I am currently gathering parts for my build and will need a solution soon, otherwise I may need to buy an F4/F7 board...

@jflyper
Copy link
Contributor

jflyper commented Oct 30, 2017

I believe there's no global resurrection of GPS feature on F3 with BF, at least until features become selectable by a user.

You can always build your custom firmware. Read few comments back.

Oh, and STM32 processors never brick.

@DanNixon
Copy link
Member

with flashing there is always a relatively high chance of bricking the board

There is absolutely zero chance of bricking the board.

@mikeller
Copy link
Member

@MikeyZee: First of all, don't worry about bricking your board, this is almost impossible with STM32 based boards, since their boot loader is stored in ROM and therefore indestructible.
There is little to no chance of GPS coming back to F3. To the contrary, at the moment more non-essential features have to be removed to make space for features that are required for some users to make it work at all, like new and improved RC protocols.
What you could do is set up a build environment, and build the firmware from a custom target. If you remove all of the RC / telemetry protocols that you don't use, you should be able to get enough space to fit GPS. Or simply go for iNav.

@MikeyZee
Copy link
Contributor

@jflyper: ~ Ok that's fair enough, it's not on the high priority list at the moment which makes sense as betwflight is more tailored towards performance flight. I will have a look at the past comments and try some of them with the GPS enabled and potentially D Shot disabled. Ok that's good to know I guess, just trying to remove anything that can go wrong because I've been having waaaay to many instances of Murphy's Law recently. Thankyou for the insanely quick response!

@DanNixon: ~ Awesome, thanks for letting me know, maybe I will experiment with iNav once my board comes in.

@mikeller: ~ Thanks for the information, it seems like the hobby/sport is growing rapidly and betaflight is having to expand at the same rate and it's doing exactly that. Kudos to everyone keeping it updated and spotting bugs and performing fixes, it's what it's all about!
I'm learning a few languages at the moment and C is the next one on my list which would be very handy for this project.

Thanks all for the clarification

@arrowcircle
Copy link

@mikeller Could You please make a build of 3.2.2 for colibri race with gps code?

@mikeller
Copy link
Member

@arrowcircle: How about you try your hand at it yourself? There is lots of documentation for it around, like this: https://github.com/cleanflight/cleanflight/blob/master/docs/Customized%20Version.md

As for the build itself, you can use a self contained docker image for that: https://hub.docker.com/r/betaflight/betaflight-build/

@martinbudden
Copy link
Contributor

@arrowcircle , yes why not try yourself. It's not that hard and once you know how to do it, you'll be able to do it for 3.3 and later releases...

@Werks89
Copy link

Werks89 commented Nov 16, 2017

Is it not possible to just have a side note where the GPS slider is saying "Not supported on F3 boards"? I realize I'm whining and should have Googled sooner but man thats annoying after spending quite a few hours.

@mikeller
Copy link
Member

@Werks89: Happy to add one, can you please point out where you came across this statement?

@arrowcircle
Copy link

@martinbudden @mikeller Thanks for the links.
Its very easy to compile custom firmware with docker.
I made simple bash script to apply changes to COLIBRI TARGET https://gist.github.com/arrowcircle/88945fbc0b723268eed5c7990371741a
Is it ok to disable so much features?

BTW, do I need to enable nav?

@Werks89
Copy link

Werks89 commented Nov 16, 2017

@mikeller What do you mean? I was just saying it would save a lot of frustration for others trying to add GPS on F3 boards running Betaflight after version 3.1.7.

@richard-scott
Copy link

I appreciate why the code was removed, but maybe this sort of thing could have been managed much better.

From an end user perspective there has been no announcement of the removal of the GPS code from F3 boards in ANY of the 3.2.x Release Notes only this can be found if you hunt about. The removal of ANY feature should be announced like the demise of F1 support, and scheduled in for a future date not just removed without notice.

Also, it would be really great if the project adopted a Semantic versioning scheme. This way a release that is not 100% backwardly compatible - such as the removal of GPS code - can be given a totally new version number to avoid confustion.

This new limited edition firmware should have been released as v4.0.0 and by doing that end users would know to look at the Release Notes to see what has changed. That's how the rest of the Internet does it :-)

@wind0r
Copy link
Member

wind0r commented Nov 16, 2017

GPS-Code never was removed it is still there :)
I agree with that such a change should be in the Release Notes.
Even better Configurator should warn Users when GPS is enabled but not compiled in, but this needs time and most developers spend there free time in more features and not user interface stuff.
Everyone can fell free to help making the User Experience better.

This Project allready uses Semantic Versioning for a long time based on Interface and Flight Code.
Based on Targets simply isnt possible with over 100 different Targets.
Also saying that 3.2 would be 4.0 because gps got removed isnt correct since 3.2.0 never removed gps for f3 it is just not compiled in by default.

@mikeller
Copy link
Member

Good work, @arrowcircle. You can disable any features that you don't need or want. Some features might be dependent on others, so disabling the underlying feature will only work if the feature that requires it is disabled as well. You don't need NAV, this code has not been maintained in a while, so it's probably not working well anyway.

@Werks89: I was just asking you to point out where you would like to have the "Not supported on F3 boards" added, so that I can look into adding it.

@richard-scott: Totally agreed that the GPS removal was not handled in the best possible way. What you have to understand is that there is a fundamental difference between the end of F1, which was a decision that was made by the core developers, and then announced, and the removal of GPS support from F3, which was a solution to the problem of the firmware not fitting into flash on F3. This problem was not planned for, it cropped up in the middle of the release process, and a solution had to be found, without time to make an announcement ahead of time. Re semantic versioning, since Betaflight is not a library or an API (but includes a number of APIs), the distinction between major and minor releases in SemVer is not as clear cut for Betaflight as it is for libraries or APIs. If we were to use 'backwards compatibility' as the deciding measure for major or minor releases, we'd end up with only major and bugfix releases, since no two non-bugfix releases are backwards compatible when it comes to the configuration API and / or MSP.

@arrowcircle
Copy link

@mikeller Hi! I tried to flash built image, but cant activate GPS in the configuration. What I doing wrong? Maybe I need to enable/disable additional flags? Gist with path is in prev comment

@mikeller
Copy link
Member

@arrowcircle: Are you trying to build this from master (3.3.0) or v3.2.x-maintenance (3.2.3)? In 3.2.3, the define is called GPS, not USE_GPS. And did you assign a port to GPS before trying to activate the feature?

@arrowcircle
Copy link

@mikeller I checked out v3.2.2 tag. I copied my diff from your image. I also tried it with hands.

@mikeller
Copy link
Member

@arrowcircle: You need to change #define USE_GPS to #define GPS in this case - a lot of the defines got renamed between 3.2 and 3.3.

@arrowcircle
Copy link

@mikeller Thank You, I will try this. What tag is better to get? v3.2.x-maintenance or 3.2.2?

@mikeller
Copy link
Member

v3.2.x-maintenance is the branch that is used for all 3.2.x releases, and it is constantly updated with the latest bugfixes (but no new features), so I'd go for that.

@bavariangerd
Copy link

I bought an omnibus F3 because of its 3 UARTs to connect GPS, Bluetooth and telemetry and
cant get GPS working till i found, after many hours seaching, here the reason why. Because Im not as familiar as i should in programming, please can you give me an actual version
for the Omnibus F3 for Betaflight with GPS - i do not need Dshot.
Thank you

@geokos77
Copy link

geokos77 commented Apr 23, 2018

Hi folks, I have the same problem, I have an OMNIBUS F3 and wanted to make GPS work on latest betaflight versions.
I tried to make a custom firmware but i'm still unable to activate GPS in the configuration tab.
I've build with the default firmware choosen by docker which is 3.4.0, i've removed uselless receivers support I don't need and added #define USE_DSHOT_DMAR and #define GPS to keep DSHOT active and use GPS.
Did I wrote something wrong ?
(I checked that the size of the custom firmware is less than original).
I've attached my target.h file so you can check it
thank you

target.zip

@mikeller
Copy link
Member

@geokos77: No, that should be fine. Did you assign GPS to an UART on the 'Ports' tab and save before you tried to enable it on the 'Configuration' tab? If not it won't work.

Also, enabling USE_DSHOT_DMAR on OMNIBUS is pointless (and uses up valuable space), since this board has a hardware configuration that does not get benefits out of using DMAR.

@geokos77
Copy link

geokos77 commented Apr 24, 2018

@mikeller Thanks for your reply
Yeah sure, first I assigned the GPS sensor to the right UART on the Ports Tab and saved (my wiring, gps and uart works, I tried them on inav), but then when I enable GPS in the configuration tab and save/restart, it stays disabled like on stock firmware.

Do I have the right parameter ? it can't be #define USE_GPS ?
Oh ok, I thought it was the parameter to just enable DSHOT, if I remove it will I still have DSHOT enabled ? what is DMAR ?

Is the version 3.4.0 i'm building on, a stable version ? wouldn't it be better to try with 3.3.1 ? I have the stock 3.3.1 hex file but I don't know how to choose it with docker instead of using the default one when running the building command :
(image)

@stale
Copy link

stale bot commented May 24, 2018

This issue / pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs within a week.

@stale stale bot added the Inactive Automatically detected and labeled, will be closed after another week of inactivity. label May 24, 2018
@geokos77
Copy link

No one can help me with my build :( ?

@stale stale bot removed the Inactive Automatically detected and labeled, will be closed after another week of inactivity. label May 24, 2018
@Jakala91
Copy link

Hey guys,
could someone create a build of Betaflight 3.4 RC2 for the SPF3 with GPS?
Thanks in advance! :D

@strepto42
Copy link

Hmmm, I'm guessing this issue will see a few more hits in coming weeks due to the introduction of GPS Rescue mode with 3.4.0...

GPS might well become a more common request for the old F3 boards. I guess I'm gonna have to set up a build environment at some stage and play code tetris... :/

(I note also that the configurator still doesn't provide clear feedback on this missing feature)

@betaflight betaflight locked as resolved and limited conversation to collaborators Jun 24, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests