• Arduino, Arduino Maga
    • A microcontroller board based on the ATmega2560.
    • The Arduino Maga has additional I/O pins and is used by the TrainThing with the Motor Shield as the TrainThing Base Station to control the layout hardware by translating DCC++ commands to DCC signals.
  • Bonnet - 
    • Like a Raspberry Pi HAT, physically smaller. 
    • TrainThing uses three 16-channel PWM/Servo Bonnets to drive servos that control semaphore signal arms.
  • DCC - Digital Command Control...
    • is a scheme for controlling locomotives and other elements on a model railroad layout.
    • TrainThing uses DCC to control trains and turnouts.
  • DCC++ - Digital Command Control...
    • is an Open Source Arduino-based do-it-yourself DCC Base Station. 
    • TrainThing uses DCC++ to send commands and status between the laptop (4) and Arduino (2).
    • TrainThing has added commands to DCC++ to send commands and receive status from the two Raspberry Pi processors in the system.
  • DSI - Display Serial Interface...
    • it defines a high-speed serial interface between a host processor and a display module.
    • TrainThing uses the DSI connection on the Raspberry Pi (3A) for a 3.5" touchscreen display to display/randomly select the path for each train.
  • GPIO - General Purpose Input/Output...
    • pins on Raspberry Pi 2x20 header that can be configured as inputs or outputs in additions to their default function.
  • HAT - Hardware Attached on Top. 
    • Add-on hardware boards that attach directly to the Raspberry Pi 2x20 header adding additional functionality.
    • TrainThing uses a 16-channel PWM/Servo HAT to:
      • Drive 15 servos that control semaphore signal arms.
      • Control the add-on fan for the Raspberry Pi 4 with a PWM signal.
      • Bring out a GPIO pin for the fan control push button.
      • Bring out 12 GPIO pins for the four 3-color signals in the parking lot.
      • Bring out 4 GPIO pins for traffic monitor LEDs
    • TrainThing uses two Unicorn HD (high definition) HATs. The Unicorn HAT is a 16x16 array of tri-color LEDs used to display status of each of the 64 signals temperature and fan status. 
  • IEC - International Electrotechnical Commission. 
    • One of their standards is a color code used to label components.
    • (0) Black, (1) Brown, (2) Red, (3) Orange, (4) Yellow, (5) Green, (6) Blue, (7) Violet, (8) Gray, (9) White
    • Bad Beer Rots Out Your Guts But Vodka Goes Well (Much better than the sexist mnemonic I learned.)
    • Order to park colored trains (Red, Orange, Yellow and Green).
  • I2C - {I2C} Inter-Integrated Circuit...
    • is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial communication bus. The I2C uses only 2 pins
      • SDA, Serial Data line.
      • SCL, Serial Clock line.
    • In the TrainThing this interface is used to control and send data to a 16-channel PWM/Servo HAT and three PWM/Servo Bonnets.
  • Java - A class-based, object-oriented programming language...
    • that is designed to have as few implementation dependencies as possible.
  • Jython - Java implementation of the Python interpreter
  • PWM - Pulse Width Modulation...
    • is a method of reducing the average power delivered by an electrical signal, by effectively chopping it up into discrete parts.
    • Servo control is achieved by sending a servo a PWM signal, a series of repeating pulses of variable width where the width of the pulse determines the position to be achieved by the servo.
  • Python - Programming language
    • Python is an interpreted, high-level and general-purpose programming language.
  • Raspberry Pi
    • Raspberry Pi 3B+ - A microcontroller board based on the Quad Core Broadcom BCM2837 64-bit ARMv8 processor.
    • Raspberry Pi 4 B - Bigger, better, faster.
  • SEO ~ Search Engine Optimization...
    • is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. 
    • SEO targets unpaid traffic (known as "natural" or "organic" results) rather than direct traffic or paid traffic.
  • SPI - Serial Peripheral Interface...
    • is a synchronous serial communication interface specification used for short-distance communication, primarily in embedded systems. 
    • The SPI uses 5 pins on the Raspberry Pi 2x20 pin header. 
    • In the TrainThing this interface is used control and send data to the two Unicorn 16x16 LED displays. The 5 pins used are 
      • MOSI, Master out/Slave in, 
      • MISO, Master in/Slave out, 
      • SCLK, SPI clock.
      • 2 CE (CE0, CE1) Chip enable. Each Unicorn is enabled by one of the CE signals.