Update (2021-12-29)

Update (2021-12-17)


Constraints

  • one push button (btn)

  • one potentiometer (pot)

  • Raspberry Pi (RPi)

Preamble

  • Although the “one button” interface seems cool, there’s plenty of those to be found, so I’m going to add some variety with the twisty knob.

  • Unlike a rotary encoder, the pot has an internal state, so whatever state it contains is the truth. The btn is somewhat similar, but it only has 2 states.

  • Standard 10K B type (linear) pot

    • pot shaft is 7mm x 20mm, body is 22mm x 17mm x 10mm
  • 2 leg push button.

    • btn is 12mm sq x 4mm, the button itself is 7mm ø in the middle
  • To connect these to an RPi via the GPIO there are 2 options:

    • to use an ADC

    • directly with a handful of resistors and a capacitor

  • For no ADC, this project outlines the pot and this for the button

  • For ADC, we can refer to this project

  • The states from the pot and btn will be determined using python

  • State can be communicated via unix sockets, or http

  • According to the tutorials, the RPi will use 2 + 1 GPIO pins and the 3.3V + ground pins for the interface

    • This means I could build an interface to 26 / 3 ~ 8 controllers, but I will just build a system for 2 controllers

    • The controller will require 5 ports, clearly matching the pins used on the RPi

    • I think I can share the 3.3V between 2 controllers, if not I guess I can just use an additional GPIO for each

  • With the ADC the set up with pins, power, etc will be completely different.

    • I only have 1 ADC, so I’ll look into whether its possible to still create 2 controller ports with this

    • I think the port design will be roughly similar (to the non ADC design) for the controller, as the ADC in this project would live with the RPi and not within each controller.

Designs

These are the first design sketches. You can help me decide what to build by clicking on your favourite drawing.