Embedded - Fast & easy graphical programming


Choose a microcontroller that has the characteristics your application needs. Develop a model of the electronic system using the 2D or 3D panels. Add components from the library or create your own. Link to a mechanical model exported from Solidworks. Design a program using flow chart, Blocks, Pseudo-code, C code or state machine diagrams. Develop a Human Machine Interface to provide a good visual test bed. In the latest version of Flowcode, users can now welcome improved interface improvements including new toolbar and ribbon, state machine programming, the ability to create colour graphical displays with multiple images and text boxes for gLCD’s, a new IOT component pack and microcontroller peripherals.


Simulate your design to see how it functions, Use on-board digital switches and analogue sliders to change real world parameters and see how your system copes. Use the Meters, Oscilloscope, Data Recorder, Console or Graph to verify your system’s performance. Use test signal injectors to send streams of comms data in any protocol to see how your system responds. Link to Solidworks to see your 3D hardware model move on screen under control of your program. In the latest release, we have improved consistency of simulation and components, allowed users to now use the scope and data recorder for variables and pins and introduction simulation only components and a series of test injectors.


Compile your design to a microcontroller. Using Matrix In-Circuit-Debug hardware step through the program in the chip one icon at a time or let the program run. Use Matrix Ghost to view pin and variable status on the Oscilloscope. Use the Data Recorder to decode comms serial buses to check message integrity. Verify your design’s performance using Flowcode SCADA via USB, Bluetooth or the internet. In the latest version, we now have a graphing instrument allowing you to make plots of data in test mode, to prove that your design performs as it should. Further to that, improvements have been made to the data recorder and oscilloscope to allow you to display not just a pin value but any value or variable in the system.


Reproduce your system for others to use in the field in chips or on-board level products. Manufacture one, or a hundred thousand of your designs. Create Thingspeak web based human machine interfaces for use with mobile phones to check and modify your system. Remotely download new programs to your device when needs change. Use the Auto documenter to help others understand your project. In the latest released we have also added ESP32 chip support to our offering totally free of charge, meaning this low power MCU with integrated Wi-Fi and dual mode Bluetooth can be used with Flowcode. Don’t forget to check out our App Developer software mode, too.

Graphical programming screenshot
Graphical programming screenshot
Graphical programming screenshot
Graphical programming screenshot

Test & Debugging

Test and Debugging screenshot 1
Test and Debugging screenshot 2
Test and Debugging screenshot 3

Ghost Technology

Ghost Technology is an advanced way of testing and debugging your electronic system. Using Matrix's range of E-blocks and E-blocks2 hardware, you can monitor every pin and every variable on your microcontroller and interpret serial data inputs and outputs. The Data Recorder and Oscilloscope have been improved to allow you to display not just a pin value but any value or variable in the system. The new graph instrument allows you to make plots of data in test mode to prove that your design performs as it should.

Simulation debugger

For many engineers, a key requirement is to ensure the designs you have developed will work when you compile to your microcontroller. Flowcode allows you to do all you need in simulation using the simulation debugger. This becomes active during simulation and is used to monitor both the values of the variables in your program, and the macros which are being called.

Code profiling

Code profiling shows the user when icons have been 'hit' when the program is executed, distinguishing between sections of code that may be redundant and other parts which are executed often. This helps you improve program efficiency.

In-Circuit-Test and In-Circuit-Debugging

In Circuit Debug (ICD) allows you to control the execution of your Flowcode program on E-blocks & E-blocks2 hardware. This allows you to Run, Step, Pause, use Breakpoints, and monitor and set variable values. In Circuit Test (ICT) allows you to monitor the signals on the pins of your microcontroller, providing you with a clear picture of what is happening on your hardware. ICT mode also allows you to decode communications signals including UART, SPI and I2C packets.


Simulate your code

Prior to deploying your code to a microcontroller, you can simulate in Flowcode, to ensure your design is accurate and will run as you expect. This can be done not only for your flowchart, Blocks or Pseudocode projects, but even for your C code-based developments, too.

Create simple designs

