SMALL - espritmodel.com SMALL - Telemetry SMALL - Radio
Reply
Thread Tools
Old Oct 22, 2011, 12:07 AM
Enjoying the sunshine
HappySundays's Avatar
Australia, NSW, Sydney
Joined Feb 2011
2,952 Posts
Discussion
NeXtcopterPlus open-source release for KK and KK+ boards

Introduction
The NeXtcopter open source code for the KK boards was just a starting point for my ultimate goal: bringing the much-requested auto-level feature to KK-level boards.
Over the last few months I have been working on bringing the most current open-sourced KK software up to date. Along the way a number of great new features, some unique to NeXtcopter Plus, have been added.
These include:
- Autolevel (switch selectable in-flight)
- PID loop control on all axis (PI for auto-level)
- Support for accelerometers and auto-level functions
- Support for Dan's MEMS board
- Custom MultiWii GUI interface for use with serial adapters or potentially bluetooth
- Simple LCD menu system for on-field adjustments without a laptop
- Low Voltage Alarm support for LEDs or piezo buzzer
- Support for CPPM receivers with up to 8 channels
- Lost model alarm

A number of changes have been made to the way the code runs:
- Motor control no longer dictates how much processing time is available
- ESC rate varies depending on the flight mode
- RC inputs were originally compressed into 8 bits but now are processed without loss of resolution

While I started with a hand-made acc board add-on. The final version will uses Dan's MEMS module.
Here is Dan's MEMS module on my copter.


Here is a picture of the GUI showing the gyro and accelerometer outputs being graphed on screen.


The code compiles to about 83% capacity of the Atmega168 so there is still some scope to experiment and add features
Currently the code can be compiled to suit Quad +, Quad-X, Hex, Hex-X and Y4 multicopters.
Hopefully, others may add support for the other types in time.

The most up-to-date source code is available at the repository here.
I'm a firmware developer, not a pilot so the code is largely untested and has a lot of tuning to be done.
I have flown my quad using this software in Quad-X configuration and it seems to fly very well.

I hope that this release is of interest to people interested in the code and to those keen to experiment! Please note that the NeXtcopter Plus code is protected under the GNU General Public License v3.0.
Feel free to use the code as you like as long as the resultant code remains open source.

Hardware requirements
Will this code run on a regular KK board?
Not fully. You need a few things on the board to set it up and for the accelerometer functions to work.
- LCD or GUI interface. The code outputs both the LCD and GUI serial data out the MISO line.
You need a board with access to that pin on the interface header.
- 2-axis Accelerometer. Required for the auto-level to work.
I have connected the X and Y outputs of the accelerometer to the Pitch and Roll gain pot inputs.
You have to disconnect the pot circuitry from these inputs.
The simplest way to do this will be with Dan's MEMS module that is currently in development.
- Atmega168 or larger

Please see my blog for details on how to modify your KK+ or Blackboard to use an accelerometer.

What do I need to get the GUI running?
You need a MKUSB-type serial interface for the GUI to communicate to the board.
Because of the limitations of the KK board, a non-standard cable is required.

The connections you need are as follows:
From: KK+ To: MKUSB X3 port (Note X3 port NOT X2 port)
Pin 8 receive Pin 8 transmit
Pin 9 transmit Pin 3 receive
Pin 10 ground Pin 10 ground
Pin 2 +5V Pin 2 +5V

Here is a shot of my very simple serial cable.


It's a very simple cable and once you've played with the GUI for a while you'll love it.
Dan's KK+ boards have both the LCD and serial ports available and has made accelerometer connection easy.
This is what I have used to develop the code.

What do the Gain pots do?
Roll Gain: Not used
Pitch Gain: Not used
Yaw Gain: used to select ESC cailbration mode or Stick centering mode at power-on

How to set up your KK+ board to fly for the first time
The following procedure must be carried out in a windless environment.
1. Place the copter on a level surface.
2. Select "Calibrate acc" from either the GUI or the LCD menu.
3. Select "Center sticks" from either the GUI or the LCD menu.
4. Fly in normal mode, trim with TX until close to stable. This trims out Gyro offsets.
5. Land, switch to auto-level mode.
6. Hover and take note of the direction that the copter tends towards when hands off.
7. Land, adjust the Acc trim amounts in very small increments for both PITCH and ROLL.
8. Hover in auto-level again and see how the adjustment went.
9. Repeat until the copter is optimally set up.

About the Auto-level function
An auto-level feature is not magic nor is it an auto-pilot.
It will not make your copter hover magically on the spot.

