Skip to content

How to Connect POS Hardware to Odoo: Printers, Cash Drawers, and Displays

DeployMonkey Team · March 23, 2026 11 min read

Odoo POS Hardware Overview

Odoo Point of Sale supports a range of retail hardware: receipt printers, cash drawers, barcode scanners, customer-facing displays, electronic scales, and payment terminals. Depending on your setup, you connect hardware either through Odoo's IoT Box (a small gateway device) or directly to the POS computer via USB.

Connection Methods

MethodRequirementsBest For
Direct USBUSB cable, browser supportSingle POS station, simple setup
IoT BoxRaspberry Pi + Odoo IoT imageMulti-device, networked hardware
Odoo IoT (Enterprise)Enterprise license + IoT subscriptionEnterprise features, remote management

Receipt Printer Setup

Compatible Printers

Odoo POS works with ESC/POS compatible receipt printers. Popular models:

  • Epson TM-T20III — industry standard, USB and network
  • Star Micronics TSP143III — reliable, USB and Bluetooth
  • Custom KUBE II — compact, USB
  • Any ESC/POS printer — generic support via USB or network

Direct USB Connection

  1. Connect the printer to your POS computer via USB
  2. In Odoo POS, go to Configuration → POS Settings
  3. Under Connected Devices, select Receipt Printer
  4. Choose Use a printer connected to this computer
  5. Odoo uses the Web Serial API to communicate directly — no driver needed in modern Chrome

Network Connection (via IoT Box)

  1. Connect the printer to the IoT Box via USB or network cable
  2. The IoT Box auto-detects ESC/POS printers
  3. In Odoo POS settings, select the IoT Box and choose the detected printer
  4. All POS stations on the network can share the printer

Cash Drawer Setup

Cash drawers connect through the receipt printer. The printer sends an electrical pulse to open the drawer.

  1. Connect the cash drawer's RJ11 cable to the receipt printer's DK (drawer kick) port
  2. In Odoo POS, the cash drawer opens automatically when you complete a cash payment
  3. Test with: POS → Open Cash Drawer button

If the drawer does not open, check that the printer supports drawer kick signals and the RJ11 cable is in the correct port (some printers have two DK ports).

Customer-Facing Display

Show order details and totals on a screen facing the customer:

Using a Second Monitor

  1. Connect a second monitor to your POS computer
  2. In POS settings, enable Customer Facing Display
  3. Odoo opens a new browser window — drag it to the second monitor
  4. The display shows line items, prices, and total in real time

Using IoT Box + HDMI Display

  1. Connect an HDMI monitor to the IoT Box
  2. The IoT Box serves the customer display directly
  3. No second computer or monitor output needed

Payment Terminal Integration

Odoo supports several payment terminal protocols:

Terminal/ProtocolRegionConnection
AdyenGlobalCloud API
Stripe TerminalUS, EU, AUCloud + local reader
Worldline (Six)EuropeSerial/USB via IoT Box
IngenicoEuropeSerial via IoT Box
VantivUSNetwork

Setting Up Adyen Terminal

  1. Get an Adyen POS terminal and API key from your Adyen account
  2. In Odoo, go to POS → Configuration → Payment Methods
  3. Create a payment method with type Adyen
  4. Enter your Adyen API key, merchant account, and terminal ID
  5. Assign the payment method to your POS configuration

IoT Box Setup

The IoT Box is a Raspberry Pi running Odoo's IoT software. It acts as a bridge between hardware and Odoo:

  1. Flash the Odoo IoT image to an SD card
  2. Insert the SD card into a Raspberry Pi 3 or 4
  3. Connect the Pi to your network via Ethernet
  4. Connect hardware (printer, scale, display) to the Pi's USB/HDMI ports
  5. In Odoo, go to IoT → IoT Boxes — the box should appear automatically
  6. In POS settings, select the IoT Box and assign detected devices

Electronic Scale Setup

For businesses selling by weight:

  1. Connect a compatible scale (Mettler Toledo, Ariva, Adam Equipment) to the IoT Box
  2. The scale must use the Toledo 8217 protocol or similar supported protocol
  3. In POS, create products with the pricing type set to By Weight
  4. When you add a by-weight product, POS reads the scale automatically

Troubleshooting

Printer Not Detected

For USB direct connections, ensure you are using Google Chrome (Web Serial API required). Firefox and Safari do not support direct USB printing. For IoT Box, check the IoT Box's web interface (http://iotbox-ip:8069) to see if the printer appears in the device list.

Cash Drawer Does Not Open

Verify the RJ11 cable is connected to the correct port on the printer. Try a different drawer kick cable — some cables are wired differently. Check if the printer's drawer kick setting is enabled (some printers have DIP switches for this).

Customer Display Shows Wrong Content

The customer display window must remain open and visible. If it is minimized or closed, it stops updating. Some browser extensions (ad blockers, privacy tools) can interfere with the display window.

Payment Terminal Timeout

Network-based terminals (Adyen, Stripe) require stable internet. If the terminal times out, check your network connection. For IoT Box-connected terminals (Worldline, Ingenico), ensure the serial cable is properly connected and the baud rate matches.

DeployMonkey POS Hardware

DeployMonkey's AI agent can help configure your POS hardware setup — recommending compatible devices, troubleshooting connection issues, and optimizing your checkout flow. Our cloud-hosted Odoo instances support IoT Box connections for full hardware integration.