WinWing Orion 2 Ejection Handle

WinWing Orion 2 Ejection Handle

Description

This is an ejection handle that mounts to the WinWing Orion 2 flight stick base. It utilizes and Arduino Nano to communicate with DCS for the F/A-18C to eject. To assemble, you'll need the following: 2x Flanged Sleeve Bearings: https://www.amazon.com/dp/B0B7BJT67Q?ref=ppx_yo2ov_dt_b_product_details&th=1 2x Leaf Spring Shackle Bolts https://www.amazon.com/dp/B0BNDQKC14?psc=1&ref=ppx_yo2ov_dt_b_product_details 2x Compression Springs https://www.mcmaster.com/8969T92/ 1x Micro Limit Switch https://www.amazon.com/dp/B0B3DRXDRL?psc=1&ref=ppx_yo2ov_dt_b_product_details 2x AN6 End Fittings https://www.amazon.com/dp/B0BN5RNHYC?ref=ppx_yo2ov_dt_b_product_details&th=1 1x Nylon Braided Fuel Hose (Cut to desired length) https://www.amazon.com/dp/B08GCVLD66?ref=ppx_yo2ov_dt_b_product_details&th=1 1x Roll Yellow Hockey Tape (Purely aesthetic, wrapped around the fuel hose to create the hazard stripe) https://www.amazon.com/dp/B083V6LXPP?ref=ppx_yo2ov_dt_b_product_details&th=1 1x Arduino Nano with Expansion Board https://www.amazon.com/dp/B073JGV87F?psc=1&ref=ppx_yo2ov_dt_b_product_details https://www.amazon.com/dp/B09KGVDXZY?psc=1&ref=ppx_yo2ov_dt_b_product_details 1x Threaded Inserts https://www.amazon.com/dp/B08K1BVGN9?psc=1&ref=ppx_yo2ov_dt_b_product_details 1x USB-C Data cable of your choice, I use these https://www.amazon.com/dp/B07DC5PPFV?ref=ppx_yo2ov_dt_b_product_details&th=1 1x Metric Screw Assortment https://www.amazon.com/dp/B0C1GFRHGX?psc=1&ref=ppx_yo2ov_dt_b_product_details To assemble: 1. Remove the top plate from the flight stick base. Be careful to re-align the boot when re-installing. 2. Insert the flange bearings and glue in place on the printed top plate. 3. Attach the printed top plate to the flight stick base top plate using longer screws, and then re-attach the new assembly to the flight stick base. 4. Cut fuel hose to desired length and attach 6AN fittings to each end, and wrap in hockey tape if you so choose 5. Pass the shackle bolts through the printed internal plate, place compression springs over the bolts, and pass the bolts through the top plate assembly. 6. Place threaded inserts along the top of the main body, 2x M3 inserts for the Arduino extension board, 2x M2 threaded inserts for the limit switch, and 4x M2 threaded inserts for the back cover. 7. Mount the limit switch, feeding the wires through the small tunnel and cut to appropriate length and attach the small back plate to the body. 8. Attach the wires from the switch to the Arduino extension board, black to GND, and red to D12. 9. Mount the Arduino extension board to the base, and insert the Arduino so the USB-C is facing the small hole at the front of the body. 10. Slide the printed internal plate, bolt, and top plate assembly into the body, and secure using the appropriate screws. 11. Program the Arduino using the following code: /* Tell DCS-BIOS to use a serial connection and use interrupt-driven communication. The main program will be interrupted to prioritize processing incoming data. This should work on any Arduino that has an ATMega328 controller (Uno, Pro Mini, many others). */ #define DCSBIOS_IRQ_SERIAL #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const int ejectionPin = 12; // the pin you have added ejection handle int buttonState = 0; // current state of the switch int lastButtonState = 0; // previous state of the switch void setup() { DcsBios::setup(); pinMode(ejectionPin, INPUT_PULLUP); //sets pin no 5 as input with internal pullup } void loop() { buttonState = digitalRead(ejectionPin); if (buttonState != lastButtonState) { // if ejectionPin state is different from last time then check if handle has been pulled if (buttonState == LOW) { //handle has been pulled sendDcsBiosMessage("EJECTION_HANDLE_SW", "1"); delay(10); sendDcsBiosMessage("EJECTION_HANDLE_SW", "1"); delay(10); sendDcsBiosMessage("EJECTION_HANDLE_SW", "1"); } else { // handle has not been pulled // don't do anything. } // Delay a little bit to avoid bouncing delay(50); } // save the current state as the last state, for next time through the loop lastButtonState = buttonState; } Further guidance on programing Arduinos for use with DCS can be found in this YouTube video: https://www.youtube.com/watch?v=ZGoG54vNyyI If you're having issues with it, feel free to drop me a message on here and I'll try to help as much as possible! Enjoy!

Statistics

Likes

0

Downloads

0

Category

Hobby