PCW 8256 printer with an Arduino controller

Started by kreatoon, 09:40, 04 March 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


Hello Everyone!

This is my first post as a rookie PCW and computer enthusiast. I have found an Amstrad PCW 8256 dot matrix printer (only the printer) and am wondering would it be possible to control it via an Arduino controller?

I have digged through the forums and (I'm guessing) a large portion of the internet about this topic.

From this particular source: http://www.chiark.greenend.org.uk/~jacobn/cpm/pcwports.html

..I took the following quote:

QuoteUnfortunately there is no documentation available on driving the printer, and the interface is proprietary, so anyone wanting to drive it at this level is probably going to have to reverse-engineer CP/M. Good places to start are probably Michael Keys' books  and , in (one of) which he grovels around in the bowels of the printing system in a most unseemly fashion.

From John Elliott's Joyce emulator documentation, though, there is an overview of the printer commands that are sent from the CPU, which make me believe that I might achieve it if I separately purchase only the motherboard of the PCW 8256 and mimick the CPU commands with the Arduino?

Any comments are welcome. I do understand that I might totally get this wrong.


Welcome to the CPCWiki!

That's an interesting project, and I think the biggest problem is just the lack of documentation, not that it would really be difficult.

Also, seeing that PCWs support Daisywheel and Bubble jet printers, they'e probably pretty standard, so I'd take a look at documentation on daisywheel printers in general and figure out the communication protocol.

You can peek at some documentation here, at The PCW Wiki, or even look at the source code of MAME, as they emulate daisywheel printers.

Good luck!


I think some places to look would be:

  • Disassembling the 8041 code in the printer microcontroller, to see how it handles commands from the CPU and sends control signals to the printer.
  • PCW motherboard schematics, to see how the signals from the microcontroller connect to the printer port.


The PCW9512 Service Manual and the PCW9512+ Service Manual provide a lot of insight and schematics of the printer and the controller side on the motherboard.


Hey everyone,

posting a progress update if anyone is interested.

The setup:

Got the Arduino MEGA controller and connected it to the 34-pin connector from the printer. After determining the numbering of the pins I was able to validate the pins for the print head hammer and all the dot matrix pins, so in a static state I can control all the pins and the hammer.

The deal with the motors (paper and print head) is more complex as there are, in a sequence, bit-shift registers (the CD4904B and the CD4503BCN) and stepper drivers (HA13408 ) for the paper feed motor, carriage motor and the printhead. I assume that the signals coming in to the bit shift registers are somewhat similar to what John Elliott described in his PCW hardware documentation:

Quote6.1.2 Printer commands
Printer commands are a multiple of 2 bytes long. Commands which are longer than
two bytes end with the two bytes C0,00. Parameters use a vertical resolution of 360 1 in;
the horizontal resolution depends on the speed the motor is running at, but is either
in or 1440 1 in. In the following descriptions, the unit of horizontal measure is called
the "tick".

So next step is to test some of the samples out on the shift registers. There is good documentation on the CD4094BE chip so probably will test it first.

Currently struggling with probably a short circuit of some sort on the printer's PCB as I am unable to control any signals and when 24V power is given to the printer the hammer just starts ticking at a 70-90 hits per minute. I am assuming I caused it when I tried out different pins (including GND).


Nice progress!

Regarding the hammer, could it be that you need some other signals set-up for it in order to not start ticking?


I tested everything, but it still looked like a short on the printhead side. I basically took it to molecules and found a small sheet of probably aluminium which was heavily bent, creating a connection between the 24V power supply to the printhead and the signals. I rearranged everything and now there is no short circuit, but it takes a little bit of effort to put the printhead back together.

Powered by SMFPacks Menu Editor Mod