What it will do is keep your copter close to level in the absence of pilot input and to a certain extent even with wind gusts.
You will still need to keep your copter under the same close control as you would always do.

Think of it like stability control fitted to many modern cars.

Using the LCD menu
You can use the standard LCD module that Dan supplies, or the Sparkfun serial LCD module.
The module must support 9600bd. Please bear in mind that if you accidentally have the LCD module attached as well as the GUI running (via the serial cable) the LCD could become corrupted by the stream of serial data, and may even reprogram it to a different interface speed. Do try and make sure the LCD is only used *away* from your PC.

To enter the LCD menu, first make sure that your LCD module is connected, then power up your copter.
Hold PITCH UP and YAW RIGHT simultaneously to enter the LCD menu. The LCD will display "NeXtcopter Menu".

The LCD menu is fairly self-explanatory:
Pitch forward/backwards to move up/down menu items.
Roll left/right to increase/decrease values. Note that there are four speeds depending on the stick position.
Yaw left to save the setting to EEPROM.
You have to save each entry you change. If you move to a new menu item before saving, your changes will be forgotten.

To exit the LCD menu, hold PITCH DOWN and YAW RIGHT simultaneously. The LCD will go blank and you can now power off and disconnect it. If you like you can leave it connected and fly with it like I do

Using the GUI
The MultiWii GUI is a great tool for visualising the sensors on your copter and to not just set, but experiment with PID settings and simulate them on-screen. The limitations of the KK design mean that I have to use a software UART to transmit data back to the GUI. Various KK boards will run at different speeds so it is likely that your board will have to be tuned. Fortunately, with the GUI this is relatively easy. You only have to do the Autotune once, unless you re-flash the board, or click on the "Defaults" button, which resets the eeProm values. The procedure to auto-tune is detailed later in this document.

Please note that the MultiWii GUI is Java-based and quite CPU intensive. Using the GUI while running too many applications might cuse it to slow.

1. Make sure your MKUSB and cable are connected to your PC and the KK+.
2. Power up the KK+ board.
3. Run the MultiWiiConf_Next.exe file. Make sure your COM port is listed in the GUI.
4. Click on the COM port and make sure it turns green.
5. Click on the START button and data should start to be transferred to the GUI.
The graph will start to move to the right and the "Cycle Time" will update.
Try moving the KK+ board and see the gyro and acc outputs displayed on the graph.
Note that unless you have previsously calibrated the accelerometers, these will not be displayed correctly.
6. Click on READ under "Flight parameters". Now, all the PID etc data from the KK+ is transferred to the screen.
7. You can modify the data by clicking on each box and moving the mouse left or right.
To save any data, first STOP the graph, then click on WRITE.
8. You can now ARM the KK+ with your transmitter.
9. Increase the throttle. Now you can see the motor outputs start up as if the KK+ is flying.
The motor outputs are disabled when in GUI mode, but please take care when arming your copter at *any time*.
If you are not actually in GUI mode, then your copter will then be armed and dangerous, so to speak.

How to auto-tune:
1. Make sure your MKUSB and cable is connected to your PC and the KK+.
2. Power up the KK+ board.
3. Run the MultiWiiConf_Next.exe file.
4. When it opens, select the COM port from the list on the left top. The port number should turn green.
Do NOT click on anything else yet.
5. Click on the button labelled "KK". If you move the mouse away from the button, you will notice that it has turned orange.
Please check that the TX LED of the MKUSB is flashing very fast.
6. On the transmitter, go into AUTOTUNE mode by holding both ROLL and YAW left for a few seconds.
If you have some channels reversed, this may be different.
You can tell that you are in AUTOTUNE mode because the LED will flash about 12-13 times.
When the autotune has finished, the LED will flash one long flash.
The software will save the successful numbers into eeProm. The autotune process takes less than 10 seconds.
7. Click on the button labelled "KK". If you move the mouse away from the button, you will notice that it has turned back to green.
Please check that the TX LED of the MKUSB has STOPPED flashing.

Additional features of the GUI:
Stick centering: You can calibrate the stick center position with a single click on the "Calibrate Sticks" button.
Gyro calibration: You can calibrate the gyros with a single click on the "Calibrate Gyros" button.
Acc calibration: You can calibrate the accelerometers with a single click on the "Calibrate Acc" button.
LVA: You can see the current battery voltage, and set the low-voltage warning trigger level. You can also set it up to alert you via the buzzer output of via LEDs. In buzzer mode the buzzer is quiet normally and beeps rapidly when the battery voltage falls below the trigger level. In LED mode the output is ON normally and flashes slowly when the battery voltage falls below the trigger level.

