Skip to main content

All duties pre-paid for US orders! Click to learn more.

Blog Index

QBone Part 4: Bus Drivers

In Part 2, we talked about re-designing the QBone to eliminate an obsolete CPLD. However, there's another part on the QBone that we can't easily replace with a modern part: the bus transceiver (or "driver" or "interface")) chips. [1]

The first QBus machines were based on the LSI-11 KD11 processor. Introduced in 1975, the KD11-F and KD11-L shared a quad-width module size, the original LSI-11 chipset, 1 level of interrupt, and a 16-bit address bus. 64KB of RAM could be addressed, and each had 8KB of RAM on-board. [2] These modules were designed initially for OEM use in third-party machines, but were later sold in a complete system by DEC, as the PDP-11/03 series.

/images/lsi11-03.jpg

On these initial CPUs, the bus driver chips are DS8641 chips, a National Semiconductor (now owned by Texas Instruments) quad transceiver part hand-selected for optimal specifications. DEC eventually started having these labelled DEC8641 to indicate their selection as ideal for QBus systems. In later machines, especially microVAX and PDP-11/73 and /83s, the NatSemi / TI DS3662 was used - still hand-selected, but now branded as DEC8641-2. Third-party QBus boards used these, as well as a variety of other chips to drive the QBus, including the DL8641DC (East German made), NatSemi's DS8838, and the Soviet-made КР559ИП3, most famously used in the Elektronika PDP-11 clones.

New Old Stock КР559ИП3 chips.

Initially, my business partner's gut reaction was: "let's replace these obsolete chips with a modern component that's still available," such as Eric's recommended AMD / TI AM26S10C or SN75138. As QBones already have surface-mount components, there's no real overhead to add more SMD chips, and supply is not a concern. However, Joerg and I both know that some customers are using QBones as a platform for testing bus transceiver chips. So, for this pass on the QBone, we're keeping the DIP-package DS8641 part. If we do a second run of boards, we're considering various options, such as multiple sets of footprints on the PCB, or doing a run of SMT-to-DIP adapters for the newer parts. (This would also let us sell these "chips" individually as replacement parts for old, failed boards.)

So the problem pivots from one of re-design to one of vintage part sourcing. Joerg's favourite supplier of chips ran out during his last order, so that wasn't going to work for us. We managed to obtain a large number of the Russian КР559ИП3 chips, and from an e-cycler, many pulled DS8641 and DS3662 chips. While the Russian chips are new old stock (NOS), there's very few DS8641/DS3662 chips that are NOS on the market today.

Now, we need to test the chips. ZIF sockets in a QBone turned out to be easier than building a device characterisation rig, given the size of this board run. Sadly, though, only 6 ZIF sockets can fit on a QBone, given the current layout:

QBone with 6 driver chips and 6 ZIF sockets for testing purposes.

Unfortunately, this problem only came to light after placing the QBone PCB order, so we were unable to redesign the board to fit 12 ZIF sockets next to each other. So, for fully assembled units, we simply populate all 12 transceiver sockets in a new board with chips, and if necessary replace a chip for failure.

Our test process uses the TL menu's * r command for 10 minutes, followed by the BS menu's TP "walking bit" test and a QProbe for visual verification that all lines are being driven correctly. When fully assembling a QBone, we follow this by booting RT-11 and running ADVENT on our known-good 11/23 (M8186) CPU.

Based on our initial testing, we have a failure rate of about ~2.5% in pulls, and ~0.5% for NOS chips. This is better than expected for pulls, but a little worse than expected for NOS chips. We'll update these numbers as our testing progresses.

Next time, getting a handle on DEC handles.


QBone Part 3: Interposer Boards

The strength of the QBone - the flexibility afforded by the BeagleBone's CPU and its PRU coprocessors - is also its weakness in a DEC computer. The BeagleBone Black itself is 18.5mm (0.73") high, rising 13mm (.51") above the 1.6mm (0.06") thick PCB, and dropping 4mm (0.16") below the PCB for its mini-USB client connector.

/images/beaglebone-dimensions.jpg

Per DEC's own specification for a Q-bus module, the maximum height a single-width board can rise above the top of the PCB is 8.71mm (.343") conductive / 9.52mm (.375") non-conductive, and drop 1.6mm (0.063") below the board, with a PCB thickness of 1.42mm (0.056").

/images/QBus-Card-Dimensions.png

Taken together, that means just the height of the Beaglebone's Ethernet RJ45 jack and the PCB are taller than the entire space available, not to mention the mini-USB jack on the underside of the board. This presents a problem for a densely stacked QBus enclosure.

