Quest Smith is a Raspberry Pi Zero driven thermal printing text based game. In each level, it gives you options to choose so every game is different than the other one depending on your choices.

Quest smith

Parts list:

Quest smith

Tools I used:

The sketch:

Quest smith

Putting everything together

Well after you solder the wires as it shown in the sketch picture above, you need to fit the hardware in the empty space left from the thermal printer in the box. The only tip I can give you would be to use a short usb cable to save from the space, glue the thermal pinter and the buttons, after you put everything together glue the swicth button to the hole as well. I used a Solar panel to charge the battery, so you will need to glue the solar panel to the case when you complete eveyrthing else.


  1. Download and install raspbian OS from here

  2. Update packages:

    sudo apt-get update && sudo apt-get upgrade

  3. Install the packages:

    sudo apt-get install libpython3-dev libpython3-stdlib libqt5printsupport5 php7.0-mbstring python3-rpi.gpio python-rpi.gpio python-setuptools python-dev build-essential

  4. Install composer (here are the instructions:

  5. Install python packages:

    pip install setuptools pip install locustio

  6. Create a dirctory under the home and get the code for the story:

    mkdir quest_smith cd quest_smith git clone [email protected]:bekirdag/quest_smith.git . composer install

  7. Run the Quest Smith script on reboot by adding a line on crontab

    crontab -e

    And add this line:

    @reboot sudo /usr/bin/screen -dmS story-game /usr/bin/python3 /home/pi/thermal/

  8. Add another line to crontab again to update the software on each reboot so your story will be up to date

    @reboot sudo cd /home/pi/quest_smith && sudo git pull origin master

Final word

Well that’s it, when you turn the raspberry pi on as well as the printer, it should run the script automaticlaly! Your game is ready to be played!


Each level requires two versions of the story which makes the possiblities grow exponentially. So it will be very difficult for me to finish a single story by myself. For the player to reach level 9, we will need to have 1023 story parts to be written. If you can help me with that it would be amazing!

How to contribute?

The story is under the story_text folder as txt files like:

0.txt (the first item ever)
00.txt (when the user choses -NO- at the beginning)
01.txt (when the user choses -YES- at the beginning)
001.txt (when the user choses -NO- and then -YES- respectively)
010.txt (when the user choses -YES- and then -NO- respectively)

And so on. So as you can see, for no, put a 0, for yes, put a 1 at the and of your story option file name.