Skip to main content Link Search Menu Expand Document (external link)

Intro

Want to build your own control system? Whether it’s to control multi-million dollar plant equipment, or to monitor your home-brew setup in the back shed, there are lots of good reasons why you might go down this path. The standard off-the-shelf offerings such as PLCs leave little room for customization and can be too expensive for many applications. Or perhaps, (quite understandably) you just hate proprietary development environments using ladder logic, or whatever other archaic paradigms they push on you.

Building a controller entirely from scratch is a big undertaking, and hard to justify for a single application alone. One must choose a microcontroller, design a board with the required circuits and interfaces, layout a PCB, develop firmware drivers and test the hardware and firmware. Only then can you start developing your application. That’s a whole bunch of work, and a lot of time. And manufacturing has its own set of challenges.

So what other options are there? In the past, say, five years, there has been a growing trend of companies adopting a somewhere in-between approach. They start with a ‘platform’ that provides the processing power they need, and some of the required connectivity (be it WiFi, ethernet, bluetooth or something else). That platform could be development board, single board computer or system on module (SOM). Then they build up the interfaces they require using either off-the-shelf add-on boards (they go by many names such as shields, capes, hats, wings) or a custom board. One example that has been quite popular is the Raspberry Pi platform with its plethora of add-on boards called ‘hats’. The number of platforms to choose from is always growing. They range from simple boards requiring little experience to get started (Arduino), to highly sophisticated modules capable of machine learning, computer vision and much more (Nvidia Jetson).

For simple applications it is sometimes possible to build up the necessary components of the control system using just a computing platform plus off-the-shelf add-on boards. But for control systems of moderate complexity and beyond, a single add-on board seldom provides all of the required functionality. Multiple add-on boards are required, and are often stacked on top of each other. This is where things can get messy. Compatibility issues between the add-on boards can arise. The overall size and cost of the solution grows as more boards are stacked together. The reliability of the electrical and mechanical connections between boards may become a concern, and custom enclosures must be designed to accommodate the stack of boards. But perhaps the biggest concern when building a control system for anything other than home projects is the reliability of the add-on boards themselves. Many shields/capes/hats are intended for evaluation, educational or hobbyist use, and lack the extra protection features that you would find on equipment designed for, say, industrial use.

BaseJumper is a solution for building custom control systems that aims to alleviate some of the pain points mentioned above. BaseJumper base boards are equipped with all the circuits needed to interface to sensors, actuators, motors, relays, etc. They act as the interface between the brains of the system (the platform that runs the control algorithms) and the real world (sensors & actuators). Firmware running on the base board takes care of low-level tasks, such as filtering, debouncing and fault detection. A jumper board is then used to connect the base board to a platform of your choice. The platform can be used to implement your high-level application code and control algorithms. For systems requiring a high level of processing power (eg. running neural networks, machine learning, computer vision, etc) you might select a platform with multiple cores, running a linux operating system to do the heavy lifting. When paired with a BaseJumper base board, you can rest assured that the low-level tasks with real-time requirements will be taken care of by a dedicated independent processor on the base board. Alternatively, for simple systems with no special processing requirements the application can be run directly on the base board - forgoing the need for a jumper board and platform all together.

For large systems with many inputs and outputs, base boards can be linked together over CAN bus to provide additional IO. When base boards are linked, an application running on any one base board in the system may control the interface circuits on any or all of the base boards in the system. The application code for controlling a local (on the same base board) versus remote (on a separate base board linked by CAN) interface circuit is much the same. The dispatching of commands over CAN is all taken care of behind-the-scenes.

The firmware running on BaseJumper base boards, and the library that runs on the platform, are all open source. We hope that it will provide you with everything you need out-of-the-box. But if there is some extra special feature you need that isn’t provided, at least there is the option to implement it yourself. You are free to take the code, modify it, and use it your end product. Libraries are available in c++, and are generally distributed through the various package managers (eg. in Arduino one would use the IDE’s Library Manager).

Unlike many low-cost shields, capes, etc, BaseJumper base boards are designed with quality and reliability in mind. The engineers behind BaseJumper have over a decade of professional experience in developing control systems for automotive, military and mobile equipment. BaseJumper boards have an industrial temperature rating of -40 to 85ºC, and contain protections against voltage transients, short-circuits, reverse polarity and overloads. They are suitable for use in the most demanding industrial control, automation, robotics, mobile equipment and agricultural applications. Or, if you’re really worried about that getting that next brew just right - the back-shed home-brew monitoring system.