Category Archives: SmartParallel

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 »

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 »