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
| Method | Requirements | Best For |
|---|---|---|
| Direct USB | USB cable, browser support | Single POS station, simple setup |
| IoT Box | Raspberry Pi + Odoo IoT image | Multi-device, networked hardware |
| Odoo IoT (Enterprise) | Enterprise license + IoT subscription | Enterprise 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
- Connect the printer to your POS computer via USB
- In Odoo POS, go to Configuration → POS Settings
- Under Connected Devices, select Receipt Printer
- Choose Use a printer connected to this computer
- Odoo uses the Web Serial API to communicate directly — no driver needed in modern Chrome
Network Connection (via IoT Box)
- Connect the printer to the IoT Box via USB or network cable
- The IoT Box auto-detects ESC/POS printers
- In Odoo POS settings, select the IoT Box and choose the detected printer
- 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.
- Connect the cash drawer's RJ11 cable to the receipt printer's DK (drawer kick) port
- In Odoo POS, the cash drawer opens automatically when you complete a cash payment
- 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
- Connect a second monitor to your POS computer
- In POS settings, enable Customer Facing Display
- Odoo opens a new browser window — drag it to the second monitor
- The display shows line items, prices, and total in real time
Using IoT Box + HDMI Display
- Connect an HDMI monitor to the IoT Box
- The IoT Box serves the customer display directly
- No second computer or monitor output needed
Payment Terminal Integration
Odoo supports several payment terminal protocols:
| Terminal/Protocol | Region | Connection |
|---|---|---|
| Adyen | Global | Cloud API |
| Stripe Terminal | US, EU, AU | Cloud + local reader |
| Worldline (Six) | Europe | Serial/USB via IoT Box |
| Ingenico | Europe | Serial via IoT Box |
| Vantiv | US | Network |
Setting Up Adyen Terminal
- Get an Adyen POS terminal and API key from your Adyen account
- In Odoo, go to POS → Configuration → Payment Methods
- Create a payment method with type Adyen
- Enter your Adyen API key, merchant account, and terminal ID
- 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:
- Flash the Odoo IoT image to an SD card
- Insert the SD card into a Raspberry Pi 3 or 4
- Connect the Pi to your network via Ethernet
- Connect hardware (printer, scale, display) to the Pi's USB/HDMI ports
- In Odoo, go to IoT → IoT Boxes — the box should appear automatically
- In POS settings, select the IoT Box and assign detected devices
Electronic Scale Setup
For businesses selling by weight:
- Connect a compatible scale (Mettler Toledo, Ariva, Adam Equipment) to the IoT Box
- The scale must use the Toledo 8217 protocol or similar supported protocol
- In POS, create products with the pricing type set to By Weight
- 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.