Skip to content
Steve Julian edited this page Jan 31, 2022 · 71 revisions

Serial Port Monitor Wiki

Introduction

The Serial Port Monitor, also known as AutoScan, is an Arduino-based device capable of monitoring and non-invasively intercepting data sent between a PC and a thermal printer connected via RS-232 serial cable. The device firmware parses intercepted text data for preset keywords to locate positioning of text characters of interest. Successful parsing and reading triggers writing of data to an LCD module and the USB port which connects the device to a second PC as USB host.

Motivation

The Serial Port Monitor was originally designed as a hardware addon improvement to the Made Order Advisor for automating the previously manual process of Pick Slip barcode scanning when orders are completed. However, the device has other potential applications, such data collection as part of a customer loyalty programme.

Automated monitoring of the content of data sent to printers has a wide range of potential applications in Quick Service Restaurants and many other customer service and other industries.

Requirements

The objective of this project was to build a Serial Port Monitor device capable of monitoring and non-invasively intercepting data sent between a PC and an RS-232 connected thermal printer. The device firmware is required to parse intercepted text data for keywords and trigger events by writing data to a USB port connecting the device to a PC as the USB host.

Research

There are various hardware RS-232 serial Input / Output (IO) monitors currently available in the market. These typically capture data transmitted along a serial cable and forward all of this data to a PC or server for analysis with protocol analyzer software.

Broadly the market is split into 3 categories including devices with data forwarding via:

  1. USB interface.
  2. Ethernet interface.
  3. Bluetooth interface.

Market research was unable to find existing hardware capable of on-board protocol analysis (parse for key word/s of interest using delimiters) as they instead perform this function with external servers or PC hardware and software.

Methodology

Original Method for Serving an Order

Original Method for Serving and Order

Improved Method for Serving an Order

Improved Method for Serving and Order

Prototype V1: Breadboard

The objective for Prototype 1 was to complete a simple functional prototype and successfully test this under controlled conditions in a real world Quick Service Restaurant (QSR).

Prototype V1: Breadboard Circuit

Prototype V1: With Enclosure

Prototype V2: LCD, Case

While Prototype 1 was found to be functionally successful during trials a great deal of improvement would be needed to sustain the harsh environment of a Quick Service Restaurant (QSR).

Goals for Prototype 2 included addition of:

  • Water resistant enclosure
  • Water resistant cable gland
  • Water resistant Reset button
  • LCD module for display of Order Numbers and Device Status

Prototype V2: Making Serial Port Monitor Prototype V2

Prototype V2: Assembled Device

Prototype V3: Custom PCB

Prototype 2 was functionally successful however it also highlighted some important issues to resolve. The enclosure space was too crowded and this was largely due to there being so many connection wires.

Goals for Prototype 3:

  • Replacement of the mini breadboard (and the wiring introduced in Prototype 2) with a single PCB Adapter Board (PCB V1).
  • Addition of protoboard space on the PCB where if needed additional components can be soldered in future device variants based around this board.

Prototype V3: Components ready for Assembly

Prototype V3: Making Serial Port Monitor Prototype V3

Prototype V3: Two Tested Devices

Serial Port Monitor Project Poster

Cloud Services

N/A

Integrations

The Serial Port Monitor, also known as AutoScan, was designed to automate the barcode scanning process of the Made Order Advisor (MOA) order ready customer notification system.

Features Wish List

Optoisolation circuit.

Change Log

N/A

Bill of Materials (BOM)

TBC

Getting Started

TBC

References

This project was originally completed by Stephen Julian as part of his New Zealand Diploma of Engineering (Electronics) studies. This GitHub repository delivers on intentions to publish the project work under the MIT Licence.

While this wiki provides a summary, the complete original project documentation is available in Adobe PDF format below:

Julian, Stephen (2018). Serial Port Monitor - DE6102 Project Report (~22MB PDF, 36 pages)

Julian, Stephen (2018). Serial Port Monitor - Comparison of Old System vs New System (~6MB PDF, 5 pages)

Julian, Stephen (2018). Serial Port Monitor - Building a Series of Prototypes (~12MB PDF, 4 pages)

Appendices

Appendix A: Arduino Files

Appendix B: PCB Files