A python program to feed your automatic zen table with a fresh design everyday
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 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!).
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.
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.
It is possible to control LEDs strips directly from the interface. Check the full procedure for more info.
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.
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
.
In the settings select the serial port, the correct baudrate (usually 115200 or 250000) and the correct firmware type.
In the settings select the serial port, the correct baudrate (usually 115200 or 250000) and the correct firmware type.
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.
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.
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:
Check the latest version infos here