This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
misc:hacks:betaflight [2017-04-07 16:41] theseankelly [Flashing] |
misc:hacks:betaflight [2017-04-23 17:12] theseankelly [Configuring Betaflight] |
||
---|---|---|---|
Line 4: | Line 4: | ||
One of the hallmark features of the Betaflight/ | One of the hallmark features of the Betaflight/ | ||
+ | |||
+ | ===== What's Supported ===== | ||
+ | This target currently supports basic functionality required to fly - motors, accel/gyro, LEDs, and handling of the syslink/ | ||
+ | |||
+ | The NRF51 code was intentionally left unchanged so all existing crazyflie clients ought to continue working without modification (including Bluetooth clients). However, currently only DeviationTx and the Android mobile app have been tested. Mileage on the other clients may vary -- please report findings in the forum. | ||
+ | |||
+ | The target currently doesn' | ||
+ | |||
====== Setup Instructions ====== | ====== Setup Instructions ====== | ||
Line 11: | Line 19: | ||
===== Building ===== | ===== Building ===== | ||
- | <WRAP center round info> | ||
- | TEMPORARY: As of this writing, the changes for the Crazyflie 2.0 target have not been merged back into the Betaflight repo -- temporarily working out of a [[https:// | ||
- | </ | ||
Execute the following from a bash shell (uses the same toolchain as the crazyflie-firmware project -- this can be done on the [[projects: | Execute the following from a bash shell (uses the same toolchain as the crazyflie-firmware project -- this can be done on the [[projects: | ||
- | - git clone https:// | + | - git clone https:// |
- | - git checkout cf2 | + | |
- export TARGET=CRAZYFLIE2 | - export TARGET=CRAZYFLIE2 | ||
- make | - make | ||
- | You should see " | + | You should see " |
===== Flashing ===== | ===== Flashing ===== | ||
- | To flash the board, follow the [[https:// | + | To flash the board, follow the [[https:// |
- | These instructions call for booting with the BOOT0 pin held high to boot the chip into DFU mode. The Crazyflie can be [[projects: | + | These instructions call for booting with the BOOT0 pin held high to boot the chip into DFU mode. The Crazyflie can be [[projects: |
Note: If you've previously installed the libusb-win32 driver on the Crazyflie 2.0 device node using Zadig in Windows, the driver must be changed before it will enumerate as a COM device after flashing. To change the driver, follow these steps: | Note: If you've previously installed the libusb-win32 driver on the Crazyflie 2.0 device node using Zadig in Windows, the driver must be changed before it will enumerate as a COM device after flashing. To change the driver, follow these steps: | ||
Line 33: | Line 37: | ||
- select 'let me pick from a list of available drivers on my computer' | - select 'let me pick from a list of available drivers on my computer' | ||
- select 'USB Serial Device' | - select 'USB Serial Device' | ||
+ | |||
+ | ===== Configuring Betaflight ===== | ||
+ | The defaults after flashing should be sufficient for flight. | ||
+ | |||
+ | Some things of note: | ||
+ | * It's suggested to change the brushed motor PWM to something higher to reduce audible noise - 24khz works well. | ||
+ | * Configured to use a TARGET_CUSTOM serial Rx protocol - this is a new feature in betaflight for the crazyflie so that the NRF51 firmware does not need to change. This option was very recently added to the betaflight/ | ||
+ | * PIDs have not been tuned for the crazyflie -- the stock PIDs seem to be doing quite well though. | ||
+ | |||
+ | ===== Configuring Transmitter ===== | ||
+ | The NRF51 defaults to 2mbps, channel 2. | ||
+ | |||
+ | To use a client that uses the legacy commander packet type (cfclient, mobile apps, older versions of DeviationTx) ensure the max roll/pitch angles are set to 50.0 degrees and the max yaw rate is set to 400deg/s. The handler for this packet type rescales the degree setpoint into a PWM-style value (range of 1000-2000) and assumes these values as max values when making the conversion. Using other values should work but might produce unexpected results. | ||
+ | |||
+ | Using the new CPPM Emulation commander type (supported in [[https:// | ||