Using the LVA:
The default mode for LVA is BUZZER mode and the trigger is 0 Volts.
While you can change the LVA mode and trigger at any time, the graph must be running to see the VBAT updating.
1. Click and drag the LVA numbers until the trigger is higher than your VBAT value.
2. Click on WRITE. The alarm should start beeping quickly.
3. Reduce the LVA value to less than the VBAT.
4. Click on WRITE. The alarm should stop beeping
5. Click on the MODE button to change the text to LED.
6. Click on WRITE. The alarm will sound continually, or the LEDs will be ON.
7. Click and drag the LVA numbers until the trigger is higher than your VBAT value.
8. Click on WRITE. The alarm should start beeping at 1Hz, or the LEDs will be flashing.

If you'd like to try this firmware, PLEASE be sure to run through all the power-up settings (particularly ESC calibration) before attaching props to your multicopter.

Power-up settings
Stick Centering:
Set YAW pot to maximum. All TX sticks and trims to centre. Power up. LEDs flash 5 times then one long flash when the settings are saved. Power down. Return pot to previous settings. You can also stick center via the LCD or the GUI.

ESC throttle calibration:
Set YAW pot to minimum. Set TX throttle to maximum. Power up. Wait for the ESC signal (double beep). Set the TX throttle to zero. Wait for the ESC confirmation signal. Power off. Return pot to previous settings.

Stick settings
Arming/disarming is done in the usual way. Hold minimum throttle and move the Yaw stick fully left/right to arm/disarm. Check your radio for possible stick reversal.

A number of preset stick sensitivity flight modes are available. These are selectable by moving the pitch stick forward or backwards while arming.

Acro mode: Pitch forward while holding left to arm. LED will flash 5 times then turn ON.
Warthox mode: Pitch back while holding left to arm. LED will flash 3 times then turn ON.
Normal mode: Pitch neutral while holding left to arm. LED will flash once then turn ON.

There are three more special modes that are selected via sticks.

Autotune mode: YAW LEFT + ROLL LEFT <-- Only for tuning your KK board to the GUI. Do not fly in this mode.
LCD menu mode: YAW RIGHT + PITCH FWD
Exit LCD menu: YAW RIGHT + PITCH BACK

Videos
1. Initial programming and setup
Setting up the NeXtcopterPlus - Part 1 (1 min 55 sec)


2. Setting up using the LCD
NeXtcopterPlus LCD setup (3 min 26 sec)


3. Setting up using the GUI
NeXtcopterPlus setup via GUI (5 min 10 sec)


4. NeXtcopterPlus V1.1f field testing
NeXtcopterPlus_V1_1f Field testing (1 min 21 sec)


5. Hovering stability:
NeXtcopterPlus hovering demo (1 min 23 sec)


A note about compiling the code
In the file io_cfg.h there are some important switches.
In the following example the code will compile a .hex file for a normal KK+ board in QUAD_X configuration, for normal Receivers and with no MEMS module. Uncomment CPPM_MODE if you'd like to try a CPPM Rx on CH2, and uncomment MEMS_MODULE in the event that you own one of Dan's MEMS modules.

//#define QUAD_COPTER // Choose this for + config
#define QUAD_X_COPTER // Choose this for X config
//#define HEXA_COPTER // Choose this for Hexacopter
//#define HEXA_X_COPTER // Choose this for Hexacopter X
//#define CPPM_MODE // Uncomment this for PPM support on CH2 (elevator)
//#define MEMS_MODULE // Uncomment this when using the MEMS module

