diff --git a/README.md b/README.md index 28d6057..c32f8bc 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # CMDR Joystick 25 -RC(ELRS)/USB Joystick with 2 hall effect gimbals, 2 hat switches and 25 buttons for use both with PC simulators and ELRS Rx equipped quads. +USB Joystick with 2 hall effect gimbals, 2 hat switches and 27 buttons for use computer simulators. ## Layout ```cpp HW Button index map: --------------------------------------------------------------- -| 0 L| 1 U| | 2 | | 3 L| 4 U| +| 0 L| 1 U| 25 U | | 2 | | 26 U | 4 U| 3 L| --------------------------------------------------------------- | | 5 | 6 | 7 | | 12 | 11 | 10 | | | | @@ -19,11 +19,11 @@ HW Button index map: | | 18 | | 23 | | --------------------------------------------------------------- -USB HID joystick map (Enabled by pressing HW button 2+4): +USB HID joystick map : --------------------------------------------------------------- -| B1 L| B2 U| | B3 | | B4 L| B5 U| +| Fn L| B2 U| B26 U| | B3 | | B28 U| B5 U| B4 L| --------------------------------------------------------------- -| | B6 | B7 | B8/16| |B13/17| B12 | B11 | | +| | TH | B6 | B8/16| |B13/17| B12 | B11 | | | | | | B9 | | B14 | | | | B10 | | B15 | | @@ -32,34 +32,26 @@ USB HID joystick map (Enabled by pressing HW button 2+4): | | H1L | B18 | H1R | | H2L | B19 | H2R | | | | H1D | | H2D | | --------------------------------------------------------------- -Press and hold HW button 0 (B1) changes following: -* B2 => B21 -* B4 => B22 -* B11 => B23 -* B12 => B24 -* hat1 => hat3 (button press B20). -* hat2 => hat4 (button bpress B25) -ELRS channel map (Enabled by pressing HW button 2+3): -(+ = ON, - = OFF, CHxP/M/Z = trim) +USB HID joystick map (Fn): --------------------------------------------------------------- -|CH7-L|CH7+U| | - | |CH8-L|CH8+U| +| Fn L| B21 U| B27 U| | B3 | | B28 U| B5 U| B22 L| --------------------------------------------------------------- -| | THL | CH9 | CH5 | | CH6 |CH11-|CH11+| | +| | TH | B7 | B8/16| |B13/17| B24 | B23 | | | | -| |CH10+| |CH12+| | -| |CH10-| |CH12-| | -| CH1/CH2 CH3/CH4 | -| | - | |CH4P | | -| |CH1M |CH12Z|CH1P | |CH3M |CH34Z|CH3P | | -| | - | |CH4M | | +| | B29 | | B31 | | +| | B30 | | B32 | | +| X1/Y1 X2/Y2 | +| | H3U | | H4U | | +| | H3L | B20 | H3R | | H4L | B25 | H4R | | +| | H3D | | H4D | | --------------------------------------------------------------- Config Layer (holding CONFIG button) --------------------------------------------------------------- -|BOOT L| CAL U| | CONFIG | | USB L|ELRS U| +|BOOT L| CAL U| | CONFIG | | - | - | --------------------------------------------------------------- -| | THL-| THL+| - | | - | - | - | | +| | - | - | - | | - | - | - | | | | | | - | | - | | | | - | | - | | @@ -76,14 +68,13 @@ Config Layer (holding CONFIG button) - 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) +- Total 6x axis, 4x hat switches and 32x buttons (using Fn mode) implemented in USB HID mode ## Hardware - 2x FrSky M7 or M10 gimbals [M7 datasheet](https://www.frsky-rc.com/product/m7/) - 6x Kailh choc low profile switches [Brown](http://www.kailh.com/en/Products/Ks/CS/) -- 6x Cherry MX switches [Brown](https://www.cherrymx.de/en/cherry-mx/mx-original/mx-brown.html) +- 8x Cherry MX switches [Brown](https://www.cherrymx.de/en/cherry-mx/mx-original/mx-brown.html) - 2x Miniature Toggle Switch (M6 shaft, 7-8mm wide body. Ex Apem 5636) [Apem 5000 series](https://www.farnell.com/datasheets/2626614.pdf?_ga=2.22934718.461231604.1570510103-1672862477.1542183430) - 2x Alpine RKJXM1015004 hat switches [pdf](https://www.mouser.se/datasheet/2/15/RKJXM-1662398.pdf) - 1x Bottom case (3D printed) @@ -102,21 +93,6 @@ Config Layer (holding CONFIG button) - 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 (using ExpressLRS Configurator): - - 1. Select latest release - 2. Device category = Generic target used as base 2.4Ghz - 3. Device = Generic ESP32 2.4GHz Gemini TX - 4. Flash to device - 5. Use following custom settings in 10.0.0.1/hardware.html: - - ``` - {"customised":"true","serial_rx":3,"serial_tx":1,"radio_busy":36,"radio_dio1":37,"radio_miso":33,"radio_mosi":32,"radio_nss":27,"radio_rst":26,"radio_sck":25,"radio_busy_2":39,"radio_dio1_2":34,"radio_nss_2":13,"power_rxen":10,"power_txen":14,"power_rxen_2":9,"power_txen_2":15,"power_min":0,"power_high":2,"power_max":2,"power_default":0,"power_control":0,"power_values":[-10,-6,-3],"button":0,"led_rgb":22,"led_rgb_isgrb":true,"screen_type":0} - ``` - ## Software Build environment ##### Rust @@ -128,7 +104,6 @@ Config Layer (holding CONFIG button) ## References -- 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