GPS integration

This forum is dedicated to software development related to MultiWii.
It is not the right place to submit a setup problem.
Software download
User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

It's definitely not an address issue.
i2cgps address is 0x40 BMA180 is 0x80, and i flown today with a Crius board (not an SE).
Did you guys disabled LCD_CONF and VBATT Code in config.h ?
I'm afraid that even with the short i2cgps code we are running out of ram memory.
The ONLY change between r21 and r24 is that the Pid array has a correct size now, so I'm baffled.
Could you send to me your config file ?
EOSBandi

copterrichie
Posts: 2261
Joined: Sat Feb 19, 2011 8:30 pm

Re: GPS integration

Post by copterrichie »

wilco1967 wrote:
What I did observe was it might not always come home exactly to the right spot, but perhaps 10..20 meters from it downwind.I guess the wind is to blame for that.

Anyway, not perfect, but still good enough to bring it back to me if I loose orrientation.... and it is way cool to leave it hanging there without touching the controls.

Thanks you very much for the hard work, EOSBandi

Now lets see if I can get 'approval' from the wife for a 10 Hz GPS ;)

Wilco


I use an old 4800 baud Microsoft GPS unit with my ODS and it does Drift but it is reliable. I hope to purchase a new GPS with all of the great features but for testing and development, this one that I have does just great. What I found to be true with this unit is, allow it to lock onto as many satellites as possible before fixing the home position.

Image

User avatar
Gaijin
Posts: 82
Joined: Sat Jan 14, 2012 8:00 am

Re: GPS integration

Post by Gaijin »

EOSBandi wrote:It's definitely not an address issue.
i2cgps address is 0x40 BMA180 is 0x80, and i flown today with a Crius board (not an SE).
Did you guys disabled LCD_CONF and VBATT Code in config.h ?
I'm afraid that even with the short i2cgps code we are running out of ram memory.
The ONLY change between r21 and r24 is that the Pid array has a correct size now, so I'm baffled.
Could you send to me your config file ?
EOSBandi



Sure, here it is for the Mwii portion, the I2C config is stock, no changes made

http://www.filedropper.com/config_7

Is the PID array shared for the input routines perhaps?

ApoC
Posts: 31
Joined: Fri Feb 10, 2012 2:16 pm

Re: GPS integration

Post by ApoC »

Where i have the "Arduino-twi-lib-patch" to put in? Found nothing where it have to copy.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

ApoC wrote:Where i have the "Arduino-twi-lib-patch" to put in? Found nothing where it have to copy.


in the wire lib

arduino-1.0\libraries\Wire\utility

ApoC
Posts: 31
Joined: Fri Feb 10, 2012 2:16 pm

Re: GPS integration

Post by ApoC »

Damn, now where i see my own text - i see it...sorry guys....

Another Question: Wich Modes i have to mix?

I read, that i have to switch in the MAG with the GPS Hold, that it works. Maybe the Baro? Or would the height from the GPS used?

Wich Modes have switchd togheter?

User avatar
djrm
Posts: 40
Joined: Wed Feb 15, 2012 11:32 pm
Location: North Yorkshire, UK

Re: GPS integration

Post by djrm »

I have been following this most interesting development, thank you eosbandi.

I have installed the latest (r24) software onto my 8MHz pro mini 328 satnav board. it appears to be working well although I cannot attempt to fly it just yet.

I found a small problem with the led blinking, it would always blink slowly as if there was no 3d lock. I found there is a problem on my system in the way the status is checked for the blinking function. I have modified it like this and it now appears to work correctley:

Code: Select all

    if(_statusled_blinks==0) {
      if(i2c_dataset.status.gps3dfix /*== 1*/)
        _statusled_blinks=3;
      else if(i2c_dataset.status.gps2dfix /*== 1*/)
        _statusled_blinks=2;
      else
        _statusled_blinks=1;     
    }

There are other places in the software where the gpsNfix is checked == 1, I expect they too do not always evaluate as expected. I think the test would be better written as gps3dfix != 0 rather than gps3dfix ==1.

