Sync inav to Gitea
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# OSD joystick
|
||||
|
||||
LED pin can be used to emulate 5key OSD joystick for OSD camera pin, while still driving ws2812 LEDs (shared functionality).
|
||||
|
||||
See [LED pin PWM](LED%20pin%20PWM.md) for more details.
|
||||
|
||||
Note that for cameras which support RuncamDevice protocol, there is alternative functionality using serial communication: [Runcam device](Runcam%20device.md)
|
||||
|
||||
Also special adapters exist to convert RuncamDevice protocol to OSD Joystick: [Runcam control adapter](https://www.runcam.com/download/runcam_control_adapter_manual.pdf)
|
||||
|
||||
# OSD Joystick schematics
|
||||
|
||||

|
||||
|
||||
Camera internal resistance seems to be 47kOhm or 9kOhm depending on camera model.
|
||||
|
||||
Each key effectively turns on voltage divider. Voltage is sensed by the camera and is compared to the list of keys voltages with some threshold.
|
||||
|
||||
Key voltage has to be held for at least 200ms.
|
||||
|
||||
To simulate 5key joystick, it is sufficient to generate correct voltage on camera OSD pin.
|
||||
|
||||
# Enabling OSD Joystick emulation
|
||||
|
||||
```set led_pin_pwm_mode=shared_high```
|
||||
|
||||
```set osd_joystick_enabled=on```
|
||||
|
||||
Also enable "Multi-color RGB LED Strip support" in Configuration tab.
|
||||
|
||||
# Connection diagram
|
||||
|
||||
We use LED pin PWM functionality with RC filter to generate voltage:
|
||||
|
||||

|
||||
|
||||
# Example PCB layout (SMD components)
|
||||
|
||||
RC Filter can be soldered on a small piece of PCB:
|
||||
|
||||

|
||||
|
||||
# Configuring keys voltages
|
||||
|
||||
If default voltages does not work with your camera model, then you have to measure voltages and find out corresponding PWM duty ratios.
|
||||
|
||||
1. Connect 5keys joystick to camera.
|
||||
2. Measure voltages on OSD pin while each key is pressed.
|
||||
3. Connect camera to FC throught RC filter as shown on schematix above.
|
||||
4. Enable OSD Joystick emulation (see "Enabling OSD Joystick emulation" above)
|
||||
4. Use cli command ```led_pin_pwm <value>```, value = 0...100 to find out PWM values for each voltage.
|
||||
5. Specify PWM values in configuration and save:
|
||||
|
||||
```set osd_joystick_down=0```
|
||||
|
||||
```set osd_joystick_up=48```
|
||||
|
||||
```set osd_joystick_left=63```
|
||||
|
||||
```set osd_joystick_right=28```
|
||||
|
||||
```set osd_joystick_enter=75```
|
||||
|
||||
```save```
|
||||
|
||||
# Entering OSD Joystick emulation mode
|
||||
|
||||
Emulation can be enabled in unarmed state only.
|
||||
|
||||
OSD Joystick emulation mode is enabled using the following stick combination:
|
||||
|
||||
```Throttle:CENTER Yaw:RIGHT```
|
||||
|
||||
|
||||
Than camera OSD can be navigated using right stick. See [Controls](Controls.md) for all stick combinations.
|
||||
|
||||
*Note that the same stick combination is used to enable 5keys joystick emulation with RuncamDevice protocol.*
|
||||
|
||||
Mode is exited using stick combination:
|
||||
|
||||
```Throttle:CENTER Yaw:LEFT```
|
||||
|
||||
# RC Box
|
||||
|
||||
There are 3 RC Boxes which can be used in armed and unarmed state:
|
||||
- Camera 1 - Enter
|
||||
- Camera 2 - Up
|
||||
- Camera 3 - Down
|
||||
|
||||
Other keys can be emulated using Programming framework ( see [LED pin PWM](LED%20pin%20PWM.md) for more details ).
|
||||
|
||||
# Behavior on boot
|
||||
|
||||
There is ~2 seconds LOW pulse during boot sequence, which corresponds to DOWN key. Fortunately, cameras seem to ignore any key events few seconds after statup.
|
||||
Reference in New Issue
Block a user