This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
silf4ware [2020/04/28 14:09] d7ab6ba3 |
silf4ware [2020/07/09 12:36] (current) d7ab6ba3 [Gestures] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* [[https:// | * [[https:// | ||
- | ===== Receiver | + | ===== Supported Hardware |
- | ==== NRF24 ==== | + | For wiring receiver modules, see [[: |
- | The mini module is the lightest option and is recommended for micro quads. The module with PA+LNA | + | ^Flight Controller^Weight^Notes^Board Pinout| |
+ | |Omnibus|3.2g| |[[https:// | ||
+ | |NOXE (first version)|3.4g (?)| |[[https:// | ||
+ | |NOXE v1|4.3g (? | ||
+ | |F4-XSD|4.2g|[[https:// | ||
- | **Mini ** | + | ^Receiver^Weight^Notes^Source| |
+ | |NRF24 | ||
+ | |NRF24 PA LNA (GT-24)|1.1g|[[https:// | ||
+ | |XN297| | |Can be harvested from toy transmitters like H101, H8, …| | ||
+ | |XN297 DIY PCB| | |[[https:// | ||
+ | |XN297| |untested|[[https:// | ||
- | * Weight: 0.49g | + | ===== Configuration ===== |
- | * It can be found using " | + | |
- | * [[https:// | + | |
- | * where to cut PCB for adding a wire antenna: [[https:// | + | |
- | **PA LNA (GT-24) ** | + | ==== Overview ==== |
- | * Weight: 1.08g | + | ^Configuration Type^Filename| |
- | * It can be found with " | + | |Main|config.h| |
- | * It is possible to use a U.FL antenna when moving one component, see the picture in [[https://www.rcgroups.com/forums/showpost.php? | + | |Battery|battery.c| |
+ | |Radio|radio_config.txt ([[https://github.com/markusgritsch/SilF4ware/ | ||
+ | |Dshot Driver Selection|hardware.h| | ||
+ | |Dshot Driver Configuration|depends on driver selection: drv_dshot_bidir.c (RPM Filter), drv_dshot_dma.c (DMA), drv_dshot.c (Conventional Dshot)| | ||
+ | |PID|Basic PIDs are set in the main config file| | ||
+ | |PID Advanced Configuration|pid.c| | ||
+ | |PID Level Mode Configuration|angle_pid.c| | ||
- | ==== XN297 ==== | + | ==== Basic Configuration |
- | * Can be harvested from toy transmitters like H101, H8, … | + | === Battery Cell Count === |
- | * [[https:// | + | |
- | * There is a XN297L module commercially available ([[https:// | + | |
- | ===== Flight Controller ===== | + | Default setup is configured for 4S batteries. Make sure to adjust CELL_COUNT_UNSCALED in battery.c if needed, e.g. for a 2S setup: |
+ | < | ||
- | ===== Basic Configuration ===== | + | #define CELL_COUNT_UNSCALED 2 // Voltage divider, idle_offset, |
- | Main configuration is done in SilF4ware/config.h. | + | </code> |
- | ==== Receiver | + | === Receiver === |
The default configuration is setup for NRF24 modules. If using a NRF24 module with PA LNA, it is recommended to adjust TX_POWER in SilF4ware/ | The default configuration is setup for NRF24 modules. If using a NRF24 module with PA LNA, it is recommended to adjust TX_POWER in SilF4ware/ | ||
- | < | ||
+ | < | ||
#define TX_POWER 1 // 0 .. 3 (use 1 when using an nRF24L01 PA LNA module) | #define TX_POWER 1 // 0 .. 3 (use 1 when using an nRF24L01 PA LNA module) | ||
Line 46: | Line 57: | ||
If using a XN297 module, see [[https:// | If using a XN297 module, see [[https:// | ||
- | ==== Battery Cell Count ==== | + | === Dshot === |
- | Default setup is configured for 4S batteries. Make sure to adjust CELL_COUNT_UNSCALED in SilF4ware/ | + | Default setup is configured for using Dshot with RPM Filter. If using this configuration, |
< | < | ||
- | #define CELL_COUNT_UNSCALED 2 // Voltage divider, idle_offset, | ||
- | |||
- | </ | ||
- | ==== Dshot ==== | ||
- | |||
- | Default setup is configured for using Dshot 300+RPM Filter. If using RPM Filter, the number of magnets on the motor bell needs to be configured correctly in SilF4ware/ | ||
- | |||
- | < | ||
#define MOTOR_POLE_COUNT 14 // usually on 22xx motors and above | #define MOTOR_POLE_COUNT 14 // usually on 22xx motors and above | ||
// #define MOTOR_POLE_COUNT 12 // usually on 18xx motors and below | // #define MOTOR_POLE_COUNT 12 // usually on 18xx motors and below | ||
Line 64: | Line 67: | ||
</ | </ | ||
- | If using conventional D-Shot, adjust SilF4ware/hardware.h: | + | Other Dshot drivers can be selected in hardware.h: |
< | < | ||
Line 72: | Line 75: | ||
</ | </ | ||
- | ==== 2D/3D Flying | + | |
+ | === 2D/3D Flying === | ||
3D flying is enabled by default. If using a 2D setup, following changes are needed: | 3D flying is enabled by default. If using a 2D setup, following changes are needed: | ||
Line 85: | Line 89: | ||
</ | </ | ||
- | In the dshot configuration file (when using RPM Filter: drv_dshot_bidir.c): | + | In the dshot configuration file (e.g. when using RPM Filter: drv_dshot_bidir.c): |
< | < | ||
Line 92: | Line 96: | ||
</ | </ | ||
- | ==== Misc ==== | + | |
+ | === Misc === | ||
* Props out configuration is enabled by default (comment INVERT_YAW_PID to disable it) | * Props out configuration is enabled by default (comment INVERT_YAW_PID to disable it) | ||
* Default rates are very high, adjust them if needed | * Default rates are very high, adjust them if needed | ||
- | * PID configuration for acro mode is done in SilF4ware/ | ||
- | ==== Analog Aux Channels | + | ===== Compiling & Flashing ===== |
- | Quoting from [[https:// | + | It is recommended to use STM32CubeIDE for compiling SilF4ware. Keil uVision can also be used, but it produces some non-working binary when using lot's of RAM. Change FFT_SIZE in fft.h to 2048 when using Keil. |
- | The variables aux_analog[ 0 ] and aux_analog[ 1 ] hold a value between 0.0 and 2.0 which you can use in various places in the code. Per default they are used to tweak Kp and Kd respectively. If you want to use them for something else, change | + | Flashing |
- | Now you could use aux_analog[ 0 ] and aux_analog[ 1 ] for example to tune the filter frequency by adding it to config.h like this: | + | ===== Using ===== |
- | < | + | |
- | #define GYRO_LPF_2ND_HZ_BASE 400 * aux_analog[ 0 ] | + | ==== Gestures ==== |
- | #define GYRO_LPF_2ND_HZ_MAX 400 * aux_analog[ 1 ] | + | |
- | </ | + | When you are used to use other silverware branches, please note that the gestures for PID tuning are swapped. |
- | The possibilities are endless :) | + | |LRU|reboot flight controller| |
+ | |LRD|switch to DFU mode| | ||
+ | |LLU|switch to motors test mode| | ||
+ | |LLD|exit motors test mode| | ||
+ | |UUU|toggle autobind flag (remember to save with DDD)| | ||
+ | |UDD|switch to the next PID column| | ||
+ | |UDU|switch to the next PID row| | ||
+ | |DDD|save configuration| | ||
- | ===== Using ===== | ||
- | ==== Gestures | + | ==== Motors test mode ==== |
- | * PID Tuning: some gestures have been swapped in comparison to other silverware branches: UDD switches | + | With default setup, when using LLU stick gesture (Left, Left, Up) SilF4ware |
- | * LRU: reboot flight controller | + | |
- | * LRD: switch | + | |
- | ==== Motors | + | In motor test mode, push the stick in the corresponding direction, e.g. left up will make the motor spin which is configured as front left. |
- | SilF4ware has an improved MOTORS_TO_THROTTLE | + | LLD stick gesture (Left, Left, Down) turns this mode off again. |
- | > With the LLU stick gesture you can try which motor spins up if you push the stick in the corresponding direction. LLD turns the MOTORS_TO_THROTTLE_MODE off again. | + | If you are used to other silverware branches, please note that with SilF4ware it is not needed to adjust |
==== Devo TX ==== | ==== Devo TX ==== | ||
A Devo 7E build and model file which is able to display PID values can be found in [[https:// | A Devo 7E build and model file which is able to display PID values can be found in [[https:// | ||
+ | |||
+ | ===== Advanced Features ===== | ||
+ | |||
+ | ==== Analog Aux Channels ==== | ||
+ | |||
+ | The variables aux_analog[ 0 ] and aux_analog[ 1 ] hold a value between 0.0 and 2.0 which can be used in various places in the code. Per default they are used to tweak Kp and Kd respectively. This is done in SilF4ware/ | ||
+ | < | ||
+ | |||
+ | #define AA_pidkp ( x <2 ? pdScaleValue * aux_analog[ 0 ] : 1.0f ) // Scale Kp and Kd only for roll and pitch. | ||
+ | #define AA_pidki 1.0f | ||
+ | #define AA_pidkd ( x <2 ? pdScaleValue * aux_analog[ 1 ] : 1.0f ) // Scale Kp and Kd only for roll and pitch. | ||
+ | |||
+ | </ | ||
+ | |||
+ | If you want to use them for something else, change the define for AA_pidkp and AA_pidkd to look similar to the one for AA_pidki: | ||
+ | |||
+ | < | ||
+ | #define AA_pidkp 1.0f | ||
+ | #define AA_pidki 1.0f | ||
+ | #define AA_pidkd 1.0f | ||
+ | |||
+ | </ | ||
+ | |||
+ | Now you could use aux_analog[ 0 ] and aux_analog[ 1 ] for example to tune the filter frequency by adding it to config.h like this: | ||
+ | |||
+ | < | ||
+ | #define GYRO_LPF_2ND_HZ_BASE 400 * aux_analog[ 0 ] | ||
+ | #define GYRO_LPF_2ND_HZ_MAX 400 * aux_analog[ 1 ] | ||
+ | |||
+ | </ | ||
+ | |||
+ | ([[https:// | ||
==== Blackbox Logging ==== | ==== Blackbox Logging ==== | ||
Blackbox logging is possible with an external logging device. See details [[https:// | Blackbox logging is possible with an external logging device. See details [[https:// | ||
+ | |||
+ | ===== ===== | ||
+ | |||
+ | ==== ==== | ||
+ | |||
+ | \\ | ||