PCB Assembly Desktop Factory project. History and creation reasons.

All information about this project is available in a special website section.
We thank you for your attention!
No items found.
Click image to zoom

History and creation reasons

Pic from: https://xc3sprog.sourceforge.net/guide.php

The project was created by accident at the moment of urgent need for a mobile standalone device for ISP programming and testing a lot of printed circuit boards with controllers and FPGAs. The task was quickly solved on a Raspberry by assembling a small IDC-10 socket adapter with a button and LEDs on a breadboard and installing OpenOCD and xc3sprog packages.

It became a solution, after which any thoughts about buying or upgrading another programmer just disappeared. In fact, if you have been working with programmable devices for a long time, you can surely find a whole museum of such devices for flashing (we have a whole drawer of them) - ByteBlaster, Segger, (maybe even several), ST-Link, etc., but there are many of them! These devices are built for LPT, COM, USB... lots of different ones, but here's the trouble - many are already old, unsupported, and incompatible. We'll have many more other reasons to finally buy a new one already. You know? And instead of all this happiness!

The advent of small and low-cost Linux microcomputers with GPIOs has allowed desktop applications to access external devices without special adapters, dongles, etc., leaving only electrical matching necessary.

Many projects immediately used this opportunity but also immediately raised the problem of unification on the use of GPIO (lack of unification). And this requires a solution.

Project Objective

The first project objective is to create extension boards for Linux microcomputers with GPIO, containing minimal indication and control elements and a small connector for connecting external devices with unified access to them.

Why do you need a board like this?

  1. In most practical applications, the extension connectors of these microcomputers are redundant. For example, a cursory review of published Raspberry application projects shows that you will often find that 10-pin will suffice.
  2. For the same reason, the same 40-pin connector is impractical (and more often - simply impossible) to install in the target device, and this means that somewhere, there must be a transition, a bridge to a smaller connector.
  3. Serial matching is very useful (and sometimes necessary) when connecting devices, for which, for example, Segger has a special adapter. Raspberry has no matching elements, so they must be placed somewhere. By the way, these elements (resistors) are useful for another important reason - they effectively reduce the risk of GPIO damage.
  4. A microcomputer, equipped with a minimalistic interface on a few LEDs and buttons, is freed from the monitor, mouse, and keyboard from the constant "tutelage" of the host-PC and becomes a handy standalone tool for a pervasive class of routine and cyclic tasks, such as:
    - programming, diagnostics (JTAG interface provides access to various pins of the chip, which allows the creation of the necessary test conditions (logic levels on the pins) and reading the states; general tests are also possible),
    - electrical training (test (usually cyclic) operation of the device in specified modes. For example, at the initial moment of the device lifetime, detection of hidden defects is most possible (semiconductors, switching, etc.), so "runs" of devices in the correct modes at the factory and workshop are necessary to ensure that consumers receive the best quality devices by filtering out defective devices back at the factory), etc.

    In fact, for example, what does the flashing process of a stack of assembled boards consist of? It consists of a sequence of actions: "plugin, start programming, wait, on a pass/fail signal, move to cell number either 1 or number 2, go back to the beginning". Ideal for a button and three LEDs.
GNOME Project, CC BY-SA 3.0 US, via Wikimedia Commons

The second project objective is to create a thematic repository with software a tool/infrastructure for easy and simple installation and updating of the required application/package.

The third project objective is to create and place in the repository thematic packages designed to facilitate installation and configuration, as well as application packages that solve independent tasks.

Already configured apps/packages, working scripts for apps with already configured pins and adapters for the right adapters.


Now we have a device that, first of all, is very versatile, and secondly, whose total lifetime should be much longer than the devices from our museum. It can be a classical programmer, working by command from a PC; it can be an autonomous device, able to program, test, and reject independently.

At the same time, the project's area of interest has expanded to the whole field of development, manufacturing, and testing of electronic devices - for example, you can install from our repository a package for cutting Dacron stencils with a plotter and use our know-how in working with such stencils. You can make or order a furnace for melting SMD components.

Products in this post

No items found.

Sign up for my newsletter

Kevin Gibbs

Hi! I'm Kevin! I am a very curious engineer :))
I'm the website founder and author of many posts.

I invite you to follow exciting experiments, research, and challenges.
Let's go on to new knowledge and adventures!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.