In the archive for the r24 software there is both the old and new versions of the i2c gps nav sketch, the one in the root of the archive looks like it is the correct one, a little confusing.

Keep up the good work, David.

UPDATE ...
The problem still sometimes exists with my modification, I now think the cause must be the $GPGSA frames are not being properley decoded in my arduino. If I reset the board it starts to flash 3 short but then reverts to 1 after a while. Oh well, I'll keep looking.

SOLUTION
It appears that if there are less than 5 satellites used for the lock then the slow flash mode is invoked, I only have 4 in view from my desk.

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Morning,
It was a long night, finally I think I found the issue. When changed the PID array size I did not increased the EEPROM version number. So if somebody uploaded a sketch over r22 it messed up the config values, especially calibration and trim values for Acc. It worked on boards which did not had r22 or earlier nav version.
(current multiwii dev trunk has EEPROM version 154, nav code had 155 (now 156)
I pushed r26 to the repo, but a simple reset from the gui will fix it too.

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Hi !

In the archive for the r24 software there is both the old and new versions of the i2c gps nav sketch, the one in the root of the archive looks like it is the correct one, a little confusing.

Agree, i fixed this in r26, i2c_gps_nav sketch now lives in it's own folder. I also separated the defines for easier reading.


SOLUTION
It appears that if there are less than 5 satellites used for the lock then the slow flash mode is invoked, I only have 4 in view from my desk.


It was intentional since 5sats are the bare minimum to fly with.

ApoC
Posts: 31
Joined: Fri Feb 10, 2012 2:16 pm

Re: GPS integration

Post by ApoC »

After flashing your last Versions, i can see, that the LED is not blinking, when i have satfix. So what i have to do, to get it working?

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

no testing today - wind and rain

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

ApoC wrote:After flashing your last Versions, i can see, that the LED is not blinking, when i have satfix. So what i have to do, to get it working?

Check that your gps is set to 115200 baud, I commented the gps speed settings from the i2cgpsnav code. If you have a PA6B module then update it's firmware (it was in this thread some days ago). Best is the gps module default is 115200 baud and 10Hz.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

So quite a few problems are arising from people being unsure what baud their GPS device is communicating on or what it has been changed to in previous versions.

I was thinking would it not be better to include a bit of code the opens a serial communication on 9600 and 38400 sends an mtk to switch them to 115200 and then proceeds with the rest of the setup.

It will then ensure that whatever baud your gps happens to be on it will be switched to 115200 before any further setup is done. Those communications on 9600 and 38400 would just be ignored by a device already sitting on 115200.

something like this;

Code: Select all

// Changing 9600 bps to 115200
   Serial.begin(9600);
   delay(1000);
   Serial.print("$PMTK251,115200*1F\r\n");
   Serial.end();
   delay(1000);

// Changing 38400 bps to 115200
   Serial.begin(38400);
   delay(1000);
   Serial.print("$PMTK251,115200*1F\r\n");
   Serial.end();
   delay(1000);

// Setting up 10hz etc - we can add various mtk commands needed for different boards here
   Serial.begin(115200);
   Serial.print("$PMTK220,100*2F\r\n");
   delay(1000);
   Serial.println("$PMTK314,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29");  //seems to be needed for Navigtron
   delay(1000);
   Serial.println("$PMTK300,100,0,0,0,0*2C"); //seems to be needed for Navigtron


In that third section we can add a set of mtk commands that will configure all of the popular boards to 10hz as it shouldn't matter if the GPS receives an mtk command it doesn't recognise (it should just ignore it and carry on).

thoughts?

Y.Mita
Posts: 46
Joined: Thu Sep 15, 2011 11:25 pm

Re: GPS integration

Post by Y.Mita »

Please somebody help me! :?:

I fly my Hexa with MultiwiiV2.0 normally last weekend, and download R10 this week monday.
It's seems work perfectly on MultiWiiConf, move my Hexa by hand changes acc & gyro & mag & baro. From monday, I can't really flight because of day job.

Next, I download and install R24 and R26, but now acc & gyro seems go crazy on MultiWiiConf which comes with R24 or R26.
Model indicator of ROLL is upside-down, PITCH goes straight down. Only mag seems work well.
And also CALIB_MAG & CALIB_ACC buttons seems not work. At R10, both buttons work well.

I check my config.h many times, but can't find wrong setting. Also check the sensor code at def.h, but R10 and R26 looks like same.

For hardware check, I install R10 again, but no ploblem at all. Install R26, sensors goes wrong again.

Also, I try to compare source code of R10 and R26 by WinMerge, but too many changes between two revisions and I can't finish it!

My Hexa using FlyduinoMega with FreeIMU v0.3.5_MS and serial connection MKT GPS. Arduino 1.0. MultiWiiConf is application.windows32 on MS-Windows7.
RC reciever is connected by serial-sum-PPM, FUTABA.

Please give me some advise!

dr.tom
Posts: 141
Joined: Fri Mar 30, 2012 4:46 pm
Location: Croatia
Contact:

Re: GPS integration

Post by dr.tom »

Thnx EosBandi & Katch :)

