Inspiration

Inspired by the mechanics of a 3D printer and our unified interest in spectral phenomena, we believed that a cnc ouija board would be the only logical choice for a hackathon.

What it does

Participants in the ouija board session can visit democra.tech to vote on the next letter in the ghostly answer - your votes have a deadline so get your vote in quickly! The letter that has the largest portion of the vote will be the next letter in the answer.

How we built it

There are three main components to our project.

Hardware The eye of the ouija board listens to and follows the whims of the spirits (two stepper motors) , powered by their supernatural mojo (powersupply + motor drivers) , and directed through magnetically aligned chakras (g-code being sent to smoothieboard, which then makes steppers move a carriage with an integrated magnet).

The mounts for the stepper motors, idler pulleys, and table legs were made using laser cut sheet metal, and the board itself consists of laser engraved plywood. The stepper motors and linear rails were left over parts from a prior 3d printer.

Software The website was built using Velo by Wix, as our team had limited experience in front end programming. We leveraged the services available - databases, custom domains, etc. We used the database service to store votes for each character, and used javascript in Velo to determine which character won the majority of the vote.

Firmware The firmware we wrote was characterised entirely by stepper motor planning and stepper motor control. We wanted arbitrary 2 dimensional control of a magnetic ouija board eye, and for that we needed to integrate the web-app we made with the table we constructed. We used Printrun, an open source 3D printing control software as a starting point to control our device. Specifically, we used printcore as a means of sending serial GCode to our device's devoted electronics board. We were able to control the ouija board directly from our webapp, which required a lot of integration trouble from such a complicated pipeline. We also wrote some simpler standalone python scripts to communicate predecided words and phrases automatically.

Challenges we ran into

We struggled to determine how to ensure: a) the result produced was not just a random gibberish b) words created were not offensive

We solved this issue by constructing a trie from the following list of 10,000 most commonly used English words (which did not include offensive words). This list was then stored on our Wix site in a json file and queried to determine which letters were available for users to choose from in the next round of voting. The process of inserting new words to the trie is simple, so adding new possible words is very easy - giving us extensibility in this aspect of the project.

Another struggle we encountered on the software side of things was front end design. As we were inexperienced in this area we struggled to connect back and front end components together, which is where Velo came in very handy. It was very useful to be able to preview and test the entire app as soon as we began work on it, instead of having to spend time making decisions about what tech stack we wanted to work.

Accomplishments that we're proud of

We're really happy that our wild ideas for the physical ouija board worked out! We had gone into this with an idea that we thought might have been too ambitious but we were pleasantly surprised with the quality of the hardware and how well it worked.

What we learned

Velo! This project was the first time that our software team had tried to build a website with this level of complexity. After hearing about Velo by Wix we figured that this would be a great learning opportunity for us. Some of the members of our team did not know JavaScript very well and so this project really helped with that as well.

What's next for democratech ouija

This project really showed us that building something that integrates software and hardware can be much more of a reality. It has motivated us to begin thinking about additions we can make to the Ouija board such as walls to hide some of the visible components. Considerations for changes to the website have also been made including things like improving the speed of processing, smoother screen transitioning, and a UI with better user experience considerations. I we were to improve the control of the system we would make the paths between target points more varied with changing speeds and indirect travelling paths.

Built With

Share this project:

Updates