MS1 Hardware Update
During certain world events of the last six years, certain typical industrial control hardware we use became unobtainium for long periods of time.
Figure 1. “It is what it is”
In addition, we kept running into the same common annoyances:
“It would be nice to have an inexpensive little controller for this”
“It would be nice if the controller we used last time was still for sale” (Not an Allen-Bradley complaint! They are quite good at long term support/sales. Please don’t email)
“It would be nice if an off-the-shelf controller could easily interface with this i2c/SPI/UART sensor we want to use”
“It would be nice if we could program our controller hardware in programming languages that our computer science grads like”
“It would be nice if this hardware was open enough that we could just replace the chips that are unavailable with alternatives that are available”
In a fit of misplaced confidence, the decision was made to “just make our own.” Some four years later, we are about there.
If you want to see our early “caveman art” hardware, check out our github repo for this project. Currently, you can only see up to our last iteration of “big board” designs - one monolithic board with all necessary hardware on it. We found out the hard way some of the reason(s) backplane and slot architectures are so popular. In our case, iterating a modular architecture was so much cheaper, we pretty much have to use it until all the bugs are shaken out. We may make a big board again someday, but…not today.
Our requirements were somewhat determined by what was available when things were at their worst - that meant lots of RP2040 (now RP2350) chips for everything - but especially for ADCs, which completely disappeared for a time. We also wanted to be able to put logic anywhere - we have these powerful microcontrollers at each position on the backplane, we should give them something to do other than just report on input status and set output status.
Currently we have a number of card designs:
KLB/KLB-D - An all-purpose card with 24V discrete outputs and inputs, and 3x4-20mA Inputs and 1x4-20mA Output (The -D variant has all discrete I/O)
ADL/ADL-W5500 - ADL runs an RTOS+LWIP stack so it can act as an Ethernet/IP master to control an Ethernet/IP valve manifold we commonly use. ADL-5500 uses the Wiznet 5500 ethernet stack, which can do about anything, but we use it a lot for MQTT + HTTP(s) POST. We recently added an RS485 adapter to the ADL-5500 so we have an option to talk to RS485 stuff.
SLS - 4xRTD Inputs
OWN - 8xOne-wire inputs, for an application using DSB18B20 temperature sensors
IGN - 8xUART/I2C inputs (selectable)
Each card gets a plug-in version (header pins attached) of the RP2040/RP2350 stock pico. It is programmed via debug pins, while attached to the backplane (if desired, can also be programmed via the USB connector). This is accomplished via the Pi attached with the 40 pin umbilical cable. Everything is powered by 24VDC, with both terminals and a barrel plug connector, so you can easily fire it up on your desk if desired.
Figure 2. LYD Backplane Card
So…what is left? What is next? More real-world applications.
We are running out of hardware issues to chase - the biggest one left is deciding if we care enough to add buffer/hot-swap chips for the card i2c buses. We may be getting more capacitance than the EEPROM on the backplane cares for when we plug in 6 or more cards (alternately we might just make 4-card backplanes for now…do we need 8? Really?)
We’ve put this thing to use in utilities (water) and production with great success, now we aim to ramp that up with more usage. This means printing a lot more boards, assembling a lot more housings, and finding a lot more weird corner cases.
If you have interest in this thing, please get hold of us. We’d love to get these in more hands and get more feedback. If you have a project that needs custom hardware, we’d love to talk about that too. If you have done a project like this and want to tell us we are being dumb, we welcome this as well. You can email Krister here.