With your latest rev. and katch's commands for navigatron,
it works (@ desk) 8-)

Image

going to try it outside ASAP

....by the way,
how come that some patches that fix some issues, are not implemented in new MWii revisions? :(
like this hexa patch, http://code.google.com/p/multiwii/source/detail?r=760
to get it working, i have to replace every new rev's Output.pde with this one :?:

It's not big problem as long as it works that way :)
but one day old output file won't compile with some new rev. :(

And for the Navigatron sensor... i could NOT get it to uplaod new firmware without 'out of sync' problem...
because somehow the gps output pin is connected to one of ftdi pin, (and it works ok with stock firmware, not broken)
then to shut down the gps and access only atmel, i disconnected vcc pins from gps(and pushed some paper in between the pcb and gps).
It then flashed OK. then I connected vcc back, and it works OK, transmits 10Hz 115200baud.
The rest of you managed to flash it without this mod? :shock:

Image


2 Y.Mita:
Did you import all the library folders to arduino-1.0\libraries folder? (and wire files to arduino-1.0\libraries\Wire )
I read somewhere on this forum that it is good to erase eeprom before flashing with new version...
(you have it in arduino program under File-examples-eeprom-erase, flash with it)
Hope it helps
Last edited by dr.tom on Thu May 17, 2012 6:08 pm, edited 1 time in total.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

Y.Mita wrote:Please somebody help me! :?:

I fly my Hexa with MultiwiiV2.0 normally last weekend, and download R10 this week monday.
It's seems work perfectly on MultiWiiConf, move my Hexa by hand changes acc & gyro & mag & baro. From monday, I can't really flight because of day job.

Next, I download and install R24 and R26, but now acc & gyro seems go crazy on MultiWiiConf which comes with R24 or R26.
Model indicator of ROLL is upside-down, PITCH goes straight down. Only mag seems work well.
And also CALIB_MAG & CALIB_ACC buttons seems not work. At R10, both buttons work well.

I check my config.h many times, but can't find wrong setting. Also check the sensor code at def.h, but R10 and R26 looks like same.

For hardware check, I install R10 again, but no ploblem at all. Install R26, sensors goes wrong again.

Also, I try to compare source code of R10 and R26 by WinMerge, but too many changes between two revisions and I can't finish it!

My Hexa using FlyduinoMega with FreeIMU v0.3.5_MS and serial connection MKT GPS. Arduino 1.0. MultiWiiConf is application.windows32 on MS-Windows7.
RC reciever is connected by serial-sum-PPM, FUTABA.

Please give me some advise!



Sounds like your eeprom is getting messed up;

You can try a reset then write from the R26 gui - if that doesn't work try uploading an eeprom clear sketch then upload r26 again.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

dr.tom wrote:Thnx EosBandi & Katch :)

With your latest rev. and katch's commands for navigatron,
it works (@ desk) 8-)

Image

going to try it outside ASAP



