Getting Started with Programming Microcontrollers Super Easy with FlowcodeBitahwa Bindu
What is Flowcode
Flowcode is one of the World’s most advanced graphical programming languages for microcontrollers.
Flowcode software allows you to develop complex electronic and electromechanical systems with ease by just dragging and dropping icons on to a flowchart to create programs.
Those with little or no programming experience can use Flowcode without barriers. In a matter of minutes, beginners can start to develop electronics systems using the graphical programming modes available. Flowcode is perfect for teaching and learning key microcontroller system principles.
If you prefer a video tutorial, please watch this video to learn more about Flowcode:
These programs can control external devices attached to the microcontroller such as LED, LCD, GSM/GPRS modems, 3D Printer, Bluetooth, Motor or read external devices connected to the microcontroller such as switches, keypad, Humidity SHT21, Temperature LM75B, Acceleromete etc. Various communication protocols are also supported in Flowcode such as CAN, I2C Master, LIN Master, LIN Slave, One Wire, RS232, SPI Master, TCP Base, TCPIP, USB HID, USB Serial, USB Slave, Visi (4DSystems), Webserver.
Once you have designed your flowchart, you can simulate your project to see how it will behave once compiled and transferred to your microcontroller of choice like an 8-bit PIC microcontrollers (PIC10F, PIC12F, PIC16, PIC18F), dsPIC, PIC24, PIC32 microcontrollers. AVR devices and ARM MCUs including the popular STM32 ARM family are also supported in Flowcode.
Flowcode supports also the MIAC – Matrix Industrial Automotive Controller is a fully specified industrial electronic controller designed to operate with typical industrial control voltages: 0-10V inputs, up to 24V motor outputs, 240V switching relays. MIAC gives you the ruggedness and power of a PLC with the flexibility and ease of programming a controller. Users have a PLC which is easy to program, reliable and perfect for harsh, industrial environments.
Flowcode with Arduino
With Flowcode you are not limited to only one type of microcontroller, with the same skills you can program a variety of other different microcontrollers without a need to learn how to use different software tools like you would without using Flowcode. With Flowcode you can program Graphically with drag and drop a variety of Arduino boards like the Arduino Uno, Arduino Mega, Arduino Yun and many more.
You can even debug your code, you can view variables in real time, set break points and simulate your hardware.
The great news is you don’t need the Professional license to use the Arduino Uno, it’s available among other many components in the free version.
To learn more about Flowcode with Arduino, please read this article:
Flowcode with Raspberry Pi
To make things even more interesting, from Flowcode version 8, you can now program even the Raspberry Pi! Whether you are working with a Raspberry Pi model 2B(v1.2), 3B or 3B+, you are covered! No need to learn a new language like Python, C, C++, Java, Scratch or Ruby to harness the power of your Raspberry Pi, you can now do it the easiest way with Flowcode Graphically with drag and drop.
Advantages of Flowcode
- A bigger range of components: Flowcode is loaded with lots of components and includes component creation software for users to create their own designs: electrical and mechanical components. from simple switches and LED’s to more complex communications protocols including CAN bus, Bluetooth, USB, Ethernet and Wi-Fi and many more. This makes software development quicker and easy. You can find a full list of components in the Flowcode datasheet
- Simulation: Flowcode has superb simulation capabilities. The great thing about simulation is that it allows you to test your design on-screen before you deploy it. This saves time. Simulation also allows you to set scenarios for your project to test it under more conditions than you find on the bench.
- Test built in: Flowcode now includes full 3D support and a range of API calls that allow engineers to work at a systems level. Flowcode can now simulate complete mechanical systems like plotters and 3D printers. The 3D engine and API calls facilitate other types of design and simulation: from heating water in tanks using PID algorithms to robotics. 3D design files for electromechanical parts are now freely available and can be easily imported into Flowcode and used in engineer’s designs.
- Data Injectors: Some of the more common communications based components have an inbuilt option to use a data injector component to allow the external portion of the communications bus to be simulated. The data injectors are designed to replicate the functionality of a specific external interface without adding anything to the downloadable code sent to the embedded device. Here are the current included data injectors: Injector Base, AT Injector, CAN Injector, DS1307 Injector, GPS Injector, Human Interface Injector and Vnet Injector
Figure 4: Flowcode v6 Overview
Key Features of Flowcode
Flowcode has improved drastically from version 6, it has improved its simulation, you can now design and simulate in 2D or 3D, this will enable you to construct a complete electronic system on-screen, develop a program based on standard flowcharts, simulate the system and then deploy it with confidence.
Figure 5: 3D System Panel and 2D Dashboard Panel
There are now two separate panels compared to 1 panel in the previous version (version 5 and earlier).
The Dashboard Panel and System Panel are both designed to compliment each other, the Dashboard Panel is a 2D workspace designed to display and simulate controls, such as buttons, switches, dials, knobs and sliders as well as readings such as meters, scales and digits such as temperatures, times and measurements while the The System panel provides a real-world framework on which to load Flowcode components. It is designed to show the physical representation of real world components during simulation in 3D.
- Arduino and Raspberry Pi Support: Apart from the wide range of microcontrollers it supports: PIC10, 12, 16, 18, dsPIC, PIC24 series, AVR and ARM, now the popular Arduino and Raspberry Pi are supported. Flowcode has huge benefits over the software platform and compiler used by Arduino and this is where users can really benefit from using the Flowcode environment. The intuitive, graphical programming style of Flowcode means that there is an ease-of-development aspect to be gained from Flowcode.
- Flowcode includes a full API with DLL support. This means that during simulation and In-Circuit-Test mode you can control any third party instrument that provides a DLL and develop a full SCADA system
- Dashboard HMIs – Human Machine interface: components show your system during simulation and In-Circuit-Test using intuitive displays including meters, graphs, oscilloscopes and tables.
Figure 6: Dashboard HMIs
- Third party instrument support – access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.
- Ghost technology provides a real time log of the status of all the pins on the microcontroller whilst a Flowcode program is running on the device. Ghost data can be viewed on the Flowcode Softscope at the same time as the flow chart simulation.
- Flowcode is available in many languages such as French, German, English, Italian, Spanish etc.
As of time of writing this article, the latest version of Flowcode is Flowcode 8, it have these licensing options:
- Free Version: You can get started with the free version without spending a cent. This version offers you a limited access to some microcontroller targets and components but still good enough for students and hobbyists. Some of the free targets include: Arduino Lilypad 328, Arduino Uno R3, MIAC, AT91SAM7S128,
16F18877, 16F1937, 16F84A, 16F877A, 16F88, Matrix Project Board (18F24K50), Matrix Proto Board (18F24K50), Microchip Curiosity, Microchip MPLABXpress, Microchip PICkit, ChipKIT Uno32 , ChipKIT WF32 and many more.
- 30 Days Trial: You can try Flowcode for 30 days free of charge with all the features by downloading the 30 days trial version.
- Standard License: The Standard license is for hobby users and enthusiasts to create projects for use at home.
- Professional License: The Flowcode Professional license allows users to use the generated code in Commercial Products. You can customize your license by adding the features you line and the chip target you need. For more information, please click on Buy Flowcode to buy a new license or upgrade your existing license.
- Academic License: Flowcode offers Academic licenses to customers who are either Students or Teachers for an academic institution. Educational licenses contain all the available features plus a chosen ‘Chip Pack’. Academic licenses are reduced in price when compared to standard or professional licenses. If you are interested in purchasing a Flowcode Academic license please click on Buy Flowcode and select Academic then proceed to the next step where you will be instructed to fill out a form and they will contact you.
To learn more about Flowcode, please visit the Flowcode Wiki page or you can watch some of our YouTube Videos.
For anything else, please visit their website at: Flowcode website