Skip to main content

SpaceRoom

By CDEguia with YetiCraft, and J. Scott for Eureka Room

Code for running escape room hardware comprised of Arduino's and Raspberry Pi's running Rasbian.

General Setup

The following section describes the setup process in generic detail.

  1. First, create an SD card with the Raspbian OS (latest) image using the methods found online.
  2. Write ssh and wifi configs to the /boot partition so that both will be available upon first boot (with or without a screen attached)
    1. Enable SSH
  3. Insert the prepared card and boot the device.
  4. Connect to the device.

Production

For production purposes, each Eurekaroom node will run on a Raspberry Pi (version 3b or higher) with Raspbian (latest) as the OS.

Install Eurekaroom

$ pip3 install eurekaroom

Usage

To use the command line utility, execute the following on the linux system in a terminal where you have installed the package:

Display Help:

$ ecmd -h

Run Web interface using default config:

$ ecmd -as

Launch Web interface with user provided config and save provide config:

$ ecmd -wam PATH_TO_MEDIA -n NODE_NAME -s

Change the default node name:

$ ecmd --writeconfig --nodename NODE_NAME

Change the default media path:

$ ecmd --writeconfig --mediapath PATH_TO_MEDIA

Add media to the config file:

$ ecmd --writeconfig --autoaddmedia

Launch the web interface:

$ ecmd -s

This will allow you to control the media displayed on the node through the web interface.

To access you ecmd web interface open up your favorite web browser on any pc connected to the same network as your node and enter the ip address followed by the port number i.e. "192.168.0.54:5000/"

Auto start on boot

If eurekaroom was installed with the pip install eurekaroom command you can run:

$ ecmd --installservice

Or set the autostart application in the auto-login account to be the /full/path/to/ecmd -s command.

Reboot and ensure the system is responding on the expected when port and to command line execution.

Development

Clone Repo

Clone this repo or copy the code to the target linux system. To clone the repo to a Linux system, ensure that you have git installed properly and then use the following command from a terminal:

$ git clone git@gitlab.com:growlf/eurekaroom.git

This will expect that your SSH keys are installed on this system in the correct path.

Add system dependencies

Next, open a terminal shell and execute the following, which will update packages and install the system dependencies:

$ sudo apt-get update && sudo apt install -y git python3-pip python3-tk libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev libopenjp2-7-dev libdbus-1-dev libtiff5
$ pip3 install --user pipenv
$ export PATH=$PATH:/home/pi/.local/bin # Add new path
$ exit # Reboot the Pi

Activate development ecmd

Next, open a terminal shell within the code directory to execute the following commands:

$ pipenv shell
$ pip install -e .

This will create and activate a local Python3 virtual environment that allows isolation from the system's copy of Python and it's libraries. This Python environment will be completely dedicated to this project and will not affect the system Python interpreter - nor be affected by it.

Development Media

Next, add your media files (Images and Videos folders) into system. It is recommended to use a layout similar to the following for default configuration:

eurekaroom (project root, created from the git clone operation)
|
+-/bin
| +-/ecmd (commandline tool)
|
+-/eurekaroom (module folder)
| | ...(class definition files)  
|
+-/Media
| | ... (misc media - should be none)
| +-/Images
| | ... (image files)
| +-/Videos
|   ... (video files)
|
+-/tests (test folder)
| | ...(test files)  
|
+-/eurekanode.log
+-/README.md
+-/requirements.txt
+-/Pipfile
+-/Pipfile.lock
+-/setup.py

Developer Notes

The following are mostly links and random bits of info that the developers thought were important or needed to share with each other.

Development Environment

Python

Other

Table of Contents

Metadata

Release files for eurekaroom 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eurekaroom 1.0.2
File Size Uploaded Provenance Actions
eurekaroom-1.0.2.tar.gz 48.9 kB Without provenance Details for eurekaroom-1.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eurekaroom 1.0.2
File Interpreter ABI Platform Actions
eurekaroom-1.0.2-py3-none-any.whl Python 3 none any Details for eurekaroom-1.0.2-py3-none-any.whl

Total release size: 80.5 kB

Release files / eurekaroom-1.0.2.tar.gz

Download URL eurekaroom-1.0.2.tar.gz
Size 48.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2b51d45714b42591cf228497a6e12fa008b114438e3a25c1e40cc4dc5d169faf
BLAKE2b-256 checksum
How to use checksums
63694bdf906e32cb44bb2e98e015e22f6c234f660f9a57dcb6016732b7c514ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

Release files / eurekaroom-1.0.2-py3-none-any.whl

Download URL eurekaroom-1.0.2-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8ba413a7508f1771361eeb445c4eaeeebbffdac2ea77628e5ab22bdcd6a488b
BLAKE2b-256 checksum
How to use checksums
5a5b21fc6d6926dd53000ea7a795965f0d15b8c5a5562349c4568ad4346dd8de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

Security for eurekaroom 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page