Glad you're getting results - weird about that paper mod - sounds like the Navigtron board may not be resetting properly when asked. Could be an engineering defect. Worth asking Melih.

dr.tom wrote:
....by the way,
how come that some patches that fix some issues, are not implemented in new MWii revisions? :(
like this hexa patch, http://code.google.com/p/multiwii/source/detail?r=760
to get it working, i have to replace every new rev's Output.pde with this one :?:



We must be working off an much older base version as there are tons of little changes and fixes not included - like hamburgers re-write of config.h and my Chinese IMU defines.

Y.Mita
Posts: 46
Joined: Thu Sep 15, 2011 11:25 pm

Re: GPS integration

Post by Y.Mita »

dr.tom wrote:2 Y.Mita:
Did you import all the library folders to arduino-1.0\libraries folder? (and wire files to arduino-1.0\libraries\Wire )
I read somewhere on this forum that it is good to erase eeprom before flashing with new version...
(you have it in arduino program under File-examples-eeprom-erase, flash with it)
Hope it helps


Katch wrote:Sounds like your eeprom is getting messed up;

You can try a reset then write from the R26 gui - if that doesn't work try uploading an eeprom clear sketch then upload r26 again.


First try import all library folders to arduino\libraries again with wire files too.
Not correct problem.

Next, run "File\Examples\EEPROM\eeprom_clear" sketch, and upload R26 again.

Correct!!! :D

But MultiWiiConf two buttons still not work, I'll try adjust from RC sticks.

Thank you very much, Mr.dr.tom and Mr.Katch!
Now, I can try new GPS algorithm this weekend! Thank you all!

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

Those GUI buttons have always been buggy - you just have to keep trying them - click move to see if it took if not click move again.

dr.tom
Posts: 141
Joined: Fri Mar 30, 2012 4:46 pm
Location: Croatia
Contact:

Re: GPS integration

Post by dr.tom »

dark got me so only 1 batt tested, works like it should, :)
needs PID tuning obviously, but good for first flight with new code. It didn't freeze mid-air :D

It's awesome to see Hexa turn around by itself and slowly crawl back to home position, and stops there, sick! :o

(changed max speed to 200cm/s, and min speed to 50cm/s, 400cm/s seemed to much to me for first test flight)

ApoC
Posts: 31
Joined: Fri Feb 10, 2012 2:16 pm

Re: GPS integration

Post by ApoC »

Katch wrote:Those GUI buttons have always been buggy - you just have to keep trying them - click move to see if it took if not click move again.


Jep - i HATE this. Thats why i use the WinGUI, when its ported to the new Version. ;)

The old GUI is outdated. Its frustating me every Time i use it.....plz rewrite, make it better plz. The damn Bottons (AUX) are not staying, if i clicked them. I have to hoover to check, if there on or off.....

What i hate too is, when i have some nice Code (Hexa Patch, Blink Codes and so on) and a new Version, like the new GPS Code, i have not this nice features anymore, because there are not in this Code.

Is it possible to merge the new GPS Code in my existing Code, that i fly atm? Im not a Coder, so i dont know, how it works.

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Guys,
I just would like to reminder everyone who tries this code... it's a development version, not synced with the current multiwii dev tree. I just took the 20120504 dev release and put the gps code there... once it proven to work i transfer it to alex to merge it into the actual dev trunk (Or I'll do if necessary). Till that, a programming knowledge and familiarity with MultiWii internal workings are recommended for testing.
Bandi

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

dr.tom wrote:dark got me so only 1 batt tested, works like it should, :)
needs PID tuning obviously, but good for first flight with new code. It didn't freeze mid-air :D

It's awesome to see Hexa turn around by itself and slowly crawl back to home position, and stops there, sick! :o

(changed max speed to 200cm/s, and min speed to 50cm/s, 400cm/s seemed to much to me for first test flight)


