Using Raspberry Pi With Flowcode 8
Using Raspberry Pi With Flowcode 8
SD cards supplied with Matrix products are pre-programmed with the Raspbian image, in
this case please go to the “Configuring Raspberry Pi for use with Flowcode” section.
Flowcode uses secure shell, SSH, to transfer user applications to the Raspberry Pi.
SSH is easily enabled on the Raspberry Pi from the desktop.
Alternatively, this can be done by using raspi-config from the terminal.
From the Raspberry Pi menu, in the top left corner of the desktop, select “Raspberry Pi
Configuration” from the “Preferences” menu. In the “Interfaces” tab, select “Enabled” for
SSH and click OK. With SSH remote access enabled it is recommended that you to consider
changing the default pi user password (initial default is raspberry).
For this example project we will use a Raspberry Pi 3B+ with simply a LED and resistor
attached to GPIO 4 to demonstrate digital output.
Run Flowcode 8 and select New project.
In the Project Options dialog box select RPI family and RPI3 as the target.
In the “General Options” tab enter the IP address for the Raspberry Pi together with the
user name and password (usually pi and raspberry).
Note: The “sudo” checkbox only needs to be enabled if PWM is used in the project.
Add a LED component, from the Outputs menu, onto the system panel. In the component
properties window set the Connection property to PORTG,4 (this represents GPIO 4).
To the main flowchart add a loop of fixed count 10, together with component icons to turn
on and off the LED with 500mS delays as shown.
Save the project, and the flowchart can be simulated on screen by clicking the Run button.
To run the project on the Raspberry Pi click the “Compile to chip” button in the task bar.
The project compilation window will display followed by a console (Putty) window whilst the
program runs on the Raspberry Pi and flashes the LED 10 times.
Sample Flowcode 8 project for Raspberry Pi and E-blocks
For this example we will use an E-blocks 2 Raspberry Pi upstream board (BL0036), with
Raspberry Pi 3B+ installed, and a Combo board (BL0114).
As with the previous example, run Flowcode 8 and select New project.
In the Project Options dialog box select RPI family and BL0036 as the target.
In the “General Options” tab enter the IP address for the Raspberry Pi together with the
user name and password (usually pi and raspberry).
Add a Combo BL0114 component, from the E-blocks menu, onto the dashboard.
From the Project Explorer window drag and drop a Start icon followed by a PrintString icon,
set the text field to “Hello World”.
Save the project and click the “Compile to chip” button in the task bar.
The project compilation window will run followed by a console (Putty) window whilst the
program runs on the Raspberry Pi target, and “Hello World” should appear on the display.
(Note: Ensure that the BL0114 “LCD” switch is set to ON)
Running programs from the Flowcode IDE
Flowcode uses secure shell to transfer and run user applications, so whilst running you will
see the shell console window on the host PC. Note that in the case of programs with a
continuous loop this window will remain continuously present on the host PC.
Pressing CTRL and C in the window will abort the running program on the Raspberry Pi and
exit the console window.
The Flowcode DebugPrint component can be used to output text to the console window for
debugging or other purposes.
The shell console window runs concurrently with Flowcode such that ICD (In Circuit
Debugging) can be done with the use of the Flowcode Ghost features of the Matrix E-blocks
2 Raspberry Pi upstream board or Flowkit v2.
Once you have used Flowcode to create, compile and transfer your program to the
Raspberry PI, it will exist in the home directory of the selected user e.g. /home/pi
From there the application can be run via a serial console such as Putty or virtual desktop
such as VNC or RDP. VNC and SSH for Putty are enabled via the Raspberry Pi “Interface
Configuration” dialog.
Your application can also be configured to run from start-up of the Raspberry Pi by adding a
line to the /etc/rc.local file, but before the exit 0.
Editing this file must be done with root privileges, e.g. sudo nano /etc/rc.local
/home/pi/MyFlowcodeProject &
exit 0
Hardware peripherals on the Raspberry Pi are limited to UART, SPI, I2C and PWM.
To use these peripherals with Flowcode they must be first be enabled via the Raspberry Pi
“Interface Configuration” dialog. There is no direct support for analogue or interrupts.
Analogue inputs and outputs would be implemented via external devices.
Also note that (at the date of this document) PWM requires programs to be run with root
privileges, for which Flowcode provides the option to run programs as sudo.
Flowcode provides software versions of SPI and I2C such that devices using these protocols
can be connected to any free GPIO pins. Due to the RTOS operation of Raspberry Pi, the bit
rate of these can depend upon other running processes. The same is the case for delays,
these can vary, the relative deviation being greater for shorter delays.