| A | B | D | G | H | I | J | M | O | P | R | S |T


  • Arduino, Arduino Mega -
    • A microcontroller board based on the ATmega2560.
    • The Arduino Mega 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.
  • BB - Bulletin Board
    • A software package like phpBB used as part of TrainThing.
    • A place where others can leave comments or discuss a topic.
  • 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.
  • docstring - Python supported documentation ...
    • that is automatically attached to objects.
    • In TrainThing the docstrings are formatted as reStructuredText to be processed by Sphinx for more readable software documentation.
  • DRO - Digital Readout...
    • In machine-shop terminology, the complete Digital Read Out system (consisting of a computer, axis-position encoders, and a numeric display) is referred to by the acronym DRO. Such a system is commonly fitted to machines in today's shops, especially for metal working — lathes, milling machines, and other machine tools — to allow the operator to work faster and with greater accuracy. It is a stretch to say mine has a "computer."
  • 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 (3) 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.
  • GUI - Graphical User Interface...
    • is a form of user interface that allows users to interact with electronic devices (software) through graphical icons and audio indicator such as primary notation, instead of text-based user interfaces, typed command labels or text navigation.
  • 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 GPIO pin 14 for an on/off LEDs.
      • Bring out a GPIO pin for a run/on button
    • TrainThing uses 3 16-channel PWM/Servo bonnets (like the HAT above, but smaller).
    • TrainThing uses a IOPi PLUS HAT to add 32 programmable IO pins to:
      • Monitor the 24 feedback signals available from the 6 Wabbits used in TrainThing.
      • Monitor traffic density with 4 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 (60 really) signals, temperature and fan status. 
  • Headless - software...
  • IDE - Integrated Development Environment...
    • is software for building applications that combines common developer tools into a single graphical user interface (GUI).
    • Examples used are listed under "Development Tools".
  • IEC - International Electrotechnical Commission. 
    • One of their standards is a color code used to label electronic 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).
  • IO - Input/Output ... 
    • IOPi HAT. A HAT for the Raspberry Pi with 32 Input/Output (IO) pins
    • IO Board, A small circuit board to consolidate/distribute input/output signals from several sources.
  • 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 on the RPi 2x20 header
      • 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, three PWM/Servo Bonnets and the IO Pi HAT.
  • Java - A class-based, object-oriented programming language...
    • that is designed to have as few implementation dependencies as possible.
  • JMRI - Java Model Railroad Interface
    • The JMRI project is building tools for model railroad computer control.
  • Jython - Java implementation of the Python interpreter
  • ms - millisecond, 10-3 seconds, 0.001 sec
  • OS - Operating System.. 
    • Now called Raspberry Pi OS previously called Raspbian is a Linux OS.
    • or for the Laptop (4) Windows 11.
  • PHP - (recursive acronym for PHP: Hypertext Preprocessor )...
    • is a widely-used open source general-purpose scripting language used for web development.
    • PHP was used to develop the TrainThing Simulator and underlies the phpBB bulletin board.
  • 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.
  • Pydoc - Python documentation. 
    • Pydoc is a function built into Python that extracts document from module scripts.
    • See Pydoc Output for examples.
  • Python - Programming language
    • Python is an interpreted, high-level and general-purpose programming language.
  • Raspberry Pi

RPi -        (shorthand)

    • Raspberry Pi 3B+ - A microcontroller board based on the Quad Core Broadcom BCM2837 64-bit ARMv8 processor.
    • Raspberry Pi 4 B - Bigger, better, faster.
  • reStructuredText - "is an easy-to-read, ...
    • what-you-see-is-what-you-get plaintext markup syntax and parser system. 
    • "It is useful for in-line program documentation (such as Python docstrings), for quickly creating simple web pages, and for standalone documents. 
    • "reStructuredText is designed for extensibility for specific application domains."
  • SEO - Search Engine Optimization...
    • is the process of improving the quality and quantity of 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.
  • Sphinx - is a software documentation tool ...
    • "that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText source files)."
    • TrainThing uses the autodoc extension.
  • 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 to 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.
  • TOC - Table of Content...
    • This has nothing to do with the TrainThing.
    • See the panel to the left.
  • TTS - Text To Speech...
    • is an online or offline software application that converts text to voice.
    • TrainThing uses pyttsx3 which is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline and is compatible with both Python 2 and 3.
    • See the entry in Design Consideration for how TTS is used in TrainThing.