CBM 1000 thermal printer hack

Posted on August 14, 2012


(Rescuing this page from the spam-ridden pbworks Microprinter wiki)

Notes and settings I used to get this printer to work and accept input. The main problem with this printer is the low baud rate (9600) for the connection. This is fine for text, but when you are pushing bytes down the line to print images, it is painfully slow.

Datasheet – get it here

Wikibooks page on the RS 232 connection (contains details on the pinout of the 25 pin serial connector, as well as details of how to short circuit certain connectors)

Settings: (YMMV)

Dip switch settings (1 – on, 0 – off)

DS1 – 10110011

DS2 – 0000000000

DS3 – 0000

DS4 – 0100

Which leads to the following diagnostic: (Hold down the feed button as you turn on the printer to get a printout containing the diagnostics)

58mm paper – (important – if you are using 80mm wide paper instead, you need to flip DS1, switch 3 to OFF!)

Baud rate: 9600 bps

Data bit: 8 bit

Parity: None

Handshake: DTR/DSR

Buffer size: 4k

Pinout wiring (using a MAX232N chip to interface with an arduino – pins refer to printer serial pins unless otherwise mentioned)

(See the serial page linked to above for a description of how the pinout is numbered)

Pins 4 & 5 on the printer (RTS&CTS) were simply connected together

Pins 8 & 20 (DCD & DCR) were also connected together (even though the datasheet suggests 8 isn’t used)

Pin 7 was connected to ground

Pin 2 (TX) was connected directly to pin 8 on the MAX232 N (R2in)

Pin 3 (RX) was connected directly to pin 7 on the MAX232 N (T2out)

Used the following circuit: (MAX232IN chip with 1µF electrolytic capacitors)

Arduino connections:

Roo Reynolds’s arduino sketch from github – this .pde file was able to be used unchanged to control the printer.

The rxPin of the arduino was connected to pin 9 on the MAX232N chip. The arduino txPin was connected to pin 10 on the MAX232N.

[Weirdly, I found that the circuit and connection worked both at 5v and at 3.3v, both as supplied by the arduino.]

Hopefully this should help people get started. Feel free to rejig and add to this page for others.

Python code to control the microprinter and also to print images to it – (requires python’s PIL)

Posted in: Uncategorized