PCB Way is becoming a teenager


Let’s get something out of the way at the top: this is a sponsored post. PCBWay asked me if I wanted to write something up in celebration of their 10 year anniversary. That being said, while the subject wasn’t my idea, the content is, and I stand by it: I’m not writing anything that I don’t believe to be true and correct. Now, to the meat of the post:

PCBWay as you may know already and probably guessed it from their name is a company that makes – wait for it – PCBs. They are located in China, like many many of their competitors. However, what differentiates them from some that I’ve worked with in the past is their vast array of additional services they provide. On top of PCB manufacturing, they do PCBA assembly, can make stencils for you, create housing and other mechanical components using 3D printing, injection molding, CNC machining or sheet metal processing techniques. Even just within PCB manufacturing, they offer rigid, rigid-flex and flex PCBs with many many options ranging from simple single-layer affairs to 64 layers and God knows how many lamination cycles. They offer all sorts of mechanical and laser vias, base materials, and finishes. In short, they can do anything I can afford and lot that I can’t.


My experience with them so far has been through two projects: one was a relatively straightforward 2-layer PCB project. I’ve used KiCAD for creating the design. The submission process was straightforward. Communication from both of their sale and DFN teams was prompt and efficient. We worked through the flagged issues (either fixing or waiving them) and the design went into production. Even though I opted for the slowest (cheapest) option, the boards got made in a couple of days and delivered all the way to my doorstep in only a few more. End-to-end it might have taken 10 days? Maybe even less. It certainly took less time then for DigiKey to ship me the components. The quality of the PCBs was also good. Granted, this is not top-of-the-difficulty-scale stuff, but still, nothing to complain about there.

For my second and most recent project with them, I went for something more ambitious. Not only I upped the PCB layer count to 4 (still nothing crazy, only through vias and no impedance-control), but I also tried out their assembly service. Since this is my first time contracting assembly, I don’t have a comparison. Here’s my experience though: the submission process was a bit more involved, needing to generate pick-and-place files as well as a BOM. PCBWay provides a KiCAD plugin to make that process easier, but it didn’t do what I wanted and even worse, it automatically submitted the generated files without giving me an option to review. Your mileage my vary. On that front, I wasn’t terribly impressed, but at least it gave me a starting point to improve from.

Once I had the design files ready, I could upload them to the website. Soon, I got contacted by their team and the fine-tuning of the BOM started. I’ve opted for a ‘turnkey’ solution, where PCBWay was going to buy the components. The reasoning was that it was easier for me and probably cheaper too as most of the components I was using are generic. They probably already had most of them in stock. While I was right on most accounts, there were a couple of exceptions: the LED I picked for instance they didn’t have, so we had a little back-and-forth about finding a suitable alternative. Normal, expected.

Then there was the big sticking point: the FPGA I was using. This is something that not too many distributors carry. I was hoping that PCBWay can get the components direct from the manufacturer (both being Chinese), but that fell apart. The manufacturer (or rather their representative) and PCBWay couldn’t agree on the shipping terms which would have resulted the parts getting shipped from China to me here in the US, then back to China for assembly, then, finally back again, assembled. Not only crazy, but expensive both for shipping and tariffs. I would have also had to fill-out all sorts of serious-looking forms (import/export declarations, shipping details) that I knew next to nothing about. Not saying it was PCBWays fault, but I am saying that this was frustrating. The end result was that I decided to manually mount these components myself and released the assembly process with PCBWay with that particular part unpopulated.

From there on, the process was rather smooth, but much longer than a simple PCB order. It took several weeks for them to collect all the components and get ready for the build. What I did like was the communication. I got regular updates of where the project was, they even did a first-article build and sent me several pictures (normal and microscopic) to ensure the components are the way the should be. Here’s one of them:

Once the boards got made, the crazy fast shipping was a great plus yet again.


While I was looking at cost-reduction options, I came across their page describing the PCB process. I really liked this description of how a PCB gets made complete with short videos and detailed description of each step. If nothing else, its a great learning tool. They have a similar page, albeit not as detailed on their assembly process.

