Category Archives: DottyMatrix

DottyMatrix software stack: PHP & Python messaging

On the Raspberry Pi that I’m using to control my DottyMatrix serial-to-parallel Centronics printer interface there are two main software components – a web-based PHP/JavaScript front-end UI and a back-end server programmed in Python. So these need to talk to each other. Here’s the overall architecture of the solution: The program is intended to run permanently on the RPi… Read more »

DottyMatrix software stack: the front end

It’s one thing building an interface – it’s quite another working out how to use it. My DottyMatrix serial-to-parallel device is designed to drive my venerable old Epson MX-80 F/T III dot matrix printer (although it should work with any printer using a Centronics parallel interface). So far, I’ve mostly spoken to it using a terminal, sending text directly from… Read more »

DottyMatrix: a simple solution?

The DottyMatrix project began when I thought, ‘It would be nice to make use of my old Epson MX-80 F/T III dot matrix printer’. The problem was talking to it. But then I thought, ‘It’s just parallel printer interface. I’ll make a microcontroller-based device to act as an interface. How hard can that be?’. The answer, it turns out, is… Read more »

DottyMatrix: A simple acknowledgement

Although it was gratifying (and surprising) that my DottyMatrix serial-to-parallel interface worked as soon as I plugged it into an actual printer, there was one nagging flaw. And that was a lack of acknowledgement. The /ACK signal in the Centronics interface was often sadly neglected, if not ignored completely. But in theory, the sequence for printing a character goes like… Read more »

DottyMatrix: Printing to an actual printer

It seems the repairs to my venerable Epson MX-80 F/T III dot matrix printer did actually work because it’s now printing again! What’s more, it’s printing via the prototype of my DottyMatrix serial to Centronics parallel interface. Time for a quick recap. The DottyMatrix is based around an AVR ATMEGA328PB microcontroller. It takes input on a TTL-level serial connection and… Read more »

DottyMatrix: It’s alive!

      1 Comment on DottyMatrix: It’s alive!

My old, beloved Epson MX-80 F/T III dot matrix printer is back in the land of the living. For now. As you can see from some of my earlier posts, I’m designing a serial-to-parallel interface with Centronics compatible DB25 connector so that I can print to my Epson from anything with a TTL serial port, such as a Raspberry Pi…. Read more »

DottyMatrix: ghost of the typewriter and the curse of the carriage return

In designing my DottyMatrix serial-to-parallel printer interface, I had to decide how it would handle the incoming data stream. The purpose of the DottyMatrix is to connect my venerable Epson MX-80 F/T III dot matrix printer to (probably) a Raspberry Pi so that I can print out text files, such as program listings. Obviously, it would be good if it… Read more »

DottyMatrix and Virtual Printer – together at last

It’s great when a plan comes together. Having independently played around with my DottyMatrix serial-to-parallel printer interface and the Virtual Printer (designed to simulate my still-dead Epson MX-80 F/T III dot matrix printer), it was time to hook them together. And it worked! On the left is the DottyMatrix using my prototyping board for the ATMEGA328PB microcontroller. Its serial port… Read more »

Virtual printer & more fun with AVR interrupts

In building my AVR ATMEGA328P-based ‘virtual parallel printer‘, there were two signals that required special treatment. So it was time to revisit interrupts. On a Centronics-style parallel port, the host machine sends an ‘init’ or reset signal to the printer to tell it to flush its buffers and set itself to the default state. It also sends a ‘strobe’ signal… Read more »

Building a virtual parallel printer

Here’s a tip for anyone building a device designed to interface with a parallel printer – you kind of need a parallel printer to test it on. That shouldn’t have been a problem. My DottyMatrix project – which will allow me to send data over a serial connection and have it printed on my Epson MX-80 F/T III dot matrix… Read more »

Getting to grips with the parallel interface

The Centronics interface seemed such an intrinsic part of a computer’s architecture that, to those of us whose computing coming-of-age was in the 1970s or 1980s, it seemed unimaginable that it would all but disappear. Who knew that serial interfaces would one day reign supreme? There’s something still very satisfying about hooking up a parallel connection, with fat cables and… Read more »

First PCB and more mistakes

      No Comments on First PCB and more mistakes

Okay, so I’ve already fessed up to some errors I made with my first-ever PCB. Now I’ve discovered another, and it’s a doozy. It’s also a valuable lesson. I’m waiting for a few bits of kit in order to do surface mount soldering. I’ll be writing more about this when it’s all installed (but as a teaser, it’s a hot… Read more »

A PCB virgin no longer

      No Comments on A PCB virgin no longer

Well, it’s happened. My first PCBs have arrived. Now it’s just a matter of summoning the courage to solder on the parts and see if it works. This is the board I designed as part of my Eagle vs KiCad series. It breaks out a Centronics-compatible DB25 socket, with the data lines being driven by a shift register. There’s a… Read more »

Serial to parallel the hard way

      2 Comments on Serial to parallel the hard way

I kind of miss making hard copies of my program listings on a dot matrix printer. There’s something contemplative and satisfying about waiting for the printer to finish its buzzing and chattering so that you can pore over the code and find that bug. Also, printouts on continuous listing paper with holes down the sides feel like real computing. It… Read more »

PCB design: Eagle vs KiCad – a different direction

[Eagle vs KiCad part 8] So, as I mentioned in the previous post, I’ve decided to change direction slightly. Rather than continuing with the HexMonitor project to a completed and fabbed board, I’m going with a slightly simpler project. The reasons are two-fold: first, the HexMonitor board is sufficiently complex that I figured it had no chance of working, this being… Read more »