By mounting the BeagleBone upside-down to its cape, the rise of the Ethernet jack becomes a drop below the UniBone/QBone. As most single-height boards do not rise to the maximum height available, the UniBone/QBone can "cheat" into this space for its DC barrel and Ethernet jacks in most configurations.

In the original UniBone design, Joerg connected the Beaglebone to the cape using ribbon cable and IDC headers. This allowed for some flexibility in moving the board up or down, depending on boards above and below. Unfortunately, this cable required custom manufacturing, a 3D printed adapter and mounting hardware was necessary, and the entire assembly experienced significant strain when installed or removed.

/images/qbone-ribbon-pdp1105.jpg

Rapidly, the ribbon cables were replaced by an interposer (or adapter) board. This second PCB mounts directly to the bottom of the UniBone/QBone. The BeagleBone directly connects to this second board. This makes for a more rigid structure, holding the BeagleBone at just about the best possible compromise between too-high and too-low. Only the topmost mini-USB jack must be protected from shorting against the board above the UniBone/QBone in the chassis. (For safety, we recommend protecting the entire BeagleBone top surface with insulating tape.

In Joerg's initial instructions, he recommends directly soldering the boards to each other, using "double length of solder and heating more than the double time." While this results in an electrically sound connection, it is not a very good physical connection. In testing, our first QBone exhibited a good electrical connection on the bench, but failed various bus driving tests intermittently, until the connection was reflowed. The problem recurred later after multiple insertions and removals.

Soldering for electrical purposes makes both an electrical connection as well as makes a good physical connection. Solder, in this regard, is a bit like concrete: to make it stronger, you need to add internal reinforcement, especially to counteract perpendicular shearing and bending forces. In through-hole electronics, especially in areas where the board may flex or a connector may apply a torque, this rigidity is provided by the component leg.

/images/through-hole-solder-joint.png

However, the bottom of the interposer board needs to be as flush as possible, to ensure maximal clearance with any boards below the UniBone/QBone in the rack. Similarly, the connector for the BeagleBone needs to be short enough that the BeagleBone can seat fully down against the interposer board. Otherwise, the UniBone/QBone will be too tall, and the BeagleBone's underside will contact the card above it in the rack. Also, these connectors must be trimmed to the right length, as stock parts are too long.

We solve all of the above issues by adding headers to the boards in both positions. For the BeagleBone's headers, we use a 3.5mm thick spacer (kits include this spacer!) to keep the pins the right length. This creates the perfect length of pin for the BeagleBone: it is a bit shorter than Joerg's original approach, but well within the specifications (pp. 95-96) for the connector. For the QBone side, a tin-only header is used to solder the boards together, and no spacer is required.

We've found this to be a more reliable electrical and physical connection, and we're confident this makes for a better kit building process.

Still confused? Here's our video of the assembly process.


Next time, we'll discuss the challenges of QBus driver ICs.


Qbone Part 2: New CPLDs

Welcome to part two of our seven part series on the QBone, an all-in-one add-in card for DEC QBus PDP-11 or VAX computers. Today's post is on the challenges of part life cycle management.

/images/qbone-cpld-1.png

After we contacted Joerg to partner on manufacturing QBones, we received the initial design and bill of materials. Generally, when we look into contract manufacturing on a new design, we consider many things, including:

  • Part-specific selection criteria (parameters, price, etc.)

  • Availability of parts from multiple vendors

  • PCB layout and design optimization

  • Manufacturing steps (meaning: how do we actually assemble the units)

  • Streamlined QA process

The most serious issue we found in our initial pass: the CPLDs [1] used to interface between the isolated QBus signals and the BeagleBone were end-of-life. That means that there is still stock of the part with some vendors, but once that's gone, no new parts will be manufactured. Finding chips becomes a mix of NOS [2] chip brokers, dodgy eBay or AliExpress vendors, or private sales. While we already have to do this for other QBone components (stay tuned for Part 4!), it's something we'd rather avoid.

A quick glance at Joerg's prototype PCB manufacturing partner's inventory showed more than one hundred thousand parts in stock. So why bother?

Places like LCSC are dealing primarily with surplus stock. This happens because a big company like Dell, Lenovo, Samsung, etc. contracts with them for e.g. one million parts as part of a contract manufacturing deal in China. That deal might only consume 900,000 components. After a short waiting period of holding on to those parts (in case of re-manufacturing needs), the surplus 100,000 parts end up being sold to a 'grey' market. These are then resold locally between merchants. This is why what you find in those online inventories are so random and haphazard - not to mention the dangers of counterfeit or shady parts.

Given all of that, and our desire not to be locked in to any single source vendor, our best option was to select a new part and re-design for it. The basic design needs were as follows:

  1. Pin-to-pin transition time of 7.5ns or better, or approximately ≥ 133MHz.

  2. The QBus has 45 bidirectional lines, meaning 90 unidirectional signals, plus 3 additional unidirectional signals, for a total of 93.

  3. Each CPLD requires 20 dedicated signals for communication with the BeagleBone.

  4. The BeagleBone can natively interface with 3.3V chips, but would require additional signal conversion to work with a 1.8V CPLD. (That means more chips, more points of failure, and higher cost.)

  5. Ideally, QFP packaging for ease of assembly and rework. Failing that, QFN packages would be OK, but we want to avoid BGA as those increase assembly complexity and cost.

We investigated parts from Altera / Intel, Lattice, Xilinx, and Microchip as replacements. We ultimately chose a Lattice MachOX2 100-pin QFP part as it met all of the needs above (and more I didn't list), was readily available from multiple domestic and international suppliers, is easily programmable with JTAG, and Lattice is a community favourite CPLD/FPGA manufacturer.

/images/qbone-cpld-2.png

We had some challenges along the redesign path. Joerg had problems getting the TSALL global tristate signal to simulate correctly in Lattice Diamond. Of course, a new PCB design was also required. Then, some minor changes to the QBone software running on the BeagleBone were necessary. But, excitingly, the design worked on the first set of boards with only unrelated issues affecting first article test. Getting the first built board running RT-11 was an exciting moment!

Next time, we'll discuss another design change needed to improve QBone manufacturability.


Ever had to replace an end-of-life component? Got a good story? Get in touch with us on Bluesky at @DECromancer!



Introducing the QBone

Welcome to the DECromancer blog! As should be obvious from our name, we love vintage computing gear, especially Digital Equipment Corporation minicomputers. This is the first in a seven-part series highlighting the road to the latest addition to our product line, the QBone.

Jörg (aka Joerg) Hoppe has been working on homebrew PDP-11 hardware and software for over ten years. His Blinkenbone project brings physical front panels - both vintage and newly manufactured - back to life with realtime control from a simulated PDP. He's also embedded simulators in VT-100 terminals, built tools for diagnosing a faulty PDP-11, scanned and indexed a vast quantity of DEC diagnostics, and helped thousands of people continue to enjoy these vintage machines years past their expected lifespans should have ended.

At the Vintage Computer Festival in the Pacific Northwest, 2019, I met Joerg demonstrating his new device, the UniBone, in a compact PDP-11/05.

/images/unibone-vcfpnw2019.jpg

His description at the booth read:

„UniBone” is a newly developed interface board, which connects a Linux-driven „BeagleBone” micro-computer to a standard DEC UNIBUS slot.

UniBone helps to reanimate half-broken PDP-11s, there are so many of these!

A speciality in the BeagleBone are two real-time coprocessors, called „PRU”s. They handle time critical UNIBUS cycles, replacing a FPGA.

And so it does. Just a few months later, I had my own UniBone, installed it in my PDP-11/34, and had a working RL02 disk pack emulation. 4 virtual 10MB disk drives was a huge step up - as my /34 only had an RX02. Running it exclusively from 8" floppy disks got old fast!

Joerg was not the first to envision emulating PDP peripherals, of course. The distinct advantage provided by the BeagleBone is unmistakeable, though: by bypassing FPGA design, he was able to get a device into production quickly, and continue to improve the software with community support after its release.

We think the choice has paid off. Friend of DECromancer Josh Dersch added support for the RK11 and RK05 subsystems, then full-fledged MSCP support - bringing disk emulation to his 11/750 UNIBUS VAX.

So when Joerg announced the QBus version, the QBone, we were eager to get our hands on a prototype, and to offer to be his manufacturing partner in North America. There are many more QBus-based PDP-11s in people's hands these days than UNIBUS variants, and many of those are missing key components such as a full complement of RAM, reliable hard disks, extra serial ports, etc. We're eager to help bring these machines back to life for as many people as possible.

Within the next few days, DECromancer will start selling QBones through our store. Until then, we'll have a series of blog posts describing the process of adapting Joerg's first prototype for mass production. We want you to know about the decision making process we faced, and how this ultimately brings you a better product. Plus, a special surprise on the last day -- sure to please the most serious of collectors.

Keep up with us on Bluesky at @DECromancer, and let us know how you're using QBus in 2021!