Category Archives: SmartParallel

SmartParallel: serial shifter issues

I was pretty pleased with my serial level shifting board – right up to the point where I tried to use it. The tl;dr version of this post is that the board works, but not well enough. It has severe limitations that, I think, make it useless for the intended purpose. Let me explain… Voltage levels The purpose of the… Read more »

SmartParallel: laying out the PCB

We’ve been here before, but now it feels like we’re finally getting somewhere. The long-running saga that is my SmartParallel serial-to-parallel dot matrix printer interface is nearing completion. Well, maybe. Having solved (I think) the back-powering problem, and with a prototype that I believe actually works, I’ve decided to call Rev 2.0 of the design schematic the final version. All… Read more »

SmartParallel: curing the back-powering problem

And so back to the back-powering problem on my ever-imminent SmartParallel interface board. The issue is that, when the printer is powered on but the SmartParallel board isn’t, voltages coming from the printer via signal lines being held high are part-powering the board. One option was to simply ignore this problem. I find that works for a lot of things… Read more »

SmartParallel: mystery solved

      2 Comments on SmartParallel: mystery solved

Although the stripboard version of the SmartParallel board is working, one niggle remained. When the printer was switched on, but the SmartParallel board wasn’t powered, I was getting random resets of the printer. They weren’t as frequent as with the breadboard prototype, but they were there, sometimes. Also, there was a problem with signals effectively ‘back powering’ (I’m not sure… Read more »

SmartParallel: stripboard prototype – now with blinkenlights

Okay, so the next stage of the stripboard prototype for the SmartParallel serial to parallel printer interface went well. Mostly. As planned, I added a bar LED block with eight segments to show the state of the data lines, along with power-limiting resistors in the form of a resistor array. I also added four LEDs. Three are driven via a… Read more »

SmartParallel: stripboard prototype

Things went from bad to worse with the breadboard prototype of the SmartParallel serial to parallel printer interface. All was fine for a while. Lines of text sent from my Mac via an FTDI cable were duly printed on the Epson MX-80 F/T III dot matrix printer. But then, every now and again, the printer would randomly reset. After a… Read more »

SmartParallel: pulling up and pulling down

It’s never a good idea to let signals float around in the no-man’s land between the high state and the low state. This is why we so often use pullup and pulldown resistors. You set the line to a known, definite state by default and then switch it as necessary. Some uses of pullup and pulldown resistors are obvious. Some… Read more »

SmartParallel: breadboard prototype

A major reason for doing breadboard prototypes is to learn what mistakes you’ve made in your circuit design. Of course, it’s also a way to introduce brand new errors. Or both. Before committing to fabricating PCBs, I wanted to check out whether my design for the SmartParallel dot matrix printer interface would even work. My confidence was reasonably high because,… Read more »

SmartParallel: hacking a Centronics connector

Okay, I lied. Having ordered the PCBs for my Centronics breakout board, and also having ordered a couple of DB25 breakout boards via Ebay, I settled in for the long wait I knew would follow. I said in an earlier post that I was getting used to these two to three-week delivery times for stuff coming from China. The truth… Read more »

SmartParallel: Centronics breakout board

Creating a full breadboard version of the SmartParallel board is turning out not to be a five-minute affair. It has to be done meticulously and methodically if it is to have any value as a prototype. Fitting it all on to a single breadboard is proving challenging too. And that got me thinking. What about replicating at least part of… Read more »

SmartParallel: fixing the PCB layout

Hmm, yes, clearly it wasn’t going to be as easy as all that. While creating the PCB layout for the SmartParallel serial to parallel printer interface, I shuffled a few of the pin assignments on the Atmel ATMEGA328PB microcontroller. The reason was simply to make routing a tad easier. But I had a nagging feeling that this might cause a… Read more »

TTL serial level shifter

      No Comments on TTL serial level shifter

Not every device speaks the same voltage. In designing the SmartParallel serial-to-parallel printer adapter, I chose to use 5V as the VCC supply throughout the board. But I was constantly aware that some of the devices that might talk to the board – such as the Raspberry Pi – use 3.3V for their I/O. What to do? There’s only a… Read more »

SmartParallel: First complete PCB layout

Well that wasn’t easy. Finally, the SmartParallel TTL serial to parallel printer interface has a complete PCB layout. And I learned a few lessons along the way. The most important of these, perhaps, is that when assigning signals to the pins of a microcontroller during the schematic drawing part of the project, don’t rely on whimsy or the luck of… Read more »

SmartParallel: refreshing the design

The SmartParallel, aka DottyMatrix, project has been languishing for a while now, but it’s time to get it restarted. SmartParallel is a serial-to-parallel interface that I embarked on because I wanted to be able to use my decades-old Epson MX-80 F/T III dot matrix printer with a number of platforms that don’t have parallel interfaces, such as the Raspberry Pi…. Read more »

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 matrixSvr.py program is intended to run permanently on the RPi… Read more »