OBInnovation: Openbravo Web POS and the Raspberry Pi

At Openbravo we know about the importance of innovation. Innovation drives growth and allows us to provide state-of-the-art products to the market. This is especially important in Retail where a lot of technologies are flourishing and where technology flexibility and low cost become essential. Keeping this in mind we are starting a series of blogs today where we will regularly present some of the things we are evaluating in our labs to you. These won’t always be converted into new publicly available capabilities but we think it is important for you to know about them.

And today let me start with a cool use of Openbravo: Web POS, our POS included in the Openbravo Commerce Platform, with the popular card-size computer Raspberry Pi which potentially provides important benefits in some business scenarios as I’ll explain later.

The Openbravo Web POS is a web based application that requires a special component, the Hardware Manager, to interface with all the supported POS devices like receipt printers, customer displays, scales, … In a typical deployment environment the Openbravo Web POS runs on mobile devices like Android tablets or iPads and the POS devices are connected to a computer that runs the Hardware Manager. The following picture depicts an example of this scenario:


The requirements for the computer that runs the Hardware Manager are very low. And to demonstrate this we wanted to try it with one of the smallest computers, the popular card-sized computer Raspberry Pi.

Although it still can’t be considered an officially supported hardware, the use of a computer like this would potentially result in huge benefits in terms of reduced space and low cost. One of the most advanced models costs just 30 €. This could make it ideal in multiple retail scenarios but especially, for example, in reduced retail spaces like kiosks where both aspects become critical. Combining this solution with a tablet, you have a POS solution in a reduced space, which is very cheap, without losing any of the advanced capabilities offered by the Openbravo Web POS. The steps to follow are very simple, but you will need advanced technical skills to complete successfully the process. Let me guide you through the process.

Installing the operating system

The operating system I am going to use is Raspbian, a Debian derivate optimized to run on the Raspberry Pi. Raspbian also includes Oracle Java SE 7 for ARM needed to run the Hardware Manager. To download and install Raspbian, follow the installation guides provided by the Rasberry Pi Foundation that can be found in the Raspberry Pi Downloads page.

Installing the Hardware Manager

In this example I am using an Epson TM-T88V receipt printer and a development build of the Hardware Manager that includes USB support that makes it easier to configure and run USB receipt printers and customer displays. This functionality will be released in 3.0RR14Q3, but it will also work with the current 3.0RR14Q2.1 version.

Installing the Hardware Manager is done the same way you do in other systems, just copy the zip file to the Raspberry Pi and uncompress it to a local folder. To copy the zip file, the best way to do it is using the scp command. Set up ssh in your Raspberry Pi, and execute the command:

scp poshw-1.0.1800.zip pi@raspberrypi.local:/home/pi

To uncompress the zip file just copied, log in into your Raspberry Pi using ssh and execute the commands:

mkdir poshw-1.0.1800
unzip poshw-1.0.1800.zip poshw-1.0.1800/

To execute the Hardware Manager you do not need a monitor connected to the Raspberry Pi. But in this case you have to configure the Hardware Manager to run it in headless mode. Open the openbravohw.properties located in the poshw-1.0.1800/ folder and set the property application.ui to false. You can use nano to edit the configuration file.

nano poshw-1.0.1800/openbravohw.properties

Running the Hardware Manager

On the Raspberry Pi you need to write permissions on the device file of the USB, so you can run the Hardware Manager as root or configure udev to give your user write permissions when the device is attached. You have more information about this topic in the usb4java FAQ page.

Connect the printer to the Raspberry Pi, go to the folder the Hardware Manager is installed in and execute it:

cd poshw-1.0.1800/
sudo sh start.sh

This is the output of running the Hardware Manager successfully on my Raspberry Pi:


Configuring the POS Terminal and testing the printer

Now you need to configure the POS terminal you want to use with the new Hardware Manager configured on the Raspberry Pi. Start Openbravo, go to the POS Terminal window, select the terminal to configure, and in the field Hardware URL write the URL address for the Hardware Manager running in the Raspberry Pi. In my example: http://raspberrypi.local:8090/printer.


Finally, login to the configured POS terminal and print some sample receipts.

In this example I used the Raspberry Pi connected to the store network using a wifi dongle. This option reduces the number of wires and makes it easier to place the receipt printer in the store.


And that is all. I hope you have enjoyed, as I have, playing with the Openbravo Web POS and the Raspberry Pi, a modern and powerful technical combination which minimizes hardware space and costs.

Further improvements

You can also make your own improvements using the Raspberry Pi and the Hardware Manager. For example, you can use a mobile receipt printer and power the Raspberry Pi with batteries. This way you can have wireless printing capabilities in your store easily.

See you in my next post!

Previous post

Know what’s cooking in our labs in 3 minutes

Next post

Q3-2014 Openbravo Commerce Platform and ERP Platform Releases available


  1. John Fandl
    June 30, 2014 at 9:30 PM

    Nice going Adrian!

  2. joeisok
    August 22, 2014 at 6:14 AM

    Nice Job!!

  3. Nassim
    January 7, 2015 at 11:35 AM

    That’s what i was looking for.
    Thank’s a lot

Leave a reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>