texx00 / sandypi

The ultimate controller for sand tables
Other
27 stars 5 forks source link
drawing raspberry-pi sand zen-tables zenxy

SandyPi

A python program to feed your automatic zen table with a fresh design everyday

The idea

Zen tables are beautiful but I don't like to see always the same drawing on the sand: I would like to have a fresh design waiting for me every morning at coffee time.

The program can run on a Raspberry Pi connected to your zen table and change the drawing overnight. You can control the drawings through the web interface from your device connected to the network (smartphone, tablet or computer independently thanks to the web interface).

Upload your designs, create ordered playlists or let the software randomly choose your next design.

The final aim of the project is to create something similar to a social network to share your drawings and to collect designs from others to get everyday a fresh design on your table.

The project

The aim of the project is to create something focused on the sandtables. For sure, other solution exist (like octoprint) but their aim is for 3D printers thus the experience is not optimized for this application.

The project is still work-in-progress which means you may encounter some bug or problems. Please, check the issues or opena new one if you are facing something wrong.

The project is opensource under MIT license and thus anyone can help (there is so much to do!).

Some screenshots

Main page Playlist Drawing Manual

Installation

Now it is possible to install Sandypi with Docker. In this way the installation is much simpler and less prone to errors. See the new installation procedure here.

The old installation procedure is considered deprecated and should not be used. It may be usefull only for development purposes. For this reason, it is still available here.

Additional hardware setup

Buttons

The software supports the usage of hardware buttons. Wire the buttons and select the type of wiring from the settings section (pull-up/pull-down, internal/external). Once the wiring type and the pin number is specified it is possible to associate a specific function to click and long press events on the button.

LEDs

It is possible to control LEDs strips directly from the interface. Check the full procedure for more info.

Installation troubleshooting

If you find problems during the installation check the troubleshooting page

If you find any bug or problem please feel free to open an issue in the dedicated page.


Boards and firmwares

At the moment, the software is tested only with Marlin 2.0 and Grbl 1.1 Should be compatible with other firmwares as well. If not please open an issue.

The software is running in Docker. The images are compatible with armv7 (Raspberry Pi) and amd64 (Linux and Windows with wsl).

Once the software is correctly installed it is necessary to select the correct firmware used on the sandtable. This can be done through the web interface in the settings page. The interface can be reached through any browser by using the ip address of the device follower by :5100 like ip_address:5100.

Marlin 2.0 setup

In the settings select the serial port, the correct baudrate (usually 115200 or 250000) and the correct firmware type.

Grbl 1.1

In the settings select the serial port, the correct baudrate (usually 115200 or 250000) and the correct firmware type.

Updates

With Docker, the software can update itself automatically to the latest version automatically. By default, this behaviour is disabled but you can enable automatic updates in the settings section of the UI. If you want to force the update manually use (from the folder in which you downloaded the docker-compose.yml file):

$> docker-compose pull
$> docker-compose up -d

If a new version of the docker-compose.yml file is released, the software will not be able to automatically update the file. A notification will appear in Sandypi and a reminder will be always shown in the settings page. To update the docker-compose file follow the same instructions of the installation procedure.


NOTE: the software is still in ALPHA which means lots of features may not work as expected. Updates may fix some but may also introduce more bugs. If you find any please open an issue.


Development and testing

Any help in the app development is accepted. Also testing the software counts! If you find any bug or you have any idea just check if an issue is already open for that topic or open it yourself. For the coding, debugging and so on check the development section.

Current status

The project still need a lot of work. Here is a brief list of what the software is capable of and what will be implemented for sure in the future:

In a far far away future:

Versions

Check the latest version infos here