Good to hear that :D
I just find an excelent PID tuning simulator, which can help to understand the role of the POSHOLD and POSHOLD_RATE PID's. It's made by Jason Short from DiyDrones who is the genius behind arducopter loiter code. The simulator based on the latest arducopter code, which I ported to multiwii, so you can apply what you find in the simulator to real life...
http://diydrones.com/profiles/blogs/ac2 ... -tuner-sim

ApoC
Posts: 31
Joined: Fri Feb 10, 2012 2:16 pm

Re: GPS integration

Post by ApoC »

dr.tom wrote:(changed max speed to 200cm/s, and min speed to 50cm/s, 400cm/s seemed to much to me for first test flight)


Can u explain, where do u changed that?

Im not a Coder, but with my Testflights i hope i can help.

GrAl
Posts: 1
Joined: Fri May 18, 2012 9:29 am

Re: GPS integration

Post by GrAl »

Guy
please help me choose parts.
I have MWC MultiWii SE Standard Edition 4-axis Flight Control Board QUADX w/ FTDI Basic Breakout on plane, and want use GPS for RTH.
What me need buy additional?

wolle
Posts: 13
Joined: Fri Apr 27, 2012 10:21 am
Location: Germany
Contact:

Re: GPS integration

Post by wolle »

Hello,
where you need to copy the PID libs go?
I get an error message when you compile the scetch.

Greetings Wolfgang

wolle
Posts: 13
Joined: Fri Apr 27, 2012 10:21 am
Location: Germany
Contact:

Re: GPS integration

Post by wolle »

Ok, I got it back.

It works now! I'll test it later times.

User avatar
howardhb
Posts: 189
Joined: Tue Oct 11, 2011 7:10 pm
Location: Port Elizabeth, South Africa

Re: GPS integration

Post by howardhb »

You should create 2 new folders inside the "libraries" folder (find where Arduino-1.0 is installed, typically C:\Program Files\arduino-1.0)

(1) C:\Program Files (x86)\arduino-1.0\libraries\AC_PID
Inside this folder, put: AC_PID.cpp and AC_PID.h

(2) C:\Program Files\arduino-1.0\libraries\APM_PI
Inside this folder, put: APM_PI.cpp and APM_PI.h

Then, in C:\Program Files\arduino-1.0\libraries\Wire:
replace Wire.cpp and Wire.h

H.

wolle
Posts: 13
Joined: Fri Apr 27, 2012 10:21 am
Location: Germany
Contact:

Re: GPS integration

Post by wolle »

Thank you! I then understood it :) man would sometimes turn on the head.

Is it normal that the gps module without which I move, the speed jumps back and forth?

wolle
Posts: 13
Joined: Fri Apr 27, 2012 10:21 am
Location: Germany
Contact:

Re: GPS integration

Post by wolle »

for those who need a FW for the PA6B to "115200 baud 10Hz" or "115200 baud 5 Hz", you can download it here:

http://www.wii-copter.de/forum/downloads.php?cat=8

I have let me create it from the manufacturer.

Y.Mita
Posts: 46
Joined: Thu Sep 15, 2011 11:25 pm

Re: GPS integration

Post by Y.Mita »

Katch wrote:Those GUI buttons have always been buggy - you just have to keep trying them - click move to see if it took if not click move again.

Thank you, Katch. But my problem is not AUX1,AUX2,AUX3,AUX4 setting. The button of "CALIB_MAG" and "CALIB_ACC" seems clicked, but not activate MAG calibration and ACC caribration.
I tried caribration from RC sticks, but ACC caribration not start, MAG caribration starts.

EOSBandi wrote:I just would like to reminder everyone who tries this code... it's a development version, not synced with the current multiwii dev tree. I just took the 20120504 dev release and put the gps code there... once it proven to work i transfer it to alex to merge it into the actual dev trunk (Or I'll do if necessary). Till that, a programming knowledge and familiarity with MultiWii internal workings are recommended for testing.

Yes! of course I know! Thanks your development version, we can try and test it.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

getting good results today.

Back on my Paris v4 GY_86 (FreeIMU 0.4.3 clone) after sorting out the messed up eeprom issue.

