134 lines
6.3 KiB
Markdown
134 lines
6.3 KiB
Markdown
# CMDR Joystick 25
|
|
|
|
RC Joystick with 2 hall effect gimbals, 2 hat switches and 25 buttons for use both with simulators and ELRS Rx equipped quads.
|
|
|
|
## Layout
|
|
|
|
```cpp
|
|
USB Joystick Layer 0
|
|
--------------------------------------------------------------
|
|
| FnL | B1 | | B21 | | B5 | FnR |
|
|
--------------------------------------------------------------
|
|
| | B2 | B3 | MoL | | MoR | B7 | B6 | |
|
|
| |
|
|
| | B4 | | B8 | |
|
|
| | B17 | | B18 | |
|
|
| Z/RZ X/Y |
|
|
| | H1U | | H2U | |
|
|
| | H1L | H1B | H1R || H2L | H2B | H2R | |
|
|
| | H1D | | H2D | |
|
|
--------------------------------------------------------------
|
|
|
|
USB Joystick Layer 1 (FnL)
|
|
--------------------------------------------------------------
|
|
| FnL | B9 | | B21 | | B5 | FnR |
|
|
--------------------------------------------------------------
|
|
| | B10 | B11 | MoL | | MoR | B7 | B6 | |
|
|
| |
|
|
| | B12 | | B8 | |
|
|
| | B19 | | B18 | |
|
|
| Z/RZ X/Y |
|
|
| | H3U | | H2U | |
|
|
| | H3L | H3B | H3R || H2L | H2B | H2R | |
|
|
| | H3D | | H2D | |
|
|
--------------------------------------------------------------
|
|
|
|
USB Joystick Layer 2 (FnR)
|
|
--------------------------------------------------------------
|
|
| FnL | B1 | | B21 | | B13 | FnR |
|
|
--------------------------------------------------------------
|
|
| | B2 | B3 | MoL | | MoR | B15 | B14 | |
|
|
| |
|
|
| | B4 | | B16 | |
|
|
| | B17 | | B20 | |
|
|
| Z/RZ X(RX)/Y(RY) |
|
|
| | H1U | | H4U | |
|
|
| | H1L | H1B | H1R || H4L | H4B | H4R | |
|
|
| | H1D | | H4D | |
|
|
--------------------------------------------------------------
|
|
|
|
USB Joystick Layer 3 (FnL + FnR)
|
|
--------------------------------------------------------------
|
|
| FnL | B9 | | B21 | | B13 | FnR |
|
|
--------------------------------------------------------------
|
|
| | B10 | B11 | MoL | | MoR | B15 | B14 | |
|
|
| |
|
|
| | B12 | | B16 | |
|
|
| | B19 | | B20 | |
|
|
| Z/RZ X(RX)/Y(RY) |
|
|
| | H3U | | H4U | |
|
|
| | H3L | H3B | H3R || H4L | H4B | H4R | |
|
|
| | H3D | | H4D | |
|
|
--------------------------------------------------------------
|
|
|
|
ELRS Layer
|
|
--------------------------------------------------------------
|
|
| CH7 OFF | CH7 ON | | -- | | CH8 ON | CH8 OFF|
|
|
--------------------------------------------------------------
|
|
| | CH9 ON | CH9 OFF | CH5 | | CH10 OFF | CH10 ON | CH12| |
|
|
| |
|
|
| | CH11 ON | | CH12 ON | |
|
|
| | CH11 OFF | | CH12 OFF | |
|
|
| X(CH1)/Y(CH2) X(CH3)/Y(CH4) |
|
|
| | LTU | | RTU | |
|
|
| | LTL | LTC | LTR || RTL | RTC | RTR | |
|
|
| | LTD | | RTD | |
|
|
--------------------------------------------------------------
|
|
|
|
```
|
|
|
|
## Features
|
|
|
|
- Ergonomic design (low profile)
|
|
- Hall effect gimbals
|
|
- Supports both USB HID joystick and ELRS Tx
|
|
- Total 6x axis, 4x hat switches and 25x buttons (using Fn mode) implemented in USB HID mode
|
|
- 12 Channels implemented in ELRS mode (4x axis, 8x buttons)
|
|
|
|
## Hardware
|
|
|
|
- 2x FrSky M7 or M10 gimbals
|
|
- 6x Kailh choc low profile switches
|
|
- 6x Cherry MX switches
|
|
- 2x Miniature Toggle Switch (M6 shaft, 7mm wide body)
|
|
- 2x Alpine RKJXM1015004 hat switches
|
|
- 1x Bottom case (3D printed)
|
|
- 1x Top plate (3D printed)
|
|
- 2x Hat swith top (3D printed)
|
|
- 1x PCB
|
|
|
|
 
|
|
|
|
- Gerber files: [zip](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_gerber.zip)
|
|
- Schematics: [pdf](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_schematics.pdf)
|
|
- rp2040zero pinout: [jpg](https://www.waveshare.com/w/upload/2/2b/RP2040-Zero-details-7.jpg)
|
|
- rp2040zero schematic: [pdf](https://www.waveshare.com/w/upload/4/4c/RP2040_Zero.pdf)
|
|
- eeprom 24C32LV: [pdf](https://www.mouser.se/datasheet/2/308/1/NV24C32LV_D-2319484.pdf)
|
|
- P-Fet si2372eds: [pdf](https://www.vishay.com/docs/63924/si2371eds.pdf)
|
|
- N-Fet 2N7002: [pdf](https://www.mouser.se/datasheet/2/408/T2N7002AK_datasheet_en_20150401-1916411.pdf)
|
|
- Small signal diod 1N4148W: [pdf](https://www.diodes.com/assets/Datasheets/BAV16W_1N4148W.pdf)
|
|
|
|
- 1x ELRS TX (using a EP1 TCXO Dual receiver reprogrammed as a tramsmitter)
|
|
- [Link to EP1](https://www.happymodel.cn/index.php/2022/11/07/2-4g-elrs-ep1-ep2-ep1dual-tcxo-receiver/)
|
|
- [Reprogramming instructions](https://github.com/MUSTARDTIGERFPV/rx-as-tx#flashing)
|
|
|
|
## Software Build environment
|
|
Rust
|
|
|
|
- Cargo (rust embedded)
|
|
- Flashing via Cargo
|
|
- Pressing boot button on teensy
|
|
- Press and hold "top lower right button" when powering the unit
|
|
|
|
- CRSF protocol description (for communicating with ELRS TX): [Link](https://github.com/ExpressLRS/ExpressLRS/wiki/CRSF-Protocol)
|
|
- rp2040 datasheet: [pdf](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf)
|
|
|
|
## Calibration
|
|
|
|
1. Center both gimbals.
|
|
2. Press all righ hand side buttons except hat switch. Status led will start blinking green.
|
|
3. Move both gimbals to all corners.
|
|
4. Press right hat switch to save calibration data to eeprom.
|
|
|
|
Done!
|