Skip to content
Stephen Julian edited this page Feb 2, 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

Information and content for this report was gathered from photographs, diagrams and screenshots taken during the project, content sourced from Internet websites. Various hardware RS-232 serial Input / Output (IO) monitors were found to be 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 analyser 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

An Agile approach to rapid prototyping was adopted to build a series of prototypes with each prototype improved upon incrementally compared with the previous one.

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 V1 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 V1 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 V2 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 V2 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 V3:

  • 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 List

N/A

Integrations List

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.

Wish List

Optoisolation circuit.

Changes List

N/A

Shopping List

TBC

Starting List

TBC

Testing List

TBC

Conclusion

Project Outcomes

The developed system has been successfully demonstrated but is not yet ready for use outside of controlled conditions within a commercial environment. Compliance and certifications are needed before a device can be considered ready to commercialise.

Compliance and Certifications

**In an ideal world a commercially acceptable product would feature compliance with:

  • RoHS2
  • CE-Mark
  • FCC
  • UL Certification**

Recommendations

None of the prototypes built so far are ready to be used as commercial products and further development is needed in order to reach this point. Each prototype built has built upon what was learned from the previous one. The as yet unbuilt Prototype 4 would be another step forward yet it is fully expected that further development stages will be required in order to progress sufficiently to arrive at a commercially acceptable product.

Resources

References

This project was originally completed by Stephen Julian of BizKiwi 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

Arduino Files. Retrieved from https://github.com/bizkiwi/serial-port-monitor/tree/main/arduino-files

Appendix B: BOM Files

BOM Files. Retrieved from https://github.com/bizkiwi/serial-port-monitor/tree/main/bom-files

Appendix C: Gerber Files

Gerber Files. Retrieved from https://github.com/bizkiwi/serial-port-monitor/tree/main/gerber-files

Appendix D: Schematic Files

Schematic Files. Retrieved from https://github.com/bizkiwi/serial-port-monitor/tree/main/schematic-files

Appendix E: Pick and Place Files

Pick and Place Files. Retrieved from https://github.com/bizkiwi/serial-port-monitor/tree/main/pickandplace-files