I guess this goes into the good communication bucket, but this kind of material really increases my trust in the company.

PCBWay also has a projects page. This is a location for customer-submitted content. Videos, projects, tutorials. There’s a lot of material there and I’ve noticed some projects that I’ve learned of though other means to pop up there as well. For example the Gremlin HDMI video card, an awesome project indeed. I guess the idea here is that you can order the PCBs and potentially the assembled device from PCBWay directly, driving more business to them. It – presumably – also increases the visibility of the projects. You of course don’t have to use their services: you can download the design files and shop around or just go to your preferred fab. Or order from the owner/creator.

I myself have not contributed projects there, but maybe I will in the future.

So, PCBWay is turning 10. They have been a good partner for me, I was satisfied with what they provide and will use them in the future.


I have a few projects in the works. They build on one another, so it’ll take a while to publish all the pieces that go with them. The first, and relatively stand-alone piece is the UnIC project.

I quite proud of this idea, though it’s not one of those Earth-shattering break-throughs that people will talk about for millennia. It’s a circuit that can replace any (well, almost any) 40-pin DIP package chip, if the FPGA on it is programmed the right way.

The trick is not the FPGA or even the 40-pin DIP form-factor; there are several projects around that fit the bill. The trick is that the UnIC design is not only universal in its logic capabilities, but its power requirements as well. It doesn’t care which pins are ground and which are power. It doesn’t even care if there are multiple (positive) supplies, or if there’s a – say – +12V supply on the package. It just takes it and works with it.

Right now you can find the following pages on this project:

  1. The introduction page with a detailed description of the operation of the circuit
  2. The story about the first prototype by PCBWay; the build and testing process

All hail PCBWay!

Yes, this is a sponsored post. I’m not going to be bashful about it, in fact I’m proud! I have a sponsor: it’s PCBWay. They – as you have guessed I’m sure – make PCBs. From quick-turn, low volume prototyping to small(ish) production runs.

Their support includes the usual 2-layer affair, but multi-layer and rigid-flex designs aren’t beyond their capabilities. They can manufacture buried and blind vias, even laser-vias if that’s what you fancy.

Pretty nice, but just that wouldn’t be all that outstanding: there are many companies doing that. PCBWay however also do CNC machining, 3D printing, make SMT stencils for you, even buy and put the components on your circuit boards.

In one word: they are your one-stop prototyping shop. They are mine.


The other day I felt nostalgic and wondered over to the great archive.org site, originally to look for Commodore 64 material. Then, I thought, what the hell! and typed ‘cray’ into the search box. Lo and behold, a lot of hits! There are manuals, a CD image with some marketing or teaching material on it, but among them, two interesting CD images:

Both are UNICOS install images. I’ll have to see if they are complete and what version (and for what machine) they are, but I wanted to share the news: it appears that there is now a publicly available OS image (maybe even two) for my simulator.

Cray update

Recently I’ve noticed that the C compiler hung on the simulator. I’ve tracked the problem down and fixed it. The online version as well as the latest sources should have it fixed and working.

For the curious, I’ve written up a small story on the reasons and the fixes.

More retro-computing

I ventured into the past again, this time by reviving an old ZX81 computer. The short project included expanding the original memory to 16k and to correctly output video from the old dinosaur.

You can read about the adventure and download the design files in case you want to replicate my work from here.


Well, that’s a mouth-full. It stands for ‘Vintage Computer Festival, Pacific North-West‘. It’s happening this weekend, and I’m presenting the Cray work I’ve been doing. Which reminded me that I should also update this page with direct links to all the random babbling I’ve done about this project over the years.

First off, all the articles about the Cray XMP and COS restoration work:

  1. Prelude
  2. A New Hope
  3. The Hunt for the Red Bootcode
  4. The Return of the Cray
  5. The Matrix
  6. First update
  7. Needle in the Hay-stack
  8. A Brave New World
  9. Multiple Platforms
  10. Jobs
  11. Parallels
  12. Turbo