Still need to play with the PID settings to get it locked in. It's hard doing it out in the field as I can't use my Android phone like I usually do (GPS settings currently unsupported)

Hold and RTH definitely working now just need to decrease the loiter area some.

I am still noticing the Quad make some pretty jerky movements when in position hold. I'm sure it would reduce the pendulum effect and the loiter area if we could smooth those correction out a little.

User avatar
howardhb
Posts: 189
Joined: Tue Oct 11, 2011 7:10 pm
Location: Port Elizabeth, South Africa

Re: GPS integration

Post by howardhb »

GY_86 (FreeIMU 0.4.3 clone)
Can you supply some more info. Please!

User avatar
howardhb
Posts: 189
Joined: Tue Oct 11, 2011 7:10 pm
Location: Port Elizabeth, South Africa

Re: GPS integration

Post by howardhb »

@Katch, you can now edit GPS settings at the field. All GPS parameters are editable using LCD_CONFIG.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: GPS integration

Post by Katch »

yup don't have one.

go read the Chinese IMUs thread in development for info on that GY_86.

eBay search mpu6050 10 dof

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Hi Guys,
Just flown three packs in a light breeze. Solid poshold and realible RTH. For poshold take a note about the entering speed, the larger the speed when you inter into poshold, the bigger the pendulum will be, but it slows down after two/three swings.

Since I crashed my quad with i2c gps (it wasn't the code, rather the 30mhp wind :( ), i switched back to the tri with serial gps. I also implemented Jason's latest changes to the PID algorithms. Will upload it to the repo this evening.

I'll rebuild my quad and continue testing of the i2c part.But Unless there are some serious bug, it should work the same as the serial code.

EOSBandi

User avatar
howardhb
Posts: 189
Joined: Tue Oct 11, 2011 7:10 pm
Location: Port Elizabeth, South Africa

Re: GPS integration

Post by howardhb »

@ Katch, see this thread: viewtopic.php?f=7&t=1096
You don't need a specific MultiWii app. for your phone.
You can simply download an Android VT00 Terminal emulator for your phone.
http://www.androidzoom.com/android_appl ... boaja.html
In Config: #define #define LCD_CONF and #define LCD_VT100.
Voila!

User avatar
howardhb
Posts: 189
Joined: Tue Oct 11, 2011 7:10 pm
Location: Port Elizabeth, South Africa

Re: GPS integration

Post by howardhb »

@EOSBandi, will the PID settings then be similar to the values used in the On-line Simulator?
If yes, then we will need to format the LCD / OLED values to suit the number of decimal places....
In LCD.ino, replace:

Code: Select all

#if GPS
 &lcd_param_text80, &P8[PIDPOS] , &__RC,
 &lcd_param_text81, &I8[PIDPOS] , &__I,
 &lcd_param_text82, &P8[PIDPOSR], &__P,
 &lcd_param_text83, &I8[PIDPOSR], &__RC, 
 &lcd_param_text84, &D8[PIDPOSR], &__I,
 &lcd_param_text85, &P8[PIDNAVR], &__P,
 &lcd_param_text86, &I8[PIDNAVR], &__RC,
 &lcd_param_text87, &D8[PIDNAVR], &__I,
#endif

with this:

Code: Select all

#if GPS
 &lcd_param_text80, &P8[PIDPOS] , &__RC,
 &lcd_param_text81, &I8[PIDPOS] , &__I,
 &lcd_param_text82, &P8[PIDPOSR], &__P,
 &lcd_param_text83, &I8[PIDPOSR], &__RC,   
 &lcd_param_text84, &D8[PIDPOSR], &__RC,
 &lcd_param_text85, &P8[PIDNAVR], &__P,
 &lcd_param_text86, &I8[PIDNAVR], &__RC,
 &lcd_param_text87, &D8[PIDNAVR], &__RC,
#endif

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

But it's the same :D

The precision for the GPS nav parameters will be the same as they have in the GUI
POS : .01 for P and .1 for I
POSR and NAVR : .1 for P .01 for I and .001 for D

wolle
Posts: 13
Joined: Fri Apr 27, 2012 10:21 am
Location: Germany
Contact:

Re: GPS integration

Post by wolle »

@EOSBandi
it not the same ;)

