Skip to content

Commit

Permalink
Merge pull request #129 from fau-fablab/doc-build-your-own
Browse files Browse the repository at this point in the history
DOC added story stump for documentation of the terminal
  • Loading branch information
patkan committed Feb 29, 2016
2 parents be369cf + 7aa8f5c commit 9c8c8db
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 0 deletions.
85 changes: 85 additions & 0 deletions doc/buildyourown/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
A Brief History of Cash-Acceptance
==================================

Prelude
^^^^^^^

The FAU FabLab is a universitarian grassroot FabLab at the Univeristy of Erlangen-Nuremberg in Germany, run by
volunteers but with partial initial funding through the university. Students and any interested party can come by and
make use of the FabLab in their free time or for class work and research. Since the upkeep of machines and tools, as
well as the needed materials are not financed by the university, users have to pay for usage.

First Act
^^^^^^^^^

With a total of 1291 individual products for sale, you can imagine how messy it gets to handle and supervise finances
and operations. We started with hand-labeling all products and trust users to pay the right amount into an opened cash
box. But how could we know if somebody would steal money from the lab?

Second Act
^^^^^^^^^^

Next, we added a handwritten cash journal and asked users to write down the paid amounts. But with this came extra work,
since I had to copy that paper over to an excel sheet and check the sums, roughly twice a week. Obviously people made
mistakes and payed a little more or less, but it always evened out over a couple of days and we did not notice any
theft. But with 1.000+ products, how do we keep track of what is being sold, you might ask. We did not.
You might also ask, did you not get tired of typewriting endless lists of numbers and counting cash? For sure I did!

Therefore, we started implementing a touchscreen-based sales-terminal, which would replace the handwritten lists and
know about all the 1.000+ products. It took some time, lots of python code and caffeinated drinks, but finally we had
it. No more typing, but still all the counting of coins and bills.

Third Act
^^^^^^^^^

As time progressed, we were quite happy by all the automated tabulation and statistics. Until we noticed that 100 Euros
were missing... We never figured it out, so we must assume that it was stolen out of the open cash box. What to do?

Fourth Act
^^^^^^^^^^

We already had the basic software at hand, but we needed hardware. Hardware to discourage people from stealing. Since
weaponizing our cash box would not have been in line with the safety aspects of the Fab Charter nor the UN Declaration
of Human Rights, we needed to take a look at less drastic measures. With a FabLab at hand, we began designing and
building a FabATM, or for long-word-loving-germans: ein Besucherabkassiermaschinenautomat. For real: it is called
kassenterminal, which means payment terminal.

Sixth Act
^^^^^^^^^

We have built an open-soure point-of-sale terminal, which has been in everyday operation for almost a year. It counts
coins, bills, returns change, prints official receipts and is completely capable of self-service. It tracks sales and
will soon accept electronic payments and tell us what to restock. No more theft has been detected and endless hours of
counting coins and typing numbers have been abolished.

If you are interested in not reenacting our story, have a look at the following GitHub-projects, which contain all the
information necessary to build your own:

* Software: https://github.com/fau-fablab/FabLabKasse
* Wooden case: https://github.com/fau-fablab/kassenautomat.CAD
* Interface circuit board: https://github.com/fau-fablab/kassenautomat.mdb-interface

The cash-devices we used (for counting, verifying and returning bills and coins) are connected via an industry-standard
interface and can be replaced with other such devices. They can also be ignored, if the use of an open cash box or a
drop-in-only cash box (without change) is to be used. The software is already equipped for this.
Have fun and keep your bean counters and bank accounts happy by using and helping in developing our automated cash
system!

Sequel
^^^^^^

At our university there is a class in which mobile apps are developed, called MAD (mobile application development).
MAD developed for us an app that works together with the kassenterminal. You can select products that are stored in our
ERP and then send them to the kassenterminal in a checkout process.

The app is released as `iOS-Version <https://github.com/fau-fablab/fablab-ios>`_, as
`Android-version <https://github.com/fau-fablab/fablab-android>`_ and as an
`HTML-app <https://github.com/FAU-Inf2/fablab-html>`_. In the background works a
`server-software <https://github.com/fau-fablab/app-server>`_ that handles the aggregation of the product database
and the transfer to the kassenterminal.

And since you managed to read until here, have a picture of the kassenterminal as a reward:

.. image:: terminal.jpg

(Unfortunately without banana for scale. However, the folder is DIN A4.)
Binary file added doc/buildyourown/terminal.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Contents:
:maxdepth: 1

FabLabKasse
buildyourown/index


Code structure overview
Expand Down

0 comments on commit 9c8c8db

Please sign in to comment.