This subsystem is part of the Pilot Controls (node id 100) consisting of the following subsystems. Inter-subsystem is handled by CAN.

  • Side Stick
  • Throttle
  • Landing Gear Lever lamps and sensors
  • Rudder Pedals with differential braking.

The subsystem consists of the following:

  • Landing Gear Control Lever (CANid: 1175)
  • 3 Red Indicators (CANid: 1400, 1, 2 )
  • 3 Green Indicators (CANid: 1403, 4, 5)
  • WOW, Weight on Wheels, (CANid: 1176)  this sensor, prevents Landing Gear retraction while on the ground. See the movie "No Highway in the Sky" about 1hr in. For WOW to be TRUE all the sensors have to agree. WOW  on the main wheels is responsible for moving the front canard down, until there is weight on the nose wheel at which time the canard goes to 90 degrees to act as a speed brake. as well as enabling nose wheel steering.
  • Gear Down and Locked sensor (CANid: 1406, 07, 08)
  • Gear Up and Locked sensor. (CANid: 1409, 9810, 11 )

Aircraft have 3 wheels Left, Nose, Right. Each pair of Red/Green Indicator  shows the status of each  wheel:

  • RED SOLID, Gear UP, and Locked.
    • Landing Gear Lever  UP  selected and gear not up and locked (gear retraction)
    • Landing Gear Lever DOWN selected disagrees with landing gear not down and locked (gear extension)
  • GREEN SOLID, Gear Down, and Locked

Landing Gear Lever
So to recap that's wires, 13 wires plus grounds. Since I only have two contacts, (UP & DOWN) on the Landing Gear Lever which is not used very much, I can catch them with an interrupt by putting a 2-input Or Gate followed by Schmitt Trigger connected to the Arduino Mega pins 20, 21. using the rising mode. You have to keep in mind that the switch once in the UP or Down position does not move, except in takeoff and landing, therefore the interrupt is detected on the rising edges.

UPDATE 1: To understand the logic behind my RED lamps which can be solid on or blinking at about 1 Hz, I have included a schematic for you to wonder about.

UPDATE 2: I have decided NOT to try and use the timers instead I will just use a lowly NE555. Its output is 1Hz with a 50% duty cycle.

// The Arduino Mega has 6 interrupt pins 2, 3,  18, 19, 20, and 21

Arduino pins and their mnemonic:

20 LGLUP                  attachInterrupt( digitalPinToInterrupt(LGLUP), ISR20, RISING );

21 LGLDOWN          attachInterrupt( digitalPinToInterrupt(LGLDOWN), ISR21, RISING );

int LGLstatus :: = TRUE == 1 == UP; FALSE == 0 == DOWN; LGLstatus is set by ISR20 && ISR21

pins 22, 23, 24 are SOLID  ON

22 BLR

23 BRL

24 BLC

// pins 25, 26, 27  are BLINK Enable





28 GRR

29 GRL

30 GRC


31 GGR

32 GGL

33 GGC

//CANbus -- SPI interface




53 SS

19  CANint.               attachInterrupt( digitalPinToInterrupt(CANint), ISR19, RISING );



OPTIONAL:  I possibly can include  3 analog input to read the Rudder Pedals (one channel) and Right and Left Toe brakes.  These are just potentiometers.


A1 Rudder position



**Please Note that CANids of 1300 to 1499 are not reserved.