Alright, we had a quick overview of how this POS functions. Now lets make it go. Static IP assignments on each of the four POS terminals, KDS video terminals gets their static IP via multicast from the service software.
How do multiple POS terminals communicate over a network, is there a master order database, does each terminal record their own transactions?
Well it's actually quite simple, lets start with each POS terminal's function:
- T1 - Main counter terminal
- T2 - Secondary counter
- T3 - Drive-thru order taker
- T4 - Drive-thru payments/window
Each terminal that takes customer orders records each transaction with a leading digit of the terminal number. Example 101 would be order #2 from T1. T3 is special as it stores orders onto T4 for payment. T4 can only recall/modify orders and accept payment. There is a DataSync application that runs on each terminal that sends each other terminal's transaction data to the rest for backup and reporting purposes.
How does the kitchen display terminal get orders? Well QSR the manufacturer of the ePic VDS (Video Display System) supplies software that will track orders and update the video displays automatically. Bad news, we are getting this error:
Time to break out IDA, looking through some nice pseudocode and x86 disassembly we find that the licensing scheme was only designed to keep (dis)honest restaurant owners out. One function checks if there is existing POS application data on the system drive and will license the app. Second function checks for a license file and validates the content. Hmm, time to patch this, lets get rid of that switch statement, call a couple functions, then set an int to always return 4. Patch out the message box letting us know our license is valid, and we have a winner!
Back to the real fun now that we have our software properly licensed let make our kitchen displays work! Opnsense, OpenVPN, and a bridged USB ethernet adapter. Since the KDS software uses multicast UDP (255.255.255.255 destination) an OpenVPN TAP server will work. On the client end I'm using Windows 11 and bridged the OpenVPN TAP adapter to a USB ethernet adapter. Set the OpenVPN IP on the network bridge and we have access to the POS network.
And would you look at that, it just works!
Oh let's not forget the keypad (bump bar), it's a standard PS/2 keyboard! Works like any other device, even with a PS/2 to USB adapter.
Keys are mapped by row, from left to right. Top row when pressed outputs 1234567890, second outputs abcdefghij. The display unit also has a RS-232 port for connection to an impact or thermal receipt printer.
When will the real fun start? Next post let's explore the video display and make some 'data' appear. How about a personal reminder system? Daily chores/tasks and reminders pop up on displays, can bump them when done or recall from history. Reuse is my favourite part of recycling, and making something work for a function it wasn't designed for brings the best in thoughtful engineering. :)
no comments