We recently attended the BETT 2014 show and bumped into Matrix Multimedia; they introduced us to the latest revision of their product, Flowcode 6.
We’ll be doing this in a two-part post as Matrix Multimedia kindly gave us one of their development boards to try out (ECIO28P PIC), we’ll be posting separately about what we’ve done with this in another review.
As we understand it Flowcode has been around for many years and has been going through it’s revisions with additional features with every version. There is a large community of users and a generous helping of documentation in the form of tutorials, videos and online courses.
So, what is Flowcode 6?
” Flowcode is one of the world’s most advanced graphical programming languages for microcontrollers. The great advantage of Flowcode is that it allows those with little to no programming experience to create complex electronic systems in minutes. Flowcode is available in multiple languages and currently supports the PICmicro, dsPIC, PIC24, AVR/Arduino and ARM series of microcontrollers. “
Saying that it’s the worlds most advanced is a huge opening statement when looking at a product; we have downloaded a 30 day trial of the software and have been testing it out for around a week now. You can download the trial from the official website by clicking here.
It is used for programming embedded devices such as dsPIC, PICMicro, PIC24, AVR/Arduino and ARM microcontrollers. There is quite a selection of different chips that you can use with Flowcode 6.
When we spoke to Matrix Multimedia they were very enthusiastic and informative with regards to what Flowcode can do, they also had some working projects on in their booth at BETT that looked really nice.
Let’s get started.
When first launching Flowcode 6 you’ll notice that you are presented with a few options; New Project, Open a Template, Launch Help and Recent Projects. If you’ve not used flowcharting before then New Project may be a little daunting without reading through the Help first.
Matrix Multimedia have provided some embedded YouTube videos that roughly last a few minutes each which teach the basics of the flowcharting and features of the software, I recommend watching the first few of these before jumping in.
One of the most impressive things that we noticed about this software is the simulation; you don’t need any sort of development board hooked up to get started with your project. You can add components on to the 2D and 3D panels and interact with them as you would real components, this includes chip views of the microcontroller that you’re working with as well as hooking up pins as you would normally.
The 3D aspect is also very nice; it is an OpenGL 3D canvas with primitives, shading, camera movement and coordinates. One thing we couldn’t find, which may be useful is to import 3D models into Flowcode 6. It would be very cool to have custom imported 3D models in your project.
The library of components is also impressive; there are that many a search feature is needed to actually go through them all. Simulation components are in a separate category for ease of access – Not all components can be simulated.
Our first program was to display and use a basic traffic light system; you can see on the screenshot that the simulation LEDs and primitive rectangle were added to the 3D System Panel in Flowcode 6. It was very easy to create an took just under a minute to perfect, which if you were writing this in C it would have taken longer.
The program was made by adding three simulation LEDs to the System Panel; each one of them has had it’s colour changed to represent the three colours of a traffic light. The main program consists of an infinite while loop, delays and output statements. The trick to the traffic light system is to just output to the LEDs in the right order and using delay commands to pause on different lights.
Some good things about Flowcode 6 is the ability to compile your program to either C, Hex or straight to the connected Chip. You can also view and edit the C code at any time, which produces readable and commented code. Within the project explorer you can manage your Global and Private variables, as well as view and create Macros, Components and Events.
Another useful feature is the debugging; you can fully debug your program from within Flowcode 6 as well as creating breakpoints and step into/over code which is something that is essential and works well. It’s quite hard to describe Flowcode 6 if you haven’t used it before, we have been using it for around a week so apologies if we have missed something crucial.
Flowcode 6 has a lot of features; way too many for us to cover here. But take a look at the free trial and see for yourself. There is a nicely designed Datasheet PDF on the Matrix Multimedia website which you can view by clicking here.
This would certainly have a good impact in education; as the simulation of the projects would help speed up development and save real components getting damaged or misused in the classroom, only when something is ready for a test should the chips be hooked up.
There are also other software suites that teach flow-charting; but the ones we’ve seen don’t compare to using Flowcode 6; which can also be used in ICT as well as electronics in education. It is also quite reasonably priced for what you get, Matrix Multimedia mentioned about classroom kits/sets and teaching material that will also be available soon.
What do we think?
For a commercial application it is well worth the money, it does what it says (on the tin!) and more. If I bought this for personal use I would be happy with it. I can also see that education and training may benefit more with it being used as a teaching tool.
It is great for knocking up quick prototypes, or visually creating a complex project. We especially like the fact that you can load it up and start writing (or drawing) code without hooking up anything to the machine.
The original statement about this being the worlds best graphical programming tool is actually pretty accurate. We have never seen this much attention to detail in any other competing software.
We also have to keep in mind that Flowcode 6 only supports Windows, whilst Mac and Linux support would be nice we understand that some of functionality may rely on third party development tools which could only support Windows.
There is always room for improvements in any software. These are coming from a personal prospective after a short-use period:
- Maybe have a schematic view for the chip and connections to components, a window that shows layout and connected pins in a diagram view, with options to print.
- Importing of 3D models from other software (Blender, 3Ds Max, Sketchup etc.)
- Even partial support for other operating systems would be a bonus.
- The “total run time” popup after every simulation gets in the way and is slightly annoying.
Overall Flowcode 6 is a great matured product that works well, with a large collection of well-written tutorials and courses as well as short YouTube videos and community forums. We have only been using it for around a week, so this is a “first impressions” review really.
Check out Flowcode 6 at Matrix Multimedia, you won’t be disappointed.