Category Archives: SmartParallel

Dot matrix printing the easy way

Twice now I’ve declared my SmartParallel project completed, and twice it has proven to be faulty – or, at least, difficult. I’m still plugging away at it (more on that soon), but in the meantime I really wanted to be able to print out 6502 assembly code listings on my Epson MX-80 F/T III dot matrix printer. And then I… Read more »

SmartParallel dot matrix printer server – redux

Well, it had to happen sometime. I finally killed a Raspberry Pi. Not on purpose, of course. I’m not a psycho. (I’ve been tested.). Nope, it was just sheer impatience and stupidity. But we’ll get to that in due course. First, let’s talk about finishing a project that was already finished. Just when you think you’re out… Sometimes you think… Read more »

SmartParallel: troubleshooting with logic analyser and scope

Well, it does seem that the problem I’ve been having with the SmartParallel board is indeed that horror of horrors – the intermittent fault. Or perhaps something weirder. This is some kind of quantum device – it works only when being observed. Setting up a server The SmartParallel was working perfectly for a few days. Then I didn’t use it… Read more »

SmartParallel: tracking down a problem

Hmm… maybe I spoke too soon. No sooner had I congratulated myself on a completed project than a problem raised its ugly head. And it was one that required some tracking down. And so, as this blog is my lab notebook, I thought I’d share what happened, as I always find other people’s tales of troubleshooting to be illuminating. One… Read more »

SmartParallel: mission accomplished

It’s done. For now. After weeks of dithering, I finally got around to making up one of my SmartParallel serial-to-parallel printer interface PCBs. I chose to solder the components – mostly surface mount – by hand and that went easier than I expected. The only snag was that it didn’t work. Not right away, at least. And finding out where… Read more »

SmartParallel: Go code is go

      No Comments on SmartParallel: Go code is go

Success! The Go code I’d been struggling with is working, although it also required changes to the C++ code running on the ATMEGA328PB. Here’s a quick overview of how the process works. On the SmartParallel, the ATMEGA328PB code sits in a loop watching for incoming data on the serial port. It also monitors the state of the printer by frequently… Read more »

SmartParallel: n steps back, n+1 steps forward

The principle of ‘one step at a time’ is very sound. The more changes you make at once, the more places there are for bugs to hide. And that’s why this project has been progressing slowly – or not at all – just lately. Finally, though, I feel like it might be back on track. A quick recap: SmartParallel is… Read more »

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 »