This suite of applications is designed and developed to support a model railroad using a DCC-EX EX-CommandStation and additional Arduinos, Raspberry Pis or other devices that support the required protocols. The applications communicate using MQTT π‘. The client apps (ποΈ Throttle App, π Dispatcher App, ποΈ Dashboard App) publish commands like throttle speed and direction, turnouts, or effects like lights, sounds and signals. The servers (π°οΈ Deja.js for DCC commands, π± TTT App for REST API access, and π§ Action Api for Arduinos and other supported interfaces) subscibe to those commands, process them, and then send them to the appropriate interface. π°οΈ Deja.js sends DCC-EX Native Commands via Serial over USB to the DCC-EX CommandStation, while the ActionAPI sends serial commands to usb-connected Arduinos.
- π Beautiful DCC locomotive throttles designed for ease of use
- π» Connect to PC/Mac/Linux/Pi via USB
- ποΈ Control turnouts - servos or momentary relays (Kato switches!)
- π‘ Toggle lights, πͺ© IALEDs and π¦ Signals
- πΌ Play sounds
- π€οΈ Toggle routes
- β¨ Toggle relays, control motor drivers, juice frogs, control LCDs
- π Rule over your tiny world
- π¦ Install & Configure DCC-EX EX-CommandStation via USB to Mac/PC/Linux/Raspberry Pi
- π¦ Install NodeJS 21+ on Mac/PC/Linux/Raspberry Pi
- Install NVM, Node 21 [Recommended]
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
$ nvm install 21
- π¦ Install Lerna
$ pnpm install -g lerna
- π Configure Environments
See package README files for configuration instructions.
$ lerna run start
Bare Minumum : π°οΈ Deja.js + ποΈ Throttle App
- π¦ Install π°οΈ Deja.js
- π Launch ποΈ Throttle App
- π¦ Install π°οΈ Deja.js
- π¦ Install π§ Action Api
- π Configure π± TTT App
- π Launch π Dispatcher App
π°οΈ Deja.js + π§ Action Api + π± TTT App + π Dispatcher App + ποΈ Throttle App + ποΈ Dashboard App
- π¦ Install π°οΈ Deja.js
- π¦ Install π§ Action Api
- π Configure π± TTT App (currently a manual step)
- π Launch ποΈ Dashboard App
- π Launch ποΈ Throttle App
- π Launch π Dispatcher App
The Action API listens to commands sent from the ποΈ Throttle App, π Dispatcher App or ποΈ Dashboard App and sends or executes those commands on the target interface. Supported interfaces include:
- Arduino via USB
- Raspberry Pi Pico W (via MQTT)
- Audio output
React App that handles all layout operations including throttles, turnouts and effects.
VueJS app for simple throttle operations.
NextJS app hosted on Vercel. The main purpose of this package is to provide secure REST API access to MongoDB. π§ Future enhancements will include landing pages, documentation, demos, and the ποΈ Dashboard App App.
Preact app that displays layout information about the DCC-EX EX-CommandStation.
- πͺ΅ DCC Command Log
- π₯ DCC-EX EX-CommandStation Status and Stats
- π Current Usage in Miliamps
- π Active Locomotive Speeds
This package contains source code for the devices found in Tamarack Junction - the author's model railroad. These scripts are specific for each device and the connections to those devices. π§ Future improvements to these scripts will allow each device to run a single source package and configured using config.h
files.