Here are some of components we have on hand to loan. If you have access to another device you want to try, likely good, too, come by and let's talk!
GPIO inputs
Use an input device to control the clock or as user input for game or interactive application. Implement debounced read for cleanest event response!
- Mechanical buttons
- Buttons of various forms, latching and non-latching (e.g push, toggle, slide, lever)

- Buttons of various forms, latching and non-latching (e.g push, toggle, slide, lever)
- Digital switches
- Switches that change in response to tilt, shock, magnetic field (reed switch), capacitive touch, photo-interruptor

- Switches that change in response to tilt, shock, magnetic field (reed switch), capacitive touch, photo-interruptor
- Rotary encoder knob
- Turn clockwise or counterclockwise, satisfying clicky feel. Knob may act as pushbutton, some have lighted shaft.
- Datasheet from manufacturer is pretty primitive, lighted shaft datasheet is easier to read. Overview of rotary encoder from Adafruit.

- 5-way navigation switch, mini joystick
- Bundle of 5 individual buttons, rock to compass points (NSEW), push down on center

- Datasheet from manufacturer
- Bundle of 5 individual buttons, rock to compass points (NSEW), push down on center
- Rotary wheel
- Mash-up of rotary encoder with 5-way switch – reminiscent of old iPod for those retro technology enthusiasts.

- Diagram from manufacturer
- Mash-up of rotary encoder with 5-way switch – reminiscent of old iPod for those retro technology enthusiasts.
- Membrane keypad
- 3 x 4 matrix number keypad, reports press of single button and multiple concurrent buttons.
- summary from supplier ProtoSupplies

GPIO outputs
Turning something on or off not so exciting by itself, but using your timer and gpio modules to pulse in specific patterns/timing creates cool effects!

- Shift register
- Can control 8 outputs from just 3 gpios, handy!
- SN74HC595N 8-bit SIPO
- Datasheet from supplier
- Common cathode RGB LED
- Three LEDs (red/green/blue) inside a diffused casing, selective dimming on individual components for full color spectrum and brightness
- Ramp dim->bright, cycle through colors
- Manufacturer datasheet, an overview of RGB led from ProtoSupplies
- Other display units
- bar graph (10 individual LEDs), would work well with shift register
- 8x8 dot matrix 788AS Datasheet
- Passive buzzer
- Tiny little speaker, ok sound quality, retro feel, software pwm at frequency can play square-wave notes/melody, make sound effects (sci fi laser gun, sad trombone)
- Can drive direct from GPIO with series resistor (will be quiet, add transistor will boost volume)
- Specs from supplier, an overview of passive buzzer from ProtoSupplies
- Vibrating disc motor
- Make haptic feedback through buzzy patterns, ramp up/down. Motor is plucky for its size. Try attaching to a coin and sit on a desk to further amplify the motion.
- Driving a motor directly from GPIO not recommended (even a tiny one), add series resistor to reduce current or make buffer circuit see: https://learningaboutelectronics.com/Articles/Vibration-motor-circuit.php
- Datasheet from manufacturer, info from supplier
Circuits, wiring
- Remember the need for pull-up/down configuration to avoid inputs in floating state. For best convenience, implement internal resistor!
- Highly recommend a review of "Beginners Guide to Wiring Things to the GPIO" https://forums.raspberrypi.com/viewtopic.php?t=216304, post on Raspberry Pi forum. We pointed students to this helpful post back in the day; much of its great advice generally holds in Mango Pi world, especially appreciate its emphasis on protecting the Pi.
- Some components are breadboard-friendly, others have weak/short legs that aren't sturdy so best bet is to solder on header pins. Bench in back corner of our lab room has soldering supplies. Ask one of our staff for help or go to the pros at lab64 for a demo if you are new to soldering. Example of header pins added to rotary encoder:
