This project is submitted for

Description

You should be able to throw your prototypes in a backpack. You should be able to update their programming while at the coffee shop. You should be able to put your prototypes into production immediately. That's a goal of Retro Specification & Retro Modules. The spec introduces a middle-ground between breadboard and production board.

This is not about crafting some new full-stack modular hardware interface. This is about quickly putting parts & small circuit boards into hardy little enclosures (i.e. NULL modem enclosures). No need to buy/make a 3D printer. No campaign or production run required. Just start wiring up your own modules.

What will WE make?
The Maker Movement is a great inspiration. People of all ages and backgrounds are building amazing things independently and in collaborative environments. What about that project three makerspaces want to take on? How should things interconnect?

You probably have some of these connectors collecting dust in a box some

Details

You don't need much to build a Retro Module. For a host module (e.g. one that will house the main microcontroller board), you can start with a female DA-15 Connector. Your first client module would use a male DA-15 Connector. Modules don't need to be enclosed.

D-Sub connectors like the DA-15 Connector have three major form factors: solder, removable pins & ribbon crimp. Ribbon crimp connectors, though the most expensive of the three, will save you tons of time.

Solder-type D-Sub connectors are the easiest to find & are the hardiest. They do get to be a bit of a pain as you add more wires to the connector.

Consider starting with removable pin connectors. The pins do not require solder to assemble & are easy to move around if there is a mistake. You'll need a D-Sub pin extractor tool if you want to move pins after they've been installed.

Progress:

This project has been progressing very well, though I am eager to finish the spec & put that part of the project behind me. I have been hampered by minor/major revisions to the spec as much-appreciated feedback has poured in. Revisions cause existing hardware to fall out of compliance -- and the update process is a big pain.

While chainability is certainly a great benefit, I have found greater immediate need of single modules built to keep devices charged and/or route audio to amplifiers/etc. A few of my very-simple afternoon builds see daily use.

It is very tempting to try and fit all the signals I love into every connector I find. This is not possible, and not the best of temptations. Instead, I have sought to identify connectors professionals from various industries prefer & propose things -- where appropriate -- on connetors they would be well familiar with.

My immediate goals are to both wrap up the main part of the specification process, and to finish the retromodules.com website. The site will feature tools which will, via the yaml files in the repository, make the module design/build process faster & easier.

Project Logs

Work is continuing in earnest for the 1.0 spec release. This spec release is expected to be firm & as such, an audit of many connectors has been performed. The proposed changes include new flexibility on the power-related contacts & optimizations to reduce interference.

There have been some exciting developments concerning multi-cell battery support, as well as support for some more exotic modules. Looking forward to sharing more with you soon!

This latest pull request introduces a few modules (and 3D-printable files) designed to solve power-related issues. One of the main concerns I've had over the past several months was how readily-available power supplies & batteries might fit into the specification. One of the goals of the specification is to encourage adopters to use parts they already have in their shop. Power tool batteries, for instance.

Presently, most connectors noted in the spec at http://retrospec.cc have pins which can accommodate up to 20VDC. Most power tool batteries have a nominal voltage of around 18VDC, but can exceed 20VDC at full charge. For these types of batteries to be used, the average max power rating for connector pins needed to be higher. How high, though? An RC-industry 6S LiPo battery can exceed 25V at max-rated charge. Most golf cart batteries (and newer fancy RV batteries) have a 24VDC nominal voltage. In the end, I decided to go with 30VDC max voltage on most pins in the new proposal. Many inexpensive DC-DC buck voltage regulators are rated to work with voltages up to 30VDC. These regulators can easily fit into most modules, run efficient & run cool. This higher voltage allowance permits more power-hungry modules on the same relatively thin wires.

The new pull request (http://retrospec.cc/new) includes STL files for the two leading power tool manufacturers & reference information. Files for other leading power tool manufacturers will become available within the coming months. Support for LiPo batteries of varying form factors will follow. For lower-power projects, the good ol' 9V Battery module will certainly suffice.

The larger batteries presented a new opportunity for a standardized modular footprint. After messing around with a few different approaches I settled on the idea that one should be able to just print (or CNC/laser) thin plates... or full enclosures. The hole pattern accommodates up to 2X DA connectors, up to 2X DB connectors, up to 2X DC connectors & up to 4x DE connectors. These connectors, when mounted, should ideally be arranged in a palindromic fashion for greater ease of use.

All power-supplying modules using this footprint should have all female connectors. Each pin on a typical D-Sub connector can accommodate about 5A. As such, resistor-style fuses (or auto-resetting fuses) should be between each power pin and the actual power source. The connectors should ideally have all contacts properly connected so a small module plugged in on one side of the footprint can talk to a small module on the other side. If you're in a rush... just wire up the power contacts. You can always come back later & upgrade.

The footprint will allow for all sorts of small-form-factor computing devices to run atop a power tool battery. The new pull request includes STL files for Raspberry Pi devices & full-size Arduino devices... with support for more devices coming soon. Each of the holes in the STL file designs are compatible with M3 screws or Imperial #6 screws. Screws & standoffs can be purchased at many PC or RC part supply stores.Since there are 2X 30VDC pins on DB-25 connectors & 1X 30VDC pins on DE-9 connectors, the configuration shown above can accommodate up to 30VDC at up to 30A. Please make sure to check the new PR (again at http://retrospec.cc/new) for new pin specs for high-current D-Sub connectors (with some accommodating up to 60VDC at up to 80A & some soon which will accommodate 60VDC at up to 160A).

This pull request sums up several months of occasional planning & research work. The projects listed are projects that interest me; projects that I intend to build and/or contribute to in the future. Given present time constraints, I've simply chosen to compile notes about each project in the repo with the hope that others might find the reference material useful -- and that I can reference that material when I'm ready to do some serious building again.

The general idea of the repository is to provide a common electrical specification for maker-friendly projects. Adding known modular projects into the mix helps provide some extra inspiration. Modules & modular project reference materials are expected to be the complete scope of the repository.

Just finished up editing module ideas I've been dwelling on since February. Since the specification is now fairly stable, the focus now is: what can be built? Many big custom builds are just that: big & custom. Once demoed... they may be purposefully destroyed or fall into disrepair. With a basic open spec, modular parts of a big build can be salvaged & saved for later. Most of the ideas in this latest proposal are bigger ideas -- broken up. I'm looking forward to building a bunch of these. Since I do not (nor will ever have) the time to build all the things, I have included many references to other components & in some cases, other projects.

After the Maker Fair 2015 revisions were adopted, I went back to work updating a bunch of Retro Modules which were no longer in compliance. This is one of the reasons I'm striving toward a stable pin specification in short order. It is not fun looking at a box full of no-longer-compliant modules. I've had to sift through existing modules to find the few which were not affected by the spec revisions. Thankfully, I am gaining momentum again.When I built out the hardware for my 'Christmas Truck' project, I used the Retro Modules spec extensively. Those modules will need slight updates now, but even the basic modularity of the install proved useful. I recently traded my truck in for another, and the uninstall process was a breeze. That is -- everything except some of the oldest modifications I made to the truck. The 2012 Tacoma features a LCD screen in the rear-view mirror. It, at times, displays composite video from the stock rear-view camera. I wanted a way to send my own video to the mirror without making a big mess of the mirror housing. I was able to locate the video cable & make a splice quite some time ago. To undo this splice, I had to break out the soldering iron & solder the short segment of wire back together. If I decide to do a similar modification today, I would make it easy to remove any mods. How? I would add connectors (blade, etc) which allow the stock cable to be reconnected to itself with ease. This can increase the cost of the mod, but not by much.

Headers

I have spent some more time fleshing out pin header specs &
documentation. The very common 26 pin header is hardware compatible with
a 25 pin DB-25 connector. The 10 pin header is compatible with the DE-9
connector. This allows the use of old-fashioned header-to-connector
ribbon cables. You may have had some of these cables in an older desktop
tower.

"AC'97"/"HD Audio"

Another common staple of desktop computing is the "AC'97"/"HD Audio" header & breakout modules. Many modern single-board computers feature analog & digital audio, but are often broken out via consumer audio jacks. These small computers could leverage the AC'97 header with great ease -- reducing circuit-board complexity & increasing design flexibility. A source of confusion for many, however, is S/PDIF headers on motherboards. Legacy graphics cards often shipped with a tiny cable for routing digital audio. S/PDIF headers are not well standardized & may consist of two to eight pins. Given this problem, I opted to append five pins to the end of the "AC'97"/"HD Audio" header. This keeps compatibility with off-the-shelf desktop audio modules yet allows S/PDIF in/out on a custom header if so desired.

Pro audio is also an important area to focus on.

Since part of this spec features analog audio next to other digital signals, there is a greater risk of noise. Many environments do not require pristine audio conditions. Some do. This is why I have included support -- in certain connectors -- for AES Digital Audio. S/PDIF is the consumer version of AES. AES42 has some really great features that quite a few sound engineers enjoy. These signals are generally sent on a standard 3-pin XLR connector. There is risk, though, in sending digital signals on a connector primarily used for analog audio. Audio mixers may get damaged if a AES signal is connected to an analog input. I have proposed a spec for 6-pin IEC XLR connectors to hopefully address this issue -- and add a feature or two. The 3-pin connector only allows for one-way transmission of digital audio signals (generally). A 6-pin connector allows for power & bi-directional AES transmission. This opens up doors for chainable digital effects processors, digital audio pedals, mics & remote monitoring. For instance, an artist performing on stage generally needs a mic, guitar input & monitor mix. This could be accomplished via this single XLR cable. The monitor mix would arrive on the `digital-audio-aes-host-out-client-in` pins, and the audio source(s) on-stage...

Maker Faire Bay Area 2015 and the events leading up to it really helped refine the specification in a few very important ways. First, I found many of the features packed into the DB-25 spec should be moved to DA-15. This was in an effort to make the spec more accessible as one gets started. The DA-15 spec is not the best candidate for a plethora of chained modules. If chainability is your main focus, shift over to DB-25 and/or DE-9.The old version of the spec featured USB and lacked CAN. USB is difficult to support when chaining is considered. USB is also a riskier thing to mess around with, since it probably has an expensive computer connected to it. CAN, on the other hand, chains easily and can be run over long distances. It is not as fast, but is sufficient for many electronics experiments. It is used extensively in automotive, automation & robotics environments.Finally, after taking a look at some other multi-pin connectors, I found it wouldn't be to difficult to support 1080i HD video. While not the cleanest means of transmitting video, it is an ideal transmission method for those who like to tinker. The other connectors I mentiond combined composite, 'super' video & component video onto three pins. This pattern has been followed with the DB-25 connector pin spec.

When I decided to make an appearance at Maker Faire, I knew I would need a set of modules to help attract interest. I chose to embed a number of modules into an old flatbed scanner -- along with an Arduino Uno to run everything. The control surface featured all sorts of buttons & fiber-optic-backlit DE-9 & DB-25 connectors. The buttons & LEDs were driven by I2C port expanders & the NeoPixels via the `pixel-bus`. When one (or a few) of the buttons were pressed, the pin holes corresponding to the button label(s) would illuminate. Since I already had a 16x8 I2C LED display, I programmed the Arduino to display button label text there as well. The LED display was behind the scanner glass, while the control surface was mounted on a board well below. The scanner 'display case' and other parts of the display were linked by a single 25 connector ribbon cable. There were other means of input & output as well. Important to the design: I needed certain modules to protected, while others could be messed with. Those goals were well achieved.

Here are a number of the Retro Modules I've been working on as I've been fleshing out the spec. This video demonstrates some of the possibilities provided via this framework. In building the modules, I discovered pros & cons of varying connector specifications. As things became more stable, I found I was able to deploy quite a few modules around the house, shop & truck. Just the beginning...

Hey! So I've been working to make a few revisions to the existing specification (http://retrospec.cc), while adding a few connectors to the fray. I aim to make as few revisions to the spec as possible. People should be able to expect a rigid specification as they build. These revisions are directly related to feedback from fellow engineers.

I realized one thing in particular: there needed to be a connector geared toward those first trying out the spec. I decided on the DA-15 connector, since it is familiar yet slightly rare. The more 'pro' pins, in the new proposal, are found on DE-9 & DB-25.

Others communicated their desire for a longer-distance communication protocol present on these connectors. While generic RS-232, RS-422 & RS-485 were in the running, I decided on CAN bus. The bus will ideally provide the communication backbone for each group of modules. Consider CAN for both flexibility & long cable runs, and SPI/I2C for the simplicity & shorter cable runs.

There was another suggestion related to higher-current applications (i.e. motor controllers). There are connectors in the DB-25 form factor that feature a few large pins. These connectors are usually available via an online order and a slow boat. The connectors are a variant of older connectors which featured one or more coaxial connectors amongst the D-Sub pins.

Build Instructions

Full instructions on how to build your first set of Retro Modules are available on GitHub.

Since this concept is built around a set of hardware specifications, specifics on actual module hardware are not terribly necessary. Instead, here are some of the supported communication methods: CAN, SPI, I2C, AES, S/PDIF, Component|Super|Composite Video & analog audio. Modules/adapters are built via D-sub connectors, DIN connectors, aircraft-grade connectors, XLR connectors & generic pin headers. Some 'client devices' include older 30 pin Apple devices, GoPro cameras & home theater receivers. Further documentation about drone/FPV, automotive & trailer hardware is pending. Where possible, hardware interfaces considered 'open' will be preferred over license-tied interfaces. We don't want to pay a bunch of fees when building the things.

I view this as more of a project than a product. Instead of emphasizing a turn-key product line (for only $199.999999 ninety nine!), the emphasis instead is on compatibility amongst modules you, I, or others make in their classroom, small shop or on their dining room table with parts that are cheap/free.For this idea to continue gaining traction, the http://retrospec.cc must cover the right bases & be as stable as possible.

Thanks man! I haven't gotten to putting any motor controllers in a box yet (though I've worked a bit on a stepper motor module for bench tests). The github link has the preliminary pin proposals. I think the DA-15 connector is pretty solid. That connector is extremely rare in modern computing -- yet easy to find at electronics stores. My thinking is that the DA-15 connector is for those just getting started with the framework, and DE-9/DB-25 are for those a bit further along.I've been getting some great notes from others about things to add and revise. Your note also provided a great deal of inspiration. A new pull request will be posted later this week.The spec will put CANBUS on pins 2 & 3 of DE-9/DB-25, among other things. DB-25 will feature CAN, SPI, ICSP, I2C, S/PDIF, & 1080i/480i analog video & audio. Those pins won't likely be used at all at once on the same connector. The idea is that when you plug one Retro Module into another, nothing cooks.

Hey Bryan! Thanks for your input! I learned about CAN via D-sub 9 just a month ago. The current version of the spec (unlike the proposed version) does not include CAN at all. I2C is currently on pins 2 & 3 of DE-9 & DB-25, which are commonly for RS-232 or RS-422. The proposed version, as you may know, puts CAN on pins 2 & 3 instead. This is a nod to those who have used these connectors for decades. The challenge with CiA 102: pin 9 on a DE-9 connector is generally used for ground. As such, old DE-9 to DB-25 adapters & old printer cables could not be used. I'm not against adopting the CiA 102 standard, but there would be tradeoffs. Please consider submitting a pull request. Others may also desire adherance to CiA 102. I aim to have this spec be as open (and soon: as stable) as possible.You do raise a very good point: there should be a way to use high-quality off-the-shelf tools. I will add `cia-102` into the client device collection. It would be very easy to adapt a CiA 102 module to be compatible with Retro Modules. RS-232 to RS-422 adapters use the same approach -- two DE-9 connectors in a barrel. Pins 2, 7, 3 & 6 on the CiA 102 side would be pins 2, 3, 4 and 9 on the Retro Module side.