Code: Select all

...  
&lcd_param_text84, &D8[PIDPOSR], &__RC,
...
&lcd_param_text87, &D8[PIDNAVR], &__RC,
...


Wolle

dr.tom
Posts: 141
Joined: Fri Mar 30, 2012 4:46 pm
Location: Croatia
Contact:

Re: GPS integration

Post by dr.tom »

are those checkboxes properly defined somewhere in code? :?:

Image

asking because if I activate LEVEL(aux1 to 1500PWM), it turns green, but nothing really happens, like model is in gyro mode still
only if I activate the baro with it(aux1 high), the model goes into level mode?

I'm not 100% sure,
need more testing, but seems to me like there is a bug in checkboxes maybe, flown 4 packs today and noticed that.
Before( in dev0504) switching from modes worked OK.

Y.Mita
Posts: 46
Joined: Thu Sep 15, 2011 11:25 pm

Re: GPS integration

Post by Y.Mita »

dr.tom wrote:are those checkboxes properly defined somewhere in code? :?:

Image

asking because if I activate LEVEL(aux1 to 1500PWM), it turns green, but nothing really happens, like model is in gyro mode still
only if I activate the baro with it(aux1 high), the model goes into level mode?

I'm not 100% sure,
need more testing, but seems to me like there is a bug in checkboxes maybe, flown 4 packs today and noticed that.
Before( in dev0504) switching from modes worked OK.

I think this is in MultiWii.ino around line number710,

Code: Select all

    for(i=0;i<CHECKBOXITEMS;i++) {   
      rcOptions[i] = (
       ((rcData[AUX1]<1300)    | (1300<rcData[AUX1] && rcData[AUX1]<1700)<<1 | (rcData[AUX1]>1700)<<2
       |(rcData[AUX2]<1300)<<3 | (1300<rcData[AUX2] && rcData[AUX2]<1700)<<4 | (rcData[AUX2]>1700)<<5
       |(rcData[AUX3]<1300)<<6 | (1300<rcData[AUX3] && rcData[AUX3]<1700)<<7 | (rcData[AUX3]>1700)<<8
       |(rcData[AUX4]<1300)<<9 | (1300<rcData[AUX4] && rcData[AUX4]<1700)<<10| (rcData[AUX4]>1700)<<11) & activate[i])>0;
    }


Finally I find my mistake about activate ACC and MAG from MultiWiiConf.
I need very long time push of "CALIB_ACC" or "CALIB_MAG" to activate caribration. Thanks all!

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Well, I did not touch that part of the code at all. Did you erase your EEPROM before uploading latest dev code ?

nhadrian
Posts: 421
Joined: Tue Oct 25, 2011 9:25 am

Re: GPS integration

Post by nhadrian »

I have just tested the r26 code of EOSBandi in my Mini hexa with i2c GPS (Arduino nano + Locosys 10Hz GPS) and it just works awesome with even stock PIDs!
I didn't make any modifications except I reduced the loiter speed to 250 instead of 400.
After activatind the position hold, it stays in stable hoovering positions, in gusts there is only some small and slow overruns, and when activating the RTH, it starts to mode to home position immediatelly and slows down near home then calms down over start point...
Currently, during RTH, it rotates toe head of the copter to the startup direction, not to the home point. If I remember right, somewhere I read that it should turn towards to home point and when home is reached, it turns to the startup direction. EOSBandi, could this be activated via Defines???

There is only one issue!!! For me, the MAC version of the gui doesn't work, it doesn't starts (OSX Lion).
Could somebody who has a MAC help and compile working one?

BR
Adrian

PS.: This code just rocks!!!!!! really good job!!!!!!!!!! THANKS

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

nhadrian wrote:Currently, during RTH, it rotates toe head of the copter to the startup direction, not to the home point. If I remember right, somewhere I read that it should turn towards to home point and when home is reached, it turns to the startup direction. EOSBandi, could this be activated via Defines???


