Shop OBEX P1 Docs P2 Docs Learn Events
QuadX source code for Hoverfly Open / Elev-8 — Parallax Forums

QuadX source code for Hoverfly Open / Elev-8

JasonDorieJasonDorie Posts: 1,930
edited 2015-05-19 10:55 in Robotics
I keep saying I'm going to do it, so here it is.

This is my QuadX flight code for the Hoverfly Open board.

This includes the GroundStation software (and C# source). All the pins used by the HoverFly Open board are documented in the main source file (called "Main - HoverFlyOpen.spin").

This version uses the Gain channel the same way the HoverFly code does. Set the gain value on your transmitter to 20 or so as a starting point and increase it until it starts to oscillate, then back off a bit. The code is currently set up to use both sides of the gain switch - The positive side performs no gyro filtering, and the negative side runs a light low-pass filter on the gyro values, but the gain calculation is the same. I would actually recommend removing the filtering code and just having it let you choose between two different gain values to see which you like better. :) The filtering seems to make the controls a little mushy. You should do everything you can to reduce vibration on your quad before resorting to noise filtering.

The included driver for the ITG3200 object has all the temperature drift values zeroed out. To calculate the proper ones for your board, plug your HoverFly board in to the USB connector, then run the GroundStation software and choose the "Drift Calculation" tab. With the board perfectly still, point a hair dryer or heat gun at it for a short time. You should see the gyro readings moving along a more or less straight line, and the program will line-fit your values and tell you the offset / slope numbers for each axis. Plug those in to the ITG-3200.pasm code at the end (it's well marked) and reload your HoverFly board with the result.

QuadX-GroundStation-Preview3.png


Questions & comments are welcome - I'm looking forward to feedback. Happy flying folks. :)
«1

Comments

  • Cluso99Cluso99 Posts: 18,069
    edited 2013-05-25 19:03
    Congratulations Jason for releasing the code.

    As discussed, I am sending you a pair of my pcbs. This should make for a really cheap prop solution for those that want to play.
    Here is a brief description of my pcbs on the other thread
    http://forums.parallax.com/showthread.php/147891-Competing-QuadCopter-solutions?p=1186472&viewfull=1#post1186472

    Quad016.JPG


    The power pcb on the left had a manufacturing error and was redone (pads omitted).


    It is possible to drive Tri/Quad/Hex/Octal 'copters with these pcs. There are 8 channels of servo inputs (plus 2 spare) and the same for outputs. Each set of 8 are protected by series resistors (smt quad packs) and it was my intention to fit 5K. What are your current thoughts?

    There is provision for 2 EEPROMS - can boot from either - why? So one can have code to copy new programs from the microSD card meaning a Propplug is not a requirement (lowers cost). The P30/31 circuit contains resistors for doing LF or FS USB emulation (with miniUSB connector). I did get Brad's LS USB code running so I thought it could be expanded. The SD could log flight info for later examination on a PC. There are a few other tricks, but I cannot recall them all.

    The little pcb is about 1"sq and has gyro, accel, compass and pressure/temp chips. However, the price for these 10DOF pcbs have come down lately so they can be had from ebay quite cheaply. The QFN chips are difficult to hand assemble, so why bother. The main pcb has 3V3, 5V, GND and SDA and SCL connections for this, and two other mounting nc pins. Of course, you can just use the Wii Plus pcb scavenged from a Wii Plus controller like I did originally.

    As I said, my aim was to make a really cheap set of pcbs and make them available either bare or assembled. I expect the bare pcbs (pwr and prop) to be <$5 (pair) and assembled (except header/servo pins - supplied unsoldered) to be <$20 (pair).

    BTW I used a 1"sq tubing for my quadcopter and the X joiner - all available from the hardware store. There is an old QuadCopter thread where all this was explained. I haven't had time to pursue any of this :( (and I am having too much fun with the P2 ;) now)
    722 x 552 - 96K
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-05-25 21:47
    I have 4.7K resistors on all my input pins, but never bothered with the ones for ESC output. They're probably a good idea though, as some ESCs communicate on startup, looking to see if there's a programmer connected.

    I only need one eeprom, as I've got a PropPlug. The SD card for logging could come in handy though. I had one on a quad two versions back, but crashed it. I keep meaning to hook it back up again, 'cause it was handy. A status LED or a small speaker is really useful. I have an arming sequence for my own quad so I don't accidentally start it on the bench. I use a tiny speaker for feedback, but a red/green LED would work just as well. (I realize the boards are done, but if you ever do another round...)

    Looking forward to seeing it!

    Jason
  • Cluso99Cluso99 Posts: 18,069
    edited 2013-05-25 23:22
    I am away atm so I cannot check. But IIRC a led can be added quite simply on one of the spare I/O pins (or one of the unused 8 ports). The series resistor wll work fine with the led. I use ultrabright leds these days, so 5K is fine. A speaker would be probably be best between one pair of the spare pins. Use a high impedance one, else a series resistor.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-05-26 12:48
    Jason,

    Thank you very much for posting this. I dug my ITG-3200 breakout board out of a box yesterday so I can test out your code. I have a HoverFly Sport board but it's on my hexacopter so I thought I'd try your code on a DIY board (I'm using one of these with a Prop on it).

    When I tried to compile "Main-HoverflyOpen" I received a "Expected a subroutine name." error on line #571.
    dbg.decd( rc.GetRC(index) , 6 )
    

    I'm guessing you're using a modified version of FullDuplexSerial. I'm hoping you'll either post the modified version let me know where I can find it.

    I figure I can just change it to the "dec" method to get it to compile.

    Thanks a bunch for posting this.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-05-26 14:23
    Jason,

    Another question for you. As I mentioned, I'm using SparkFun's ITG-3200 board. Do I need to make any changes to the board other than adding headers? I see there's a jumper on the bottom of the board to connect the CLK line to ground. From the product page:
    If you don't plan on using the CLKIN pin, you can short the jumper on the bottom of the board to tie it to GND.

    Edit: After reading the datasheet on the ITG-3200, it looks pretty clear I should short the jumper. I'm tying the VIO to VDD (since the Prop's logic is the same as the gyro's VDD).


    I'm planning on using the ITG-3200 on the Prop's I2C lines. Looking at your code I don't see a problem with this. It looks like the Prop reboots after any EEPROM writes so I shouldn't need to worry about the conflicting I2C drivers. Do you see any problem with using P28 & P29 for the gyro communication lines?

    Hope you're having a good weekend.

    BTW, HobbyKing has a much less expensive version of the ITG-3200 3205 breakout board. (Edit 3/27/13) I hadn't noticed the HobbyKing sensor is the ITG-3205 not the ITG-3200. I haven't figured out what the differences are between the two sensors.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-05-28 12:55
    I think the 3205 is compatible with the 3200, but I haven't tried it so I couldn't say for certain. I don't see any reason why the I2C bus for the gyro couldn't be shared with the eeprom as long as they have different device IDs. If I'm not mistaken, you'll also need a couple pull-up resistors on the I2C lines (if they aren't there already for the eeprom). I added SMT parts directly to the breakout board.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-05-31 14:17
    Thanks for the reply Jason.

    I had just about decided the 3205 and 3200 were about the same device. I'll probably order a 3205 from HobbyKing with my next order.

    I thought I'd mention, in case anyone else is using SparkFun's ITG3200 breakout board, the SparkFun board has one of the address pins pulled high so the SparkFun gyro's I2C address needs to be entered in to the gyro's driver.

    Here's the change I made to use the $69 address instead of $68:
    'These values are the 7 bit I2C device IDs, shifted up one so the read bit can simply be OR'd on 
    Gyro_ID                 long   $D2 '$D0                      '0x68 << 1                        
    

    I still haven't flown with the new code yet. I'm trying to make sure everything is connected correctly since I'm not using HoverFly board.

    Thanks again for posting your code Jason.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-06-03 02:56
    Hi Jason, me again,

    Is there a way to set the com port in your ground station program? I don't see it.

    I hope it doesn't have a problem with high com port numbers (I'm using COM28 on my quad).

    I noticed in your screenshot only the Y axis had a slope. Did you have the drift correction already configured for the X and Z axises in the PASM section when you ran your test?

    All three axises on my gyro have about the same amount of slope (though the Y slope is negative).

    Since I haven't been able to get your ground station software to work on my computer yet, I sent the raw gyro and temperature readings to the terminal and pasted the readings into a spreadsheet. This is what my graph looked like.

    attachment.php?attachmentid=102037&d=1370222996


    Column B is the X reading, F is the calculated line using the computed slope and intercept for the X axis. C and I are the Y graphs and D and L the Z.

    I had the speed controllers plugged in which caused some vibrations (the motors would spin a little as they beeped). It's still pretty clear there's a linear relationship between the temperature and the output from the gyro. My graphs with the ESCs unpluged are a bit cleaner but don't have the same range as the graph above (I both cooled the board and heated it for this test).

    Since there's extra time within the 250Hz read cycle, have you considered making multiple reads of the gyro and averaging them from within PASM?

    I was just reading in the datasheet to see if there would be a problem reading from the sensor without a pause between reads and I see the sensor has several filter settings. It looks like you're not using any of these on-chip filters but are using software filters. Have you tried any of the on-chip filters?

    If you haven't tried them, I may see if they make any difference once I'm airborne. I think I'm almost ready to fly now that I have some calibration data.

    It looks like the drift calculations are the parameters that are hardest to adjust without the your ground station program. I figure I can tweak the PID and gain parameters from within the program.

    I'm slowly feeling like I'm understanding the way your program works. I very much appreciate your willingness to share the code.
    737 x 431 - 37K
  • ratronicratronic Posts: 1,451
    edited 2013-06-03 11:17
    EDIT: See Jason's post below. I change one line in his source code as I always have more than one Propeller connected. This is the line in MainForm.cs -
    [FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]comm = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#020fc0][FONT=Consolas][SIZE=2][COLOR=#020fc0][FONT=Consolas][SIZE=2][COLOR=#020fc0]new[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]SerialPort[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]( Ports[0], 115200, [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Parity[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].None, 8, [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]StopBits[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].One );[/SIZE][/FONT][/SIZE][/FONT]
    

    Replace Ports[0] with your "COM28".

  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-06-03 12:37
    The code enumerates all your COM ports, but removes COM1 - COM4. It then uses the first one from the resulting list, so anything above the "built-in" ones should work. If you have two or more COM ports outside the 1-4 range, and your prop is plugged in to anything but the first one of them, it won't find it. I should probably make it a menu option or something.

    Also, my apologies to those who've tried to compile the code and had the decd() method fail. I have modified my local version of FullDuplexSerial to include a method to print a decimal number with a reserved number of characters. You can just change the call from .decd( ) to .dec( ) and remove the 2nd parameter. I'll fix it and re-upload it when I get a chance.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-06-03 13:00
    Duane Degn wrote: »
    I noticed in your screenshot only the Y axis had a slope. Did you have the drift correction already configured for the X and Z axises in the PASM section when you ran your test?

    All three axises on my gyro have about the same amount of slope (though the Y slope is negative).

    No, I had mine zero'd when I ran the test. Every gyro is different. My first gyro only needed drift compensation on one axis. My second needed it on all three, with two being the same slope and one being negative (like yours). My most recent one has all three with slightly different slopes.

    Duane Degn wrote: »
    Since I haven't been able to get your ground station software to work on my computer yet, I sent the raw gyro and temperature readings to the terminal and pasted the readings into a spreadsheet. My graphs with the ESCs unpluged are a bit cleaner but don't have the same range as the graph above (I both cooled the board and heated it for this test).

    You probably don't need as much range as you got. My line fit code will lock in *very* quickly as soon as a trend is present, and a bit of noise, as long as its consistent noise, won't hurt it. With the GroundStation running you can watch the line fit change as you heat / cool the board, and the numbers stabilize pretty fast.

    Duane Degn wrote: »
    Since there's extra time within the 250Hz read cycle, have you considered making multiple reads of the gyro and averaging them from within PASM?

    I'm not doing it on this one, but I have in the past. My first version actually took 2000 samples per second and did the SAR 3 in the cog. I can't tell if it made a difference or not. In my latest code, sampling the gyro, accel, and mag takes enough time that I had to lower the rate. I may try bumping it back up again just to see if it helps. The ITG 3200 can also do oversampling and low-pass filtering on its own, which I believe I'm actually using. If I'm not mistaken, it's set to do high-rate sampling (1Khz) and low pass it at 98Hz.

    From the code:
                            mov     i2cAddr, #22
                            mov     i2cValue, #$18+2        'DLPF_FS (DLPF_CFG = 2, FS_SEL = 3) = 1Khz sample, 98Hz lowpass
                            call    #i2cWriteRegisterByte
    
                            mov     i2cAddr, #21
                            mov     i2cValue, #3            'SMPLRT_DIV = 3(+1) = 1KHz / 4 = 250Hz sample rate
                            call    #i2cWriteRegisterByte
    

    I haven't verified this against the datasheet, but the comments claim that's what I'm doing. :)

    Duane Degn wrote: »
    It looks like the drift calculations are the parameters that are hardest to adjust without the your ground station program. I figure I can tweak the PID and gain parameters from within the program.

    I'm slowly feeling like I'm understanding the way your program works. I very much appreciate your willingness to share the code.

    Yeah, it's much easier with the GroundStation software, though you could do it from your set of sample data. Look at the source code for GroundStation, in the file LineFit.cs. The last function in there, ComputeLine(), is the one that computes the slope and intercept of the line from the samples. Each sample is a temperature, and x, y, z. The two sets of values it computes are exactly what you plug into the drift calculator in the ITG code. You can probably make Excel do the same math for you relatively easily.

    Happy to share the code. It wouldn't be where it is without the help and code of many other people. :)
  • johnl2johnl2 Posts: 2
    edited 2013-07-24 03:39
    Jason, my name is John and I am wondering if your code is fit for all of the sensors it says you can purchase for the Elev-8 on the outside of the box. For instance, could I setup my GPS with your code? Is it like the quadrino code with the Define code? Any help is GREATLY appreciated. And thank you for being the only one who took the initiative and wrote such complex code.

    John





    JasonDorie wrote: »
    I keep saying I'm going to do it, so here it is.

    This is my QuadX flight code for the Hoverfly Open board.

    This includes the GroundStation software (and C# source). All the pins used by the HoverFly Open board are documented in the main source file (called "Main - HoverFlyOpen.spin").

    This version uses the Gain channel the same way the HoverFly code does. Set the gain value on your transmitter to 20 or so as a starting point and increase it until it starts to oscillate, then back off a bit. The code is currently set up to use both sides of the gain switch - The positive side performs no gyro filtering, and the negative side runs a light low-pass filter on the gyro values, but the gain calculation is the same. I would actually recommend removing the filtering code and just having it let you choose between two different gain values to see which you like better. :) The filtering seems to make the controls a little mushy. You should do everything you can to reduce vibration on your quad before resorting to noise filtering.

    The included driver for the ITG3200 object has all the temperature drift values zeroed out. To calculate the proper ones for your board, plug your HoverFly board in to the USB connector, then run the GroundStation software and choose the "Drift Calculation" tab. With the board perfectly still, point a hair dryer or heat gun at it for a short time. You should see the gyro readings moving along a more or less straight line, and the program will line-fit your values and tell you the offset / slope numbers for each axis. Plug those in to the ITG-3200.pasm code at the end (it's well marked) and reload your HoverFly board with the result.

    QuadX-GroundStation-Preview3.png


    Questions & comments are welcome - I'm looking forward to feedback. Happy flying folks. :)
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-07-24 12:58
    johnl2 wrote: »
    Jason, my name is John and I am wondering if your code is fit for all of the sensors it says you can purchase for the Elev-8 on the outside of the box. For instance, could I setup my GPS with your code? Is it like the quadrino code with the Define code? Any help is GREATLY appreciated. And thank you for being the only one who took the initiative and wrote such complex code.

    John

    Since Jason hasn't answered I'll let you know what I think.

    No Jason's code can't be used with GPS right now. I'd be surprised if he doesn't plan to include it as some point in the future.

    The options listed on the ELEV-8 product page refer to the HoverFly boards. The HoverFly board with GPS is pretty expensive IIRC. Since the ELEV-8 uses normal hobby ESCs, you could use other controller boards with it.
  • ShawnaShawna Posts: 508
    edited 2013-07-24 18:50
    If I am not mistaking, the code Jason linked in post 1, uses only a gyro for stability. And from the looks of it, the code is using PD loops to calculate outputs for the motors. I can't remember which post of Jason's it is in, but he has videos of the quad flying.

    I agree with Duane, I would be willing to bet, that some day Jason will add GPS to his quad.

    Shawn
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-07-25 09:11
    Duane and Shawn are correct - my QuadX code uses only the gyro. It will be a while before I get to adding the GPS.

    J
  • BennyOBennyO Posts: 3
    edited 2014-01-02 20:43
    Hi Jason,

    First of all - thank you so much for sharing your code with the community! The QuadX-code is, to me, an excellent introduction to the propeller chip.

    So my fiancee gave me the Elev-8 for x-mas. This is my first encounter with the propeller chip so I pulled the documentation for the chip and the Spin-language/spin assemby, found some source code (yours) and started reading. I've had a lot of experience with different mcu's in the past, mostly ARM and PIC, so grasping the Propeller was fairly straight forward. Though one thing had me seriously confused..

    In the ITG-3200 driver you explicitly write that the code assumes a 80 MHz clock. Later on you set _clkmode = xtal1 + pll8x and _xinfreq = 5MHz which, if I've understood the documentation correct, will give a system clock of 40 MHz instead of 80. What am I missing here? I first thought the 40 MHz referred to the hub clock since that runs in system clock/2 speed, but that doesn't seem to be the case either.

    I'm sure that I'm just temporarily blind and that I'm missing something blatantly obvious but I would appreciate if you'd clear things up for me.. :)

    thanks in advance!

    Benny
  • BennyOBennyO Posts: 3
    edited 2014-01-03 09:46
    Nevermind.. I found what I was looking for in the Main file.. _clkmode = xtal1 + pll16x. :)

    //Benny
    BennyO wrote: »
    Hi Jason,

    First of all - thank you so much for sharing your code with the community! The QuadX-code is, to me, an excellent introduction to the propeller chip.

    So my fiancee gave me the Elev-8 for x-mas. This is my first encounter with the propeller chip so I pulled the documentation for the chip and the Spin-language/spin assemby, found some source code (yours) and started reading. I've had a lot of experience with different mcu's in the past, mostly ARM and PIC, so grasping the Propeller was fairly straight forward. Though one thing had me seriously confused..

    In the ITG-3200 driver you explicitly write that the code assumes a 80 MHz clock. Later on you set _clkmode = xtal1 + pll8x and _xinfreq = 5MHz which, if I've understood the documentation correct, will give a system clock of 40 MHz instead of 80. What am I missing here? I first thought the 40 MHz referred to the hub clock since that runs in system clock/2 speed, but that doesn't seem to be the case either.

    I'm sure that I'm just temporarily blind and that I'm missing something blatantly obvious but I would appreciate if you'd clear things up for me.. :)

    thanks in advance!

    Benny
  • JasonDorieJasonDorie Posts: 1,930
    edited 2014-01-03 13:53
    You've obviously figured it out, but for completeness, only the clock setting in the main file is used when building a project. The clock settings in the "driver" files are ignored. I ported the code between the Hoverfly board (10MHz crystal) and my own board (5MHz crystal) a few times, so the clock / pll settings in the sub-files probably got jumbled at some point.

    Happy to hear you're having fun with it!
  • rcamprcamp Posts: 2
    edited 2014-04-05 17:59
    Is this just the program? I have acquired a ELEV-8 and built it as a Hex-copter. It is controlled by the Hoverfly open board. I am able to control it via a Spektrum Dx6i transmitter receiver combination. What modifications did you have to do to make it run in autopilot. I have sent emails to tech support and they say it's not something that's supported, but they often link your link as a method of achieving the last step of my build for my Electronic Projects class. Any recommendations or assistance would be most appreciated.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2014-04-07 11:31
    This is just code that runs on the Hoverfly board, and provides the same flight functionality as the original code. Making a true autopilot will require additional sensors (most likely an accelerometer, magnetometer, altimeter, and GPS) and the code to fuse all of those together. This code is a starting point, and more of an introduction to performing flight control. Full autopilot is a very non-trivial thing.
  • Viva_TRS-80Viva_TRS-80 Posts: 2
    edited 2014-10-14 18:18
    I'm a newbe - so please be patient - and just started building v2 of the Quadcopter. One quick question - is the Hoverfly Open Source available?
  • trangertranger Posts: 179
    edited 2014-10-14 18:44
    I'm a newbe - so please be patient - and just started building v2 of the Quadcopter. One quick question - is the Hoverfly Open Source available?

    The source code for the firmware that ships on the Hoverfly Open is not available.

    -Russ
  • Viva_TRS-80Viva_TRS-80 Posts: 2
    edited 2014-10-15 17:43
    Got it - thanks
  • Ken GraceyKen Gracey Posts: 7,387
    edited 2014-10-15 20:19
    Jason, Parallax will be making our own flight controller this year, with a minimal set of hardware (as needed by our new target market for ELEV-8 Vs, education): gyro, accelerometer, barometric pressure sensor with additional expansion for GPS. We won't be using Hoverfly's code anymore, so we'll be on our own. Let me know if you're interested in helping us out here, as we need a larger official "team"! - Ken Gracey
  • JasonDorieJasonDorie Posts: 1,930
    edited 2014-10-15 22:09
    Yessir - Count me in.
  • trangertranger Posts: 179
    edited 2014-10-16 08:29
    Ken Gracey wrote: »
    Jason, Parallax will be making our own flight controller this year, with a minimal set of hardware (as needed by our new target market for ELEV-8 Vs, education): gyro, accelerometer, barometric pressure sensor with additional expansion for GPS. We won't be using Hoverfly's code anymore, so we'll be on our own. Let me know if you're interested in helping us out here, as we need a larger official "team"! - Ken Gracey

    This sounds like a good move.

    -Russ
  • icepuckicepuck Posts: 466
    edited 2014-12-02 18:58
    Ken Gracey wrote: »
    Jason, Parallax will be making our own flight controller this year, with a minimal set of hardware (as needed by our new target market for ELEV-8 Vs, education): gyro, accelerometer, barometric pressure sensor with additional expansion for GPS. We won't be using Hoverfly's code anymore, so we'll be on our own. Let me know if you're interested in helping us out here, as we need a larger official "team"! - Ken Gracey

    Will that be available as a board only? I recently got the ELEV-8 V2 Kit - No Flight Controller.
    -dan
  • Ken GraceyKen Gracey Posts: 7,387
    edited 2014-12-02 20:43
    icepuck wrote: »
    Will that be available as a board only? I recently got the ELEV-8 V2 Kit - No Flight Controller.
    -dan

    Of course! We're just doing the layout now so we're already getting started. I'll be sure that the Parallax Flight Controller (code name Navig8) specification is posted here on the forums for feedback, too. What you may want to do is start with the KK board and replace it with the Parallax Navig8 when it is ready.

    I promise to deliver you the most open, useful, and warrantied flight controller for the ELEV-8 V2.

    Ken Gracey
  • coderbadcoderbad Posts: 29
    edited 2015-05-18 09:18
    Duane Degn wrote: »
    Jason,

    Thank you very much for posting this. I dug my ITG-3200 breakout board out of a box yesterday so I can test out your code. I have a HoverFly Sport board but it's on my hexacopter so I thought I'd try your code on a DIY board (I'm using one of these with a Prop on it).

    When I tried to compile "Main-HoverflyOpen" I received a "Expected a subroutine name." error on line #571.
    dbg.decd( rc.GetRC(index) , 6 )
    

    I'm guessing you're using a modified version of FullDuplexSerial. I'm hoping you'll either post the modified version let me know where I can find it.

    I figure I can just change it to the "dec" method to get it to compile.

    Thanks a bunch for posting this.

    HI, I have the same problem, could you fix it ?
  • JasonDorieJasonDorie Posts: 1,930
    edited 2015-05-18 12:14
    Change the line of code to this:
    dbg.dec( rc.GetRC(index) )
    

    The DecD method is a custom one I added which outputs a fixed number of digits, regardless of the length of the number, making it easier to read values that are changing quickly, but it's not a functional requirement for the code.
Sign In or Register to comment.