Version History
// V1.0a Based on NeXtcopter V1.0a code
// V1.1a Includes PID loop control on all axis
// Added code for accelerometers and auto-level functions
// Added support for custom MultiWii GUI
// Added LCD menu system
// Added Low Voltage Alarm support for LEDs or piezo buzzer
// Increased RC input resolution through the FC calculations
// V1.1b Fixed D-term, rate set bugs. Autolevel now 2 x PI loops
// Added support for 8-ch CPPM input on ELEV input (use CPPM_MODE define)
// Removed UFO mode, replaced with Warthox mode
// Moved all menu text and support routines to Program memory
// V1.1c Added exponential rate system. Autotune now updates LCD TX rate
// Added formatted battery voltage displays to menu
// Added support for V1.1 MEMS module (use MEMS_MODULE define)
// V1.1d Preliminary support for proximity module (use PROX_MODULE define)
// Height set when entering HeightHold mode (CH7 > 50%)
// Added Hexacopter, Hexacopter-X support, Vref now assumed to be 2.4V
// V1.1e Added exponential setting for accelerometer.
// Added GUI lockout after about 10 seconds after power-up.
// Added lost model alarm. Fixed stick centering bug.
// V1.1f Fixed GUI lockout bug when disarming during GUI mode.
// Fixed clashing LVA and lost model alarms.
// V1.1g Updated default PID settings. Fixed GUI cycle count.
// Changed "Normal" sensitivity mode to "User" mode, fixed mode change issues.
// Added experimental Y4 mode. Added CH5 input on M6 option in quad, Y4 modes.
// As autolevel now switchable with both CPPM and 5-channel PWM, removed
// Autolevel arming mode.
// Note that V1.1g is made to work with V0.3 of the GUI.

Which .hex file do I need?
1. PWM RX, accelerometer fitted, but no MEMS board
NCP_V1_1G_QUADX_PWM_STD.hex <- Quad X
NCP_V1_1G_QUADP_PWM_STD.hex <- Quad +
NCP_V1_1G_Y4_PWM_STD.hex <- Y4
Connect any spare output from your RX to M6 of the KK board to switch Autolevel on/off. Hex and Hex-X owners need to use a CPPM-capable receiver.

2. PWM RX and MEMS board
NCP_V1_1G_QUADX_PWM_MEMS.hex <- Quad X
NCP_V1_1G_QUADP_PWM_MEMS.hex <- Quad +
NCP_V1_1G_Y4_PWM_MEMS.hex <- Y4
Connect any spare output from your RX to M6 of the KK board to switch Autolevel on/off. Hex and Hex-X owners need to use a CPPM-capable receiver.

3. CPPM RX, accelerometer fitted, but no MEMS board
NCP_V1_1G_QUADX_CPPM_STD.hex <- Quad X
NCP_V1_1G_QUADP_CPPM_STD.hex <- Quad +
NCP_V1_1G_HEX_CPPM_STD<- Hex
NCP_V1_1G_HEX_X_CPPM_STD<- Hex X
NCP_V1_1G_Y4_CPPM_STD.hex <- Y4
Connect the CPPM output from your RX to the ELE input of the KK board. CH5 switches Autolevel on/off. Ensure that your channel order is Throttle, AIleron, Elevator, Rudder on your TX.

4. CPPM RX and MEMS board
NCP_V1_1G_QUADX_CPPM_MEMS.hex <- Quad X
NCP_V1_1G_QUADP_CPPM_MEMS.hex <- Quad +
NCP_V1_1G_HEX_CPPM_MEMS <- Hex
NCP_V1_1G_HEX_X_CPPM_MEMS <- Hex X
NCP_V1_1G_Y4_CPPM_MEMS.hex <- Y4
Connect the CPPM output from your RX to the ELE input of the KK board. CH5 switches Autolevel on/off. Ensure that your channel order is Throttle, AIleron, Elevator, Rudder on your TX.

4. Old NeXtcopter1.0a files for historical interest
NeXtcopter_m168_Quad.hex <- Quad X
NeXtcopter_m168_QuadX.hex <- Quad +
HappySundays is offline Find More Posts by HappySundays
Last edited by HappySundays; May 18, 2012 at 07:13 PM. Reason: Release of V1.1g
Reply With Quote
Sign up now
to remove ads between posts
Old Oct 22, 2011, 02:19 AM
Plane and multirotor's - FPV
DrEvil's Avatar
Moss, Norway
Joined Jun 2007
855 Posts
Subscribe :-)

KKai
DrEvil is offline Find More Posts by DrEvil
Reply With Quote
Old Oct 22, 2011, 02:37 AM
Registered User
Chris Burton's Avatar
Joined Jan 2009
1,128 Posts
Wow, really cool stuff!
Chris Burton is offline Find More Posts by Chris Burton
Reply With Quote
Old Oct 22, 2011, 01:53 PM
Robots... robots everywhere
minifly's Avatar
Cape Town, South Africa
Joined Jan 2003
2,060 Posts
Awesome stuff. I got hold of the Pololu mini-IMU9 as well as a KK+ board and avr programmer, but it seems that the MEMS gyros that the kk+ supports are analogue input, not i2c. So now I'm a bit stuck, might even roll my own with my psoc3 first touch starter kit. Until then I'll just have to live with piezo gyros and no auto-stabilization.

