M11 Ultraclave Sterilizer Printer/Data Logger Probing/Hacking Project - Page 1
Forum section: electronics / projects

author: edy
author_rank: Super Contributor
timestamp: April 13, 2018, 05:40:38 pm
content: Hi folks,I'm looking to build a data-logger for a piece of sterilization equipment that offers that option as extra. The purpose of this project is that I would like to:(a) learn how to do it, just for the electronic learning aspect(b) save myself the cost of buying the pre-made one, and...(c) possibly add some new features (wireless/wifi logging or alarm)The equipment in question is the following M9/M11 sterilizer from Midmark:The sterilizer features an optional accessory "printer module" as shown below which basically prints out data during the sterilization process (temperature, pressures, etc.):http://www.midmark.com/products/medical/instrument-processing/product/m9m11-impact-printerWith installation instructions for the printer given here:http://www.midmark.com/docs/librariesprovider6/pdfs/003-1194-00.pdf?sfvrsn=b6abd305_10There is a 3rd party company that has made a data-logger based on this output, but to avoid wasting ink/paper rolls it instead writes it to a memory card. It looks like this and fits exactly into the same spot as the printer:https://smartreader.ca/?gclid=EAIaIQobChMI1Mun2ti32gIVD-DICh2cewWHEAAYASAAEgJDe_D_BwEMy goal is to figure out if I can interpret the outputs of that printer ribbon cable like the smartreader data-logger module does above and make my own using something like an Arduino or Raspberry Pi, and have it log the data by writing it to a memory card/USB stick and eventually having it send the data through WiFi automatically to a log-file on a server (or allow me to remote access and read log files periodically stored on it).Fortunately there is a lot of information on it found on this page (Technical Library):http://www.midmark.com/technical-library/medical/instrument-processing/product/m9-m9d-m11-m11d-self--contained-steam-sterilizerThis includes Wiring/Flow diagrams:http://www.midmark.com/docs/librariesprovider6/pdfs/004-1027-99.pdf?sfvrsn=893ad305_10And also a part-exploded view:http://www.midmark.com/docs/librariesprovider6/pdfs/004-1039-99.pdf?sfvrsn=613ad305_44I've attached some photos parts of the schematics which may help. Please look at those when reading the next stuff below.Based on the installation document of the printer kit and the wiring diagram showing the board layout, I am seeing the J14 Printer slot at the top of the board next to the buzzer. There is also a TP5 Printer +5VDC test point. I see 8 pins, and pins 7 and 8 are +5VDC. Does that mean both are 5VDC as compared to ground? (which I can test against TP2 ground connection)? I assume I should be able to hook up my multi-meter and see +5VDC on *both* pins 7 and 8, so if I compare either pin to TP2 I will see 5VDC and if I compare either to TP5 I will see 0 V difference?Then the next question is now how do I decypher the other 6 pins? I am assuming if both 7 and 8 are 5 VDC, then there has to be ground on some of the other pins 1-6 which I can test out. That will take care of the power pins. Then I have to isolate which pins are for data. I am hoping they are just outputting the data as a text stream like on a serial 9600 8N1 or something, and the printer handles all of it. I am pretty sure it is not actually controlling the printer module directly (moving the head and activating printer pins). Then I could possibly probe it by hooking it up to a serial port on an old laptop, open up a terminal and have it listen and see if any text comes out that I can read.Thank you again for any help regarding this project. I will start by seeing what kind of voltages I see on the pins when the device is in operation and try to narrow down which are for data and which are simply to power the printer, which I should be able to do with a multi-meter. Then I will need to see if there is data I am not sure what to use, unless I need to break out an old CRO just to see square wave-forms coming off... But since the device may not be outputting except for when it needs to write data to the printer, I may have to wait a long time to see anything and I don't have capture capability on my old CRO. The printer may perhaps be activated when the cycle starts so I can start and stop and press a bunch of buttons on the sterilizer to see if it outputs status, starting, error or aborting cycle messages.This is the full usage manual:http://www.midmark.com/docs/librariesprovider6/pdfs/003-2707-99.pdf?sfvrsn=adbc4204_14Thanks again! This looks like a fun project and I want to learn how to do it.... just safely as I don't want to blow up this expensive piece of equipment!