The second series is about the newer, J90 (and YMP-el) simulation work, running UNICOS:

  1. A Bridge too Far
  2. That Obscure Object of Desire
  3. Exploring the CD
  4. A New Simulator, part 1
  5. A New Simulator, part 2
  6. A New Simulator, part 3
  7. The UNICOS file-system
  8. Oldies but goodies
  9. A debug session
  10. To SSH and beyond

You can download the latest version of the simulator (including source code).

However if you’ve read all the above (as I’m sure you just did), you’ll know that the download page doesn’t actually contain functional UNICOS images: I don’t have the rights to distribute them. Because of that, I’ve put the simulator on-line, so – while you still can’t run it yourself – you can experience the full glory of a late 20th century supercomputer.

To anyone coming here because they ran into my exhibit on the VCF PNW, thank you again! For everyone else, still thank you for dropping by my page and enjoy!

The Return of the Cray files

Good news everyone!

A very nice gentlemen – who decided to remain anonymous – contacted Chris and me, saying he has some X-MP tapes we might be interested in. As it turned out he has an absolute treasure chest of material, in fact much more than ‘just’ a collection of X-MP tapes.

This gave me a reason to re-start my work on the Cray simulator project, in fact I’ve decided to start a new series. If you’re interested, check it out here.

The Second Computer Revolution

I’ve had a glimpse into to the future. It was bright. It was delightful. It was alien and frightening. Nevertheless I have seen it and now I can’t shake it out of my head. I’ll write it down and hope that it will bring some piece to my mind. Or at least upsets yours…

The first revolution

When the computer was invented in the ‘40s (all right, some will for certain debate that, let’s just say that the first electrical, digital computers were invented around then) it had a very immediate purpose; to help solve equations faster to:

In other words to help kill people faster.

But with that, the Genie was out of the bottle and people soon started to see that these machines could be used for other things as well. One of its first applications was processing payroll and the famous election night predictions. Soon anything and everything that had to do with numbers was ‘computerized’.

If you look carefully however, you can already see the main characteristic of this revolution: computers are used to automate existing activities. They solve existing equations faster. They replace people in payroll. They become a better bean-counter, an enhanced paper, an improved pen. In other words, the computer became the universal tool.

This is not a great surprise if you think about it’s origin: a computer is essentially a physical realization of the Universal Turing Machine. A machine, that can emulate all other (Turing) machines, a universal tool in deed.

With all that progress though you would be hard pressed to find an application of computers that really required one. Sure, it’s nice to have a smart-phone in our packets, but we could make phone-calls without them. It’s neat that we can program the microwave down to a second, but surely ovens predate computers. The latest hype – driverless cars – is just another addition to this long list. Sure you can sit in a car Today and get to places without driving one: it’s called a taxi cab!

Few people saw the second revolution coming. Edsger W. Dijkstra was one of them (note the date on the article: 1988). I for one, wasn’t. I needed to see it first-hand.

The second revolution

So what is this second revolution business? This is the phase, when computers start to perform truly unique tasks, things that would be impossible to do without them. When these machines stop being empty shells that we can shape to the tool we want it to be – a pen or a cab driver – and become a first-class tool on their own right. I will give you four examples of what is possible when you treat computing machines as a new class of tools:

Video games

I’m not talking about chess games with a computer here. Those belong to the previous phase, where the computer replaced your human opponent. I’m talking about true video games, like Space Invaders, Pac-Man or Mario Bros. Here – and this idea is coming from Bret Victor’s talk – the gameplay is truly unique. These games could not have possibly existed without computers. You can’t make Pacman out of paper or blocks of wood. You can’t play Space Invaders against a human opponent. You can’t write down the story of Mario in a book. Their existence is only possible due to the invention of computers. I could have chosen more recent examples, but I wanted to go with the classics to prove that the idea is not new. All these games were released around 1980. These old games also show that the computer is not there to make dazzling graphics, surround sound or photorealistic rendering. It’s there to create a new art form if you wish, a new type of expression, a new way of engaging an audience. In fact a new type of audience as well: the gamer.