In the config.h file there are three defines

#define NAV_CONTROLS_HEADING true // copter points to the actual navigational bearing during RTH - this is the bearing corrected with cross track error
#define NAV_TAIL_FIRST false // true - copter comes in with tail first, false-head first

#define NAV_SET_TAKEOFF_HEADING true // true - when copter arrives to home position it rotates it's head to takeoff direction

marbalon
Posts: 107
Joined: Thu Aug 18, 2011 10:59 am

Re: GPS integration

Post by marbalon »

I've try to fly with this dev but it is quite nervous. I've checked in qui and when quad is on the table with motors disabled I have a lot of noise on gyro. When I enable MMGYRO fittering (btw. this is really good filtering for gyro!) it is ok, but I tried to find why and I think I found. I printed annex650_overrun_count in debug and this happens very often. So idea with 650us is not working is not working, I don't have Idea why it is 650us because if we want to read two samples we need to wait 1250us between two samples. i know first is read to late and maybe this is the problem....

I think we should change long i2c read for gyro, there is about 30bytes to read and it will hake about > 600us so it is too much for MWC idle - it don't like jitter for cycle time, or fix IMU calculation.

But yesterday I've tested in really windy evening and works! make huge circles but it is reeeeally windy evening.

Thanks for your job EOSBandi.

Edit.
Fly test with MMGyro not helps :( Still a loot of random wooble. My setup:

#define L3G4200D
#define ADXL345
#define HMC5883
#define MS561101BA
#define MS561101BA_ADDRESS 0xEC
#define I2C_GPS //I2C GPS and Navi modul
#define MMGYRO
#define MMGYROVECTORLENGHT 10

#undef VBAT
#undef LCD_CONF

Y.Mita
Posts: 46
Joined: Thu Sep 15, 2011 11:25 pm

Re: GPS integration

Post by Y.Mita »

R27, MultiWiiConf application.windows32 seems broken.
The electrocardiogram says copter dead :shock:

But can use R26.

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Y.Mita wrote:R27, MultiWiiConf application.windows32 seems broken.
The electrocardiogram says copter dead :shock:

But can use R26.

Sorry r27 is compiled for 57600 baud...

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

marbalon wrote:I've try to fly with this dev but it is quite nervous. I've checked in qui and when quad is on the table with motors disabled I have a lot of noise on gyro. When I enable MMGYRO fittering (btw. this is really good filtering for gyro!) it is ok, but I tried to find why and I think I found. I printed annex650_overrun_count in debug and this happens very often. So idea with 650us is not working is not working, I don't have Idea why it is 650us because if we want to read two samples we need to wait 1250us between two samples. i know first is read to late and maybe this is the problem....

I think we should change long i2c read for gyro, there is about 30bytes to read and it will hake about > 600us so it is too much for MWC idle - it don't like jitter for cycle time, or fix IMU calculation.

But yesterday I've tested in really windy evening and works! make huge circles but it is reeeeally windy evening.

Edit.
Fly test with MMGyro not helps :( Still a loot of random wooble. My setup:

#define L3G4200D
#define ADXL345
#define HMC5883
#define MS561101BA
#define MS561101BA_ADDRESS 0xEC
#define I2C_GPS //I2C GPS and Navi modul
#define MMGYRO
#define MMGYROVECTORLENGHT 10

#undef VBAT
#undef LCD_CONF


Well, it's interesting theory, but the GPS code is not in the annexCode loop, but in the main loop. Yes, it increases the cycle time, but that cycle time is taken into consideration for IMU calculations automatically. Just to make it sure, did you tried the "vanilia" MultiWii20120504 release ? Is it flies without wobbles with that version?

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

Re: GPS integration

Post by EOSBandi »

Btw, if you don't need GPS coordinate and home distance and orientation display, just try to comment out those reads... for navigation
the I2C_GPS_NAV_BEARING, I2C_GPS_NAV_LAT and I2C_GPS_NAV_LON registers are enough. Thats about 8 byte (including status)

Post Reply