I haven't had time to look into the IO of the KK+ board, but I'm good at programming (although no experience with AVRs). Do you know what IOs are available that I could use to do i2c to the gyro board?
minifly is offline Find More Posts by minifly
Reply With Quote
Old Oct 22, 2011, 03:38 PM
Enjoying the sunshine
HappySundays's Avatar
Australia, NSW, Sydney
Joined Feb 2011
2,952 Posts
Quote:
Originally Posted by minifly View Post
I haven't had time to look into the IO of the KK+ board, but I'm good at programming (although no experience with AVRs). Do you know what IOs are available that I could use to do i2c to the gyro board?
Hello, thanks for your interest. On KK boards, the SCL and SDA pins that are used for i2c (PC4 and PC5) are connected to the analog gain pots for pitch and yaw.
You can gain access to this IO on a KK+ board just by removing two zero-ohm resistors.
This is what I did on my NeXtcopterPlus project. My analog accelerometer inputs go to PC3 and PC4, which used to be the gain pots for roll and pitch. I just removed the associated resistors and connected the accs to the handy external breakout points that Dan has made available.
In the same way, you have 5V, 3V and effectively, SDA and SCL available on the external breakout points once you remove R11 and R15.

I don't know of anyone trying to add i2c to the KK code. One problem with i2c is that it has a very low clock speed (I think 100kHz max). In the little KK board, there is not much time to do much processing inside each 2ms loop.

Personally if I were you I'd look at a more up-to-date platform to develop on. I'm doing this *because* it's a challenge, not because it is easy .
Good luck and let us know how you go.
HappySundays is offline Find More Posts by HappySundays
Reply With Quote
Old Oct 22, 2011, 06:44 PM
Registered User
Joined Sep 2011
188 Posts
subscribed
ezmobius is offline Find More Posts by ezmobius
Reply With Quote
Old Oct 23, 2011, 12:13 AM
Registered User
Joined Sep 2011
324 Posts
agreed that adding accel is tough on this chip due to lack of processing power. I've been looking through uavx and this code base, and learning, and main processor on KK board is getting dated for the things we want to add. it does well enough for gyro only, but adding more functionality is tough without heavy performance hit. better to go with different main processor to start with IMHO.
Centurion1 is offline Find More Posts by Centurion1
Reply With Quote
Old Oct 23, 2011, 12:50 AM
manuLRK
Belgium
Joined Sep 2004
1,529 Posts
Can somebody tell me the MINIMUM sampling rate the sensors / inputs should have to make a flyable multi?
Rx : 350 Hz
Gyro :
Acc :
Baro :
GPS : 5 Hz
...

It would be nice to have intelligent sensors, configurable , that provide past , current and future values... (PID ?), ..., and in your old, obsolete, master mcu, just ask the required values when it needs it..., so only calculation logic...


manuLRK

Quote:
Originally Posted by Centurion1 View Post
agreed that adding accel is tough on this chip due to lack of processing power. I've been looking through uavx and this code base, and learning, and main processor on KK board is getting dated for the things we want to add. it does well enough for gyro only, but adding more functionality is tough without heavy performance hit. better to go with different main processor to start with IMHO.
alll is offline Find More Posts by alll
Reply With Quote
Old Oct 23, 2011, 01:05 AM
Registered User
Joined Sep 2011
324 Posts
I believe most will sample based on esc refresh rate since that is the main loop. Intelligent sensor require its own processing. Cheaper to have single main processor that does all the work in most cases.
Centurion1 is offline Find More Posts by Centurion1
Reply With Quote
Old Oct 23, 2011, 01:24 AM
hacker
Canada, BC, North Vancouver
Joined Dec 2010
935 Posts
Hello! As far as I can see, this is a cleanup of existing code, and it looks nice. However, I don't understand why people keep splitting out the code into multiple files. If you keep everything in one file (or even static inlines in headers if you really want to split/abstract it), and mark the functions static, the compiler can optimize the whole thing. This saved a significant percentage of space when I did it on my xx fork (https://github.com/sim-/kk). Anyway, thanks for the effort!
simonk is offline Find More Posts by simonk
Reply With Quote
Old Oct 23, 2011, 02:00 AM
Enjoying the sunshine
HappySundays's Avatar
Australia, NSW, Sydney
Joined Feb 2011
2,952 Posts
Quote:
Originally Posted by simonk View Post
Hello! As far as I can see, this is a cleanup of existing code, and it looks nice. However, I don't understand why people keep splitting out the code into multiple files. If you keep everything in one file (or even static inlines in headers if you really want to split/abstract it), and mark the functions static, the compiler can optimize the whole thing. This saved a significant percentage of space...
Hi Simon, I think I mainly split it up from habit. I get easily confused by large chunks of code and much prefer it in smaller sections. I would have thought the compiler would have been smart enough to optimise it as well as in one chunk but thanks for the idea.
I gave up on fitting the code into an Atmega48 so size is less of an issue. Once I get close to the next limit I might have to start optimising .
HappySundays is offline Find More Posts by HappySundays
Reply With Quote
Old Oct 23, 2011, 02:16 AM
manuLRK
Belgium
Joined Sep 2004
1,529 Posts
Are using functions a good way to "structure" the code (remove all similar code lines)
int16 ReadGyro(int8 gyro)
blablabla
readADC gyro

