[Developing] DIY POS System with Raspberry Pi 4 Cluster and uniCenta

So I was commissioned to make a low-cost POS system for a small clinic in the Philippines. Oh boy was I excited when the client gave me the freedom to design everything from scratch and use any machine that I want.

As an open hardware and software junkie that I am (and very frugal might I add), I need to do it as low cost as I can. Everything should run from community supported technology.

Even though my background is Physics, I have been addicted to robotics and tinkering since high school. But since what I am doing nowadays are mostly ‘data science’ related, my making skills are getting rusted.

Another thing that sparked my excitement for this project.

Here are the specifications of my client:

  • have a database to store customer information (name, age, gender, date/time of visit, doctor assigned to) with tracking numbers
  • inventory of medicines, vaccines, products, services and procedures (e.g. ECG, 2D echo, holter monitoring), miscellaneous (lab tests, test kits, ear piercing)
  • end of the day cash report
  • option to apply discounts (senior, PWD, arbitrary)
  • account for different tellers
  • admin account for owners
  • POS system connected to automated cash drawers and printers
  • ALERTS when low stocks of supply
  • complete transaction history per client
  • option to refund any returned item or product
  • option to indicate ‘outstanding balance’ if any

Based from research here are the hardware that the client needs to purchase:

  • 3 Rpi 4 (one for admin, cashier and reception)
    • 5volts adapter a.k.a power supply
    • casing
    • 128 GB memory card
  • 3 sets of monitor, keyboard, mouse, VGA connectors for screen
  • dedicated router (with internet connection) for the office
  • cash drawer
  • any generic printer to print daily reports
  • cat6 cables for setting local area network routes

I have been following blogs as well on the best open software for POS system. I am convinced that it is uniCenta.

Useful links:

General instruction:

Install the JRE first. Then unzip uncienta and launch it. Works correctly. I have come across two issues so far: 1) Not having a working clock is terrible, especially for days when the internet connection is failing. I am adding a RasClock to get this fixed, haven't had time to configure ot yet. 2) Most reports aren't working because I miss the font Arial on my system. Will need to add it. 3) Getting a non-english locale to work seemed very tricky at first, but was easy once I found the correct instructions: https://sourceforge.net/p/unicentaopos/discussion/1126901/thread/b392ed8c/#1f33

Note: Future plan is to scale this up like factura venta.

(Factura Venta)[https://clauserp.com/blog/la-factura-de-venta/]

Yay! So I was able to buy 3 rpi4. huhu

One problem that I encountered was the display port. RPi4 only supports micro-usb to project. I needed to buy micro-to-hdmi converter.

Eskwelabs scores.

I’ll post the images and price breakdown of everything I bought.

Also, uniCenta POS for more info. I tried to install it in my Windows machine to try to play with it. For the mean time, while I’m still waiting for client update, I’ll just KAIZEND!

Ok. Gawin ko muna itong diary. Marami palang peripherals na kailangan ang rpi 4. At marami pa ring dapat i-configure kay uniCenta. Aja! kaya natin to.

Ok! So the hibernation needs to stop for this project. Even though it’s storming outside (Dec 3), need to code and install things.

So the main problem is the display monitor. Hindi nag rerender si RPi 4 sa monitor ko. omg

Di pa rin ito resolved. Malapit na 2020. Keep up self. huhu

And need natin maging productive today. :)

This needs to be parked muna.

Priority is to learn flask.

It’s time to conquer 2020.

Need to transition to a more efficient computing process this 2020.

Don’t forget to make a blogpost on the bangsamoro dataset.

It’s not a good think to drink coffee nang biglaan. Palpitate mode na naman me huhu.

hope to be productive today

another day to learn and be productive

always list down deliverables every morning

and try to assess what transpired during the day

do the ds lessons

good morning!

bangsamoro edits please now (done)

do as much as you can but don’t forget to take care of yourself


  • had a very nice breakfast, very productive sprints :)
  • good food good sleep
  • i got good sleep and good mouse, good network and a job
  • good food, good music, nice weather :)
  • money, companion, python
  • good food and sleep, many tasks but are really blessings
  • good meeting, and resolved problems :)
  • finally laundry and work grind,
  • fin stability, and so on
  • new airpods and spotify subs
  • company work exposure
  • new clothes
  • good side jobs and life long friends
  • very good work
  • compensation is love :)
  • barely surviving but still make it through
  • more connections and motivation to hustle and do things
  • body is feeling positive
  • friends
  • good work and compensation
  • early work and new people
  • good business engagements
  • good food and life amenities
  • more work and daily grind
  • surviving and delivering work
  • opportunities for growth
  • weekend rest
  • winning a hackathon
  • teaching kids
  • better sleep
  • advocacy and drive to learn
  • alive and kicking!
  • stability is fin
  • fast internet, laptop, good books to read
  • meditation plus better breathing
  • good food + entertainment
  • human connection
  • way better breathing and controlled acid
  • acceptance
  • push research on (private) mobility (done)
  • dynamic visualization - running bar charts
  • forecasting with Facebooks prophecy (try to it in R)
  • just rest
  • upload color palette in private
  • early code
  • finish error logging
  • done error handling and config files
  • next to report generation and workflow polishing
  • new project for dashboarding
  • now the models make me cry

Want to collaborate? Message me in LinkedIn.