Bjorn Gruenwald
Bjorn Gruenwald - physicist, electrical engineer, inventor, businessman and “tinkerer”. Bjorn is driven by an intense curiosity about how things work at a fundamental level. By tinkering (pulling things apart) he can understand the inner workings of products and systems and discover ways of improving them. Starting in the 1970s, his tinkering with computers gave him the insight to build his own computers with less complexity and higher performance.
Advanced Computer Applications, Inc. (ACA) was Bjorn’s first commercial company established in 1980. By assembling a mix of single board computers into one parallel processing system and combing that with a highly flexible software development language (ACA/L), Bjorn’s systems managed processes with thousands of sensors and actuators faster than any other control system on the market (see Control Engineering cover page article, July, 1986). With its unique ability to quickly establish communications with other systems, ACA was able to build and deliver supervisory control systems for various industries including textile manufacturing for Dupont, consumer products for Procter and Gamble, pharmaceutical research and development for Bristol-Meyers/Squibb.
Simplicity is the objective in all of Bjorn’s developments. For ACA to be successful, Bjorn needed a software language that was very low in overhead, yet extremely fast in operation. He met an Astrophysicist by the name of Chuck Moore who had invented a language for precisely controlling his telescopes, called Forth. Unlike the popular software languages of the day, this language was based on creating “words” that could be immediately compiled, tested, stored and used in definitions of even high-level words – similar to how human languages work. Bjorn started with this idea and expanded it to include words unique for process control. This efficient approach to programming resulted in a flexible, rapid development capability for building control applications and for communicating with foreign devices.
By the year 2000 it was clear that the amount of data being collected by businesses was enormous, and better systems were needed that could analyze “BIG DATA” quickly and provide insight for improved operations. Bjorn established his second commercial company, InMentia, to meet this growing need. He invented a way of organizing data in a unique numerical structure for high-speed analysis. Commercial computer hardware had evolved to deliver extremely high performance, but the software to program them was still highly rule-based with detailed syntax rules and very high overhead to operate. Based on his experience with ACA/L, Bjorn evolved that language into a new language for programming his high-performance data analysis systems. This product was called the Hilbert Engine since it applied mathematical principles discovered by the great mathematician David Hilbert. The Hilbert Engine was blindingly fast and could analyze millions of rows of data in seconds. As with ACA/L, the programming environment enabled rapid development and high-performance operation.
One of today’s fastest growing markets for computers is the internet of things (IoT) where small computers (microcontrollers) are embedded in products such as cell phones, pacemakers, washing machines, cameras and many more. A current model automobile today has more than one hundred embedded systems all communicating on a common network. From healthcare to aerospace, the demand for embedded systems is exploding. The challenge, however, is to get the needed functions operating in microcontrollers that use very small processors with very limited memory.
As Bjorn sees it, there are basically two problems with the current methods for building embedded systems. The first problem is the length of time it takes to build applications. The second problem is getting enough functionality in the limited space available – often as small as 2K of memory. Both of these issues are due to the common software techniques used for embedded system development. The most popular programming languages for embedded system development include C, C++ and Python, among others, mainly because these are the languages taught in the universities. To be proficient in these languages requires an enormous upfront learning process to understand the hundreds or thousands of rules required to use them. In development platforms that use these languages (Studios) most of the developer’s time is not spent on building the functional logic but on applying the syntax and other inherent rules correctly. These languages also require a three-step process to ultimately get the op codes running to the target microcomputer: Compiling, Linking and Loading. Each of these processes will reveal errors/bugs in the code that have to be corrected. This is a time-consuming, iterative process resulting in extremely long lead times to bring new products to market.
Again, Bjorn saw that by leveraging Chuck Moore’s development techniques, he could create an embedded development system that would outperform any of the traditional platforms being used – both by reducing development time and by generating code efficiently so more functions can be execute. In 2018, Bjorn formed a new company, Snabb, Inc. for the purpose of creating a rapid development environment for embedded system engineers.
The Snabb Development Platform uses the next evolution of Bjorn’s programming language. Engineers, using the process of defining words that can be immediately executed and tested, are now able to build applications that need no further testing once completed. The time-consuming compile, link and load process is eliminated. The logic of each new function created is proven before moving on to the next. The Snabb Development Platform also includes a Virtual Microcontroller (VMCU) that contains the same op codes provided by the manufacturer of the microprocessor to be used. Using this tool, developers can load the applications they developed into the VMCU to see if it works as it should. Using the VMCU as a final testing tool, developers will be assured that once their program is loaded into the target Microcontroller, it will work. When compared to the time it takes to build test and debug a program using a traditional development platform, development in the Snabb platform typically takes half the time.