25 years ago a small company in the UK decided to develop a program to help students learn to program microcontrollers: Flowcode. First launched in the year 2000. Initially it sold well into education, and because it was easy to use lots of hobbyists and industrial companies started using it. Today Flowcode is very functional and has thousands of users.
 
Flowcode timeline
Flowcode timeline

Who were the developers?

In 1998 Matrix Multimedia Limited, founded in 1993, was at the forefront of educational multimedia development in the UK and was one of the country’s first multimedia content publishers. Having developed more than 20 educational CD ROMs in Geography, Mathematics and Electronics the company knew that emerging internet technology would destroy their educational content business and needed to diversify. Matrix had made ground breaking CD ROMs for teaching electronics using extensive circuit simulations with SPICE modelling and the company decided to use their electronics expertise to get into the emerging market for microcontrollers within an educational context.

Made for learning

The company’s purpose was learning/teaching. Matrix knew that some engineering students struggled with C code programming and the process of developing more complex programs from scratch was just too time consuming. As a result Matrix decided to simplify programming by using  flowcharts as a program entry method and create a large library of off the shelf routines for lots of sensors, displays and electronic components. Everyone can understand flowcharts so this made programming easier and the command entry system meant that students could not make syntactical mistakes. The large library of components: allowed students to go further, faster, make more exciting projects, increased motivation, and was so much easier than C or assembler.

In addition to this Flowcode was developed with full simulation capabilities: Simulation is a really effective learning tool that allows a different view of what is happening in a program and has the added benefit of shortening the process of developing programs. In the software students can choose a microcontroller, connect switches, sensors, displays and actuators to it, and can simulate and interact with the circuit on screen before compiling the program to real hardware. 

The first version of Flowcode was released in 2000 - when microcontrollers were in their infancy and included the popular PIC16F84 and ATMEGA8 8-bit devices – and it was a great success with sales in many countries. Flowcode’s ease of use also resulted in a large number of hobbyists and industrial engineers using Flowcode for developing real electronic projects and the user base grew.
 
Flowcode 10
Early Flowcode 5 screen image

Multiple code paradigms

As microcontrollers became more diverse and ubiquitous in the early 2000's, Flowcode expanded to be able to create programs for AVR, Arduino, ARM dsPIC and others. Flowcode was a great programming tool but many engineers and students still had the need to learn C code, and some found the transition from intuitive flowchart programming difficult. To ease this transition, Matrix added pseudocode and C code interfaces to Flowcode and - uniquely – students can seamlessly cycle between these paradigms and simulate circuit behaviour in any of them. 

E-blocks

Flowcode had successfully introduced modular programming concepts where functionality for specific hardware modules was consolidated into 'components', yet physical hardware was almost exclusively in the form of multi-functional development boards. Matrix wanted to replicate this modular approach with hardware, and so E-Blocks was born in around 2006. The E-blocks range included a number of ‘upstream’ boards – PIC, AVR, ARM, FPGA – and lots of ‘downstream’ boards – LEDs, switches, sensors, displays, actuators. The blocks snapped together using 9 way D types (rugged for educational use) with power routed separately. The boards included standard features like, In Circuit Debug, but also included onboard instrumentation with a full 2 channel oscilloscope and multi channel logic analyser which can show signals on any pin on the target device. This allowed Matrix to develop innovative educational projects like a fully working mobile phones or GPS receivers where students could understand advanced concepts like AT command communications protocols.
 
E-blocks
E-blocks II boards

3D

In the mid 2010s a new trend emerged: all engineers starting to program microcontrollers: including mechanical engineers. Programming had become a core engineering competence as few engineering systems exist without electronic control or monitoring. Another trend: all parts from companies like RS and Farnell had downloadable 3D models of all components. So Matrix decided to make Flowcode fully 3D compatible so that engineers could import a 3D system from Solidworks in the software and simulate the mechanical movement of their project in 3D alongside the electronic parts of their project. 

Flowcode App Developer

In 2018 in Version 8 Matrix released Flowcode App Developer. The concept here was to allow users to develop web or PC based applications using the Flowcode programming environment. Matrix developed APIs for common technology like Arduino so that customers could make highly functional programs based on low cost hardware interfaces for test and control. So now customers can develop programs for the web, PCs and microcontrollers.
 
Flowcode hardware simulation screen
Typical Flowcode hardware simulation screen

State machines and data flow programming

For both educators and industrial customers Matrix was aware that in developing electronic systems purely scripted or flowchart based programming paradigms had limitations. In 2018 Matrix released a new version of Flowcode that incorporated graphical systems that allowed users to enter programs using state machines and data flow programming, and mix those with conventional programs. State machines are great for certain applications – particularly communications systems – and represent the function of a system in terms of their status at different parts of a program. Data flow programming allows users to assemble functional diagrams based on standard signal processing blocks and compile the resulting system to a microcontroller: fantastic for DSP and communications systems. 
 
Flowcode 10
Mixed data flow and flow chart program in Flowcode 10

Free for makers

In January 2023 Matrix just released version 10 of Flowcode with a number of feature enhancements and a significant licensing change: the program is now free for makers and hobbyists for popular microcontroller targets like PIC16F18877 and Arduino.  

What next?

Matrix continues to develop the Flowcode program and hardware that can help students learn about engineering and has a wide variety of courses and hardware for electronics, robotics, digital communications, process control and other technologies in its portfolio. Matrix continues to innovate in engineering education and electronic system development. In 2023 the company will release a significant new hardware/software development system: Sysblocks. Sysblocks is based on Flowcode’s data flow programming system and a very fast dsPIC microcontroller with two analogue inputs and two analogue outputs. This allows engineers and students to construct a signal processing diagram in Flowcode and compile it to a microcontroller for applications in music technology, DSP, software defined radio, modulation-demodulation, encoding-decoding, spread spectrum etc. Matrix is confident that this will have a significant impact in the way that communications and other subjects in universities are taught and is hoping that the technology can find applications in industry too.
 
Sysblocks
Sysblocks hardware
Flowcode 10 is now free for makers and hobbyists. You can download a free copy from: www.flowcode.co.uk