diff --git a/README.md b/README.md index 877b93f..ab95647 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,14 @@ + + + +# This project is a fork of the very skilled [Stavros Korokithakis's Project](https://gitlab.com/stavros/notes/) + + +## Notable Changes +- Notes and Folders are grabbed based on a whitelist instead of a blacklist + - Instead of checking if a notebook/note is tagged with "private", instead checks if the notebook/note is tagged with "blog" + + Stavros' notes ============== diff --git a/book.toml b/book.toml index 47fd802..13b5a22 100644 --- a/book.toml +++ b/book.toml @@ -1,13 +1,13 @@ [book] -authors = ["Stavros Korokithakis"] +authors = ["Yuriy Zinchuk"] language = "en" multilingual = false src = "content" -title = "Stavros' Notes" +title = "Yuriy's Notes" [output.html] curly-quotes = true no-section-label = true -git-repository-url = "https://gitlab.com/stavros/notes/" +git-repository-url = "https://zinchuk.xyz" git-repository-icon = "fa-gitlab" additional-css = ["static/custom.css"] diff --git a/config.toml b/config.toml index 090b8b4..f4dd2cd 100644 --- a/config.toml +++ b/config.toml @@ -1,9 +1,9 @@ # The URL the site will be built for -base_url = "https://notes.stavros.io" +base_url = "https://zinchuk.xyz" compile_sass = false highlight_code = true build_search_index = true theme = "book" -title = "Stavros' Notes" +title = "Yuriy's Notes" [extra] diff --git a/content/SUMMARY.md b/content/SUMMARY.md deleted file mode 100644 index 9593122..0000000 --- a/content/SUMMARY.md +++ /dev/null @@ -1,58 +0,0 @@ -# Summary - -[đ Stavros' notes](welcome/stavros-notes.md) -- [đ¸ Drone stuff](drone-stuff/index.md) - - [đ A simple guide to PID control](drone-stuff/a-simple-guide-to-pid-control.md) - - [đ E6000 hinges](drone-stuff/e6000-hinges.md) - - [đ Fixing the Matek ELRS receivers](drone-stuff/fixing-the-matek-elrs-receivers.md) - - [đ FPV frequency chart](drone-stuff/fpv-frequency-chart.md) - - [đ Getting uninverted SBUS on a no-name FrSky-compatible receiver](drone-stuff/getting-uninverted-sbus-on-a-no-name-frsky-compatible-receiver.md) - - [đ Getting uninverted SBUS/SmartPort on the FrSky XSR receiver](drone-stuff/getting-uninverted-sbus-smartport-on-the-frsky-xsr-receiver.md) - - [đ INAV tuning tips](drone-stuff/inav-tuning-tips.md) - - [đ Miscellaneous](drone-stuff/miscellaneous.md) - - [đ Omnibus F4 pro servo diode](drone-stuff/omnibus-f4-pro-servo-diode.md) - - [đ Omnibus F4 V3 pinout](drone-stuff/omnibus-f4-v3-pinout.md) - - [đ QGroundControl to Mission Planner conversion script](drone-stuff/qgroundcontrol-to-mission-planner-conversion-script.md) - - [đ Transmitter external module pinout](drone-stuff/transmitter-external-module-pinout.md) - - [đ Transportable C1 Chaser](drone-stuff/transportable-c1-chaser.md) - - [đŠī¸ ArduPilot](ardupilot/index.md) - - [đ ArduPilot recommended settings](ardupilot/ardupilot-recommended-settings.md) - - [đ ArduPilot setup checklist](ardupilot/ardupilot-setup-checklist.md) - - [đ Bitmask calculator](ardupilot/bitmask-calculator.md) - - [đ Building ArduPilot](ardupilot/building-ardupilot.md) - - [đ Configuring a switch as a relay](ardupilot/configuring-a-switch-as-a-relay.md) - - [đ Current sensor calibrator](ardupilot/current-sensor-calibrator.md) - - [đ DJI FPV configuration](ardupilot/dji-fpv-configuration.md) - - [đ ELRS preferred configuration](ardupilot/elrs-preferred-configuration.md) - - [đ HD OSD tool](ardupilot/hd-osd-tool.md) - - [đ Installing WTFOS on DJI](ardupilot/installing-wtfos-on-dji.md) - - [đ Miscellaneous notes](ardupilot/miscellaneous-notes.md) - - [đ Reverse thrust](ardupilot/reverse-thrust.md) - - [đ Statistics calculator](ardupilot/statistics-calculator.md) - - [đ TECS tuning calculator](ardupilot/tecs-tuning-calculator.md) - - [đ Transfer config between craft](ardupilot/transfer-config-between-craft.md) - - [đ Tuning the TECS](ardupilot/tuning-the-tecs.md) - - [đī¸ Model build notes](model-build-notes/index.md) - - [đ Build notes for the FT Mighty Mini Arrow](model-build-notes/build-notes-for-the-ft-mighty-mini-arrow.md) - - [đ Mini Drak build condensed instructions](model-build-notes/mini-drak-build-condensed-instructions.md) -- [đ Maker things](maker-things/index.md) - - [đ Battery discharge curves](maker-things/battery-discharge-curves.md) - - [đ Details about my Sapphire Pro](maker-things/details-about-my-sapphire-pro.md) - - [đ Electronics tips](maker-things/electronics-tips.md) - - [đ GRBL_ESP32 tips](maker-things/grbl-esp32-tips.md) - - [đ How to properly level your 3D printer](maker-things/how-to-properly-level-your-3d-printer.md) - - [đ Info on various hardware components](maker-things/info-on-various-hardware-components.md) - - [đ Installing BLTouch-compatible firmware onto the TwoTrees Sapphire Pro](maker-things/installing-bltouch-compatible-firmware-onto-the-twotrees-sapphire-pro.md) - - [đ Notes on my TimSav](maker-things/notes-on-my-timsav.md) -- [đĨī¸ Programming](programming/index.md) - - [đ Interesting projects](programming/interesting-projects.md) - - [đ Python](python/index.md) - - [đ Decorator that runs a function in a thread](python/decorator-that-runs-a-function-in-a-thread.md) -- [đŊ Software](software/index.md) - - [đ Black pills](software/black-pills.md) - - [đ Cloning cards/fobs with a Proxmark3](software/cloning-cards-fobs-with-a-proxmark3.md) - - [đ Getting VoWiFi working on Xiaomi.eu](software/getting-vowifi-working-on-xiaomi-eu.md) - - [đ Monero GUI syncing stuck with Ledger](software/monero-gui-syncing-stuck-with-ledger.md) - - [đ Pairing the Xbox One controller in Linux](software/pairing-the-xbox-one-controller-in-linux.md) - - [đ Resetting TP-Link Powerline plugs](software/resetting-tp-link-powerline-plugs.md) - - [đ Test and format SD cards](software/test-and-format-sd-cards.md) \ No newline at end of file diff --git a/content/ardupilot/ardupilot-recommended-settings.md b/content/ardupilot/ardupilot-recommended-settings.md deleted file mode 100644 index f845e56..0000000 --- a/content/ardupilot/ardupilot-recommended-settings.md +++ /dev/null @@ -1,61 +0,0 @@ -# ArduPilot recommended settings - -This section contains some recommended settings for ArduPilot. Nothing is set in stone, these are just some defaults I've found to work well. - -## GPS - -```js -GPS_GNSS_MODE=71 # Enable GPS/SBAS/Galileo/GLONASS. -GPS_RATE_MS=100 # 10 Hz update rate. -``` - -## Crossfire/ELRS - -```js -SERIALn_PROTOCOL=23 # Crossfire/ELRS. -RC_OPTIONS=800 # 5 - Arming check throttle. - # 8 - CRSF telemetry passthrough. - # 9 - Suppress CRSF mode/rate message for ELRS. -``` - -## Expo - -30% expo is a good starting point: - -```js -MAN_EXPO_ROLL=30 -MAN_EXPO_PITCH=30 -MAN_EXPO_RUDDER=30 -``` - -## Miscellaneous - -```js -INS_GYRO_FILTER=60 # Faster gyro updates. -SCHED_LOOP_RATE=100 # Faster scheduler updates. -``` - -## Servo update rate - -If you want a higher servo update rate (because of digital servos), it is probably better to set the scheduler loop rate to the frequency you want, and enable ONESHOT on the servos: - -```js -SCHED_LOOP_RATE=200 # As above. -ONESHOT_MASK=6 # Change to whatever channels your servos are on. -``` - -## Switch arming - -If you want to use switch arming rather than stick arming, here are the relevant parameters: - -```js -RCx_OPTION=153 -ARMING_RUDDER=0 -``` - -* * * - -
-Last updated on November 09, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/ardupilot-setup-checklist.md b/content/ardupilot/ardupilot-setup-checklist.md deleted file mode 100644 index 4cdfa0d..0000000 --- a/content/ardupilot/ardupilot-setup-checklist.md +++ /dev/null @@ -1,117 +0,0 @@ -# ArduPilot setup checklist - -This is a short guide for setting up [ArduPilot](https://ardupilot.org/) on a flying wing. I use an Omnibus F4 that was previously set up for INAV (so motor on 1, elevons on 3/4), so most of this guide will be geared to that. If you use a different controller, your mileage may vary. - -You should keep the [full list of ArduPilot parameters](https://ardupilot.org/plane/docs/parameters.html) open, for your reference while tuning. - - -## Helper utility -I have created a utility that lets you easily get/set/backup/restore parameters from the command line. -It's called Parachute, and you can download it here: - -[https://gitlab.com/stavros/parachute](https://gitlab.com/stavros/parachute) - - -## Building ArduPilot -See [Building ArduPilot](/ardupilot/building-ardupilot.html) for instructions on how to build the latest version. - - -## Hardware setup -The values in this section are specific to the Omnibus F4, but the settings aren't, so you'll usually need to adjust your outputs to your specific configuration but you probably won't need to skip many of the steps here. - - -- [ ] Connect GPS to UART 6 (SERIAL4). You don't need to do anything else for GPS, it should work out of the box. If it doesn't, set `SERIALn_PROTOCOL=5`. -- [ ] Change the FC's orientation with `AHRS_ORIENTATION` and monitor the artificial horizon to see if it moves correctly. -- [ ] Make sure the artificial horizon is level when the plane is level on the ground. Use the "calibrate level" button or `AHRS_TRIM_Y` to correct it if it's not. -- [ ] Calibrate the accelerometer. "Forward" here needs to be the forward direction of the plane, not the arrow on the FC. -- [ ] Connect Fport to a UART. I chose UART 3 (SERIAL2). If you want to use UART 1, you should set the RC input jumper to PPM on the F4 to disconnect the SBUS inverter from the pin. -- [ ] To get Fport working with UART 3, you need to set `BRD_ALT_CONFIG=1`, to get UART 3 to act like a UART instead of I2C on the Omnibus F4. -- [ ] Set the following for Fport on UART 3: - ```js - SERIAL2_PROTOCOL=23 # RCIN - SERIAL2_BAUD=115 - SERIAL2_OPTIONS=4 - RSSI_TYPE=3 - ``` -- [ ] Once Fport works, reverse the elevator with `RC2_REVERSED=1`. -- [ ] Set up your servo functions and trims: - ```js - SERVO1_FUNCTION=70 # Throttle - SERVO1_MIN=1000 - SERVO1_MAX=2000 - SERVO1_TRIM=1000 - - SERVO3_FUNCTION=77 # Left elevon - SERVO3_MIN=1000 - SERVO3_MAX=2000 - SERVO3_TRIM=1500 - - SERVO4_FUNCTION=78 # Right elevon - SERVO4_MIN=1000 - SERVO4_MAX=2000 - SERVO4_TRIM=1500 - ``` - All these values are necessary, because usually the `SERVOn_TRIM` won't be at 1500. -- [ ] Switch to FBWA and validate that the control surfaces move correctly. If they don't, set `SERVOn_REVERSED=1`. It needs to be FBWA and not MANUAL because FBWA has some additional processing like PIDs, etc. -- [ ] Set `SERVO_BLH_OTYPE=4` for DShot150 and `SERVO_BLH_MASK=1` to enable it for the motor. -- [ ] Set `COMPASS_ENABLE=0` if you don't have a compass, otherwise calibrate it (not detailed here). -- [ ] Set `TERRAIN_ENABLE=0` to get rid of the terrain warning. -- [ ] Set the FC's pitch relative to the body with `AHRS_TRIM_Y` and check that FBWA mode flies level. -- [ ] If you don't use logging, set `LOG_BACKEND_TYPE=0`. If you *do* use logging, set `LOG_DISARMED=1 LOG_FILE_DSRMROT=0` to prevent the EKF from diverging and causing problems on takeoff. -- [ ] Check the preflight errors to warn on, though usually leaving it set to "all" is fine. -- [ ] Set up the OSD (Mission Planner has a very nice UI for that). Keep in mind that ArduPilot's airspeed and windspeed estimation are quite good, so you may want to add those even if you don't have an airspeed sensor. You may also want to set up multiple screens, I use a potentiometer to switch between the four different screens of the OSD: - - One with everything on (for debugging), which is also set as the `OSD_ARM_SCR`/`OSD_DSARM_SCR`. - - One with the artificial horizon, system messages and some basic info like RSSI, battery, ground speed and altitude. - - A minimal screen with just system messages and battery/RSSI/speed/altitude. - - A screen with just system messages, for when I want to enjoy the scenery. - - -## Radio-related -- [ ] Set your radio channels to AETR and run the radio calibration in the calibration section of ArduPilot. -- [ ] Add a killswitch to the radio that overrides the mode to manual and the throttle to 0. - This way it's really easy to kill the motor right away, but you still need to go through the arming procedure to get the motor running (thanks to Michel Pastor for this great idea). -- [ ] Set up modes, possibly having switches override the mode channel to the mode you want. - What I do is set a given channel as the mode channel, and make that channel always output -100% on the radio. Then, I set up channel overrides for each switch, keeping in mind that overrides in OpenTX are executed in order (so the bottom override has the highest priority). - That way, I set MANUAL/ACRO/FBWA to be lowest priority (on the same switch), then CRUISE to override those, then LOITER, RTL in that order. Finally, I add AUTO to a switch on its own channel. - Keep in mind that whatever mode you have on its own channel might be overridden if you flick a different switch. - - -## Auto modes -- [ ] Set `SERVO_AUTO_TRIM=1` so the aircraft trims itself while flying. -- [ ] Set `FS_SHORT_ACTN`/`FS_SHORT_TIMEOUT`/`FS_LONG_ACTN`/`FS_LONG_TIMEOUT`. I tend to disable the short action and set long to RTL. -- [ ] Set `FLIGHT_OPTIONS+=16` so the aircraft climbs first before starting to return to home. -- [ ] Change `AUTOTUNE_LEVEL` according to how aggressive you want the tune. -- [ ] Set `ACRO_PITCH_RATE`/`ACRO_ROLL_RATE` according to your craft. -- [ ] Set `THR_PASS_STAB=1` so you have total throttle control in ACRO/FBWA/STABILIZE. -- [ ] Set `ARSPD_FBW_MIN`/`ARSPD_FBW_MAX` to the minimum and maximum airspeed you want auto modes to fly (see the TECS tuning guide below for details). -- [ ] Set `MIN_GNDSPD_CM=833` (30 km/h) so the craft makes an effort to return even under high winds. -- [ ] Set `RTL_SINK_MAX=2` to enable a very slow descent on RTL (you generally don't need to descend fast on RTL). - - -## Auto takeoff -- [ ] Change `TKOFF_THR_MAX` to the desired max takeoff throttle. -- [ ] Change `TKOFF_ALT` to the altitude you want takeoff to reach. -- [ ] Set `THR_SUPP_MAN=1` so you can manually set the autolaunch "idle" throttle (before the throw). -- [ ] Set `TKOFF_THR_MINACC=18` for the takeoff throw to activate takeoff with a minimum of 2g. -- [ ] Set `TKOFF_LVL_PITCH` to your desired angle (20 is a good value). -- [ ] Set `TKOFF_THR_DELAY` to the number of deciseconds that you want the motor to wait before it starts up. -- [ ] Set `FLIGHT_OPTIONS+=64` so the aircraft doesn't oscillate on auto takeoff without an airspeed sensor. -- [ ] Potentially set `TKOFF_THR_SLEW=-1` to make the throttle spin up faster. - -## Recommended settings. - -See the [recommended settings](/ardupilot/ardupilot-recommended-settings.html) page for other recommended defaults. - -## In the field -- [ ] Run an [autotune](/ardupilot/miscellaneous-notes.html). -- [ ] Fly in FBWA and see if you're gaining/losing altitude. Pitch up/down to fly level, check the pitch on the OSD, and use the formula `old_value+pitch*Ī/180` to get the new value for `AHRS_TRIM_Y` (in radians). -- [ ] After you set `AHRS_TRIM_Y` correctly above, fly in FBWA at full throttle (or whatever throttle you feel is "full" enough, and note that value), and note the pitch you need so that the wing doesn't climb or sink. Then, set `KFF_THR2PTCH` with the formula `pitch_value_in_deg * 100 / throttle_percentage`. `pitch_value_in_deg` should be positive if you needed up pitch and negative if you needed down pitch. - -_(Many thanks to Michel Pastor and mfoos for their help with everything in this note.)_ - -* * * - --Last updated on April 15, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/bitmask-calculator.md b/content/ardupilot/bitmask-calculator.md deleted file mode 100644 index 115938e..0000000 --- a/content/ardupilot/bitmask-calculator.md +++ /dev/null @@ -1,190 +0,0 @@ -# Bitmask calculator - - - - - --Last updated on October 07, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/building-ardupilot.md b/content/ardupilot/building-ardupilot.md deleted file mode 100644 index 725f7f2..0000000 --- a/content/ardupilot/building-ardupilot.md +++ /dev/null @@ -1,60 +0,0 @@ -# Building ArduPilot - -Because building ArduPilot is a bit complicated, I've written a short script that uses Docker to build AP in a controlled environment. - -Copy it from here, save it to a file called `docker_build.sh` in the root of the ArduPilot repo, and run it with `docker_build.sh-Last updated on September 07, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/configuring-a-switch-as-a-relay.md b/content/ardupilot/configuring-a-switch-as-a-relay.md deleted file mode 100644 index 3cacdaa..0000000 --- a/content/ardupilot/configuring-a-switch-as-a-relay.md +++ /dev/null @@ -1,19 +0,0 @@ -# Configuring a switch as a relay - -If you want to connect a relay of some sort (something that accepts a low/high signal, like a camera control) to a PWM output (the servo outputs), you need to do a few quick things. The actual numbers will vary depending on your FC, but here's what worked for me with a Matek F405-Wing: - -1. Set the channel you want the relay to trigger on as a controller for the first relay (here I'll assume you want to control the first relay on channel 11): - `RC11_OPTION=28` -2. Set the pin number for the relay you want to control. This is a bit fuzzy, it depends on your flight controller, but try a few out. This is what worked for me, for S6 on my F405-Wing: - `RELAY_PIN=55` -3. Set a servo to act as a GPIO output. I'm assuming here you want `SERVO6`, though I'm not quite sure how the servo selection maps to the `RELAY_PIN` selection above. For me, `AUXOUT6` and `SERVO6` worked: - `SERVO6_FUNCTION=-1` - -If you're amazingly lucky, you should be all set. If not, you need to play with the `50` in the `RELAY_PIN` parameter and the `6` in the `SERVO6_FUNCTION` until something works. - -* * * - --Last updated on September 11, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/current-sensor-calibrator.md b/content/ardupilot/current-sensor-calibrator.md deleted file mode 100644 index f501438..0000000 --- a/content/ardupilot/current-sensor-calibrator.md +++ /dev/null @@ -1,149 +0,0 @@ -# Current sensor calibrator - - - - - -This calculator will allow you to calibrate your current sensor better than with the mAh charged vs mAh consumed method. -You need a current meter and a way to see what current and throttle percentage the FC reports (the OSD is a good way to do this). -The steps to follow are: -0. Make sure you have capacitors on ESCs so the measurement will not be influenced by errors from ESC noise. -1. Set `BATT_AMP_PERVLT=100` and `BATT_AMP_OFFSET=0`. -3. Power your plane with propellers on and a current meter connected between FC and pack. -4. Arm and run the motor in manual mode. For four different throttle positions, note down: The throttle position (from the OSD), the reported current (from the OSD), and the actual current (from the current meter). The best throttle positions to use would be 25%, 50%, 75% and 100%. Do not check current on idle as this will be inaccurate. -5. Enter the values below, and the calculator will give you the proper BATT_AMP_PERVLT and BATT_AMP_OFFSET values that you now need to write to your plane's parameters. - - -OSD current: | -- - - - - | -
- Real current: - | -- - - - - | -
- Results: - |
- |
- BATT_AMP_OFFSET :
- |
-
- - |
-
- BATT_AMP_PERVLT :
- | - - | -
-Last updated on February 05, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/dji-fpv-configuration.md b/content/ardupilot/dji-fpv-configuration.md deleted file mode 100644 index 269e229..0000000 --- a/content/ardupilot/dji-fpv-configuration.md +++ /dev/null @@ -1,41 +0,0 @@ -# DJI FPV configuration - -## Configuring ArduPilot for DJI FPV - -If you're using the DJI FPV system, here's the relevant configuration you need to set: - -1. Set `OSD_TYPE=3`. -2. Set `SERIALn_PROTOCOL=33 SERIALn_BAUD=115 SERIALn_OPTIONS=0` (DJI FPV). -3. Create a text file called `naco.txt` on the SD card of the Air Unit with the text `1` in it [to unlock full power](https://oscarliang.com/dji-fpv-system-fcc-700mw/). -4. Create a text file called `naco_pwr.txt` on the SD card of the goggles with the text `pwr_2` in it [to unlock more full power](https://oscarliang.com/dji-fpv-system-1200mw-output/). -5. Set "Custom OSD" to "on" in the goggles menu. -6. Arrange your OSD elements how you like them. - -That's it! - -## Configuring AP for the DJI O3 - -If you're using DJI O3, this is what you need to do: - -* Set , `OSD_TYPE=5` for MSP_DISPLAYPORT. -* Set `SERIALn_PROTOCOL=42 SERIALn_BAUD=115 SERIALn_OPTIONS=0` for DisplayPort. -* Set `MSP_OPTIONS=5` for telemetry mode and BTFL fonts. -* Arrange your OSD elements as you want them. - -Done! - -## Synchronizing the video and audio of the DJI Air Unit - -The audio of the DJI air unit is slower than the video, leading to desynchronization, but it is slower by a constant factor, which means it can be easily corrected with the following command: - -```bash -$ ffmpeg -i "$1" -c:v copy -filter:a atempo=1.001480,volume=20 \ - -c:a aac -b:a 93k "$(basename "$1" .mp4)_fixed_audio.mp4" -``` - -* * * - --Last updated on January 01, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/elrs-preferred-configuration.md b/content/ardupilot/elrs-preferred-configuration.md deleted file mode 100644 index d2050e3..0000000 --- a/content/ardupilot/elrs-preferred-configuration.md +++ /dev/null @@ -1,40 +0,0 @@ -# ELRS preferred configuration - -If you have an ExpressLRS system, this is my preferred config for ELRS 3.x: - -## Packet rate - -**100 Hz Full** - -As I fly long-range fixed-wing, I go for *100 Hz Full* to get range and telemetry bandwidth. - -## Telemetry ratio - -**1:2** - -I use this to get a high telemetry rate. It could probably go lower, but I don't think it hurts anything. - -## Switch mode - -**12ch Mixed** - -I use this mode because I prefer having full rate on channels 1-4, rather than have three extra channels. For details, see [the documentation](https://www.expresslrs.org/3.0/software/switch-config/). - -## TX Power - -**Dynamic power at 250 mW max.** - -I use this because dynamic power works well enough, and my transmitter only does 250 mW max. If yours does more, feel free to set it to that. - -## Model match - -**Off** - -I don't like model match, as I have one radio model for all my ELRS planes. Having model match enabled would mean that I need one radio model per plane. - -* * * - --Last updated on November 19, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/hd-osd-tool.md b/content/ardupilot/hd-osd-tool.md deleted file mode 100644 index d7b58a8..0000000 --- a/content/ardupilot/hd-osd-tool.md +++ /dev/null @@ -1,612 +0,0 @@ -# HD OSD tool - - -- This tool lets you configure your OSD, supporting larger grid sizes than the standard Ardupilot one. -
-
- TIP: use OSDn_TXT_RES=3 to extend the grid from 50x18 to 60x22.*
- To use the tool: -
|
- |
- Show coordinates: - | -
- - |
-
- Grid: - | -
- - |
-
- Background: - | -- - | -
- OSD Layout: - | -- - | -
- Paste your Parachute or MissionPlanner config: - | -- - | -
- - | -
-Last updated on March 14, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/index.md b/content/ardupilot/index.md deleted file mode 100644 index 41ef873..0000000 --- a/content/ardupilot/index.md +++ /dev/null @@ -1,20 +0,0 @@ -# Contents - -Click on a link in the list below to go to that page: - -1. [ArduPilot recommended settings](../../ardupilot/ardupilot-recommended-settings.html) -1. [ArduPilot setup checklist](../../ardupilot/ardupilot-setup-checklist.html) -1. [Bitmask calculator](../../ardupilot/bitmask-calculator.html) -1. [Building ArduPilot](../../ardupilot/building-ardupilot.html) -1. [Configuring a switch as a relay](../../ardupilot/configuring-a-switch-as-a-relay.html) -1. [Current sensor calibrator](../../ardupilot/current-sensor-calibrator.html) -1. [DJI FPV configuration](../../ardupilot/dji-fpv-configuration.html) -1. [ELRS preferred configuration](../../ardupilot/elrs-preferred-configuration.html) -1. [HD OSD tool](../../ardupilot/hd-osd-tool.html) -1. [Installing WTFOS on DJI](../../ardupilot/installing-wtfos-on-dji.html) -1. [Miscellaneous notes](../../ardupilot/miscellaneous-notes.html) -1. [Reverse thrust](../../ardupilot/reverse-thrust.html) -1. [Statistics calculator](../../ardupilot/statistics-calculator.html) -1. [TECS tuning calculator](../../ardupilot/tecs-tuning-calculator.html) -1. [Transfer config between craft](../../ardupilot/transfer-config-between-craft.html) -1. [Tuning the TECS](../../ardupilot/tuning-the-tecs.html) diff --git a/content/ardupilot/installing-wtfos-on-dji.md b/content/ardupilot/installing-wtfos-on-dji.md deleted file mode 100644 index e2dc1e1..0000000 --- a/content/ardupilot/installing-wtfos-on-dji.md +++ /dev/null @@ -1,37 +0,0 @@ -# Installing WTFOS on DJI - -The WTFOS OSD is basically a higher-res analog OSD that you can get on DJI goggles. It gives you everything the analog OSD gives you, so configuration menus, OSD elements, post-flight details, etc. - -Here's the process to install it: - -## On everything -* Make sure you're on version V01.00.0606 on whatever you want to root. -* If you're rooting an AU or Vista, use a fan to cool it down during this process. -* Go to [the WTFOS Configurator's Root section](https://fpv.wtf/root) and click "Root device". Click on your device on the permission popup and continue. Wait until done. DO NOT REBOOT WHEN IT'S DONE. -* Each step (there are five in total) should take around a minute to continue. If it takes longer, it's probably gone wrong, but it should be safe to just reboot the goggles/AU and try again. At least, it's never caused me a problem so far, and I've done it many times. -* Once that's done, go to [the WTFOS Installer section](https://fpv.wtf/wtfos) and click "connect to device", and then "Install WTFOS". -* After installation is done (or if you're upgrading), go to [the Package Manager section](https://fpv.wtf/packages), and install `fcc-unlock` (for full power) and `msp-osd`. You can also install `auto-record` on the goggles, for automatically recording if your video link goes away and comes back. The rest probably isn't necessary. - -## On the goggles -* Disable the custom OSD: Settings -> Display -> Custom OSD: Off. -* Download the font files [from the ArduCustom repository](https://github.com/ArduCustom/ardupilot/tree/master_custom/libraries/AP_OSD/fonts/HDFonts). Make sure to get the four fonts ending in `.bin`. -* If they aren't already, rename them to add `_ardu` to the name after `font` (so `font_ardu.bin`, `font_ardu_2.bin`, `font_ardu_hd.bin`, `font_ardu_hd_2.bin`). -* Put the four font files in the root of the goggles' SD card. -* Go to the console and run, to enable MSP OSD recording: - ``` - package-config set msp-osd rec_enabled true - package-config apply msp-osd - ``` - -## On the plane -* Set `SERIALn_PROTOCOL=42` for DisplayPort, `OSD_TYPE=5` for MSP_DISPLAYPORT and `OSDn_TXT_RES=1` for 50x18 text resolution on the craft. You should also check that `OSD_OPTIONS=0`, just to make sure you don't have problems. -* Arrange your OSD elements as you want them. - -That's all! - -* * * - --Last updated on March 20, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/miscellaneous-notes.md b/content/ardupilot/miscellaneous-notes.md deleted file mode 100644 index f7a99e5..0000000 --- a/content/ardupilot/miscellaneous-notes.md +++ /dev/null @@ -1,39 +0,0 @@ -# Miscellaneous notes - -These are random AP-related notes that wouldn't fit anywhere else: - - -## Performing an autotune - -The [ArduPilot Autotune documentation](https://ardupilot.org/plane/docs/automatic-tuning-with-autotune.html) and the [demo video](https://www.youtube.com/watch?v=Ud_YPu7fgXE) are very detailed on this, but here's the gist on how to run an autotune. - -Some things to know are: -- Autotune does not tune the rotation rates, but does not really depend on them either. -- You should set `AUTOTUNE_LEVEL` depending on the size of your aircraft. For small/agile craft, you can set `AUTOTUNE_LEVEL` to 7 or more. For larger, more sluggish craft, 6 (or less) is a good level. Under the hood, a higher `AUTOTUNE_LEVEL` decreases `*2SRV_TCONST` and increases `*2SRV_RMAX`). - - -Before you switch into `AUTOTUNE` mode, complete a circle or fly in different directions to allow the airspeed estimator to get an accurate value before running the autotune (or tuning the TECS). Don't start the tune unless your airspeed estimation is (and remains) stable and reasonable, otherwise you'll get bad results (and it probably means something is very wrong and you should land). - -After you switch into `AUTOTUNE`, start with left and right roll inputs at maximum stick deflection. You don't need to wait until you hit the max roll angle, what I tend to do is roll max right, leave it for half a second, then roll max left, repeat. - -The OSD will start showing you PID numbers, continue until a message saying `ROLL FINISHED` appears. Afterwards, do the same with pitch. Hit full stick deflection up and down, without reaching max pitch limits. - -After the `PITCH FINISHED` message appears, continue flying in `AUTOTUNE` for more than ten seconds, to make sure the tune values are saved. - -You're done, you can switch to any other mode and continue flying. - -_(Thanks to Mike for the above info.)_ - - -## DMA on the Matek F405-Wing - -If you want to get DMA on UART3 of the Matek F405-Wing FC (or, more relatedly, the Racerstar F405, because UART1 is Bluetooth there), you can open `libraries/AP_HAL_ChibiOS/hwdef/MatekF405-Wing/hwdef.dat` and comment out line 92ish, where PA15 is defined. - -That will enable DMA on UART3, at the expense of disabling the LED pad. - -* * * - --Last updated on January 26, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/reverse-thrust.md b/content/ardupilot/reverse-thrust.md deleted file mode 100644 index a42f526..0000000 --- a/content/ardupilot/reverse-thrust.md +++ /dev/null @@ -1,21 +0,0 @@ -# Reverse thrust - -To set up reverse thrust (for higher braking when landing, for example), follow the steps below: - -- [ ] Set your BLHeli-compatible ESC to "Reversible soft" and make sure you're using DShot. -- [ ] Set `THR_MIN=-100`. -- [ ] Set `SERVO_BLH_3DMASK=1` (or whatever channel your motor is on). -- [ ] Set `RC9_OPTION=64` for the reversing switch on channel 9 (or whatever channel you want). -- [ ] Set `USE_REV_THRUST=0` to disable reverse thrust on all auto modes. - -You're done. - -When flipping the switch, throttle will reverse, so your plane will slow down instead of speed up the more you throttle up. -Be careful not to stall or otherwise hurt your craft, I don't recommend going over 20-30% reverse throttle. - -* * * - --Last updated on May 01, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/statistics-calculator.md b/content/ardupilot/statistics-calculator.md deleted file mode 100644 index 9c816a4..0000000 --- a/content/ardupilot/statistics-calculator.md +++ /dev/null @@ -1,149 +0,0 @@ -# Statistics calculator - - - -Paste your `STATS` items (you can get them with `parachute show -f STAT_`) here: - - - - - - - -_(Many thanks to mfoos for writing this note.)_ - -* * * - --Last updated on July 20, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/tecs-tuning-calculator.md b/content/ardupilot/tecs-tuning-calculator.md deleted file mode 100644 index c1ddcb3..0000000 --- a/content/ardupilot/tecs-tuning-calculator.md +++ /dev/null @@ -1,87 +0,0 @@ -# TECS tuning calculator - -To use this calculator, first follow the steps in [Tuning the TECS](/ardupilot/tuning-the-tecs.html). - - - - - - -* * * - --Last updated on November 29, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/transfer-config-between-craft.md b/content/ardupilot/transfer-config-between-craft.md deleted file mode 100644 index 75aa9f2..0000000 --- a/content/ardupilot/transfer-config-between-craft.md +++ /dev/null @@ -1,17 +0,0 @@ -# Transfer config between craft - -This is the regex I use with Parachute to transfer between planes only the parameters that are transferrable (ie non-plane-specific): - -```bash -parachute restore -f '^(ACRO_LOCKING|OSD.*|RC[\d_]+.*|FLTMODE.*|FLIGHT_OPTIONS|FS_.*|RTL_CLIMB_MIN|RTL_RADIUS|THR_PASS_STAB|THR_SLEWRATE|THR_SUPP_MAN|TKOFF_ACCEL_CNT|TKOFF_THR_.*|TKOFF_ALT|TKOFF_DIST|HOME_RESET_ALT|ALT_HOLD_RTL|MIN_GNDSPD_CM|ARMING_RUDDER)$'-Last updated on September 16, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/ardupilot/tuning-the-tecs.md b/content/ardupilot/tuning-the-tecs.md deleted file mode 100644 index 9c7de86..0000000 --- a/content/ardupilot/tuning-the-tecs.md +++ /dev/null @@ -1,107 +0,0 @@ -# Tuning the TECS - -To tune the TECS, a helpful resource is the official [TECS tuning guide](https://ardupilot.org/plane/docs/tecs-total-energy-control-system-for-speed-height-tuning-guide.html). -Make sure you have run an autotune beforehand, and continue with the tuning below. - -In tuning, there are three stages: - -- Prepare to measure -- Take measurements in the field. -- Set parameters on the bench, based on your measurements. - -### Preparation -- [ ] Set `LIM_PITCH_MAX=4500` (centidegrees), or something similarly high. - This is the maximum pitch you'll be achieving in FBWA, and you don't want to be limited by this while trying to tune. -- [ ] Set `LIM_PITCH_MIN=-4500` (centidegrees) or something similarly low. - This is the minimum pitch you'll be achieving in FBWA, and you don't want to be limited by this either. -- [ ] Set `THR_PASS_STAB=1` to avoid mapping your throttle to a curve in some modes. This is important because you want a raw (non-remapped) throttle value when measuring. -- [ ] Add the airspeed and pitch angle elements to the OSD so you can actually take the measurements. -- [ ] Enable throttle battery voltage compensation with `FWD_BAT_VOLT_MIN`/`FWD_BAT_VOLT_MAX`. Set the max to `4.2 * num_cells` and the min to `3 * num_cells` for Li-Ion and `3.5 * num_cells` for LiPo batteries. This makes your measurements more accurate, as a partially-depleted battery won't make your motor run slower and skew the results. - - -### In the field -You should perform the measurements in four stages, all in the FBWA mode: - -#### Fly straight -Fly straight and note down: - -- [ ] The maximum speed you want to be flying at (in km/h). -- [ ] The throttle percentage at that maximum speed. Use the stick position, not the OSD item. -- [ ] Start a turn at the maximum bank angle (full roll deflection to one side) and note the slowest speed you can fly at without stalling. -- [ ] Fly straight at a speed at least 15% higher than the stall speed from the previous step, and note that speed. This is your trim speed. -- [ ] Note the throttle percentage at that speed. Use the stick position, not the OSD item. -- [ ] Turn throttle to 0 and pitch down a bit so you don't stall. - Note the minimum amount of down-pitch required to keep you from stalling (this should only be in the 1-3 degree ballpark). - -#### Fly up -Set the throttle stick to the maximum throttle percentage from the previous step and start slowly pitching up until your airspeed equals your trim speed from the previous step. -If you're higher than that speed and need to climb more, change `LIM_PITCH_MAX` to something higher and try again. -Note down: - -- [ ] The pitch angle (in degrees). -- [ ] The vertical speed from the variometer (in m/s). - -#### Fly down -Set the throttle to 0 and start pitching down until your airspeed equals your trim speed from the previous step. -Note down: - -- [ ] The vertical speed from the variometer (in m/s). - -#### Fly down more -Keep the throttle at 0 and pitch down until you reach your desired max descent rate in auto modes, keeping in mind not to exceed your desired maximum speed from step 1. -If you're lower than that speed and need to pitch down more, change `LIM_PITCH_MIN` to something lower and try again. -Note down: - -- [ ] The pitch angle (in degrees). -- [ ] The vertical speed from the variometer (in m/s). - -You're done with this step. - - -### On the bench -After you have the above measurements, you're ready to tune things. You can use the automatic calculator: - -### [TECS tuning calculator](/ardupilot/tecs-tuning-calculator.html) - -Otherwise, you can do things manually, following the steps below, but you should really use the calculator instead. - -For the level flight measurements: - -- [ ] Set `ARSPD_FBW_MAX` (m/s) to something a bit less than the maximum airspeed you achieved in level flight. -- [ ] Set `THR_MAX` (percentage) to the throttle percentage at max speed. -- [ ] Set `ARSPD_FBW_MIN` (m/s) to the slowest speed you could turn at without stalling (maybe go a bit higher for some margin). -- [ ] Set `TRIM_ARSPD_CM` (cm/s) to your trim speed. -- [ ] Set `TRIM_THROTTLE` (percentage) to your trim throttle percentage. -- [ ] Set `STAB_PITCH_DOWN` (degrees) to the pitch angle that keeps you from stalling. - -For the ascent measurements: - -- [ ] Set `TECS_PITCH_MAX` (degrees) to the pitch angle you measured. -- [ ] Set `TECS_CLMB_MAX` and `FBWB_CLIMB_RATE` (both in m/s) to the climb rate you measured. - -For the descent measurements: - -- [ ] Set `TECS_SINK_MIN` (m/s) to the descent rate you measured. - -For the max descent measurements: - -- [ ] Set `TECS_PITCH_MIN` (degrees) to the pitch angle you measured. -- [ ] Set `TECS_SINK_MAX` (m/s) to the descent rate you measured. - -That's it! - - -## Advanced information - -This is some more advanced information on tuning the TECS: - -- If you have a pitot tube and want more altitude precision and more responsive control, you should lower the `TECS_SPDWEIGHT` parameter value below 1. -- A right `KFF_THR2PTCH` value is crucial for the TECS to work correctly without pitot. -- The `THR_SLEWRATE` value should be set so that the plane doesn't lose airspeed when you yank the pitch stick to `TECS_CLMB_MAX` degrees. - -* * * - --Last updated on November 26, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/a-simple-guide-to-pid-control.md b/content/drone-stuff/a-simple-guide-to-pid-control.md deleted file mode 100644 index 25f5a82..0000000 --- a/content/drone-stuff/a-simple-guide-to-pid-control.md +++ /dev/null @@ -1,29 +0,0 @@ -# A simple guide to PID control - -I made some changes to my quadcopter the other day for [a new photography project I'm working on](https://www.makerfol.io/project/m8xrLUp-light-painting-with-drones/). -Unfortunately, it turned out that it wasn't good enough, and that I'd have to tune my [PID loop](https://en.wikipedia.org/wiki/PID_controller), which I knew nothing about. -After watching a few videos and reading a few things, I learnt enough to be dangerous, and to hopefully be able to explain the concepts simply, so I want to write them down here before I forget. - -Basically, a PID loop can be thought of very simply as an equation that takes your current state as input and gives you what you need to do to reach a desired state as output. -For example, if you had a radiator and wanted to heat a room, the PID loop would take the current temperature as input and tell you how high you needed to set the radiator on a 0-100% scale to achieve a desired temperature. - -The PID loop has three components, and to tune it you need to set three weights that you multiply each parameter with. -That means that it's basically `output = P*prop, + I*intgr + D*deriv`, where the terms are explained below: - -* **`P` - proportional**: This is the weight of the difference between the current position and the desired position. - What this says about the radiator is "we're still far away, we need more heat!", so the more P you set, the higher the radiator will be set for a given temperature difference. -* **`D` - derivative**: Because `P` is purely based on the difference between the current and target temperatures, it doesn't know anything about inertia. - So, even though your radiator will be getting closer to the target temperature, even when it's very close, P will be saying "more heat, we're not there yet!", and cause you to overshoot your target, having to then go back (possibly turning the AC on, undershooting downwards, and then back upwards, oscillating like that for a long time). - D helps by saying "whoa, we're getting there, slow down with the heat", and reducing the amount of heat you apply proportionally to how fast you're getting to your target temperature. -* **`I` - integral**: `I` helps in the case where you left a window open in the room, and `P` is saying "okay we're pretty close so set the radiator to 10% just for that final push", but the room is leaking so that 10% will never get you to your target temperature. - `I` helps by saying "Okay we've been trying but it's not working, we're still far, so we actually need a bit more heat than 10%", by looking at the constant temperature difference you've been having lately, despite your best efforts. - Basically, `I` deals with accumulated error when you think you're getting closer but all you're doing is fighting losses, so `I` allows you to close that gap. - -That's pretty much it! - -* * * - --Last updated on January 07, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/e6000-hinges.md b/content/drone-stuff/e6000-hinges.md deleted file mode 100644 index 81576c4..0000000 --- a/content/drone-stuff/e6000-hinges.md +++ /dev/null @@ -1,28 +0,0 @@ -# E6000 hinges - -I love Goop/E6000 glue, it's very versatile and makes for a great bond. -However, do remember to work with it outside, as it is not safe to breathe. -One of the coolest things you can do with it is make hinges, for control surfaces as well as for any hatches you may have. - -E6000 hinges are very strong (I tried tearing one by hand but couldn't, in the end I had to cut it), and very flexible (you can easily turn the hinged surface 180 degrees up or down with very little force). -They also have almost zero play, making them ideal for control surfaces. - -Here's how: - -- [ ] Make sure your surfaces are clean and straight. - Since you're going to make a hinge by placing a very thin layer of glue over the two pieces, the pieces need to actually be straight and contacting on the part where the glue is going to go. - If there's a recess or groove where your elevons meet, this won't work very well because your glue layer will be too thick to bend properly. -- [ ] Apply some masking tape parallel to the hinge line, 1 cm above and 1cm below it, so you don't get glue elsewhere on the wing. -- [ ] Place the elevon/aileron/other control surface in position and apply some masking tape to the two ends, to hold the elevon in place. - Take care to position it straight on both axes, the control surface should be at the same level as the wing surface across its length *and* the control surface shouldn't be deflected up or down. -- [ ] Apply a thin layer of glue (around 1mm thin) on the top of the joint (not on both sides), and spread it evenly with a credit card or piece of paper. -- [ ] Wait for it to dry, and you're done! - -Because a description might be hard to follow, you can see the process in more detail [in this video](https://www.youtube.com/watch?v=ar9ttyGs1rM). - -* * * - --Last updated on March 22, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/fixing-the-matek-elrs-receivers.md b/content/drone-stuff/fixing-the-matek-elrs-receivers.md deleted file mode 100644 index 2fbd080..0000000 --- a/content/drone-stuff/fixing-the-matek-elrs-receivers.md +++ /dev/null @@ -1,16 +0,0 @@ -# Fixing the Matek ELRS receivers - -The Matek ELRS receivers (ELRS-R24-D, ELRS-R24-S, etc) are dangerously close to out of spec, [due to the addition of two XTAL capacitors](https://docs.google.com/document/u/1/d/10m25KMzpuve8kn1ToP7wEt3qKzD9NwbL6vCAcM_DwCs/mobilebasic). The Semtech chip Matek is using for the receiver already contains XTAL capacitors in it, so the two added capacitors are redundant and push the frequency close to the edge of the spec. This means that temperature changes might push the frequency off-spec, and cause a failsafe randomly in mid-air. - -The Matek receivers with a silver boot button are more prone to the issue, but it's also present in newer batches with gold boot buttons. - -Luckily, this issue is easy to fix (and the fix is the same for both batches). You just need to desolder/remove the two capacitors shown below: - -![d8d349e62a17404996ff64a377687bf3.png](/resources/8eff90fdedb94cd7b8d9237f948b388c.png) - -* * * - --Last updated on December 04, 2022. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/fpv-frequency-chart.md b/content/drone-stuff/fpv-frequency-chart.md deleted file mode 100644 index e4aa9b6..0000000 --- a/content/drone-stuff/fpv-frequency-chart.md +++ /dev/null @@ -1,29 +0,0 @@ -# FPV frequency chart - -If you're curious about which frequencies to use for video when there are multiple people flying FPV, as well as which bands are used by various manufacturers, here's a handy chart: - -[![FPV frequency chart](/resources/48cfa1097ca847c5a9ff8229005e7f50.png)](/resources/48cfa1097ca847c5a9ff8229005e7f50.png) - -It was made by [5zero7 RC](https://youtu.be/wScS5XloviM) with information from [a Propwashed article](https://www.propwashed.com/video-frequency-management/). - - -## Best channel groups - -Here are the best channel groups for each number of pilots, from the chart: - -- 2 pilots - E2 (5685), E6 (5905) -- 3 pilots - E2 (5685), F4 (5800), E6(5905) -- 4 pilots - E2 (5685), F2 (5760), F7 (5860) E6 (5905) -- 5 pilots - E2 (5685), F2 (5760), F4 (5800), F7 (5860), E6 (5905) -- IMD5C - R1 (5658), R2 (5695), F2 (5760), F4 (5800), E5 (5885) -- 6 pilots - E2 (5685), F1 (5740), F3 (5780), F5 (5820), F7 (5860), E6 (5905) -- IMD6C - R1 (5658), R2 (5695), F2 (5760), F4 (5800), F8 (5880), R8 (5917) - - - -* * * - --Last updated on January 09, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/getting-uninverted-sbus-on-a-no-name-frsky-compatible-receiver.md b/content/drone-stuff/getting-uninverted-sbus-on-a-no-name-frsky-compatible-receiver.md deleted file mode 100644 index 1f398cb..0000000 --- a/content/drone-stuff/getting-uninverted-sbus-on-a-no-name-frsky-compatible-receiver.md +++ /dev/null @@ -1,18 +0,0 @@ -# Getting uninverted SBUS on a no-name FrSky-compatible receiver - -I got an [RC receiver](https://www.banggood.com/2_4G-8CH-D8-Mini-FrSky-Compatibel-Receiver-With-PWM-PPM-SBUS-Output-p-1140478.html?rmmds=myorder&cur_warehouse=CN) from Banggood. There's uninverted SBUS on this pad: - -[![rc-sbus.jpg](/resources/ccc7571db5d147328860077fdc0aa745.jpg)](/resources/ccc7571db5d147328860077fdc0aa745.jpg) - -To break this out to the SBUS pad, I had to remove/bridge the resistor that is circled in the image, and remove/bridge the FET on the other side: - -[![rc-sbus-mosfet.jpg](/resources/1b0f508a533e45b496c6636d49161b0c.jpg)](/resources/1b0f508a533e45b496c6636d49161b0c.jpg) - - - -* * * - --Last updated on November 24, 2020. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/getting-uninverted-sbus-smartport-on-the-frsky-xsr-receiver.md b/content/drone-stuff/getting-uninverted-sbus-smartport-on-the-frsky-xsr-receiver.md deleted file mode 100644 index d923a8d..0000000 --- a/content/drone-stuff/getting-uninverted-sbus-smartport-on-the-frsky-xsr-receiver.md +++ /dev/null @@ -1,21 +0,0 @@ -# Getting uninverted SBUS/SmartPort on the FrSky XSR receiver - -To get uninverted SBUS/SmartPort on the FrSky XSR/X4RS receiver, you can repurpose the CPPM pad. -Remove the two small resistors shown in the image, and solder the two lower pads (together) to either the CPPM pad or the MOSFET pin shown in the photo: - -[![xsr-sbus.jpeg](/resources/f86da9a7aac1413ebd77825897164f7f.jpg)](/resources/f86da9a7aac1413ebd77825897164f7f.jpg) - -They should be soldered like this (remember to solder both resistor pads together): - -[![xsr-sbus2.jpeg](/resources/815576429ece43789dbc70dfd33517a1.jpg)](/resources/815576429ece43789dbc70dfd33517a1.jpg) - -Now the CPPM pad will be uninverted SBUS/SmartPort instead. -It seems to be a bit of a gamble whether you get SBUS or SmartPort, it might be firmware-dependent. -On firmware 2.1.0 FPort, I actually got the uninverted FPort signal on the CPPM pin, which is what I wanted. - -* * * - --Last updated on November 24, 2020. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/inav-tuning-tips.md b/content/drone-stuff/inav-tuning-tips.md deleted file mode 100644 index cce79f2..0000000 --- a/content/drone-stuff/inav-tuning-tips.md +++ /dev/null @@ -1,35 +0,0 @@ -# INAV tuning tips - -Here are some general INAV tuning tips and things I've learned throughout my builds. Keep in mind that *these only apply to wings* (and maybe planes), not quads: - -* To make turns in automatic modes smoother, use `set nav_fw_control_smoothness = 8`. -* Pawel says that the idea of the software LPF is to replace the hardware LPF. Leave the hardware LPF set to 256 Hz and set the software LPF to 20-30 Hz, with a looptime of 1k. - - -## Battery monitoring - -To monitor how much battery you have left in flight, voltage isn't a good indication because it can sag a lot. mAh is also not a good indication, because it doesn't decrease linearly with voltage (when voltage drops, you need to consume more amps for the same amount of motor RPM, and thus thrust). Remaining energy (in Watt-hours) is a better way, using the "Wh drawn" INAV OSD item. In addition, INAV has heat loss compensation for the energy meter (done by simulating the internal resistance of the battery), which gives you a more accurate reading. - -To calculate the Wh a battery can give, the best way is to charge or discharge it and see how many Wh were spent, if your charger shows you. Another way is to get a rough estimate using the formula `no_cells * 3.7 * Ah`. So, for a 1800 4S battery, the maximum Watt-hours are `4 * 3.7 * 1.8 = 26.64 Wh`. You should not discharge more than 80% of that value, or you risk excessive wear to the battery. - -For a 4S battery, I go with a rule of thumb: The maximum Wh is `mAh / 85`, so for a 5000 mAh battery I'll land after 58 Wh consumed, which is around 80% of the battery consumed and gives a small margin for error. - -More details can be found in the [battery page](https://notes.stavros.io/drone-stuff/inav-tuning-tips/#battery-monitoring) in the INAV wiki. - -_(Thanks to Michel Pastor in the INAV Telegram group for this tip.)_ - - -## Horizon drift issues - -There's a known problem with horizon drift on fixed wings. To ameliorate it, use `set imu_acc_ignore_rate = 10`. Setting this low is a good idea, but if it's set too low then the accelerometer will effectively be ignored and the horizon will eventually drift. To reduce the accelerometer's influence, you can also reduce `imu_dcm_ki` and/or `imu_dcm_kp`. - -You can also try tuning `fw_turn_assist_pitch_gain`, although be careful to not set it too high because then the aircraft will stall trying to climb during a turn. - -Adding a piece of black, porous foam (so wind can pass through) over the barometer has been known to help as well. - -* * * - --Last updated on January 01, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/index.md b/content/drone-stuff/index.md deleted file mode 100644 index f12aabe..0000000 --- a/content/drone-stuff/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Contents - -Click on a link in the list below to go to that page: - -1. [A simple guide to PID control](../../drone-stuff/a-simple-guide-to-pid-control.html) -1. [E6000 hinges](../../drone-stuff/e6000-hinges.html) -1. [FPV frequency chart](../../drone-stuff/fpv-frequency-chart.html) -1. [Fixing the Matek ELRS receivers](../../drone-stuff/fixing-the-matek-elrs-receivers.html) -1. [Getting uninverted SBUS on a no-name FrSky-compatible receiver](../../drone-stuff/getting-uninverted-sbus-on-a-no-name-frsky-compatible-receiver.html) -1. [Getting uninverted SBUS/SmartPort on the FrSky XSR receiver](../../drone-stuff/getting-uninverted-sbus-smartport-on-the-frsky-xsr-receiver.html) -1. [INAV tuning tips](../../drone-stuff/inav-tuning-tips.html) -1. [Miscellaneous](../../drone-stuff/miscellaneous.html) -1. [Omnibus F4 V3 pinout](../../drone-stuff/omnibus-f4-v3-pinout.html) -1. [Omnibus F4 pro servo diode](../../drone-stuff/omnibus-f4-pro-servo-diode.html) -1. [QGroundControl to Mission Planner conversion script](../../drone-stuff/qgroundcontrol-to-mission-planner-conversion-script.html) -1. [Transmitter external module pinout](../../drone-stuff/transmitter-external-module-pinout.html) -1. [Transportable C1 Chaser](../../drone-stuff/transportable-c1-chaser.html) diff --git a/content/drone-stuff/miscellaneous.md b/content/drone-stuff/miscellaneous.md deleted file mode 100644 index ce61bf0..0000000 --- a/content/drone-stuff/miscellaneous.md +++ /dev/null @@ -1,54 +0,0 @@ -# Miscellaneous - -This is a bunch of miscellaneous info that wouldn't fit anywhere else: - -- The ZOHD Dart 250g with the stock motor draws 4.5A on 2S with the 5x5 propeller. It draws the same amperage at exactly 75% throttle with a 3S battery and the same propeller. -- When wiring your electronics, make sure you don't have any ground loops. - This means that there should only be one ground wire going to each component. - For example, the ESC has one ground wire for power (to the battery) and one for signal (to the FC), you should *only* use one of the two (the one going to the battery). - What you can do for the other ground wire, though, is twist it around the signal wire and only connect it to the FC side, to reduce emissions. - If you have coaxial cable, you can do the same, connect the outer shielding to the FC's ground, and don't connect the other side anywhere, and use the core as signal. - - If you want to embed knurled nuts in foam so you can use screws, use a soldering iron. Set the iron to 150 C, put the nut on the tip of the iron, and push the nut into the foam. It will slowly melt the foam and embed itself quite firmly. Don't use a higher temperature or you'll open a larger hole and the nut won't fit snugly. - - This is the command I used to flash an ESP8285 M3 with [esp-link](https://github.com/jeelabs/esp-link/ ): - ``` - esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash -fs 1MB -fm dout \ - 0x00000 boot_v1.7.bin 0x1000 user1.bin \ - 0xFC000 esp_init_data_default.bin 0xFE000 blank.bin - ``` -- Propellers have a direction: The top usually has letters like, for example, "6040" (which denotes the size and pitch of the propeller), and the top needs to always point towards where the plane will be flying (the front). No matter if you have a pusher or puller, the top of the propeller needs to be pointing forward. -- When it comes to cameras/standards, the difference between PAL and NTSC is that PAL has higher resolution (625 lines, ie 576i for PAL vs 525 lines, ie 480i for NTSC), but lower framerate (25 fps for PAL vs 29.97 fps for NTSC). I use PAL because I prefer having higher resolution. -- If doing manual/hand launches of planes/wings, you'll notice that you need to have your hand on the pitch/roll stick when launching, which means you need to launch with your left hand, which is where the arm and throttle controls usually are. That makes it hard to throttle up to start the launch, or down (or disarm) in an emergency. -To make things a bit easier, I set the back right switch (SG) to override the throttle and set it to the launch throttle (40% for me, for example). That way, I can arm, keep the throttle down, and flip SG with my right hand. That will throttle up enough to easily launch the wing, and if something goes wrong I can still either disarm or flip SG down so the motor stops again. -- ESCs that run on the DShot protocol don't need throttle calibration, you can go ahead and use them right away and they'll do the right thing. - - -## Motor and prop stuff - -Here are the things I know about motors and propellers: - -- The larger and steeper the propeller, the harder it is for the motor to turn. -- The more KV the motor is, the faster it turns, and the harder it is for it to turn. -- The harder the motor has to turn, the more current it draws, and the hotter it gets. -- The larger the (physical) size of the motor, the more heat it can dissipate. -- The more amps (current) the motor draws, the hotter it gets (proportional to the square of the current). -- If the motor gets too hot, some part of it may melt. This ruins the motor. -- The smaller a propeller, the more quickly it can turn, and the more it can accelerate. -- The larger a propeller, the more efficient it is. - -## Recommended BLHeli ESC configuration for fixed wing - -If you have a BLHeli/BLHeli32 ESC, these settings are recommended: - -* Temperature protection: 90 C -* Motor timing: Auto -* Throttle cal enabled: Enabled -* Non-damped mode: Enabled -* Sine modulation mode: Enabled -* Brake on stop: 100% - -* * * - --Last updated on January 17, 2023. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/omnibus-f4-pro-servo-diode.md b/content/drone-stuff/omnibus-f4-pro-servo-diode.md deleted file mode 100644 index a8bfbd1..0000000 --- a/content/drone-stuff/omnibus-f4-pro-servo-diode.md +++ /dev/null @@ -1,16 +0,0 @@ -# Omnibus F4 pro servo diode - -To isolate the servo 5V rail from the controller's 5V power supply, remove this diode: - -[![a435bcae86912205b6fac41731285b8d.png](/resources/6d668e05d8a54580966b94a752f3b7db.png)](/resources/6d668e05d8a54580966b94a752f3b7db.png) - -Now the servos' 5V rail can be powered from another 5V supply to avoid servo current backflow into the FC. - -There's also a [schematic for this FC](/resources/805930c3bedc4393ba947f0e0bfa369d.pdf). - -* * * - --Last updated on April 09, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/omnibus-f4-v3-pinout.md b/content/drone-stuff/omnibus-f4-v3-pinout.md deleted file mode 100644 index 7b5da36..0000000 --- a/content/drone-stuff/omnibus-f4-v3-pinout.md +++ /dev/null @@ -1,18 +0,0 @@ -# Omnibus F4 V3 pinout - -This is the pinout of the Omnibus F4 V3: - -[![53b3161d509dcc7bbfb43c89b16b0bae.png](/resources/99f5c91454204c1d9740a8d9b876833b.png)](/resources/99f5c91454204c1d9740a8d9b876833b.png) - -Also: - -![omnibus-f4-v5-pinout2.jpg](/resources/410f3ce004c64fe9af68bfd6856d3e53.jpg) - - - -* * * - --Last updated on January 06, 2021. For any questions/feedback, -email me at hi@stavros.io. -
diff --git a/content/drone-stuff/qgroundcontrol-to-mission-planner-conversion-script.md b/content/drone-stuff/qgroundcontrol-to-mission-planner-conversion-script.md deleted file mode 100644 index e7fab4c..0000000 --- a/content/drone-stuff/qgroundcontrol-to-mission-planner-conversion-script.md +++ /dev/null @@ -1,44 +0,0 @@ -# QGroundControl to Mission Planner conversion script - -If you have a parameter dump from QGroundControl, I wrote a small script that will convert it to a Mission Planner compatible file. You can also use [Parachute](https://gitlab.com/stavros/parachute) to do your backups/restores/conversions. - -Just save this script somewhere as `convert_qgc_params` and run it as `./convert_qgc_params