Buttons Wiring:

The user interface on the controller can be accessed in Ruby using a USB keyboard, a rotary encoder, or using 4 push buttons for: Menu, Cancel, Up and Down. There are also some optional buttons, that enable auxiliary functions in Ruby like starting a video recording, taking a picture, changing OSD layouts, changing camera settings on the fly and more. They are not mandatory, but make life easier and the user experience more enjoyable.

Note: The user interface can be accessed and used now also using a rotary encoder. Please see the Peripherals section to see how to setup a rotary encoder.

If you choose to use buttons for interface navigation, you need to wire the buttons as in the pictures below. There is a common rail to all buttons, connected to 3.3v and one individual connection from each button to a GPIO pin on the Raspberry Pi:


Menu Navigation Buttons Wiring
 

Optional Buttons Wiring


You can assign what actions to do when pressing the Quick Actions buttons from the Preferences menu:


Quick Actions buttons

Other GPIO hardware connections:

There are few other hardware connections you can make to Ruby, that are optional, but can be used if needed.
They are as follows:
* A LED that will blink when video recording is turned on (on the controller side);
* A LED that will blink when there are major hardware or software issues (on the controller side);
* A GPIO pin (GPIO 19) that you can use to force a Pi to boot as a vehicle/relay, even if it has no camera (on the vehicle side);
* A GPIO pin (GPIO 26) that you can use to force a Pi to boot as a controller, even if a camera is present (on the controller itself);

The wiring for those is as in the picture below:


Optional LEDs and buttons