Matrix Logo Excellence in Education Logo Privacy and Cookie policy
Please Login or Register

What is Ghost?

Ghost is a new technology which, when combined with Flowcode, provides a revolutionary way of debugging electronic systems.

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. We call this ‘In-Circuit-Test’. You can run, pause, and step through, your program and view Ghost data at the same time and view variables, registers and other memory locations. We call this ‘In-Circuit-Debug’

When this data is combined with the PC-side processing capabilities of Flowcode it provides a very powerful debugging and learning tool. As an example of this the 5 steps below show how ICT works to collect a stream of GPS digital data gathered from the E-blocks system and processed into layers of meaningful information to help the design process.

This saves huge amounts of development time - whether you are working at a pin level and getting your first program to work, or whether you are an advanced user wanting to perform a sanity check to make sure communications baud rates are set at the correct speed.

Both analogue and digital data is gathered through Ghost ICT and displayed on the Flowcode Softscope. For communications busses decoding overlays for UART, SPI, and I2C are available. Ghost data can also be passed to simulation/SCADA components in Flowcode to provide Human Machine Interface style debug features.

Flowcode screenshot of Ghost and Eblocks 2

Flowcode screen showing real time digital and analogue in circuit test (ICT) data being shown via the data recorder and oscilloscope windows. The data recorder showing data over a period of time and the oscilloscope showing repeating waveforms using edge triggering.

How does Ghost work?

Ghost is a unique piece of technology, the entire system works in real time as ghost monitors all the I/O on the target chip and streams that data directly into Flowcode via USB, below is a diagram explaining how the system works.

Diagram of how ghost works first image
Diagram of how ghost works second image
Diagram of how ghost works third image
Diagram of how ghost works fourth image
Diagram of how ghost work fifth images

For a much more detailed description of how ghost works, please see this Blog article by the creator of Ghost, Ben Rowland: Ghost Blog Post

How In-Circuit Debugging (ICD) works

How In-Circuit Test (ICT) works

What Hardware can I use with Ghost

EB006 v9 Multiprogrammer Board

To start using Ghost you will need the brand new EB006 version 9 board from Matrix. This board contains the Ghost chip which will allow you to both program your devices and monitor their I/O using the Ghost technology.

You can purchase the EB006 version 9 board from here on the Matrix website:

Find out more about the EB006v9

EB006 PIC multiprogrammer

BL0080 PIC Multiprogrammer board

As part of the new Eblocks 2 range, the BL0080 will allow you to use Ghost technology. This board programs 8-bit PIC microcontrollers by connecting to a PC and programming via USB to provide a combined powerful microcontroller and debugging platform.

You can purchase the BL0080 board from here on the Matrix website:

Find out more about the BL0080

BL0080 PIC multiprogrammer

BL0055 Arduino Shield

Connect your Arduino device to the BL0055 Arduino shield to use the Arduino I/O with Eblocks 2. The device connects to a PC via USB, allowing users to program the device and debug via Ghost.

You can purchase the BL0055 Arduino Shield board from here on the Matrix website:

Find out more about the BL0055

BL0055 Arduino Shield

Try Ghost out yourself

Below is a demonstration of Ghost in action, you can try this out with your very own Ghost board when you have it.

Hardware Setup A Hardware Setup B
BL0011 or BL0080 with 16F18877 EB006 v9 with 16F1937
PORTA - BL0114 Combo Board PORTA - EB083 Combo Board
PORTB - BL0114 Combo Board PORTB - EB083 Combo Board
  Wire from EB006 +V to EB083 +V


  • Load into Flowcode the project file GhostDemo.fcfx
  • Click the Ghost ICD button to switch on hardware execution control– the simulation icons turn green
  • Click the Compile to Chip button.
  • Once the program has been loaded onto the chip open up the scope and console windows.

The Demo:

  • Clicking the play button in Flowcode should start the hardware running.
  • Clicking the pause button in Flowcode should pause the hardware.
  • The simulation Debugger window can be used to read and write variable values
  • Setting breakpoints in the program will allow the hardware to automatically stop on icons
  • Click the Ghost ICT button to switch on the port monitoring, this can be used with or without ICD mode
  • The PORTB LEDs should show a count pattern and this should also appear on the scope window.
  • The analogue sensors on the Combo board should show their readings on the scope window.
  • Click the stop button to stop the hardware and reset back to the start of the program.

../ Chinese German Spanish French Greek Italian Dutch Russian Google translations