{"id":20833378,"url":"https://github.com/reala10001986/dash-gauges","last_synced_at":"2025-09-07T11:33:56.757Z","repository":{"id":204658084,"uuid":"699675862","full_name":"realA10001986/Dash-Gauges","owner":"realA10001986","description":"Building instructions and firmware for the Dash Gauges (\"Plutonium gauges\") as known from the Delorean Time Machine","archived":false,"fork":false,"pushed_at":"2025-04-08T07:29:34.000Z","size":45301,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-08T08:31:57.746Z","etag":null,"topics":["bttf","dash-gauges","dashgauges","delorean","deloreantimemachine","docbrown","dtm","esp32","gauges","mcfly","plutonium","plutonium-chamber","plutonium-gauges","time-machine"],"latest_commit_sha":null,"homepage":"https://circuitsetup.us/product/delorean-time-machine-dash-gauge-control-board/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/realA10001986.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-03T05:41:17.000Z","updated_at":"2025-04-08T07:29:38.000Z","dependencies_parsed_at":"2024-02-18T09:33:33.080Z","dependency_job_id":"f5078cd4-0dc5-40dd-a0d5-9fe89466d558","html_url":"https://github.com/realA10001986/Dash-Gauges","commit_stats":null,"previous_names":["reala10001986/plutonium-gauges","reala10001986/dash-gauges"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realA10001986%2FDash-Gauges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realA10001986%2FDash-Gauges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realA10001986%2FDash-Gauges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realA10001986%2FDash-Gauges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/realA10001986","download_url":"https://codeload.github.com/realA10001986/Dash-Gauges/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252983759,"owners_count":21835758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bttf","dash-gauges","dashgauges","delorean","deloreantimemachine","docbrown","dtm","esp32","gauges","mcfly","plutonium","plutonium-chamber","plutonium-gauges","time-machine"],"created_at":"2024-11-18T00:15:21.499Z","updated_at":"2025-09-07T11:33:56.643Z","avatar_url":"https://github.com/realA10001986.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dash Gauges (Delorean Time Machine)\n\nThis [repository](https://dg.out-a-ti.me) holds \n- [instructions](Hardware.md) for building a Dash Gauge panel, as seen in the Delorean Time Machine,\n- and a suitable firmware.\n\nThis panel is meant as an add-on for the CircuitSetup [Time Circuits Display](https://tcd.out-a-ti.me) as it relies on the TCD's keypad to control many of its functions.\n\n[\u003cimg src=\"img/mydg1.jpg\"\u003e](img/mydg1_l.jpg)\n[\u003cimg src=\"img/mydg2.jpg\"\u003e](img/mydg2_l.jpg)\n\n| [![Watch the video](https://img.youtube.com/vi/R2M2wp6kowQ/0.jpg)](https://youtu.be/R2M2wp6kowQ) |\n|:--:|\n| Click to watch the video |\n\nFor information on the hardware, please see [here](Hardware.md).\n\nFirmware features include\n- support for analog gauges (with software-controlled arbitrary pointer position) and digital gauges (Empty/Full, without arbitrary pointer position)\n- selectable \"full\" percentages per analog gauge (besides for fun, useful for adjusting inaccurate readings)\n- selectable threshold percentage for Empty/Full position for digital gauges\n- [Time Travel](#time-travel) function, triggered by button, [Time Circuits Display](https://tcd.out-a-ti.me) (TCD) or via [MQTT](#home-assistant--mqtt)\n- support for Side Switch to play \"empty\" and \"refill\" sequences\n- Automatic refill timer, automatic alarm mute timer (both optional)\n- support for door switches for playing sounds when opening/closing the car doors\n- [wireless communication](#bttf-network-bttfn) with [Time Circuits Display](https://tcd.out-a-ti.me); used for synchronized time travels, alarm, night mode, fake power and remote control through TCD keypad\n- [music player](#the-music-player): Play mp3 files located on an SD card [requires TCD connected wirelessly for control]\n- [SD card](#sd-card) support for custom audio files for effects, and music for the Music Player\n- advanced network-accessible [Config Portal](#the-config-portal) for setup (http://gauges.local, hostname configurable)\n- [Home Assistant](#home-assistant--mqtt) (MQTT 3.1.1) support\n- built-in OTA installer for firmware updates and audio files\n\n## Firmware Installation\n\nIf a previous version of the Dash Gauges firmware is installed on your device's ESP32, you can update easily using the pre-compiled binary. Enter the [Config Portal](#the-config-portal), click on \"Update\" and select the pre-compiled binary file provided in this repository ([install/dashgauges-A10001986.ino.nodemcu-32s.bin](https://github.com/realA10001986/Dash-Gauges/blob/main/install/dashgauges-A10001986.ino.nodemcu-32s.bin)).\n\nIf you are using a fresh ESP32 board, please see [dashgauges-A10001986.ino](https://github.com/realA10001986/Dash-Gauges/blob/main/dashgauges-A10001986/dashgauges-A10001986.ino) for detailed build and upload information, or, if you don't want to deal with source code, compilers and all that nerd stuff, go [here](https://install.out-a-ti.me) and follow the instructions.\n\n *Important: After a firmware update, the \"empty\" LED might blink for short while after reboot. Do NOT unplug the device during this time.*\n\n### Audio data installation\n\nThe firmware comes with audio data (\"sound-pack\") which needs to be installed separately. The audio data is not updated as often as the firmware itself. If you have previously installed the latest version of the sound-pack, you normally don't have to re-install the audio data when you update the firmware. Only if either a new version of the sound-pack is released, or your device is quiet after a firmware update, a re-installation is needed.\n\nThe first step is to download \"install/sound-pack-xxxxxxxx.zip\" and extract it. It contains one file named \"DGA.bin\".\n\nThen there are two alternative ways to proceed. Note that both methods *require an SD card*.\n\n1) Through the [Config Portal](#the-config-portal). Click on *Update*, select the \"DGA.bin\" file in the bottom file selector and click on *Upload*. Note that an SD card must be present during this operation.\n\n2) Via SD card:\n- Copy \"DGA.bin\" to the root directory of of a FAT32 formatted SD card;\n- power down the Dash Gauges,\n- insert this SD card into the slot and \n- power up the Dash Gauges; the audio data will be installed automatically.\n\nAfter installation, the SD card can be re-used for [other purposes](#sd-card).\n\n## Initial Configuration\n\n\u003eThe following instructions only need to be followed once, on fresh Dash Gauges. They do not need to be repeated after a firmware update.\n\nThe first step is to establish access to the configuration web site (\"Config Portal\") in order to configure your Dash Gauges:\n\n- Power up the device and wait until the startup sequence has completed.\n- Connect your computer or handheld device to the WiFi network \"DG-AP\".\n- Navigate your browser to http://gauges.local or http://192.168.4.1 to enter the Config Portal.\n\n#### Connecting to a WiFi network\n\nAs long as the device is unconfigured, it creates a WiFi network of its own named \"DG-AP\". This is called \"Access point mode\", or \"AP-mode\". \n\nIt is ok to leave the Dash Gauges in this mode, especially if it run stand-alone. In a typical home setup and/or if you also have a [Time Circuits Display](https://tcd.out-a-ti.me), however, you might want to connect the Dash Gauges to a WiFi network (in case of using it together with a TCD: to the same WiFi network the TCD is connected to). If you have your Dash Gauges, along with a Time Circuits Display, mounted in a car, you might want to connect the Dash Gauges to the TCD's very own WiFi network \"TCD-AP\"; see [here](#car-setup).\n\nIn order to connect your Dash Gauges to a WiFi network, click on \"Configure WiFi\". The bare minimum is to select an SSID (WiFi network name) and a WiFi password.\n\n\u003eNote that the device requests an IP address via DHCP, unless you entered valid data in the fields for static IP addresses (IP, gateway, netmask, DNS). If the device is inaccessible as a result of incorrect static IPs, \n\u003e- power-down the device,\n\u003e- hold the Time Travel button,\n\u003e- power-up the device (while still holding the Time Travel button)\n\u003e- wait until the \"Empty\" LED flashes briefly,\n\u003e- flip the Side Switch twice within 10 seconds,\n\u003e- wait until the \"Empty\" LED lights up,\n\u003e- then release the Time Travel button.\n\u003e\n\u003eThis procedure causes static IP data to be deleted; the device will return to DHCP after a reboot.\n\nAfter saving the WiFi network settings, the device reboots and tries to connect to your configured WiFi network. If that fails, it will again start in access point mode.\n\nAfter completing this step, your Dash Gauges are ready to be configured through the \"Config Portal\".\n\n## The Config Portal\n\nThe \"Config Portal\" is the Dash Gauges' configuration web site.\n\n| ![The Config Portal](img/cpm.png) |\n|:--:| \n| *The Config Portal's main page* |\n\nIt can be accessed as follows:\n\n#### If Dash Gauges are in AP mode\n\n- Connect your computer or handheld device to the WiFi network \"DG-AP\".\n- Navigate your browser to http://gauges.local or http://192.168.4.1 to enter the Config Portal.\n\n#### If Dash Gauges are connected to WiFi network\n\n- Connect your hand-held/computer to the same WiFi network to which the Dash Gauges are connected, and\n- navigate your browser to http://gauges.local\n\n  Accessing the Config Portal through this address requires the operating system of your hand-held/computer to support Bonjour/mDNS: Windows 10 version TH2     (1511) [other sources say 1703] and later, Android 13 and later; MacOS and iOS since the dawn of time.\n\n  If connecting to http://gauges.local fails due to a name resolution error, you need to find out the Gauges' IP address. In order to do so, hold \"Button 1\" on the Control Board for 2 seconds, and listen. The IP address will be spoken out loud. Then, on your handheld or computer, navigate to http://a.b.c.d (a.b.c.d being the IP address as just given by the Dash Gauges) in order to enter the Config Portal.\n\nIn the main menu, click on \"Setup\" to configure your Dash Gauges. \n\n| [\u003cimg src=\"img/cps-frag.png\"\u003e](img/cp_setup.png) |\n|:--:| \n| *Click for full screenshot* |\n\nA full reference of the Config Portal is [here](#appendix-a-the-config-portal).\n\n## Gauge Hardware Configuration\n\nThe firmware needs to know the type of gauges installed; by default, power output to the gauges is disabled.\n\nIn order to configure the Dash Gauges for your specific hardware,\n- hold the \"Time Travel\" button for 5 seconds (until a beep is emitted),\n- then enter the Config Portal as described above, and click on \"Setup\".\n\nNear the bottom of this page, there are three drop-down widgets, one for each gauge. Carefully select the type for each of your gauges, and click on \"Save\".\n\nAfter this step, your Dash Gauges are ready to be used.\n\n## Basic Operation\n\nAs mentioned, the Dash Gauges are an add-on for a Time Circuits Display. Their basic function is to show some values on its gauges, and to play an \"empty\" alarm after a time travel.\n\nThere is little to play with when the Dash Gauges aren't connected to a TCD:\n- To quickly trigger the \"empty\" sequence, flip the side switch of your Dash Gauges. To \"refill\", flip that switch again.\n- Press the time travel button to trigger a simple \"surge\" sequence.\n\nThe Dash Gauges are way more fun when other props (TCD, FC, SID) are present as well. The TCD is of special importance: When connected through BTTFN, the TCD can act as a remote control for the Dash Gauges.\n\n## TCD remote command reference\n\n### Remote control reference\n\n\u003ctable\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"center\" colspan=\"2\"\u003eSpecial sequences\u003cbr\u003e(\u0026#9166; = ENTER key)\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\u003ctd\u003eFunction\u003c/td\u003e\u003ctd\u003eCode on TCD\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\"Refill\"\u003c/td\u003e\n     \u003ctd\u003e009\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eSet \"full\" percentage of \"Primary\" gauge (01-99%)\u003c/td\u003e\n     \u003ctd\u003e9101\u0026#9166; - 9199\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eReset \"full\" percentage of \"Primary\" gauge\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9100\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eSet \"full\" percentage of \"Percent Power\" gauge (01-99%)\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9401\u0026#9166; - 9499\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eReset \"full\" percentage of \"Percent Power\" gauge\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9400\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eSet \"full\" percentage of \"Roentgens\" gauge (01-99%)\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9701\u0026#9166; - 9799\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eReset \"full\" percentage of \"Roentgens\" gauge\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9700\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e    \n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eSet volume level (00-19)\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9300\u0026#9166; - 9319\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Play/Stop\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9005\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Previous song\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9002\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Next song\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9008\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Select music folder (0-9)\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9050\u0026#9166; - 9059\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Shuffle off\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9222\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Shuffle on\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9555\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Go to song 0\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9888\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003e\u003ca href=\"#the-music-player\"\u003eMusic Player\u003c/a\u003e: Go to song xxx\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9888xxx\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey1.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9001\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey3.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9003\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey4.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9004\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey6.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9006\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey7.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9007\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003ePlay \"\u003ca href=\"#additional-custom-sounds\"\u003ekey9.mp3\u003c/a\u003e\"\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9009\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eSay current IP address\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9090\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e   \n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eReboot the device\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9064738\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eDelete static IP address\u003cbr\u003eand WiFi-AP password\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9123456\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n     \u003ctd align=\"left\"\u003eUnlock \"gauge type\" selection in Config Portal\u003c/td\u003e\n     \u003ctd align=\"left\"\u003e9317931\u0026#9166;\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n[Here](https://github.com/realA10001986/Dash-Gauges/blob/main/CheatSheet.pdf) is a cheat sheet for printing or screen-use. (Note that MacOS' preview application has a bug that scrambles the links in the document. Acrobat Reader does it correctly.)\n\n## Time travel\n\nTo trigger a \"time travel\" stand-alone, you need to install a \"Time Travel\" button. Pressing that button briefly will let the Dash Gauges play their time travel sequence. Please see [here](hardware/#connecting-a-time-travel-button) for how to wire that button.\n\nOther ways of triggering a time travel are available if a [Time Circuits Display](#connecting-a-time-circuits-display) is connected.\n\n## SD card\n\nPreface note on SD cards: For unknown reasons, some SD cards simply do not work with this device. For instance, I had no luck with Sandisk Ultra 32GB and  \"Intenso\" cards. If your SD card is not recognized, check if it is formatted in FAT32 format (not exFAT!). Also, the size must not exceed 32GB (as larger cards cannot be formatted with FAT32). Transcend SDHC cards work fine in my experience.\n\nThe SD card, apart from being required for [installing](#audio-data-installation) of the built-in audio data, can be used for substituting built-in sound effects and for music played back by the [Music player](#the-music-player). Also, it is _strongly recommended_ to store [secondary settings](#-save-secondary-settings-on-sd) on the SD card to minimize [Flash Wear](#flash-wear).\n\nNote that the SD card must be inserted before powering up the device. It is not recognized if inserted while the Dash Gauges are running. Furthermore, do not remove the SD card while the device is powered.\n\n### Sound substitution\n\nThe Dash Gauges' built-in sound effects can be substituted by your own sound files on a FAT32-formatted SD card. These files will be played back directly from the SD card during operation, so the SD card has to remain in the slot.\n\nYour replacements need to be put in the root (top-most) directory of the SD card, be in mp3 format (128kbps max) and named as follows:\n- \"startup.mp3\". Played when the Dash Gauges are connected to power and finished booting;\n- \"refill.mp3\". Played during the \"refill\"-sequence;\n- \"alarm.mp3\". Played when the alarm sounds (triggered by a Time Circuits Display via BTTFN or MQTT);\n- \"0.mp3\" through \"9.mp3\", \"dot.mp3\": Numbers for IP address read-out.\n- \"dooropen.mp3\"/\"doorclose.mp3\": Played when the state of the door switch changes.\n\n### Additional Custom Sounds\n\nThe firmware supports some additional user-provided sound effects, which it will load from the SD card. If the respective file is present, it will be used. If that file is absent, no sound will be played.\n\n- \"key1.mp3\", \"key3.mp3\", \"key4.mp3\", \"key6.mp3\", \"key7.mp3\", \"key9.mp3\": Will be played when you type 900x (x being 1, 3, 4, 6, 7 or 9) on the TCD (connected through BTTFN).\n\n\u003e The seemingly odd numbering is because of synchronicity with other props, especially the TCD and its keymap where the MusicPlayer occupies keys 2, 5, 8.\n\nThose files are not provided here. You can use any mp3, with a bitrate of 128kpbs or less.\n\n## The Music Player\n\nThe firmware contains a simple music player to play mp3 files located on the SD card. This player requires a TCD connected through BTTFN for control.\n\nIn order to be recognized, your mp3 files need to be organized in music folders named *music0* through *music9*. The folder number is 0 by default, ie the player starts searching for music in folder *music0*. This folder number can be changed in the Config Portal or through the TCD keypad (905x).\n\nThe names of the audio files must only consist of three-digit numbers, starting at 000.mp3, in consecutive order. No numbers should be left out. Each folder can hold up to 1000 files (000.mp3-999.mp3). *The maximum bitrate is 128kpbs.*\n\nSince manually renaming mp3 files is somewhat cumbersome, the firmware can do this for you - provided you can live with the files being sorted in alphabetical order: Just copy your files with their original filenames to the music folder; upon boot or upon selecting a folder containing such files, they will be renamed following the 3-digit name scheme (as mentioned: in alphabetic order). You can also add files to a music folder later, they will be renamed properly; when you do so, delete the file \"TCD_DONE.TXT\" from the music folder on the SD card so that the firmware knows that something has changed. The renaming process can take a while (10 minutes for 1000 files in bad cases). Mac users are advised to delete the ._ files from the SD before putting it back into the control board as this speeds up the process.\n\nTo start and stop music playback, enter 9005 followed by ENTER on your TCD. Entering 9002 jumps to the previous song, 9008 to the next one.\n\nBy default, the songs are played in order, starting at 000.mp3, followed by 001.mp3 and so on. By entering 9555 on the TCD, you can switch to shuffle mode, in which the songs are played in random order. Type 9222 followed by ENTER to switch back to consecutive mode.\n\nEntering 9888 followed by OK re-starts the player at song 000, and 9888xxx (xxx = three-digit number) jumps to song #xxx.\n\nSee [here](#remote-control-reference) for a list of controls of the music player.\n\nWhile the music player is playing music, other sound effects are disabled/muted. Initiating a time travel stops the music player. The TCD-triggered alarm will, if so configured, sound and stop the music player.\n\n## Connecting a Time Circuits Display\n\n### BTTF-Network (\"BTTFN\")\n\nThe TCD can communicate with the Dash Gauges wirelessly, via the built-in \"**B**asic-**T**elematics-**T**ransmission-**F**ramework\" over WiFi. It can send out information about a time travel and an alarm. Furthermore, the TCD's keypad can be used to remote-control the Dash Gauges.\n\n| [![Watch the video](https://img.youtube.com/vi/u9oTVXUIOXA/0.jpg)](https://youtu.be/u9oTVXUIOXA) |\n|:--:|\n| Click to watch the video |\n\nNote that the TCD's firmware must be up to date for BTTFN. You can use [this](http://tcd.out-a-ti.me) one or CircuitSetup's release 2.9 or later.\n\n![BTTFN connection](img/family-wifi-bttfn.png)\n\nIn order to connect your Dash Gauges to the TCD using BTTFN, just enter the TCD's IP address or hostname in the **_IP address or hostname of TCD_** field in the Dash Gauges's Config Portal. On the TCD, no special configuration is required.\n  \nAfterwards, the Dash Gauges and the TCD can communicate wirelessly and \n- play time travel sequences in sync,\n- both play an alarm-sequence when the TCD's alarm occurs,\n- the Dash Gauges can be remote controlled through the TCD's keypad (command codes 9xxx),\n- the Dash Gauges queries the TCD for fake power and night mode, in order to react accordingly if so configured,\n- pressing the dash gauges' Time Travel button can trigger a synchronized Time Travel on all BTTFN-connected devices, just like if that Time Travel was triggered through the TCD.\n\nYou can use BTTF-Network and MQTT at the same time, see [below](#home-assistant--mqtt).\n\n### Connecting a TCD by wire\n\n\u003eNote that a wired connection only allows for synchronized time travel sequences, no other communication takes place, and there is no way to remote-control the Gauges through the TCD by wire. A wireless connection over BTTFN/WiFi is much more powerful and therefore recommended over a wired connection.\n\nFor wiring information, please see [here](hardware/#connecting-a-tcd-to-the-dash-gauges-by-wire).\n\nWith the wiring in place, head to the Config Portal and set the option **_TCD connected by wire_**. On the TCD, the option \"Control props connected by wire\" must be set.\n\n\u003eYou can connect both the TCD and a Time Travel button to the Dash Gauges. But the button should not be pressed when the option **_TCD connected by wire_** is set, as it might yield unwanted results.\n\n## Home Assistant / MQTT\n\nThe Dash Gauges support the MQTT protocol version 3.1.1 for the following features:\n\n### Control the Dash Gauges via MQTT\n\nThe Dash Gauges can - to some extent - be controlled through messages sent to topic **bttf/dg/cmd**. Support commands are\n- TIMETRAVEL: Start a [time travel](#time-travel)\n- EMPTY: \"Drain\" Plutonium and trigger alarm\n- REFILL: Refill the Plutonium chamber\n- PLAY_DOOR_OPEN, PLAY_DOOR_CLOSED: Play respective door sounds; these commands are only executed if the option **_Play door sounds_** in the Config Portal is unchecked.\n- MP_PLAY: Starts the [Music Player](#the-music-player)\n- MP_STOP: Stops the [Music Player](#the-music-player)\n- MP_NEXT: Jump to next song\n- MP_PREV: Jump to previous song\n- MP_SHUFFLE_ON: Enables shuffle mode in [Music Player](#the-music-player)\n- MP_SHUFFLE_OFF: Disables shuffle mode in [Music Player](#the-music-player)\n- MP_FOLDER_x: x being 0-9, set Music Folder number for [Music Player](#the-music-player)\n\n### Receive commands from Time Circuits Display\n\nIf both TCD and Dash Gauges are connected to the same broker, and the option **_Send event notifications_** is checked on the TCD's side, the Dash Gauges will receive information on time travel and alarm and play their sequences in sync with the TCD. Unlike BTTFN, however, no other communication takes place.\n\n![MQTT connection](img/family-wifi-mqtt.png)\n\nMQTT and BTTFN can co-exist. However, the TCD only sends out time travel and alarm notifications through either MQTT or BTTFN, never both. If you have other MQTT-aware devices listening to the TCD's public topic (bttf/tcd/pub) in order to react to time travel or alarm messages, use MQTT (ie check **_Send event notifications_**). If only BTTFN-aware devices are to be used, uncheck this option to use BTTFN as it has less latency.\n\n### Setup\n\nIn order to connect to a MQTT network, a \"broker\" (such as [mosquitto](https://mosquitto.org/), [EMQ X](https://www.emqx.io/), [Cassandana](https://github.com/mtsoleimani/cassandana), [RabbitMQ](https://www.rabbitmq.com/), [Ejjaberd](https://www.ejabberd.im/), [HiveMQ](https://www.hivemq.com/) to name a few) must be present in your network, and its address needs to be configured in the Config Portal. The broker can be specified either by domain or IP (IP preferred, spares us a DNS call). The default port is 1883. If a different port is to be used, append a \":\" followed by the port number to the domain/IP, such as \"192.168.1.5:1884\". \n\nIf your broker does not allow anonymous logins, a username and password can be specified.\n\nLimitations: MQTT Protocol version 3.1.1; TLS/SSL not supported; \".local\" domains (MDNS) not supported; server/broker must respond to PING (ICMP) echo requests. For proper operation with low latency, it is recommended that the broker is on your local network. \n\n## Car setup\n\nIf your Dash Gauges, along with a [Time Circuits Display](https://tcd.out-a-ti.me/), is mounted in a car, the following network configuration is recommended:\n\n#### TCD\n\n- Run your TCD in [*car mode*](https://tcd.out-a-ti.me/#car-mode);\n- disable WiFi power-saving on the TCD by setting **_WiFi power save timer (AP-mode)_** to 0 (zero).\n\n#### Dash Gauges\n\nEnter the Config Portal on the Dash Gauges (as described above), click on *Setup* and\n  - enter *192.168.4.1* into the field **_IP address or hostname of TCD_**\n  - check the option **_Follow TCD fake power_** if you have a fake power switch for the TCD (like eg a TFC switch)\n  - click on *Save*.\n\nAfter the Dash Gauges have restarted, re-enter the Dash Gauges's Config Portal (while the TCD is powered and in *car mode*) and\n  - click on *Configure WiFi*,\n  - select the TCD's access point name in the list at the top or enter *TCD-AP* into the *SSID* field; if you password-protected your TCD's AP, enter this password in the *password* field. Leave all other fields empty,\n  - click on *Save*.\n\nUsing this setup enables the Dash Gauges to receive notifications about time travel and alarm wirelessly, and to query the TCD for data. Also, the TCD keypad can be used to remote-control the Dash Gauges.\n\nIn order to access the Dash Gauges's Config Portal in your car, connect your hand held or computer to the TCD's WiFi access point (\"TCD-AP\"), and direct your browser to http://gauges.local ; if that does not work, go to the TCD's keypad menu, press ENTER until \"BTTFN CLIENTS\" is shown, hold ENTER, and look for the Dash Gauges's IP address there; then direct your browser to that IP by using the URL http://a.b.c.d (a-d being the IP address displayed on the TCD display).\n\n### Door Switches\n\nThe Dash Gauges have a connector for two door switches. These switches trigger door open/close sounds.\n\nBy default, the \"Door Open\" sound is played when the switch is closed; \"Door close\" is played when the switch opens.\n\nIn the Config Portal, you can invert this setting, so that the \"Door Open\" sound is played when the switch is closed.\n\n## Flash Wear\n\nFlash memory has a somewhat limited life-time. It can be written to only between 10.000 and 100.000 times before becoming unreliable. The firmware writes to the internal flash memory when saving settings and other data. Every time you change settings, data is written to flash memory.\n\nIn order to reduce the number of write operations and thereby prolong the life of your Dash Gauges, it is recommended to use a good-quality SD card and to check **_[Save secondary settings on SD](#-save-secondary-settings-on-sd)_** in the Config Portal; secondary settings (eg current volume) are then stored on the SD card (which also suffers from wear but is easy to replace). See [here](#-save-secondary-settings-on-sd) for more information.\n\n## Appendix A: The Config Portal\n\n### Main page\n\n##### \u0026#9654; Configure WiFi\n\nClicking this leads to the WiFi configuration page. On that page, you can connect your Dash Gauges to your WiFi network by selecting/entering the SSID (WiFi network name) as well as a password (WPA2). By default, the Dash Gauges request an IP address via DHCP. However, you can also configure a static IP by entering the IP, netmask, gateway and DNS server. All four fields must be filled for a valid static IP configuration. If you want to stick to DHCP, leave those four fields empty.\n\nNote that this page has nothing to do with Access Point mode; it is strictly for connecting your Dash Gauges to an existing WiFi network as a client.\n\n##### \u0026#9654; Setup\n\nThis leads to the [Setup page](#setup-page).\n\n##### \u0026#9654; Update\n\nThis leads to the firmware and audio update page. \n\nIn order to upload a new firmware binary (such as the ones published here in the install/ folder), select that image file in the top file selector and click \"Update\".\n\nYou can also install the Dash Gauges' audio data on this page; download the current sound-pack, extract it and select the resulting DGA.bin file in the bottom file selector. Finally, click \"Upload\". Note that an SD card is required for this operation.\n\nNote that either a firmware or audio data can be uploaded at once, not both at the same time.\n\n##### \u0026#9654; Erase WiFi Config\n\nClicking this (and saying \"yes\" in the confirmation dialog) erases the WiFi configuration (WiFi network and password) and reboots the device; it will restart in \"access point\" mode. See [here](#short-summary-of-first-steps).\n\n---\n\n### Setup page\n\n#### Basic settings\n\n##### \u0026#9654; Auto-refill timer\n\nAfter a time travel, the plutonium is depleted, and the chamber needs to be refilled. This timer allows for an automatic \"Refill\" after the given number of seconds; 0 means never. In the latter case, a manual Refill is in order: Either flip the side switch, or enter \"009\" on the TCD (if connected wirelessly).\n\n##### \u0026#9654; Mute 'empty' alarm timer\n\nThe \"empty\" alarm's sound can be annoying if played for longer periods. This timer allows to mute it after the given number of seconds. 0 means never.\n\n##### \u0026#9654; Screen saver timer\n\nEnter the number of minutes until the Screen Saver should become active when the Dash Gauges are idle.\n\nThe Screen Saver, when active, stops the \"empty\" alarm sound and disables all gauges and lights, until \n- the time travel button is briefly pressed (the first press when the screen saver is active will not trigger a time travel),\n- on a connected TCD, a destination date is entered (only if TCD is wirelessly connected) or a time travel event is triggered (also when wired).\n\nThe music player will continue to run.\n \n#### Hardware configuration settings\n\n##### Volume level (0-19)\n\nEnter a value between 0 (mute) or 19 (very loud) here. This is your starting point; you can change the volume via TCD (93xx) and that new volume will also be saved (and appear in this field when the page is reloaded in your browser).\n\n#### Network settings\n\n##### \u0026#9654; Hostname\n\nThe device's hostname in the WiFi network. Defaults to 'gauges'. This also is the domain name at which the Config Portal is accessible from a browser in the same local network. The URL of the Config Portal then is http://\u003ci\u003ehostname\u003c/i\u003e.local (the default is http://gauges.local)\n\nIf you have several Dash Gauges in your local network, please give them unique hostnames.\n\n##### \u0026#9654; AP Mode: Network name appendix\n\nBy default, if the Dash Gauges create a WiFi network of its own (\"AP-mode\"), this network is named \"DG-AP\". In case you have multiple Dash Gauges in your vicinity, you can have a string appended to create a unique network name. If you, for instance, enter \"-ABC\" here, the WiFi network name will be \"DG-AP-ABC\". Characters A-Z, a-z, 0-9 and - are allowed.\n\n##### \u0026#9654; AP Mode: WiFi password\n\nBy default, and if this field is empty, the Dash Gauges's own WiFi network (\"AP-mode\") will be unprotected. If you want to protect your access point, enter your password here. It needs to be 8 characters in length and only characters A-Z, a-z, 0-9 and - are allowed.\n\nIf you forget this password and are thereby locked out of your Dash Gauges, \n- power-down the device,\n- hold the Time Travel button,\n- power-up the device (while still holding the Time Travel button)\n- wait until the \"Empty\" LED flashes briefly,\n- flip the Side Switch twice within 10 seconds,\n- wait until the \"Empty\" LED lights up,\n- then release the Time Travel button.\n\nThis procedure temporarily (until a reboot) clears the WiFi password, allowing unprotected access to the Config Portal. (Note that this procedure also deletes static IP addres data; the device will return to using DHCP after a reboot.)\n\n##### \u0026#9654; WiFi connection attempts\n\nNumber of times the firmware tries to reconnect to a WiFi network, before falling back to AP-mode. See [here](#short-summary-of-first-steps)\n\n##### \u0026#9654; WiFi connection timeout\n\nNumber of seconds before a timeout occurs when connecting to a WiFi network. When a timeout happens, another attempt is made (see immediately above), and if all attempts fail, the device falls back to AP-mode. See [here](#short-summary-of-first-steps)\n\n#### Settings for prop communication/synchronization\n\n##### \u0026#9654; TCD connected by wire\n\nCheck this if you have a Time Circuits Display connected by wire. Note that a wired connection only allows for synchronized time travel sequences, no other communication takes place.\n\nWhile you can connect both a button and the TCD to the \"time travel\" connector on the Dash Gauges, the button should not be pressed when this option is set, as it might yield unwanted effects.\n\nDo NOT check this option if your TCD is connected wirelessly (BTTFN, MQTT).\n\n##### \u0026#9654; TCD signals Time Travel without 5s lead\n\nUsually, the TCD signals a time travel with a 5 seconds lead, in order to give a prop a chance to play an acceleration sequence before the actual time travel takes place. Since this 5 second lead is unique to CircuitSetup props, and people sometimes want to connect third party props to the TCD, the TCD has the option of skipping this 5 seconds lead. If that is the case, and your Dash Gauges are connected by wire, you need to set this option.\n\nIf your Dash Gauges are connected wirelessly, this option has no effect.\n\n##### \u0026#9654; IP address or hostname of TCD\n\nIf you want to have your Dash Gauges to communicate with a Time Circuits Display wirelessly (\"BTTF-Network\"), enter the TCD's hostname - usually 'timecircuits' - or IP address here.\n\nIf you connect your Dash Gauges to the TCD's access point (\"TCD-AP\"), the TCD's IP address is 192.168.4.1.\n\n##### \u0026#9654; Follow TCD night-mode\n\nIf this option is checked, and your TCD goes into night mode, the Dash Gauges will activate the Screen Saver with a very short timeout, and reduce its audio volume.\n\n##### \u0026#9654; Follow TCD fake power\n\nIf this option is checked, and your TCD is equipped with a fake power switch, the Dash Gauges will also fake-power up/down. If fake power is off, no LED is active and the Dash Gauges will ignore all input.\n\n##### \u0026#9654; TT button trigger BTTFN-wide TT\n\nIf the dash gauges are connected to a TCD through BTTFN, this option allows to trigger a synchronized time travel on all BTTFN-connected devices when pressing the Time Travel button, just as if the Time Travel was triggered by the TCD. If this option is unchecked, pressing the Time Travel button only triggers a Time Travel sequence on the dash gauges.\n\n#### Audio-visual options\n\n##### \u0026#9654; 'Primary' full percentage\n\nFor analog gauges only. \n\nHere you can select the readiing the \"Primary\" meter should give when \"full\". You can enter a value between 0 and 100 here. 0 will reset the \"full\" percentage to a default; 1-100 select a specific percentage. Values below 10 don't really make sense, though.\n\nThe \"full\" percentage can be changed through the TCD keypad (91xx for the \"Primary\" gauge, 93xx for the \"Pecent Power\" one, and 97xx for the \"Roentgens\"). 9x00 resets the \"full\" position the a default value. Note that changing the \"full\" percentage through the TCD keypad is not persistent. The boot-up values are only set through the Config Portal.\n\n##### \u0026#9654; 'Primary' empty percentage\n\nFor analog gauges only. \n\nThis allows to select the pointer position when the meter is supposed to show \"empty\". This should be 0 (zero), but if your hardware is either inaccurate or the pointer isn't exactly 0-adjusted, you can modify its \"zero\" position here. Values from 0-100 are allowed, but obviously only values \u003c 20 make sense.\n\n##### \u0026#9654; Slowly drain 'Primary' during TT\n\nFor analog gauges only. This selects whether the meter should slowly move towards zero during a time travel, or jump to zero after the time travel.\n\n##### \u0026#9654; 'Percent Power' full percentage\n\nSame as [this](#-primary-full-percentage), but for the 'Percent Power' gauge\n\n##### \u0026#9654; 'Percent Power' empty percentage\n\nSame as [this](#-primary-empty-percentage), but for the 'Percent Power' gauge\n\n##### \u0026#9654; Slowly drain 'Percent Power' during TT\n\nFor analog gauges only. This selects whether the meter should slowly move towards zero during a time travel, or jump to zero after the time travel.\n\n##### \u0026#9654; 'Roentgens' full percentage\n\nSame as [this](#-primary-full-percentage), but for the 'Roentgens' gauge. If you adjusted the pointer's zero position to the \"green zero\", be careful not to choose values too high; you might overshoot the pointer's physical end position.\n\n##### \u0026#9654; 'Roentgens' empty percentage\n\nSame as [this](#-primary-empty-percentage), but for the 'Roentgens' gauge\n\n##### \u0026#9654; Slowly drain 'Roentgens' during TT\n\nFor analog gauges only. This selects whether the meter should slowly move towards zero during a time travel, or jump to zero after the time travel.\n\n##### \u0026#9654; 'Primary' empty threshold\n\nFor digital gauges only. \n\nThis defines the \"virtual percentage\" (0% being the left end of the scale, 100% being the right end of the scale) at which the digital gauge should switch from \"full\" to \"empty\" in animations. This value depends on the speed of pointer movement: In the time travel sequence, the pointers are virtually slowly moved from 100% towards 0% in sync with the length of the sequence. If your pointers \"jump\" to zero quickly, a threshold of 0 is ok. If the pointers move more slowly, the threshold should by adjusted so that the pointers are at \"empty\" at the end of the sequence, when the \"Empty\" alarm goes off. Start with \"50\" and work your way from there.\n\n_Note_: The current OEM control board only supports one digital output for all connected digital gauges. Therefore, they can only _all_ be \"full\", or _all_ be \"empty\", and as a result, there can only be one Threshold for all digital gauges. If you have three digital gauges connected, the Threshold configured for \"Primary\" has priority.\n\n##### \u0026#9654; 'Percent Power' empty threshold\n\nSame as [this](#-primary-empty-threshold), but for the 'Percent Power' gauge. In light of the _Note_ above, this value is only used, if your \"Primary\" gauge is of analog kind, and the \"Percent Power\" gauge is the first digital gauge (counting from the left).\n\n##### \u0026#9654; 'Roentgens' empty threshold\n\nSame as [this](#-primary-empty-threshold), but for the 'Roentgens' gauge. In light of the _Note_ above, this value is only used, if your \"Roentgens\" gauge is your only digital gauge.\n\n##### \u0026#9654; Play TCD-alarm sounds\n\nIf a TCD is connected via BTTFN or MQTT, the Dash Gauges visually signals when the TCD's alarm sounds. If you want to play an alarm sound, check this option.\n\n##### \u0026#9654; Play door sounds\n\nThe Control Board has a connector for two door switches; these switches change state whenever a door is opened or closed. The firmware can play a sound for each such event. To enable door sounds, check this.\n\nThis option must be unchecked in order to use the MQTT commands PLAY_DOOR_OPEN and PLAY_DOOR_CLOSED.\n\n##### \u0026#9654; Switch closes when door is closed\n\nThis selects what type of door switch is being used. Check this, if the switch closes contact when the door closes. Leave unchecked if the switch opens when the door closes.\n\n##### \u0026#9654; Door sound delay\n\nDepending on the position of the switch and its reaction point, a delay for sound playback might be desired. You can configure such a delay here. Enter the number of milliseconds into the text field; 0 means no delay. The maximum is 5000ms (=5 seconds).\n\n#### Home Assistant / MQTT settings\n\n##### \u0026#9654; Use Home Assistant (MQTT 3.1.1)\n\nIf checked, the Dash Gauges will connect to the broker (if configured) and send and receive messages via [MQTT](#home-assistant--mqtt)\n\n##### \u0026#9654; Broker IP[:port] or domain[:port]\n\nThe broker server address. Can be a domain (eg. \"myhome.me\") or an IP address (eg \"192.168.1.5\"). The default port is 1883. If different port is to be used, it can be specified after the domain/IP and a colon \":\", for example: \"192.168.1.5:1884\". Specifying the IP address is preferred over a domain since the DNS call adds to the network overhead. Note that \".local\" (MDNS) domains are not supported.\n\n##### \u0026#9654; User[:Password]\n\nThe username (and optionally the password) to be used when connecting to the broker. Can be left empty if the broker accepts anonymous logins.\n\n#### Music Player settings\n\n##### \u0026#9654; Music folder\n\nSelects the current music folder, can be 0 through 9. This can also be set/changed through a TCD keypad via BTTFN.\n\n##### \u0026#9654; Shuffle at startup\n\nWhen checked, songs are shuffled when the device is booted. When unchecked, songs will be played in order.\n\n#### Other settings\n\n##### \u0026#9654; Save secondary settings on SD\n\nIf this is checked, some settings (volume, etc) are stored on the SD card (if one is present). This helps to minimize write operations to the internal flash memory and to prolong the lifetime of your Dash Gauges. See [Flash Wear](#flash-wear).\n\nApart from Flash Wear, there is another reason for using an SD card for settings: Writing data to internal flash memory can cause delays of up to 1.5 seconds, which interrupt sound playback and have other undesired effects. The Dash Gauges need to save data from time to time, so in order for a smooth experience without unexpected and unwanted delays, please use an SD card and check this option.\n\nIt is safe to have this option checked even with no SD card present.\n\nIf you want copy settings from one SD card to another, do as follows:\n- With the old SD card still in the slot, enter the Config Portal, turn off _Save secondary settings on SD_, and click \"SAVE\".\n- After the Dash Gauges have rebooted, power them down, and swap the SD card for your new one.\n- Power-up the Dash Gauges, enter the Config Portal, re-enable _Save secondary settings on SD_, and click \"SAVE\".\n\nThis procedure ensures that all your settings are copied from the old to the new SD card.\n\n#### Gauge Hardware settings\n\n##### \u0026#9654; Gauges hardware type\n\nThis selects the type of gauge hardware and the way of connection. In order to protect your props, this is locked by default. To unlock this setting\n\n- either hold the Time Travel button for 5 seconds, or\n- enter 9317931 on a wirelessly connected TCD,\n\nthen reload the page in your browser.\n\n\n\n\n\n_Text \u0026 images: (C) Thomas Winischhofer (\"A10001986\"). See LICENSE._ Source: https://dg.out-a-ti.me\n \n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freala10001986%2Fdash-gauges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freala10001986%2Fdash-gauges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freala10001986%2Fdash-gauges/lists"}