To give it a name, let’s call the innovation here responsive interactivity. The idea that the object you play with not only interacts with you, but reacts and changes its behavior based on your actions. Which leads to my second point:

Interactive art

This is the general idea that Bret Victor further explores in his talk: Stop Drawing Dead Fish. Responsive interactivity –  that computers can be taught to react to your input – can be exploited as an art medium. His example is to create an animated live performance on stage using simple shapes, pre-programmed behaviors and – of course – a computer. This is not a traditional cartoon however. Being a live performance adds spontaneity to it that never existed in that art-form. It’s probably closest to a puppet-theater though that analog breaks down as well as at least part of the action of the ‘puppets’ is not controlled by the ‘puppeteers’.


My third example is one of those over-used words that mean too many things to actually mean anything. To understand its true disruptive nature you have to look at the social change it creates. It is made most evident in the Arab Spring. Sure, revolutions have happened before, even waves of revolutions that swept continents happened, but the way the internet allows people to interact on a global level is new and unprecedented. The free flow of information and goods literarily tears the old social, economic and political fabric apart. Regional leadership becomes irrelevant and next to impossible. Central control of information – the main tool of mass manipulation – becomes very hard. The old ‘bad word’ for this is globalization, but the main driving force behind that is the Internet too. Friedman wrote a whole book on the subject.

The key idea is democratized information distribution. The next step over Guttenberg (who made it possible to everyone to consume ideas): make it possible for everyone to create and distribute ideas.

Computational Architecture

From these grand visions lets get back to something more mundane, and the main trigger for my little rant here: architecture. In his TED talk, Michael Hansmeyer talks about building unimaginable shapes, columns in his case. The point of his talk is that by using computers he was able to create forms that not only could not have been created without computers, they could not have even been imagined without them. The very process of creating these forms involves using computer algorithms (fractals if I understand what’s going on behind the scenes correctly). When I first saw his work, I got very excited. This was the first time I’ve realized that I’m looking at something truly new. And since – at least in my view – big architectural changes have always been tied to enabling technologies – the invention of the arch or reinforced concrete – this new application of computers appears to be truly revolutionary. True, it’s only involved in the esthetics, not in the structure – it’s still a column, in fact arguably a column that can’t support weight at the moment – but it’s the first baby-step towards something much more important: a new artistic language for architecture, a truly new style.

The spark in this example is to make the algorithm and the human equal entities in the creative process.

Hallmarks of a revolution

Let me close by summarizing the key aspect of these wide-ranging examples: Analogies break down. In fact, if you find a good analog to explain what’s going on (you store ‘files’ in a ‘folder’ just like you put ‘papers’ in ‘filing cabinets’) chances are, it’s not revolutionary.

Consequently as Elon Musk have put it at the end of his TED talk (at 19:32 if you’re not in the mood of listening through 20 minutes of unrelated stuff), you have to let go of reasoning through analogy to arrive at these truly new ideas. You have to use axiomatic thinking (or use the way physicists work as he put it). You have to boil things down to their fundamental building blocks and start building things up from there. Or, as I suspect in some of the cases above, just try random ideas, be brave enough not to give up and stumble upon something.

It’s frightening to work on something that doesn’t feel comfortable, known and familiar. It’s all too easy to incrementally improve upon the known – putting a touch-screen on a cell-phone.

This is what Bret Victor is talking about in his ‘The Future of Programming’ talk.
This is what Alan Kay was talking about in ‘The Computer Revolution Hasn’t Happened Yet’.
This is what Dijkstra was talking about in ‘On the cruelty of really teaching computing science’.

Maybe we should start listening…

Help! I need somebody…

Now that the Cray simulator is finally booting the OS, I have to plead to your help! I need SW to run on this. I need source code, I need compilers, I need tools. Without these, the machine is almost as dead as if I haven’t done anything. The OS is just the framework to do useful work in, but useless itself.

If you have or know of anybody who has experience, old backup tapes, disks, anything that can be used with this machine, please contact me!