author: edy
author_rank: Super Contributor
timestamp: September 06, 2018, 05:40:16 am
content: Some additional material on installing some already made data loggers:https://www.advantechsterilizers.ca/wp-content/uploads/2018/01/Instructions-for-SteriData-Logger-for-Midmark-Ultraclaves.pdfand here...https://smartreader.ca/wp-content/uploads/2018/07/SRDL_MIDMARK_WEB_Final_SDv2.pdfI've seen a few brands out there already, including:SteriDataSmartReaderRAJ Biomedical Services... to name a few ...Which leads me to believe that the output of this printer port is not too complex to decypher. Otherwise why so many companies making these? Or is it because they are all using the same board and re-branded? I still have no idea where to start, seems the 8-pin printer port has clearly marked pins 7 and 8 being +5 VDC. That leaves pins 1-6 providing ground and some data lines.I assume it is sending characters and not actually controlling the printer head movement at all. The printer may just receive characters and print. Therefore, if it is just a SERIAL connection outputting ASCII text or something along those lines, I may be able to pick it up in a TERM on a laptop serial input and eventually put together an Arduino or RasPi DATA LOGGER.There is already available SERIAL data logger software also:http://www.aggsoft.com/serial-data-logger/screenshots.htmAny suggestions on how I may start to probe this printer port? By the way, this data logger replaces this printer:As you can see by the photo, there is an old 5-pin DIN-style cable coming out of the printer and it connects to a 5-pin slot. However, the printer jack on the unit main board has 8-pins. So is this printer for an earlier model, or did the connector slide only over some of the pins? The newer printer models replaced this DIN-style connector with an 8-wire ribbon cable. How do I go about figuring out the pins and whether they match up with a 9-pin serial port?I found some generic sterilizer data logger and it seems to be accepting SERIAL connection as I mentioned. If all sterilizers are basically using this protocol rather than spinning their own, it would make it much easier. Here is the printer with specs showing the type of serial connection and baud rate support, number of pins, etc:https://www.quirumed.com/en/thermal-printer-for-autoclave.html

author: t1d
author_rank: Super Contributor
timestamp: September 06, 2018, 08:14:51 am
content: Interesting project. Please keep us informed.For decoding, maybe try this...These cheap Logic Analyzers are getting something of a good reputationhttps://www.ebay.com/usr/onlinehappyshopping?_trksid=p2057872.m2749.l2754Watch these instructional videosUse a microcontroller, that you are familiar with. Don’t bother with buying and learning their chip.Is the thermocouple already in place? If not, try a Max6675 and a thermocouple, of your choice.

author: robingeek
author_rank: Newbie
timestamp: February 17, 2019, 08:41:43 pm
content: Hello EDY,Thanks for the helpful info about the M11 Autoclave.How did you get on with this project?Did you manage to get any info on the pinout of the printer connector (J14)?Is it a serial connection?Kind regardsRobin

author: jr219
author_rank: Newbie
timestamp: April 07, 2019, 02:10:36 pm
content: Hello,I am here considering working on the same project. Let me know if you are interested in collaborating on this. I suspect It's just a serial data output. Does anyone have an existing midmark printer we can look at?I am thinking about doing something cloud based, where the data will be sent up to the cloud.-jr

author: acacio
author_rank: Newbie
timestamp: January 31, 2020, 02:32:51 pm
content: I'm here thinking about working on the same project as well. Any news about it?

author: jr219
author_rank: Newbie
timestamp: July 14, 2020, 03:17:37 pm
content: I got it working just fine with a raspberry pi. I didn't take it much further than that. It's just serial data output on the printer line. You also need to pull one line high to receive output to let the uC know its ready.

author: Surepic
author_rank: Newbie
timestamp: November 07, 2020, 02:36:54 pm
content: I designed and developed that datalogger. Cant share too much information because of non disclosure agreement but some key points can share to help if needed.Firstly this datalogger is one of the poorest designs ever i did because of pressure from management to reduce cost and was asked to make few models of loggers that can work with different models instead of making one for all which i designed but failed to get to production.Second quality of soldering is also at unacceptable level by me ( non professional workforce).Code is written in pure C by me and is super simple. Just parsing incoming data, sorting and sending to lcd then saving on sdcard or spiffs on some models.Hardware is teensy 3.2 with rs232 converter max232 most models. To make it even cheaper i reduced use of max232 in favor of 1 npn transistor level converter.Further reduction of cost was done by replacing teensy with avr attiny4 series mcu. Which reduced cost of production 5-10 times.There is no error checking in the code :-) i was told its not needed. So all assumptions “have” to work.For other sterilizers like statim whole code is 8 lines. Direct register manipulations.For feedback data line i permanently tied it to a known state to always say sterilizer that i can accept data. Speed is 9600 so any controller with fast code can deal with whole process without delays. And btw no delays in code and no blocking structure.Hope my post will be helpful for others who want to make one.

