{"id":24475452,"url":"https://github.com/douglashalse/spook-station","last_synced_at":"2026-04-12T22:52:03.102Z","repository":{"id":87121534,"uuid":"589740070","full_name":"DouglasHalse/spook-station","owner":"DouglasHalse","description":"Spook station is a tool for role-playing to control ghost-hunting equipment wirelessly!","archived":false,"fork":false,"pushed_at":"2023-11-12T21:09:40.000Z","size":6944,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-18T10:26:49.028Z","etag":null,"topics":["dungeon-master","esp32-s2","kivy","local-network","mqtt","raspberrypi","role-playing-game-tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DouglasHalse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-16T20:30:47.000Z","updated_at":"2023-11-12T21:19:41.000Z","dependencies_parsed_at":"2023-11-12T21:23:27.559Z","dependency_job_id":"1abd0b8e-809b-48d4-aceb-36d12b479a70","html_url":"https://github.com/DouglasHalse/spook-station","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasHalse%2Fspook-station","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasHalse%2Fspook-station/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasHalse%2Fspook-station/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DouglasHalse%2Fspook-station/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DouglasHalse","download_url":"https://codeload.github.com/DouglasHalse/spook-station/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243603025,"owners_count":20317751,"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":["dungeon-master","esp32-s2","kivy","local-network","mqtt","raspberrypi","role-playing-game-tool"],"created_at":"2025-01-21T09:14:53.743Z","updated_at":"2026-04-12T22:51:58.052Z","avatar_url":"https://github.com/DouglasHalse.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spook station\nSpook station is a role-playing tool controlling ghost-hunting equipment wirelessly.\nThe idea is to have real-life ghost-hunting-like equipment used by the players that are remotely controlled by the game organizer (or Dungeon master).\nThe Dungeon master can trigger behaviors in the devices in correspondence to events in the game.\n\n## Setup development environment\n(If you are trying to follow these steps for the first time, PLEASE let us know if you run into any problems so we can update the setup process)\n### Windows\n#### Prerequisites\n1. Python 3.9 (preferably installed from the Microsoft store)\n2. Mosquitto MQTT broker (https://mosquitto.org/download/)\n3. git (https://git-scm.com/download/win)\n\n####  Recommended dev-tools\n1. GitHub Desktop if you prefer GUI for git (https://desktop.github.com/)\n2. Visual Studio Code (https://code.visualstudio.com/)\n\n#### Installation\n1. Clone this repository to your Windows machine using git\n2. Run setupDevEnvironmentWindows.bat\n\n#### Start GUI with debugging (with Visual Studio Code)\n1. In Visual Studio Code: Select 'Open Folder...' and select the cloned repository\n2. Hit Ctrl + Shift + P and write 'select interpreter' and click 'Python: Select Interpreter'\n3. Select the Python executable found in \\\u003ccloned repository\\\u003e/venv/Scripts/python.exe\n4. Open the main GUI python file in Visual Studio Code: \\\u003ccloned repository\\\u003e/SpookStation/SpookStationGui/main.py\n5. Hit F5 to start debugging\n\n#### Start GUI without debugging\n1. Run runGuiWindows.bat\n\n### Ubuntu\n#### Prerequisites\n1. Python 3.9 or Python 3.10\n\n####  Recommended dev-tools\n1. GitKraken Client if you prefer GUI for git (https://www.gitkraken.com/)\n2. Visual Studio Code (https://code.visualstudio.com/)\n\n#### Installation\n[//]: \u003c\u003e (\u003carea\u003e-tag to escape hyper-link creation)\n1. Clone this repository to your Ubuntu machine using git\n2. Run 'bash setupDevEnvironmentUbuntu.\u003carea\u003esh'\n\n#### Start GUI with debugging (with Visual Studio Code)\n1. In Visual Studio Code: Select 'Open Folder...' and select the cloned repository\n2. Hit Ctrl + Shift + P and write 'select interpreter' and click 'Python: Select Interpreter'\n3. Select the Python executable found in \\\u003ccloned repository\\\u003e/venv/Scripts/python\n4. Open the main GUI python file in Visual Studio Code: \\\u003ccloned repository\\\u003e/SpookStation/SpookStationGui/main.py\n5. Hit F5 to start debugging\n\n#### Start GUI without debugging\n[//]: \u003c\u003e (\u003carea\u003e-tag to escape hyper-link creation)\n1. Run 'bash runGuiUbuntu.\u003carea\u003esh'\n\n## The Hardware\nThere are two types of hardware involved in this project: The Spook station and the devices.\n\n### The Spook station\nThe device known as the spook station, is a Raspberry Pi 3B+ enclosed in a touchscreen case.\nOne or more devices connect to the Raspberry Pi's access point and connect to the locally hosted MQTT server on the Raspberry Pi. \nThe main device runs a touchscreen GUI based on KIVY and sens control commands to the connected devices. \n\n### The devices\nDevices automatically connect to the spook station and start listening for control signals and publish state signals. \nThe communication used is MQTT over locally hosted access point so there are no requirements for what hardware is used for the devices.\n\n#### EMFReader\nCurrently, we only support a modified EMFReader that has been modified to be controlled by an ESP32-S2 microcontroller instead of the actual electromagnetic frequency sensing equipment.\nThe EMFReader automatically connects to the spook station and can be controlled through the GUI.\n\n\u003cimg src=\"images/EMFReader.gif\" width=\"30%\" /\u003e\n\n##### Features:\nThe following can be controlled from the spook station:\n1.  How many lights should be lit up\n2.  Select the fluctuation magnitude\n    * Select how much the lights fluctuate from the selected number of lights from (1.)\n3. Select how fast the lights should fluctuate\n4. Select if there should be sound played on the EMFReader when EMF levels 4 and 5 is detected\n\n#### SpiritBox\nThe GUI implementation is not done yet for SpiritBox. The SpiritBox uses Raspberry Pi Zero 2W. \n##### Features:\nThe following can be controlled from the spook station:\n1.  Set speech volume level\n2.  Set speech rate\n    * How fast the voice should be\n3. Say sentence/word\n    * The voice is synthesized to the connected speaker on the Raspberry Pi zero 2W\n4. Set language\n5. Set background static volume\n6. Set static volume while speaking\n\n#### Flashlight\nNo work has been done on the flashlight implementation yet\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouglashalse%2Fspook-station","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdouglashalse%2Fspook-station","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdouglashalse%2Fspook-station/lists"}