Building An Open Source Point Of Sale System

[Mukesh Sankhla] has been tinkering in the world of Point of Sale systems of late. His latest creation is a simple, straightforward kiosk system, and he’s open sourced the design.

The Latte Panda MU single-board computer is at the heart of the build, handling primary duties and communicating with the outside world. It’s hooked up to a touchscreen display which shows the various items available for purchase. As an x86 system, the Latte Panda runs Windows 11, along with a simple kiosk software package written in Python. The software uses Google Firebase as a database backend. There’s also an Xiao ESP32 S3 microcontroller in the mix, serving as an interface between the Latte Panda and the thermal printer which is charged with printing receipts.

It’s worth noting that this is just a point-of-sale system; it executes orders, but doesn’t directly deliver or vend anything. With that said, since it’s all open-source, there’s nothing stopping you from upgrading this project further.

We’ve featured other interesting point-of-sale systems before; particularly interesting was the San Francisco restaurant that was completely automated with no human interaction involved

21 thoughts on “Building An Open Source Point Of Sale System

  1. how is this a POS there are no cc processors and it is limited to cash. Nobody carries cash anymore (insert kb warrior here that only carries cash spam) You get where I am going with this. I’m not sure what this is actually someone help me out.

    1. Beyond your blatantly incorrect comment about no one carrying cash anymore, just remember the title of the post says “Open Source”. Modify it to add credit card or Venmo or whatever other option you want.

      This would be interesting for a small farm stand. Not because the farm stand needs it, but because it would be fun to add.

      1. Can’t do that, PCI-DSS verification is necessary to talk to credit card processors.

        BUT You can use this with a standalone electronic payment terminal and write the payment like a caveman.

        Or maybe use one that has a POS interface to let it know the payment was successful and how much was paid.

        Electronic cash registers are still sold, and those are pretty rudimentary machines.

        1. Most POS software solutions operate out of scope of PCI-DSS. The semi-integrated card reader (which would be PCI-compliant) handles CHD and communicates with the POS only amount, transaction type, status, etc. Nice to see an open-source POS project!

  2. Why is this running Windows or even bothering with x86? Both of those things unnecessarily drive up the BOM. With most SBCs you have direct GPIO access so you could likely eliminate the Xiao as well.

    1. To be fair, the printer supports Windows, so the esp32 could be eliminated anyway. It has a usb and serial interface.

      It looks like it’s used to make the printer wifi connected. 🤦

      1. The esp32 is an overkill. Would be easier to just use raw network printer to port 9100. On Linux and windows it’s possible to use a tool like rawprinter to convert a cheap USB receipt printer as a raw network printer.

  3. would this be legal to use?
    in Italy (but I think that the assumption that this is also the case for the rest of the EU) point-of-sale devices are stricly regulated and need to be legally certified. also, receipts must follow specific rules, sales data must be safely stored and daily summaries must be forwarded to the fiscal authorities (think IRS).

    1. does anyone know of open source projects that can accept venmo, paypal or any similar service, automatically? thinking of a project for small payments for snacks at a shared workplace

    2. It’s not common yet, but many jurisdictions have regulations on POS systems for some economic sectors.

      I know France does for restaurants, but not Belgium or Holland.

Leave a Reply to EwaldCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.