Skip to content

Controller board

maehw edited this page Nov 20, 2021 · 32 revisions

The self-o-mat kits provided by x-tech UG include a controller board.

The Arduino-based board

  • connects the arcade button and the LED ring to a Raspberry Pi and
  • powers the screen and the Raspberry Pi and connects the on/off switch.

Hardware

The original board is based on an Arduino Nano.

Wiring

Here it the pinout used by the firmware:

Pin Alias Function Input/Output Connection
4 PIN_LED NeoPixel data pin Output To NeoPixel data input
2 PIN_BUTTON Trigger Button Input Connect trigger button with a pull-up resistor
3 PIN_SWITCH ON/OFF Switch Input Connect ON/OFF switch with a pull-up resistor. If not needed, connect to GND for always enabled.
8 PIN_ON POWER Output Can be used to control PC/screen power. Connect PC/screen via relay or leave open if unused
? PIN_FLASH_CAM_TRIGGER Camera flash trigger Input Flash trigger from camera (probably only for older revisions)
? PIN_FLASH_ON Flash enable signal Output GPIO pin to switch on Flash on custom PCB (probably only for older revisions)

The pin definitions can be found in globals.h.

Please take care when changing these as there may be dependencies on PCBs/hard-wiring!

Wiring TBC

Firmware

The firmware is located in ./Arduino.

In order to build the Arduino sketch, an installation of the Arduino IDE is required.

Known issues

Building the Arduino sketch yields the following error message:

globals.h:4:10: fatal error: Adafruit_NeoPixel.h: No such file or directory
 #include <Adafruit_NeoPixel.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1

Adafruit_NeoPixel.h: No such file or directory

You forgot to add the Adafruit NeoPixel library. Select Tools > Manage Libraries... from the menu. Search for "Adafruit NeoPixel", select the correct library and click the Install button.

Building the Arduino sketch yields the following error message:

BusyState.cpp:4:10: fatal error: PinChangeInterrupt.h: No such file or directory
 #include "PinChangeInterrupt.h"
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
PinChangeInterrupt.h: No such file or directory

You forgot to add the PinChangeInterrupt library by NicoHood. Select Tools > Manage Libraries... from the menu. Search for "PinChangeInterrupt", select the correct library and click the Install button.

Clone this wiki locally