Getting Started with Flowcode for Arduino

Arduino Uno R3

Getting Started with Flowcode for Arduino

Arduino is the open source electronics prototyping platform. It has become popular in the world of hobbyists, students, artists, programmers and professionals. Arduino was born as an easy tool for fast prototyping, aimed at students without a background in electronics and programming. As soon as it reached a wider community, the Arduino board started changing to adapt to new needs and challenges, differentiating its offer from simple 8-bit boards to products for Internet of Things (IoT) applications, wearable, 3D printing, and embedded environments. All Arduino boards are completely open-source, empowering users to build them independently and eventually adapt them to their particular needs. The software, too, is open-source, and it is growing through the contributions of users worldwide.

If you prefer a video tutorial, please watch this video below to get started with Flowcode for Arduino:

Some Arduino boards 

Arduino Uno

There are currently a couple of Arduino boards, the cheapest (about $30 with clones even cheaper) and the simplest to start with is the Arduino Uno board shown above on figure 1. Most tutorials and books to get started with Arduino uses the Arduino Uno and it quite tolerant of common novice mistakes. This board is based on ATmega328 microcontroller. It has a USB interface, 6 analog input pins and 14 digital input output pins which allows the user to extend connection with other boards. ATmega 328 has 32KB of flash memory for storing the program. 2KB of SRAM and 1KBof EEPROM are also available. Arduino Uno provides an external polyfuse for the protection of the computer’s USB. The fuse will break automatically when more than 500mA of current passed to the USB port and it will remain until the short or overload is removed.

Figure 2: Description of Arduino Uno Board

  • The USB connector is used to connect the Arduino to a computer, so that the microcontroller can be programmed. The connection can also provide electrical power for the board if an external power supplier is not used.
  • The Arduino microcontroller stays in its socket. It can be replaced, if damaged, but the Arduino SMD Edition, you can’t replace the Arduino microcontroller
  • The USB port is used to power the board from your computer’s USB port and also to transfer the program code from your computer into the Arduino microcontroller.
  • The power supplier is to power the board if you don’t want to use the USB. An AC adapter could be used (9 volts recommended, 2.1 mm barrel tip, center positive). Whenever power is provided at the power socket, Arduino will use that, and if there is no power at the power socket, Arduino will use power from the USB socket. It’s safe to have power at both the power socket and the USB socket.
  • Digital I/O pins (pins 0–13): These pins can be either inputs or outputs. Inputs are used to read information from sensors, while outputs are used to control actuators. You will specify the direction (in or out) in the sketch (Arduino programming Software is called Sketch) you create in the IDE. Digital inputs can only read one of two values, and digital outputs can only output one of two values (HIGH and LOW).
  • Analogue In pins (pins 0–5): The analogue input pins are used for reading voltage measurements from analogue sensors such as temperature sensors. In contrast to digital inputs, which can only have two values HIGH and LOW, analogue inputs can measure 1,024 different levels of voltage.
  • Analogue Out pins (pins 3, 5, 6, 9, 10, and 11): These are actually six of the digital pins that can perform a third function: they can provide analogue output. As with the digital  I/O  pins, you specify what the pin should do in your sketch.

You can learn more from Arduino Website.

Arduino Nano

Figure 3: Arduino Nano

The Arduino Nano is almost the same as the Arduino Uno but in a smaller and breadboard-friendly board. It’s only 45 x 18mm! It is also based on the ATmega328 microcontroller like the Arduino Uno. This is a perfect board for those projects requiring small space.

Arduino Mega 2560

Figure 4: Arduino Mega 2560

The MEGA 2560 is designed for more complex projects. With 54 digital I/O pins, 16 analog inputs and a larger space for your sketch. This gives your projects plenty of room and opportunities.

Arduino Yún

Figure 5: Arduino Yún rev 2

Arduino YÚN is the perfect board to use when designing connected devices and, more in general, Internet of Things projects. It combines the power of Linux with the ease of use of Arduino. The board has built-in Ethernet and WiFi support, a USB-A port, micro-SD card slot, 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, an ICSP header, and a 3 reset buttons.

Some Arduino shields

Shields are boards that can be plugged on top of the Arduino PCB extending its capabilities.

Arduino GSM Shield

Figure 6: Arduino GSM Shield

The Arduino GSM Shield allows your Arduino board to make phone calls, send SMS and connect to the Internet.

Arduino Ethernet Shield

Figure 7: Arduino Ethernet Shield

The Arduino Ethernet Shield allows an Arduino board to connect to the internet. It has a standard RJ-45 connection, with an integrated line transformer and Power over Ethernet enabled.

Arduino Motor Shield

Figure 8: Arduino Motor Shield

The Arduino Motor Shield is based on the L298 (datasheet), which is a dual full-bridge driver designed to drive inductive loads such as relays, solenoids, DC and stepping motors. It lets you drive two DC motors with your Arduino board, controlling the speed and direction of each one independently. You can also measure the motor current absorption of each motor, among other features.

Buy Arduino Boards, Shields, Books and Accessories form our Online Shop

Flowcode for Arduino Software

Matrix Technology Solutions has introduced Flowcode for AVR and for Arduino from Flowcode v6. Apart from the wide range of microcontrollers it supports: PIC10, 12, 16, 18, dsPIC, PIC24, PIC32 series, AVR and ARM, now Arduino is supported and even Raspberry Pi. 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 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.

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. 

Figure 9: Flowcode with Arduino 

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

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 10: 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 11: 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 12: 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.

Flowcode Licensing

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 Licence: The Standard licence is for hobby users and enthusiasts to create projects for use at home.
  • Professional Licence: The Flowcode Professional licence 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 Licence: Flowcode offers Academic licences 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 licences are reduced in price when compared to standard or professional licences. If you are interested in purchasing a Flowcode Academic licence 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.

Additional supports

To learn more about Flowcode, please visit the Flowcode Wiki page or you can watch some of our YouTube Videos.

Flowcode Wiki

Flowcode for Arduino Tutorials

For anything else, please visit their website at: Matrix Technology Solutions

Share this post


You've just added this product to the cart:

Select your currency
ZARSouth African rand
EUR Euro