Create simple actuators or valves or add simple shapes to your existing designs and use the built in API to control these creations during simulation. You can even use the Flowcode system panel tools to create your own simple 3D models.

Import your designs from CAD packages

Flowcode integration with third party drawing packages (such as Solidworks), through support for various file formats, means that you can easily import your 3D drawings and designs into Flowcode, then characterise and bring their electromechanical elements to life with the advanced simulation capabilities. Check out the how-to guide here.

Multi-view system panel

View your designs from different angles within the system panel. Split-screen capabilities means you can ensure you are happy with your electronic design. Furthermore, high-speed simulation 0means that your system works close to real-time - so you can verify your design 'live'.

Breakpoints simulation screenshot
Simulation screenshot

"Matrix TSL are official solution partners of Solidworks. Users can import and characterise 3D systems into Flowcode, such as windmills, car steering racks, electric fans and many more. In fact, Flowcode allows users to simulate almost any electromechanical system. If we haven't already got a 3D system that suits your needs, you can design your own in a dedicated 3D package and import it into Flowcode."

Component Library

Component Library screenshot 1
Component Library screenshot 2

Pre-developed components

A whole suite of electromechanical components exists in our large library of parts; from simple switches and LED's to more complex communications modules. These components are developed and grown with every release of Flowcode we launch, ensuring you have what you need to develop your electronic systems. Academic licences gain access to all components, with professional and standard users gaining access through the purchase of feature packs.

Communications components

Communications developments form a large part of modern day electronic education and understanding. Communications protocols including CAN bus, Bluetooth, USB, Ethernet and Wi-Fi are widely studied across the globe. All of these components are available within the Flowcode environment and come as standard with all academic licences.

New components added

Flowcode 8 contains hundreds components that can be used to create a wide range of electrical and electromechanical systems. These components can also be used as a basis for creating your own components or simulations. Version 8 includes a number of new components for system development and more are constantly being added via the dynamic update system. You can find a full list of components in the Flowcode datasheet.

Supported Devices

Arduino programming

One of the major benefits of using Flowcode, is that it simplifies the programming of Arduino platforms through its use of graphical programming. Arduino support means you can do more with your Arduino than you ever dreamed, and you can even integrate it into our E-blocks modules with our E-blocks2 Arduino Shield.


For this first time in the latest release of Flowcode, we now support the ESP32 series of microcontrollers, which are low-cost, low-power devices with integrated Wi-Fi and dual-mode Bluetooth. These are completely free of charge targets for all Flowcode users.


Use Flowcode to program Matrix's E-blocks; the perfect platform for learners, engineers and electronic system developers to quickly prototype your designs on a rugged set of hardware. Programming boards and peripheral downstream boards, ranging from input and output, to communications and prototyping makes this the ultimate development platform. Our new E-blocks2 range is out now, and features development boards and kits for Arduino, PIC MCUs, Raspberry Pi, ARM and more.


The MIAC range from Matrix gives electronic engineers a rugged industrial platform on which to develop their designs. The MIAC range of hardware is fully supported by Flowcode and is available with a choice of Microcontroller brain: 8bit PIC, 16bit PIC or Arduino. Users have a PLC which is easy to program, reliable and perfect for harsh, industrial environments.

8Bit PIC

Flowcode provides support for a range of 8-bit microcontrollers from Microchip, with an easy-to-use development environment, technical documentation and our hardware platform.

16Bit & 32bit PIC

Flowcode also supports Microchip's 16-bit (also known as dsPIC or PIC24 devices) and 32-bit (PIC32) families of MCU's. The PIC32 family delivers 32-bit performance and more memory, to solve increasing complex embedded system design challenges.

Raspberry Pi

Users can even control Raspberry Pi devices. For those wanting to integrate the Raspberry Pi into our new E-blocks2 range, we have also developed a hardware platform, the Raspberry Pi Shield, through which your Raspberry Pi becomes compatible with the whole new range of Eblocks2 boards. Perfect for those studying Computer Science or those who wish to develop using the Pi.


Atmel's AVR devices and ARM MCUs including the popular STM32 ARM family are also supported in Flowcode.