Software Development

Postmark HP 1170 Windows Interface Software 

This software was created during my time at Postmark developing the 1170 printer.  I currently maintain and update the software as an independent contractor for Martin Yale Industries.  In addition to developing this software, I also worked closely with HP to develop and customize a custom windows printer driver for the 1170 print engine. 

The 1170 Interface software was developed to control the HP FI-1000 print engine. Originally developed for Linux (10.1 integrated touchscreen), the software has since been ported to windows where it is mainly used today. The software lets the operator know the status of there industrial printer, set paramaters such as printhead height, and perform service on the printer. 

The software communicates with the printer through RESTful API and includes a configurable serial output to communicate with other industrial equipment (such as a PLC). The software was developed in Qt with a QML front end and a C++ backend. 

Features: Theme Customization, Logo Customization, Supervisor Mode Lockouts, RS-232 Output for Print Status

PLC Software Development

In one of my first large projects at Postmark, I was tasked with designing an envelope feeder based on the current line of automatic letter openers that Postmark manufactured. The project scope included having a resettable counter (for counting pieces), a batch counter (count 100 envelopes  and stop), and a lifetime counter. The machine also needed to have variable speed, the ability to feed one envelope every X seconds, and the ability to feed an envelope a certain distance and wait for a grab from another machine.

I found that IDEC had a PLC and HMI available that would suit this project and I was able to get trained by IDEC and start developing the software. The software and electronics I developed were later retrofitted into the letter opener line where it is currently used around the world today with over 5000 worldwide installs. In 2022, I was contracted by Martin Yale Industries to update the HMI / PLC due to a EOL with the PLC and Touchscreen I originally sourced back in 2010.  The new layout was designed to prioritize icons over text to eliminate the need for translations (EU requirement) which helped simplify and streamline the software. Additionally, as the software will mostly be used in an office environment, it needed to be designed for use by everyday operators rather than the traditional technical approach commonly used in PLC HMI design. 

Touchscreen on Feeder

Current Software 

In addition to the core manufactured products that I developed at Postmark, I also did a lot of work on custom turnkey solutions for integrating our products and print technologies into existing hardware from other manufacturers. For these projects, I would usually work with an equipment manufacturer and design a custom PLC kit which would interface between our printers / software and their equipment.  These PLCs would usually pick up printing information via RS-232, TCP, Restful API, or UDP communications and then would give output control to the integrator for starting / stoping material input to the printhead. I have also worked using PLCs with industrial camera systems for read and print applications where we are able to read information (example: bacode on paper inside envelope) and then print the corasponding information (example: address on outside of envelope) in real time up to 100,000 pieces per hour. 

Canon Finetech PM-200 Serial Interface



The CMYK Serial tool was a small utility that I developed for the Postmark PM-417 and PM-836 Printers. 

While most print data was sent via USB data transfer to the printhead, a serial interface was used to initiate job sequence and start print jobs. 

This software would connect to a windows COM port and listen for any incoming commands. Upon receiving certain commands, the software would automatically send the necessary sequence of commands back to the printer to complete the task. In addition to automatically sending commands, the operator could send commands manually through the user interface buttons. 

Built Visual Studio with VBA