author: edy
author_rank: Super Contributor
timestamp: November 23, 2020, 04:36:34 pm
content: Thanks for the help! I managed to get my hands on a few of these dataloggers that write to a USB. This particular one came with a SanDisk Connect 16 GB Wireless Stick which means I can copy the logs on-the-fly to my server using a cron script and even scan the results of error conditions if necessary and issue a warning.I've attached a few images here below of the insides of one particular iteration. Again, this is probably more complex than needed because it needs to have a USB driver integrated into it.Quote from: jr219 on July 14, 2020, 03:17:37 pmI'm curious if you are able to share the code from your RaspBerry Pi or explain at least the pin-outs and where you connected the serial data input. Did you just use some digital GPIO pins like explained in this page:https://pimylifeup.com/raspberry-pi-serial/One of the issues has been figuring out the pinouts on that J14 printer port on the main board. The diagrams I linked in earlier posts seem to indicate only that the first 2 pins are +5VDC. I've taken a picture of the cable that came with my datalogger and photos of the insides. You can see that pin 1 (yellow) is the +5VDC and it appears that the pin 2 is bridged across to pin 6 with a pull-up resistor, I guess that was what you mentioned is a signal to tell the microprocessor to let you know that you are ready to receive data.Then there are pin 3 (black) and pin 5 (grey) that I presume are the serial data transmit lines? The tutorial I linked above shows how to set up the RaspBerry Pi Python script to read/write serial data. From the previous link it appears 9600 Baud is used. Then I guess it is just plain ASCII character set that is transmitted over the lines.Here is a version for Arduino:https://pimylifeup.com/arduino-serial-monitor/[ADDED:]Just to clarify, comparing with the original diagram J14 Printer port we have pins labelled 1-8 but I have the numbers reversed in my post above. What I called pin 1 and 2 are actually labelled 7 and 8 on the board for +5 VDC. The yellow cable connects to pin 8, there is a resistor across pin 3 and 7, which I assume is to pull up pin 3 to signal to the board that it is waiting to receive data.There is a black cable on pin 6 and a grey cable to pin 4. Since there is no other cable, I am assuming this is a single serial send line with a common ground (there is no need for Rx/Tx pair, as the sterilizer would never receive any signals from the printer... only the other way around). So it must only be a Tx pair comprising of Tx line and ground from the J14 --> printer.The next question is whether it is using 3.3V or 5V for sending data. I am assuming the yellow +5VDC is to provide power to the printer, with either the black or grey line being the ground. The question is whether we are still using 5V or 3.3V for the Tx line, because RaspBerry Pi will take 3.3 on the GPIO but you would need a special cable or converter to allow for 5V input. See here:https://elinux.org/RPi_Serial_ConnectionHere is someone who connected a serial port to their RasPi, and then using PuTTY maybe be able to decode the data coming off the Midmark sterilizer that way... just have it sit and listen:http://www.davidhunt.ie/add-a-9-pin-serial-port-to-your-raspberry-pi-in-10-minutes/The main thing is to trace the cable now and figure out what pins the yellow, black and grey ones connect out on, on the end of the serial cable, so you know how to make your own cable. If it is truly just a matter of simple serial data then I could even get a 9-pin serial port to USB cable and plug it into any computer's USB, open up a terminal and watch the text come in once I set the appropriate BAUD, data, parity and stop bits. The main purpose being to have the conversion of serial signals/voltage to the USB protocol.

author: edy
author_rank: Super Contributor
timestamp: November 29, 2020, 07:14:18 pm
content: Update on pin-outs of the printer port and mapping to RS232 serial 9-pin maleI figured out where the 3 wires map to on the serial cable, assuming it's a standard cable then it may be possible to just plug into any computer serial input, open up a terminal and see what happens. As long as it is correct voltage level, otherwise I don't want to risk burning my computer. What voltage is expected? 3.3 or 5V? Also the RI (see below) may be power to the printer so would need to be disabled/cut. Also the yellow wire which should be ground is apparently one of the 2 pins on the Midmark board (7&labelled as being 5V. So I would take the cable mapping with a grain of salt.The yellow wire maps to rs232 9-pin male pin 5, the grey to pin 9, and the white to pin 2. The resistor simply shorts pins on the Midmark printer port to indicate that it should send data out (pin 3 gets pulled up to same voltage as pin 7 on printer port as labelled on the schematic diagram attached in previous post). According to serial port standard rs232 9-pin male, pin 5 is common ground, pin 9 is ring indicator, and pin 2 is receive data. In this case it is being sent out of the Midmark board and to the printer which is now substituted for a receiving device (computer, Arduino, RasPi, etc).Will have to check voltage on yellow and white wire... this is connected to pin 5 and pin 9 or RI but it may actually be just straight voltage to power the printer. Seems that white is ground and yellow is 5V. So to test will need to plug cable in to Midmark and probe across various pins to see voltage difference, as it is likely not following the standard. If pin 5 ends up being 5V then pin 9 may be ground, assuming pin 2 is still a data line.Can anyone try this and report back on the result?

author: dudinsky
author_rank: Newbie
timestamp: February 13, 2021, 11:16:08 pm
content: I am trying to do the same thing as you with the M11 printer/data logger.Currently we had at work a Data logger as you show pictured.. but it stopped working... nothing on the display... it just lights upMy friend the dentist has NO interest in paying $800us for another logger...I tried putting a data logger on Yellow/Grey and white wires pictures. NOTHING... with my data logger.. (not sure if the main board is damaged... )I have my code/arduino reading in on a serial port (on my test rig) storing to the sd card and time stamping.I just need to figure out the pinout of the J14 port.. and get a actual unmodified printout... to parse.If you made any progress, could you let me know what you found? I would gladly share my code/info as well.RegardsAndrewdudinsky@start.ca

author: dudinsky
author_rank: Newbie
timestamp: February 14, 2021, 11:17:33 am
content: Oh, lastly, my Midmark M11 has NO serial output.. I believe its all serial TTL.. or some other voltage serial format.Strangely the old fried logger connects to the 8th pin (that is not used in the photo) to ground.AD

author: coinop@rogers.com
author_rank: Newbie
timestamp: September 05, 2024, 05:40:14 pm
content: I know this is an older thread, But did anyone ever get their devices up and running?