instead of

//Roll
blablabla;
readADC ROLL

same blablabla
readADC PITCH

...
?
Are they using much more space, or dramatically reduce processing time?

Thanks

manuLRK
PS: personally i hate 1 big main...

Quote:
Originally Posted by simonk View Post
Hello! As far as I can see, this is a cleanup of existing code, and it looks nice. However, I don't understand why people keep splitting out the code into multiple files. If you keep everything in one file (or even static inlines in headers if you really want to split/abstract it), and mark the functions static, the compiler can optimize the whole thing. This saved a significant percentage of space when I did it on my xx fork (https://github.com/sim-/kk). Anyway, thanks for the effort!
alll is offline Find More Posts by alll
Reply With Quote
Old Oct 23, 2011, 02:29 AM
That tree again!!!!
thanhTran's Avatar
Germantown, MD, US
Joined Sep 2004
6,642 Posts
Splitting to many files saves me time when I work with them. For example if I change line 400 of file A and line 100 of file B in separate windows, after I test the changes, I can go back exactly to where I did the changes earlier without even scrolling or searching.

I'm pretty sure you already know the source file separation benefit which saves compilation times for big projects

Love your github home Simon. Saw the work you did for Mike's KK port C code and for the Atmel base ESCs.

-Thanh
thanhTran is offline Find More Posts by thanhTran
Reply With Quote
Old Oct 23, 2011, 02:39 AM
That tree again!!!!
thanhTran's Avatar
Germantown, MD, US
Joined Sep 2004
6,642 Posts
This looks really nice HappySundays.
I'm wondering what you think of the copter behavior between having only PI and having PID?

I've been adding "I" to my palm sized copter, but was wondering if I should add "D" as well.

Thanks

-Thanh
thanhTran is offline Find More Posts by thanhTran
Reply With Quote
Old Oct 23, 2011, 04:51 AM
Enjoying the sunshine
HappySundays's Avatar
Australia, NSW, Sydney
Joined Feb 2011
2,952 Posts
Quote:
Originally Posted by thanhTran View Post
This looks really nice HappySundays.
I'm wondering what you think of the copter behavior between having only PI and having PID? I've been adding "I" to my palm sized copter, but was wondering if I should add "D" as well.
Hi Thanh,
Good question! I did an experiment yesterday. I commented out all but P, then I and finally D, to make sure each part was doing its job.
The P part is easy. The I term behaves quite differently but is also easy to check. The D term however... with what I understand to be an appropriate amount of D mixed in, I could see no D coming through at all, even at high rpm and very large gyro input. So, I kept multiplying the D term until I could see an output. Eventually, at extremely high gain, I could see an output whenever the gyro reading was accelerating.
The whole point of the D term is to keep tabs on the rate of change of the rotation rate. If I use similar rates to other FC projects, it would be hard to imagine any significant D term component at all. In a rapidly-changing quadcopter I think that the D term is not so important, but the code is there and it does work with appropriate settings.
Time will tell if it's worth wasting processor time on
HappySundays is offline Find More Posts by HappySundays
Reply With Quote
Reply


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion Good UK source for breakout boards? Katch Multirotor Talk 0 Aug 08, 2011 06:20 AM
Sold 2 x kk Boards for sale plus bonus! final price drop!!! tc3wins Aircraft - Electric - Multirotor (FS/W) 4 Jul 20, 2011 06:12 PM
Sold SMD & TH components for KK Boards km28104 Aircraft - Electric - Multirotor (FS/W) 0 Jun 12, 2011 12:18 PM
Question Open Source Octo Design Available...Looking for someonw who can cut a copy for me... Schatham421 Multirotor Talk 14 Apr 12, 2011 05:22 PM