<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.flowcode.co.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MartinW</id>
	<title>Flowcode Help - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.flowcode.co.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MartinW"/>
	<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Special:Contributions/MartinW"/>
	<updated>2026-05-25T03:37:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42144</id>
		<title>Software Assurance</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42144"/>
		<updated>2026-05-07T14:24:52Z</updated>

		<summary type="html">&lt;p&gt;MartinW: Replaced content with &amp;quot;''&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;TBA&amp;lt;/span&amp;gt;''&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;TBA&amp;lt;/span&amp;gt;''&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42143</id>
		<title>Version Updates</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42143"/>
		<updated>2026-05-06T14:30:19Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Flowcode 11==&lt;br /&gt;
&lt;br /&gt;
=====Licensing changes=====&lt;br /&gt;
&lt;br /&gt;
Licence model has been changed to [[Software_Assurance|Software Assurance]]&lt;br /&gt;
&lt;br /&gt;
=====Graphical Display Design Tools=====&lt;br /&gt;
New for version 11 is a full library of components for driving touch screen graphical displays: display drivers for the most popular touch screens, graphics widgets, graph widgets, touch screen components, WYSIWYG graphical display designer and menu control subroutines. These allow you to design touch screen graphical displays based on any 8, 16, or 32 bit microcontroller.&lt;br /&gt;
&lt;br /&gt;
=====Web Mirror=====&lt;br /&gt;
The Web Mirror features allows you to mirror the functionality of you touch screen system on any browser anywhere in the world. This is only available on the E-Blocks 3 hardware for now. The great benefit is that you can use your mobile phone to control your electronic projects.&lt;br /&gt;
&lt;br /&gt;
No coding is needed. It's just a couple of settings on the Graphical display component. Flowcode takes care of all the details.&lt;br /&gt;
&lt;br /&gt;
=====New Project Wizard and Auto-detect=====&lt;br /&gt;
Getting started is so hard. So many options, choices, settings in our beautiful complex world. The [[Creating_Project|new project wizard]] provides a menu system that makes this easier for all users showing options and guiding users through choices.&lt;br /&gt;
&lt;br /&gt;
If you have E-Blocks 3 hardware then it is even easier: Flowcode sees what upstream and downstream boards you have connected and sets up the program for you.&lt;br /&gt;
&lt;br /&gt;
=====Serial Debugging on Hardware=====&lt;br /&gt;
Serial debugging allows you to pause your program as it runs in hardware and see the status of variables in your project. You can set breakpoints in your code and change the values of variables while program execution is paused.&lt;br /&gt;
&lt;br /&gt;
Serial debugging was only available on Matrix hardware in V10. In V11, Serial debugging now works on third party hardware that has a serial COM port available via USB. This includes many Arduino, ESP32 and PIC boards.&lt;br /&gt;
&lt;br /&gt;
=====E-Blocks 3 and Auto-id=====&lt;br /&gt;
The goal is simple: create the best environment for developing electronic projects. Its hard to separate the hardware from the software sometimes. The combination of Flowcode and E-Blocks 3 provides an amazing development platform for both educators and industrial engineers.&lt;br /&gt;
&lt;br /&gt;
Each E-blocks downstream board has a small microcontroller on it. These communicate to the upstream board to inform Flowcode what hardware is connected. This allows Flowcode to put the appropriate components on the 2D panel with all the right settings, making project setup much easier!&lt;br /&gt;
&lt;br /&gt;
=====New Microcontrollers=====&lt;br /&gt;
The world does not stand still. Manufacturers are constantly adding new microcontrollers with more features, smaller silicon areas, faster clock rates and so on.&lt;br /&gt;
&lt;br /&gt;
We constantly add new microcontrollers to the chip lists. A lot of work has been done recently to add the Microchip PIC8 Q range.&lt;br /&gt;
&lt;br /&gt;
Flowcode is now compatible with 1,789 microcontrollers.&lt;br /&gt;
&lt;br /&gt;
=====2D Panel Updates=====&lt;br /&gt;
The 2D panel has been upgraded so that it is now possible to zoom in and out on all component views.&lt;br /&gt;
&lt;br /&gt;
A new rich text components adds formatted text to components and panels, and all panel objects now can be anchored to the panel sides or even set to display completely in the panel (e.g. for showing charts in a separate window).&lt;br /&gt;
&lt;br /&gt;
New features include:&lt;br /&gt;
&lt;br /&gt;
*[[2d_Panels#Other_features_of_2D_panels|2D Panel zoom]]&lt;br /&gt;
*[[Component:_ID_component:GdiRichText|Richtext primitive]]&lt;br /&gt;
*Component anchoring&lt;br /&gt;
*Fill panel window&lt;br /&gt;
&lt;br /&gt;
=====New Coding Features=====&lt;br /&gt;
A variety of new features have been added to make coding in Flowcode v11 even simpler than before.&lt;br /&gt;
&lt;br /&gt;
Direct string comparisons can now be made in decision icons, the loop command has a &amp;quot;loop forever&amp;quot; option and several new operators (e.g. increment/decrement and assignment) have been added to make Flowcode calculations more representative of C code.&lt;br /&gt;
&lt;br /&gt;
*Direct string comparisons&lt;br /&gt;
*[[Loop_Icon_Properties|Loop forever]]&lt;br /&gt;
*Increment and decrement operators&lt;br /&gt;
*Assignment operators (e.g. myval += 10)&lt;br /&gt;
&lt;br /&gt;
=====Other improvements=====&lt;br /&gt;
*Dynamic menus and web-based windows added&lt;br /&gt;
*Anchors and 'fit component' options for panel objects&lt;br /&gt;
*Group icon contents can be viewed without needing to ungroup&lt;br /&gt;
*User is now warned when openign a project that is already open&lt;br /&gt;
*Flowcode now has separate icons for Embedded, Web Developer and PC Developer project files&lt;br /&gt;
*Macros can now be shown as a different graphical/text view direct from the macro tab&lt;br /&gt;
*Library version log file shows which versions of library files are used in compiled project&lt;br /&gt;
*Colour options available on macro descriptions&lt;br /&gt;
*Position anchors for components&lt;br /&gt;
*New richtext primitive for component panels&lt;br /&gt;
*View group icon contents&lt;br /&gt;
*Access variables in simulated component code&lt;br /&gt;
*Direct access to variable manager&lt;br /&gt;
*Warn when opening a project that is already open&lt;br /&gt;
*New file extensions for Flowcode project types&lt;br /&gt;
*Change macro view types on the fly&lt;br /&gt;
*Advanced component profiling and debugging&lt;br /&gt;
*Clear All Breakpoints no longer ignores the loop command&lt;br /&gt;
*Digital i/o panel now updated correctly when PORT property change iterates through subcomponents&lt;br /&gt;
*Digital i/o panel now updated correctly when pane is first opened&lt;br /&gt;
*Caption bar now shows project type&lt;br /&gt;
*Dropping icons onto overlapped macro views correctly drops onto topmost window&lt;br /&gt;
*Non-flowchart macros can now be exported as image&lt;br /&gt;
*New state diagram macro menu item added&lt;br /&gt;
*Web Developer projects do not show state diagram icons&lt;br /&gt;
*List Occurrences check is now case-insensitive&lt;br /&gt;
*Improvements to dark colour scheme&lt;br /&gt;
*Added ability to show and hide component macros via API command&lt;br /&gt;
*Fixed read-only nature of component properties&lt;br /&gt;
*Fixed the sim control speed slider&lt;br /&gt;
*Fixed 'corrupt macro' error message text that got lost during an exception&lt;br /&gt;
*Mouse events now triggered at the dead area at the top of Project Explorer&lt;br /&gt;
*Component major/minor versions now 0-999 (was 0-100)&lt;br /&gt;
*Hidden option to show '!=' as '&amp;lt;&amp;gt;'&lt;br /&gt;
*Fixed MatrixLight/MatrixDark inbuilt colour schemes for charts&lt;br /&gt;
*2d panels now hide toolbar when simulating&lt;br /&gt;
*FCDChange event is fired when chip stays the same but clock speed changes&lt;br /&gt;
*Fixed longstanding bug with broadcast message parameter corruption&lt;br /&gt;
*Moved components on 2d panel now redraw their vacated areas too&lt;br /&gt;
*Subcomponents of a group now get unique names when copying/pasting&lt;br /&gt;
*Added GetActual2dPosition/GetActual2dPosition API commands&lt;br /&gt;
*Context menu for component panels stops renames, deletion, etc, when simulating&lt;br /&gt;
*Wndhost comps (button, combobox and textbox) now update when resized on the panel&lt;br /&gt;
*Text primitives now redraw their actual text area too&lt;br /&gt;
*Improved visual styling for dark mode, and fixed styling issues with combo boxes, etc.&lt;br /&gt;
*Removed redundant colour and code-customisation information from saved project files&lt;br /&gt;
*Fixed SIGNED/UNSIGNED casting&lt;br /&gt;
*Fixed simulation of Decision tail icon&lt;br /&gt;
*Search now finds ports/pins&lt;br /&gt;
*Added logical AND, OR and NOT (&amp;amp;&amp;amp;, ||, !) to maths functions list&lt;br /&gt;
*Improved tooltip help for maths and string functions&lt;br /&gt;
*Function lists now categorised&lt;br /&gt;
*Call stack view width can be altered using mouse wheel in Simulation Debugger window&lt;br /&gt;
*Component panel zoom level now shown on status bar&lt;br /&gt;
*Improved component toolbar display on non-100% DPI systems&lt;br /&gt;
*New variables are given default initialisers&lt;br /&gt;
*Macro parameters can have default values for parameters&lt;br /&gt;
*Macro tabs have 'close' and 'close other' menu item&lt;br /&gt;
*Added CallMacro in-built functions&lt;br /&gt;
*Added in-built functions to manipulate text-based property lists&lt;br /&gt;
*Fixed flicker in IOC chip view in interrupt prpoperties dialog&lt;br /&gt;
*Components and macros now available to add to expressions in icon dialogs&lt;br /&gt;
*List properties can now be auto-sorted&lt;br /&gt;
*Flowcode now uses a 'ping' to ensure web-based dialogs retain current information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://flowcode.co.uk/forums/viewtopic.php?p=23397#p23397 Update v11.0.1.14]&lt;br /&gt;
&lt;br /&gt;
==Flowcode 10==&lt;br /&gt;
&lt;br /&gt;
=====Licensing changes=====&lt;br /&gt;
&lt;br /&gt;
*Flowcode V10 is now free for makers and hobbyists with full functionality for a limited range of devices which include; '''[[Supported_Chips#Free_Targets|Arduino Uno &amp;amp; Nano, RPI etc. ]]'''&lt;br /&gt;
&lt;br /&gt;
=====Components=====&lt;br /&gt;
*Can now view component code&lt;br /&gt;
&lt;br /&gt;
*'''[[Components|Components]]''' are now free and open-sourced so you can use existing components and tailor them to your own requirements.&lt;br /&gt;
&lt;br /&gt;
*Dedicated 2D primitive components&lt;br /&gt;
&lt;br /&gt;
=====2D panels=====&lt;br /&gt;
New [[2d_Panels|2D panels]] provide clearer graphics, customisation of all panels with your own drawings, notes and much more printer friendly options available.&lt;br /&gt;
&lt;br /&gt;
Add an unlimited number of 2D panels into your project.&lt;br /&gt;
&lt;br /&gt;
Unlocks a host of new 2D panel only panel options such as graphing tools.&lt;br /&gt;
&lt;br /&gt;
====Simulation====&lt;br /&gt;
&lt;br /&gt;
*Improved ''[[Variable_Types|variable values]]'' display on simulation – view and edit ''[[Variable_Types|variable values]]'' during simulation and '''[[Ghost_Technology|ICD]]&lt;br /&gt;
&lt;br /&gt;
*Interrupt on Change diagram visual improvements&lt;br /&gt;
&lt;br /&gt;
*View and step through the simulation of component code (Pro Licence only)&lt;br /&gt;
&lt;br /&gt;
*Ghost support for EB0058 ESP board&lt;br /&gt;
&lt;br /&gt;
*Icon lists now show disabled icons in a muted colour&lt;br /&gt;
&lt;br /&gt;
*Show variables on ''[[Oscilloscope|oscilloscope]]'' and ''[[Using_the_Data_Recorder|data recorder]]''&lt;br /&gt;
&lt;br /&gt;
*The text colour of flowchart icons can be altered&lt;br /&gt;
&lt;br /&gt;
=====Application=====&lt;br /&gt;
*Create separate .c and .h files&lt;br /&gt;
&lt;br /&gt;
*Show help/wiki in separate browser&lt;br /&gt;
&lt;br /&gt;
=====UI Trees=====&lt;br /&gt;
&lt;br /&gt;
*New ''UI Trees'' tab within ''[[Global_Settings|Global Settings]]'' for customising ''[[Project Explorer|Project Explorer]]'' and Icon Lists&lt;br /&gt;
&lt;br /&gt;
=====User Tools=====&lt;br /&gt;
&lt;br /&gt;
*New ''User Tools'' tab within ''[[Global_Settings|Global Settings]]'' for  setting up User Tools to be used within the ''Build ribbon''&lt;br /&gt;
&lt;br /&gt;
=====I/O ports=====&lt;br /&gt;
&lt;br /&gt;
*Connected components lists on analogue/digital windows&lt;br /&gt;
&lt;br /&gt;
*When using Calculation icons (etc), pins can be dragged to the expression&lt;br /&gt;
=====Variables=====&lt;br /&gt;
*Combines global and local ''[[Creating_Variables|variables]]'' (which are also available separately)&lt;br /&gt;
&lt;br /&gt;
*Show''[[Using_the_Project_Explorer| values]]'' during ''[[Starting_Flowchart_Simulation|simulation]]''&lt;br /&gt;
&lt;br /&gt;
*Float ''[[Variable_Types|variables]]'' are now shown to a user-defined precision (defaults to “%g”)&lt;br /&gt;
&lt;br /&gt;
=====Built-in Functions=====&lt;br /&gt;
&lt;br /&gt;
*Single-dimension arrays show individual elements in Watch and Project Explorer lists&lt;br /&gt;
&lt;br /&gt;
*There are some new built-in functions available&lt;br /&gt;
&lt;br /&gt;
''[[API_Reference|New API calls]]'' : GetPanel and GetPanelName, SetSimSpeed and GetBackgroundColour&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[String_Manipulation_Functions|New String Functions routines]]'' : Contains$, SplitString$, ExplodeToIntArray$, ImplodeFromIntArray$, ExplodeToFloatArray$, ImplodeFromFloatArray$, Int2FormattedString$, Float2FormattedString$, InsertString$, RemoveFromString$, SearchAndReplace$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Mathematical_Functions|New Mathematical  Functions]]'' : cosh, sinh, tanh, arraydims, arraysize, GetOriginalScale&lt;br /&gt;
&lt;br /&gt;
=====Events=====&lt;br /&gt;
*There are some new events available&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous====&lt;br /&gt;
&lt;br /&gt;
*TODO list - auto generated icon list based on icons containing TODO in the comment. For example. TODO this icon needs work or TODO this will need changing.&lt;br /&gt;
&lt;br /&gt;
*''[[Auto_Documentation|Project Report improvements]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 9==&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 9. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
===App Developer===&lt;br /&gt;
* '''[[App_Developer|Flowcode App Developer]]'''&lt;br /&gt;
&lt;br /&gt;
A completely new piece of software - based on Flowcode - that allows you to create fantastic distributed control and data gathering systems with intuitive Human Machine interfaces for Windows PCs and tablets.  &lt;br /&gt;
&lt;br /&gt;
This comes with a suite of Application Programming Interfaces for low cost hardware including Arduino, Raspberry Pi, ESP32 and PIC which allows you to create powerful smart embedded + PC devices with Windows HMI displays that can be freely distributed.&lt;br /&gt;
&lt;br /&gt;
===State Diagrams===&lt;br /&gt;
* '''[[State_diagrams|State diagrams]]'''&lt;br /&gt;
&lt;br /&gt;
New graphical programming icons allows you to make use of this powerful programming paradigm. &lt;br /&gt;
&lt;br /&gt;
Create new state machine projects or enhance your existing ones and mix and match with flow chart icons, C code, blocks etc. &lt;br /&gt;
&lt;br /&gt;
===New ESP32 Toolchain===&lt;br /&gt;
* '''[[Compiler_Toolchains#ESP32_Toolchain|ESP32 toolchain]]''' &lt;br /&gt;
&lt;br /&gt;
Flowcode now supports a range of new devices for this powerful 80MHz board level device with integrated TCP/IP stack, and Wi-fi. &lt;br /&gt;
&lt;br /&gt;
This allows you to create great web-interconnected projects with this incredibly low cost hardware platform from Espressif semiconductors in China.&lt;br /&gt;
&lt;br /&gt;
===Data flow programming===&lt;br /&gt;
* '''[[DSP|Data flow programming]]'''&lt;br /&gt;
Now you can use data flow programming icons in your projects. This is a really great programming technique for projects including communications systems and Digital Signal Processing.&lt;br /&gt;
  &lt;br /&gt;
===New Components===&lt;br /&gt;
* '''[[Components|New components]]'''&lt;br /&gt;
New components include new DSP components, new Mechatronics parts, Easy Internet Of Things components, more sensors, and new test injectors.&lt;br /&gt;
We have updated our forums and now have sections to post your projects for both App Developer and Embedded. There are already a few posted. Why not come and replicate these projects to learn some interesting new things?&lt;br /&gt;
&lt;br /&gt;
===New Website===&lt;br /&gt;
* '''[https://flowcode.co.uk/ New website]'''&lt;br /&gt;
&lt;br /&gt;
Flowcode now has its own web site.&lt;br /&gt;
Here, you can find more information on Flowcode Embedded, Flowcode App Developer, a new Wiki, and a host of new courses on developing advanced communications systems from Mobile phone technology to CAN bus technology in automotive.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 8==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Features Added===&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 8. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Folding|Code Folding]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Icon_Grouping|Icon Grouping]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_Simulation|Simulating Custom C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_to_Flowchart_Conversion|Custom C Code to Flowchart Conversion]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Paradigms|Coding Paradigms - Flowchart, Blocks, Pseudocode, C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Tab Tear Off - Multi Monitor Support]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Dynamic_Updates|Dynamic Updates]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Raspberry_Pi_Chip_Pack|Raspberry Pi Chip Pack]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[E-blocks2_Auto_ID|E-blocks2 Auto ID]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Matrix_SCADA | Matrix SCADA]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Component changes and additions===&lt;br /&gt;
&lt;br /&gt;
CAL components such as ADC, I2C, PWM, SPI and UART are now free to allow for more user-based component creation and library generation. &lt;br /&gt;
&lt;br /&gt;
High-level components created by Matrix are still licensed under the various component feature packs.&lt;br /&gt;
&lt;br /&gt;
We also have made a large selection of component, CAL and FCD updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====New components====&lt;br /&gt;
&lt;br /&gt;
Some of the new components include:&lt;br /&gt;
&lt;br /&gt;
*FAT Based GLCD Bitmap Drawer&lt;br /&gt;
*New sensor components&lt;br /&gt;
*Network abstraction component for TCP/IP and WIFI modules&lt;br /&gt;
*E-block specific categories&lt;br /&gt;
*Scenario simulation components and wiki based curriculum&lt;br /&gt;
*Graphical LCD Graph drawer&lt;br /&gt;
*Arduino style serial terminal - via the console&lt;br /&gt;
*Raspberry Pi specific - Console Text Generation, TCP/IP&lt;br /&gt;
*Raspberry Pi HDMI gLCD&lt;br /&gt;
*Modbus TCP - Master and Slave&lt;br /&gt;
*DAC MCP48x1&lt;br /&gt;
*HTS221&lt;br /&gt;
*ESP12S&lt;br /&gt;
*PCF8575&lt;br /&gt;
*SHT31 Humidity Sensor&lt;br /&gt;
*WAV Playback and Record&lt;br /&gt;
*RealSpeak&lt;br /&gt;
*Bluetooth RN4677&lt;br /&gt;
*Various new Grove sensors&lt;br /&gt;
*HBridge CAL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Component improvements====&lt;br /&gt;
&lt;br /&gt;
*CAL components are more usable and stand alone, injector, scope and console functionality is now built in making it much easier to build into your own components&lt;br /&gt;
*Bitmap Drawer component - more bitmap file formats (Mono, 16-Colour, 256-Colour, 24-bit) and up to ten bitmaps per component&lt;br /&gt;
*Servo motor 16-bit mode&lt;br /&gt;
*PWM Frequency based Period and Prescaler calculator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 7==&lt;br /&gt;
&lt;br /&gt;
===Performance improvements===&lt;br /&gt;
* Code Profiling - See which icons are 'hit' or 'missed', and the frequency of execution, to determine bugs/ redundancy in your code&lt;br /&gt;
&lt;br /&gt;
* New 2 channel integrated oscilloscope, with triggering&lt;br /&gt;
&lt;br /&gt;
* New template files for Microchip devices - get you up and running with your projects faster &lt;br /&gt;
&lt;br /&gt;
===Visual enhancments===&lt;br /&gt;
* New modern UI with a choice of dark/ light themes&lt;br /&gt;
&lt;br /&gt;
* Ability to colour code individual flowchart icons for ease of viewing, or select from pre-made colour schemes&lt;br /&gt;
&lt;br /&gt;
* Create, save and load colour schemes for icons&lt;br /&gt;
&lt;br /&gt;
* Overhaul of user interface&lt;br /&gt;
&lt;br /&gt;
* 3D engine graphical improvements &lt;br /&gt;
&lt;br /&gt;
===New Toolchain and Compilers===&lt;br /&gt;
* Support for 32bit PIC microcontrollers&lt;br /&gt;
&lt;br /&gt;
* Support for Microchip XC8, XC16 and XC32 compilers. &lt;br /&gt;
&lt;br /&gt;
* Significantly faster compilation of 8bit Microchip devices (approximately 10 times faster compilation than previous versions)&lt;br /&gt;
&lt;br /&gt;
===Licensing structure===&lt;br /&gt;
* Flexible licensing structure - build a bespoke license exactly to your requirements&lt;br /&gt;
&lt;br /&gt;
* License upgradable at any point to add new features&lt;br /&gt;
&lt;br /&gt;
* Free version available - for a limited number of microcontrollers and feature set&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support Improvements===&lt;br /&gt;
* Users can now import 3D assemblies, rather than individual parts only. &lt;br /&gt;
&lt;br /&gt;
* Support for industry standard file types; STEP and IGES&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our EB006 multiprogrammer, EB091 or Flowkit v2 to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O using Ghost Technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 6==&lt;br /&gt;
&lt;br /&gt;
===Component Creator===&lt;br /&gt;
* Now you can design your own electronic components and add them to your component library. You can use simulation API calls to define the electrical behaviour and mechanical behaviour in simulation.&lt;br /&gt;
&lt;br /&gt;
* The component library has been expanded considerably to include many new electronic components and simulation components. Components can be designed and shared on our website.&lt;br /&gt;
&lt;br /&gt;
* In addition to PCB style components you now have access to panel mounted switches, meters and displays for industrial control.&lt;br /&gt;
&lt;br /&gt;
* Customise or create Dashboard components like graphs, dials and meters to allow you to monitor how your system is functioning in simulation and In-Circuit Test.&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
* Improvements in simulation speed means that your simulation works close to real time which allows you to verify your design ‘live’.&lt;br /&gt;
&lt;br /&gt;
* The powerful API allows control of simulation events and components providing a wide range of PC-side functions.&lt;br /&gt;
&lt;br /&gt;
* Human Machine Interface components show your system parameters during simulation and In-Circuit-Test using intuitive displays including meters, graphs, oscillograms and tables.&lt;br /&gt;
&lt;br /&gt;
* Use text based consoles to see data passing around your system: perfect for designing systems with digital communications.&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support===&lt;br /&gt;
* Import 3D models and characterise the movement and simulation using API.&lt;br /&gt;
&lt;br /&gt;
* Use the system panel to design your own simple 3D model. View your design from different angles whilst it simulates.&lt;br /&gt;
&lt;br /&gt;
* Create low cost parts with laser cutters and 3D printers and see the parts working with your electronics on-screen.&lt;br /&gt;
&lt;br /&gt;
* Create simulations of your model which move in 3D space under electrical stimulus from a microcontroller and other components in your system. Use 2D dashboard controls to monitor your system in real time.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our new EB006 multiprogrammer to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O.&lt;br /&gt;
&lt;br /&gt;
* Monitor how your system is functioning in simulation and In-Circuit-Test. Use new components like graphs, meters, consoles and scrolling text boxes to verify your design.&lt;br /&gt;
&lt;br /&gt;
* Use Softscope and Consoles to see data in waveform or textual formats. Use the API to translate incoming data to hex or ASCII equivalent. Link Softscope and consoles to third party hardware using DLLs to create a full SCADA system.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42142</id>
		<title>Software Assurance</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42142"/>
		<updated>2026-05-06T14:23:04Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just like previous versions of Flowcode, when you purchase Flowcode you receive a perpetual licence to use it forever. &lt;br /&gt;
&lt;br /&gt;
During a major release (e.g. v9 or v10) we provide free updates for the software which often includes new features, new components, bug fixes, etc. &lt;br /&gt;
&lt;br /&gt;
When a new major version is released, you are charged to upgrade to the new version - often with a discount (e.g. 40% when coming from v10 -&amp;gt; v11).&lt;br /&gt;
&lt;br /&gt;
Our new Software Assurance scheme formalises this process to some extent. &lt;br /&gt;
&lt;br /&gt;
When you purchase v11, you will receive 12 months of Software Assurance, which means that any updates (large and small) are free for you during this period. &lt;br /&gt;
&lt;br /&gt;
Towards the end of this 12 month period, you will have the option to extend this Software Assurance for a further 12 months.&lt;br /&gt;
&lt;br /&gt;
Our development team have been very keen to implement a scheme like this because we can now release new features and improvements to Flowcode quicker without holding them back for a new major release. &lt;br /&gt;
&lt;br /&gt;
For example, the new 2d panel zoom feature was developed well over a year ago, but we chose to keep that feature for v11.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====More details=====&lt;br /&gt;
&lt;br /&gt;
Current delivery model and its problems&lt;br /&gt;
&lt;br /&gt;
We release a major version of Flowcode every few years. &lt;br /&gt;
&lt;br /&gt;
This new version needs new features to entice users to upgrade to the new version. &lt;br /&gt;
&lt;br /&gt;
Improvements and fixes often need to wait for this new major release - sometimes more than 18 months. &lt;br /&gt;
&lt;br /&gt;
A better experience for users would be to have continuous improvement of Flowcode. &lt;br /&gt;
&lt;br /&gt;
This would also have the benefits for Matrix of a more relaxed release process and a more even and predictable revenue stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====How does it work?=====&lt;br /&gt;
&lt;br /&gt;
Just like the current licensing system, users will purchase the new version of Flowcode (again, with a discount if coming from v9 or v10). &lt;br /&gt;
&lt;br /&gt;
This provides a perpetual licence for that particular version of Flowcode, along with a Software Assurance licence for any upgrades to Flowcode for the following 12 months. &lt;br /&gt;
&lt;br /&gt;
After 12 months (and every subsequent year), users will be asked to renew their licence by paying an ongoing software assurance fee (35%). This provides access to free upgrades for the following 12 months.&lt;br /&gt;
&lt;br /&gt;
If a user drops off this Software Assurance scheme, they will still be allowed to use Flowcode in perpetuity. However, they will no longer receive updates to the core package and will also receive limited updates to components, etc.&lt;br /&gt;
&lt;br /&gt;
If they want to rejoin the Software Assurance scheme, they will need to repurchase a licence for Flowcode.&lt;br /&gt;
&lt;br /&gt;
Any chip-pack purchased has a perpetual licence and the devices available to you now will continue to be available even without paying the annual Software Assurance payment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====What are the benefits?=====&lt;br /&gt;
&lt;br /&gt;
For a loyal user who consistently purchases new versions, the overall cost difference is not too different. &lt;br /&gt;
&lt;br /&gt;
Bug fixes and quality improvements should be released quicker (rather than waiting for major new version).&lt;br /&gt;
&lt;br /&gt;
For the user who does not upgrade there is no real change: they get to keep the software as it was when the purchase was made with the updates for the 12 months after purchase date.&lt;br /&gt;
&lt;br /&gt;
Overall, the development of Flowcode can be better geared towards improving existing aspects of Flowcode rather than developing major new features.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42141</id>
		<title>Software Assurance</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Software_Assurance&amp;diff=42141"/>
		<updated>2026-05-06T14:20:10Z</updated>

		<summary type="html">&lt;p&gt;MartinW: Created page with &amp;quot;Just like previous versions of Flowcode, when you purchase Flowcode you receive a perpetual licence to use it forever.   During a major release (e.g. v9 or v10) we provide fre...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just like previous versions of Flowcode, when you purchase Flowcode you receive a perpetual licence to use it forever. &lt;br /&gt;
&lt;br /&gt;
During a major release (e.g. v9 or v10) we provide free updates for the software which often includes new features, new components, bug fixes, etc. &lt;br /&gt;
&lt;br /&gt;
When a new major version is released, you are charged to upgrade to the new version - often with a discount (e.g. 40% when coming from v10 -&amp;gt; v11).&lt;br /&gt;
&lt;br /&gt;
Our new Software Assurance scheme formalises this process to some extent. &lt;br /&gt;
&lt;br /&gt;
When you purchase v11, you will receive 12 months of Software Assurance, which means that any updates (large and small) are free for you during this period. &lt;br /&gt;
&lt;br /&gt;
Towards the end of this 12 month period, you will have the option to extend this Software Assurance for a further 12 months.&lt;br /&gt;
&lt;br /&gt;
Our development team have been very keen to implement a scheme like this because we can now release new features and improvements to Flowcode quicker without holding them back for a new major release. &lt;br /&gt;
&lt;br /&gt;
For example, the new 2d panel zoom feature was developed well over a year ago, but we chose to keep that feature for v11.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some more details:&lt;br /&gt;
&lt;br /&gt;
Current delivery model and its problems&lt;br /&gt;
&lt;br /&gt;
We release a major version of Flowcode every few years. &lt;br /&gt;
&lt;br /&gt;
This new version needs new features to entice users to upgrade to the new version. &lt;br /&gt;
&lt;br /&gt;
Improvements and fixes often need to wait for this new major release - sometimes more than 18 months. &lt;br /&gt;
&lt;br /&gt;
A better experience for users would be to have continuous improvement of Flowcode. &lt;br /&gt;
&lt;br /&gt;
This would also have the benefits for Matrix of a more relaxed release process and a more even and predictable revenue stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Software Assurance - how does it work?&lt;br /&gt;
&lt;br /&gt;
Just like the current licensing system, users will purchase the new version of Flowcode (again, with a discount if coming from v9 or v10). &lt;br /&gt;
&lt;br /&gt;
This provides a perpetual licence for that particular version of Flowcode, along with a Software Assurance licence for any upgrades to Flowcode for the following 12 months. &lt;br /&gt;
&lt;br /&gt;
After 12 months (and every subsequent year), users will be asked to renew their licence by paying an ongoing software assurance fee (35%). This provides access to free upgrades for the following 12 months.&lt;br /&gt;
&lt;br /&gt;
If a user drops off this Software Assurance scheme, they will still be allowed to use Flowcode in perpetuity. However, they will no longer receive updates to the core package and will also receive limited updates to components, etc.&lt;br /&gt;
&lt;br /&gt;
If they want to rejoin the Software Assurance scheme, they will need to repurchase a licence for Flowcode.&lt;br /&gt;
&lt;br /&gt;
Any chip-pack purchased has a perpetual licence and the devices available to you now will continue to be available even without paying the annual Software Assurance payment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What are the benefits?&lt;br /&gt;
&lt;br /&gt;
For a loyal user who consistently purchases new versions, the overall cost difference is not too different. &lt;br /&gt;
&lt;br /&gt;
Bug fixes and quality improvements should be released quicker (rather than waiting for major new version).&lt;br /&gt;
&lt;br /&gt;
For the user who does not upgrade there is no real change: they get to keep the software as it was when the purchase was made with the updates for the 12 months after purchase date.&lt;br /&gt;
&lt;br /&gt;
Overall, the development of Flowcode can be better geared towards improving existing aspects of Flowcode rather than developing major new features.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42140</id>
		<title>Version Updates</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42140"/>
		<updated>2026-05-06T14:10:03Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Flowcode 11==&lt;br /&gt;
&lt;br /&gt;
=====Graphical Display Design Tools=====&lt;br /&gt;
New for version 11 is a full library of components for driving touch screen graphical displays: display drivers for the most popular touch screens, graphics widgets, graph widgets, touch screen components, WYSIWYG graphical display designer and menu control subroutines. These allow you to design touch screen graphical displays based on any 8, 16, or 32 bit microcontroller.&lt;br /&gt;
&lt;br /&gt;
=====Web Mirror=====&lt;br /&gt;
The Web Mirror features allows you to mirror the functionality of you touch screen system on any browser anywhere in the world. This is only available on the E-Blocks 3 hardware for now. The great benefit is that you can use your mobile phone to control your electronic projects.&lt;br /&gt;
&lt;br /&gt;
No coding is needed. It's just a couple of settings on the Graphical display component. Flowcode takes care of all the details.&lt;br /&gt;
&lt;br /&gt;
=====New Project Wizard and Auto-detect=====&lt;br /&gt;
Getting started is so hard. So many options, choices, settings in our beautiful complex world. The [[Creating_Project|new project wizard]] provides a menu system that makes this easier for all users showing options and guiding users through choices.&lt;br /&gt;
&lt;br /&gt;
If you have E-Blocks 3 hardware then it is even easier: Flowcode sees what upstream and downstream boards you have connected and sets up the program for you.&lt;br /&gt;
&lt;br /&gt;
=====Serial Debugging on Hardware=====&lt;br /&gt;
Serial debugging allows you to pause your program as it runs in hardware and see the status of variables in your project. You can set breakpoints in your code and change the values of variables while program execution is paused.&lt;br /&gt;
&lt;br /&gt;
Serial debugging was only available on Matrix hardware in V10. In V11, Serial debugging now works on third party hardware that has a serial COM port available via USB. This includes many Arduino, ESP32 and PIC boards.&lt;br /&gt;
&lt;br /&gt;
=====E-Blocks 3 and Auto-id=====&lt;br /&gt;
The goal is simple: create the best environment for developing electronic projects. Its hard to separate the hardware from the software sometimes. The combination of Flowcode and E-Blocks 3 provides an amazing development platform for both educators and industrial engineers.&lt;br /&gt;
&lt;br /&gt;
Each E-blocks downstream board has a small microcontroller on it. These communicate to the upstream board to inform Flowcode what hardware is connected. This allows Flowcode to put the appropriate components on the 2D panel with all the right settings, making project setup much easier!&lt;br /&gt;
&lt;br /&gt;
=====New Microcontrollers=====&lt;br /&gt;
The world does not stand still. Manufacturers are constantly adding new microcontrollers with more features, smaller silicon areas, faster clock rates and so on.&lt;br /&gt;
&lt;br /&gt;
We constantly add new microcontrollers to the chip lists. A lot of work has been done recently to add the Microchip PIC8 Q range.&lt;br /&gt;
&lt;br /&gt;
Flowcode is now compatible with 1,789 microcontrollers.&lt;br /&gt;
&lt;br /&gt;
=====2D Panel Updates=====&lt;br /&gt;
The 2D panel has been upgraded so that it is now possible to zoom in and out on all component views.&lt;br /&gt;
&lt;br /&gt;
A new rich text components adds formatted text to components and panels, and all panel objects now can be anchored to the panel sides or even set to display completely in the panel (e.g. for showing charts in a separate window).&lt;br /&gt;
&lt;br /&gt;
New features include:&lt;br /&gt;
&lt;br /&gt;
*[[2d_Panels#Other_features_of_2D_panels|2D Panel zoom]]&lt;br /&gt;
*[[Component:_ID_component:GdiRichText|Richtext primitive]]&lt;br /&gt;
*Component anchoring&lt;br /&gt;
*Fill panel window&lt;br /&gt;
&lt;br /&gt;
=====New Coding Features=====&lt;br /&gt;
A variety of new features have been added to make coding in Flowcode v11 even simpler than before.&lt;br /&gt;
&lt;br /&gt;
Direct string comparisons can now be made in decision icons, the loop command has a &amp;quot;loop forever&amp;quot; option and several new operators (e.g. increment/decrement and assignment) have been added to make Flowcode calculations more representative of C code.&lt;br /&gt;
&lt;br /&gt;
*Direct string comparisons&lt;br /&gt;
*[[Loop_Icon_Properties|Loop forever]]&lt;br /&gt;
*Increment and decrement operators&lt;br /&gt;
*Assignment operators (e.g. myval += 10)&lt;br /&gt;
&lt;br /&gt;
=====Other improvements=====&lt;br /&gt;
*Dynamic menus and web-based windows added&lt;br /&gt;
*Anchors and 'fit component' options for panel objects&lt;br /&gt;
*Group icon contents can be viewed without needing to ungroup&lt;br /&gt;
*User is now warned when openign a project that is already open&lt;br /&gt;
*Flowcode now has separate icons for Embedded, Web Developer and PC Developer project files&lt;br /&gt;
*Macros can now be shown as a different graphical/text view direct from the macro tab&lt;br /&gt;
*Library version log file shows which versions of library files are used in compiled project&lt;br /&gt;
*Colour options available on macro descriptions&lt;br /&gt;
*Position anchors for components&lt;br /&gt;
*New richtext primitive for component panels&lt;br /&gt;
*View group icon contents&lt;br /&gt;
*Access variables in simulated component code&lt;br /&gt;
*Direct access to variable manager&lt;br /&gt;
*Warn when opening a project that is already open&lt;br /&gt;
*New file extensions for Flowcode project types&lt;br /&gt;
*Change macro view types on the fly&lt;br /&gt;
*Advanced component profiling and debugging&lt;br /&gt;
*Clear All Breakpoints no longer ignores the loop command&lt;br /&gt;
*Digital i/o panel now updated correctly when PORT property change iterates through subcomponents&lt;br /&gt;
*Digital i/o panel now updated correctly when pane is first opened&lt;br /&gt;
*Caption bar now shows project type&lt;br /&gt;
*Dropping icons onto overlapped macro views correctly drops onto topmost window&lt;br /&gt;
*Non-flowchart macros can now be exported as image&lt;br /&gt;
*New state diagram macro menu item added&lt;br /&gt;
*Web Developer projects do not show state diagram icons&lt;br /&gt;
*List Occurrences check is now case-insensitive&lt;br /&gt;
*Improvements to dark colour scheme&lt;br /&gt;
*Added ability to show and hide component macros via API command&lt;br /&gt;
*Fixed read-only nature of component properties&lt;br /&gt;
*Fixed the sim control speed slider&lt;br /&gt;
*Fixed 'corrupt macro' error message text that got lost during an exception&lt;br /&gt;
*Mouse events now triggered at the dead area at the top of Project Explorer&lt;br /&gt;
*Component major/minor versions now 0-999 (was 0-100)&lt;br /&gt;
*Hidden option to show '!=' as '&amp;lt;&amp;gt;'&lt;br /&gt;
*Fixed MatrixLight/MatrixDark inbuilt colour schemes for charts&lt;br /&gt;
*2d panels now hide toolbar when simulating&lt;br /&gt;
*FCDChange event is fired when chip stays the same but clock speed changes&lt;br /&gt;
*Fixed longstanding bug with broadcast message parameter corruption&lt;br /&gt;
*Moved components on 2d panel now redraw their vacated areas too&lt;br /&gt;
*Subcomponents of a group now get unique names when copying/pasting&lt;br /&gt;
*Added GetActual2dPosition/GetActual2dPosition API commands&lt;br /&gt;
*Context menu for component panels stops renames, deletion, etc, when simulating&lt;br /&gt;
*Wndhost comps (button, combobox and textbox) now update when resized on the panel&lt;br /&gt;
*Text primitives now redraw their actual text area too&lt;br /&gt;
*Improved visual styling for dark mode, and fixed styling issues with combo boxes, etc.&lt;br /&gt;
*Removed redundant colour and code-customisation information from saved project files&lt;br /&gt;
*Fixed SIGNED/UNSIGNED casting&lt;br /&gt;
*Fixed simulation of Decision tail icon&lt;br /&gt;
*Search now finds ports/pins&lt;br /&gt;
*Added logical AND, OR and NOT (&amp;amp;&amp;amp;, ||, !) to maths functions list&lt;br /&gt;
*Improved tooltip help for maths and string functions&lt;br /&gt;
*Function lists now categorised&lt;br /&gt;
*Call stack view width can be altered using mouse wheel in Simulation Debugger window&lt;br /&gt;
*Component panel zoom level now shown on status bar&lt;br /&gt;
*Improved component toolbar display on non-100% DPI systems&lt;br /&gt;
*New variables are given default initialisers&lt;br /&gt;
*Macro parameters can have default values for parameters&lt;br /&gt;
*Macro tabs have 'close' and 'close other' menu item&lt;br /&gt;
*Added CallMacro in-built functions&lt;br /&gt;
*Added in-built functions to manipulate text-based property lists&lt;br /&gt;
*Fixed flicker in IOC chip view in interrupt prpoperties dialog&lt;br /&gt;
*Components and macros now available to add to expressions in icon dialogs&lt;br /&gt;
*List properties can now be auto-sorted&lt;br /&gt;
*Flowcode now uses a 'ping' to ensure web-based dialogs retain current information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://flowcode.co.uk/forums/viewtopic.php?p=23397#p23397 Update v11.0.1.14]&lt;br /&gt;
&lt;br /&gt;
==Flowcode 10==&lt;br /&gt;
&lt;br /&gt;
=====Licensing changes=====&lt;br /&gt;
&lt;br /&gt;
*Flowcode V10 is now free for makers and hobbyists with full functionality for a limited range of devices which include; '''[[Supported_Chips#Free_Targets|Arduino Uno &amp;amp; Nano, RPI etc. ]]'''&lt;br /&gt;
&lt;br /&gt;
=====Components=====&lt;br /&gt;
*Can now view component code&lt;br /&gt;
&lt;br /&gt;
*'''[[Components|Components]]''' are now free and open-sourced so you can use existing components and tailor them to your own requirements.&lt;br /&gt;
&lt;br /&gt;
*Dedicated 2D primitive components&lt;br /&gt;
&lt;br /&gt;
=====2D panels=====&lt;br /&gt;
New [[2d_Panels|2D panels]] provide clearer graphics, customisation of all panels with your own drawings, notes and much more printer friendly options available.&lt;br /&gt;
&lt;br /&gt;
Add an unlimited number of 2D panels into your project.&lt;br /&gt;
&lt;br /&gt;
Unlocks a host of new 2D panel only panel options such as graphing tools.&lt;br /&gt;
&lt;br /&gt;
====Simulation====&lt;br /&gt;
&lt;br /&gt;
*Improved ''[[Variable_Types|variable values]]'' display on simulation – view and edit ''[[Variable_Types|variable values]]'' during simulation and '''[[Ghost_Technology|ICD]]&lt;br /&gt;
&lt;br /&gt;
*Interrupt on Change diagram visual improvements&lt;br /&gt;
&lt;br /&gt;
*View and step through the simulation of component code (Pro Licence only)&lt;br /&gt;
&lt;br /&gt;
*Ghost support for EB0058 ESP board&lt;br /&gt;
&lt;br /&gt;
*Icon lists now show disabled icons in a muted colour&lt;br /&gt;
&lt;br /&gt;
*Show variables on ''[[Oscilloscope|oscilloscope]]'' and ''[[Using_the_Data_Recorder|data recorder]]''&lt;br /&gt;
&lt;br /&gt;
*The text colour of flowchart icons can be altered&lt;br /&gt;
&lt;br /&gt;
=====Application=====&lt;br /&gt;
*Create separate .c and .h files&lt;br /&gt;
&lt;br /&gt;
*Show help/wiki in separate browser&lt;br /&gt;
&lt;br /&gt;
=====UI Trees=====&lt;br /&gt;
&lt;br /&gt;
*New ''UI Trees'' tab within ''[[Global_Settings|Global Settings]]'' for customising ''[[Project Explorer|Project Explorer]]'' and Icon Lists&lt;br /&gt;
&lt;br /&gt;
=====User Tools=====&lt;br /&gt;
&lt;br /&gt;
*New ''User Tools'' tab within ''[[Global_Settings|Global Settings]]'' for  setting up User Tools to be used within the ''Build ribbon''&lt;br /&gt;
&lt;br /&gt;
=====I/O ports=====&lt;br /&gt;
&lt;br /&gt;
*Connected components lists on analogue/digital windows&lt;br /&gt;
&lt;br /&gt;
*When using Calculation icons (etc), pins can be dragged to the expression&lt;br /&gt;
=====Variables=====&lt;br /&gt;
*Combines global and local ''[[Creating_Variables|variables]]'' (which are also available separately)&lt;br /&gt;
&lt;br /&gt;
*Show''[[Using_the_Project_Explorer| values]]'' during ''[[Starting_Flowchart_Simulation|simulation]]''&lt;br /&gt;
&lt;br /&gt;
*Float ''[[Variable_Types|variables]]'' are now shown to a user-defined precision (defaults to “%g”)&lt;br /&gt;
&lt;br /&gt;
=====Built-in Functions=====&lt;br /&gt;
&lt;br /&gt;
*Single-dimension arrays show individual elements in Watch and Project Explorer lists&lt;br /&gt;
&lt;br /&gt;
*There are some new built-in functions available&lt;br /&gt;
&lt;br /&gt;
''[[API_Reference|New API calls]]'' : GetPanel and GetPanelName, SetSimSpeed and GetBackgroundColour&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[String_Manipulation_Functions|New String Functions routines]]'' : Contains$, SplitString$, ExplodeToIntArray$, ImplodeFromIntArray$, ExplodeToFloatArray$, ImplodeFromFloatArray$, Int2FormattedString$, Float2FormattedString$, InsertString$, RemoveFromString$, SearchAndReplace$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Mathematical_Functions|New Mathematical  Functions]]'' : cosh, sinh, tanh, arraydims, arraysize, GetOriginalScale&lt;br /&gt;
&lt;br /&gt;
=====Events=====&lt;br /&gt;
*There are some new events available&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous====&lt;br /&gt;
&lt;br /&gt;
*TODO list - auto generated icon list based on icons containing TODO in the comment. For example. TODO this icon needs work or TODO this will need changing.&lt;br /&gt;
&lt;br /&gt;
*''[[Auto_Documentation|Project Report improvements]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 9==&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 9. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
===App Developer===&lt;br /&gt;
* '''[[App_Developer|Flowcode App Developer]]'''&lt;br /&gt;
&lt;br /&gt;
A completely new piece of software - based on Flowcode - that allows you to create fantastic distributed control and data gathering systems with intuitive Human Machine interfaces for Windows PCs and tablets.  &lt;br /&gt;
&lt;br /&gt;
This comes with a suite of Application Programming Interfaces for low cost hardware including Arduino, Raspberry Pi, ESP32 and PIC which allows you to create powerful smart embedded + PC devices with Windows HMI displays that can be freely distributed.&lt;br /&gt;
&lt;br /&gt;
===State Diagrams===&lt;br /&gt;
* '''[[State_diagrams|State diagrams]]'''&lt;br /&gt;
&lt;br /&gt;
New graphical programming icons allows you to make use of this powerful programming paradigm. &lt;br /&gt;
&lt;br /&gt;
Create new state machine projects or enhance your existing ones and mix and match with flow chart icons, C code, blocks etc. &lt;br /&gt;
&lt;br /&gt;
===New ESP32 Toolchain===&lt;br /&gt;
* '''[[Compiler_Toolchains#ESP32_Toolchain|ESP32 toolchain]]''' &lt;br /&gt;
&lt;br /&gt;
Flowcode now supports a range of new devices for this powerful 80MHz board level device with integrated TCP/IP stack, and Wi-fi. &lt;br /&gt;
&lt;br /&gt;
This allows you to create great web-interconnected projects with this incredibly low cost hardware platform from Espressif semiconductors in China.&lt;br /&gt;
&lt;br /&gt;
===Data flow programming===&lt;br /&gt;
* '''[[DSP|Data flow programming]]'''&lt;br /&gt;
Now you can use data flow programming icons in your projects. This is a really great programming technique for projects including communications systems and Digital Signal Processing.&lt;br /&gt;
  &lt;br /&gt;
===New Components===&lt;br /&gt;
* '''[[Components|New components]]'''&lt;br /&gt;
New components include new DSP components, new Mechatronics parts, Easy Internet Of Things components, more sensors, and new test injectors.&lt;br /&gt;
We have updated our forums and now have sections to post your projects for both App Developer and Embedded. There are already a few posted. Why not come and replicate these projects to learn some interesting new things?&lt;br /&gt;
&lt;br /&gt;
===New Website===&lt;br /&gt;
* '''[https://flowcode.co.uk/ New website]'''&lt;br /&gt;
&lt;br /&gt;
Flowcode now has its own web site.&lt;br /&gt;
Here, you can find more information on Flowcode Embedded, Flowcode App Developer, a new Wiki, and a host of new courses on developing advanced communications systems from Mobile phone technology to CAN bus technology in automotive.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 8==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Features Added===&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 8. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Folding|Code Folding]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Icon_Grouping|Icon Grouping]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_Simulation|Simulating Custom C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_to_Flowchart_Conversion|Custom C Code to Flowchart Conversion]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Paradigms|Coding Paradigms - Flowchart, Blocks, Pseudocode, C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Tab Tear Off - Multi Monitor Support]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Dynamic_Updates|Dynamic Updates]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Raspberry_Pi_Chip_Pack|Raspberry Pi Chip Pack]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[E-blocks2_Auto_ID|E-blocks2 Auto ID]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Matrix_SCADA | Matrix SCADA]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Component changes and additions===&lt;br /&gt;
&lt;br /&gt;
CAL components such as ADC, I2C, PWM, SPI and UART are now free to allow for more user-based component creation and library generation. &lt;br /&gt;
&lt;br /&gt;
High-level components created by Matrix are still licensed under the various component feature packs.&lt;br /&gt;
&lt;br /&gt;
We also have made a large selection of component, CAL and FCD updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====New components====&lt;br /&gt;
&lt;br /&gt;
Some of the new components include:&lt;br /&gt;
&lt;br /&gt;
*FAT Based GLCD Bitmap Drawer&lt;br /&gt;
*New sensor components&lt;br /&gt;
*Network abstraction component for TCP/IP and WIFI modules&lt;br /&gt;
*E-block specific categories&lt;br /&gt;
*Scenario simulation components and wiki based curriculum&lt;br /&gt;
*Graphical LCD Graph drawer&lt;br /&gt;
*Arduino style serial terminal - via the console&lt;br /&gt;
*Raspberry Pi specific - Console Text Generation, TCP/IP&lt;br /&gt;
*Raspberry Pi HDMI gLCD&lt;br /&gt;
*Modbus TCP - Master and Slave&lt;br /&gt;
*DAC MCP48x1&lt;br /&gt;
*HTS221&lt;br /&gt;
*ESP12S&lt;br /&gt;
*PCF8575&lt;br /&gt;
*SHT31 Humidity Sensor&lt;br /&gt;
*WAV Playback and Record&lt;br /&gt;
*RealSpeak&lt;br /&gt;
*Bluetooth RN4677&lt;br /&gt;
*Various new Grove sensors&lt;br /&gt;
*HBridge CAL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Component improvements====&lt;br /&gt;
&lt;br /&gt;
*CAL components are more usable and stand alone, injector, scope and console functionality is now built in making it much easier to build into your own components&lt;br /&gt;
*Bitmap Drawer component - more bitmap file formats (Mono, 16-Colour, 256-Colour, 24-bit) and up to ten bitmaps per component&lt;br /&gt;
*Servo motor 16-bit mode&lt;br /&gt;
*PWM Frequency based Period and Prescaler calculator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 7==&lt;br /&gt;
&lt;br /&gt;
===Performance improvements===&lt;br /&gt;
* Code Profiling - See which icons are 'hit' or 'missed', and the frequency of execution, to determine bugs/ redundancy in your code&lt;br /&gt;
&lt;br /&gt;
* New 2 channel integrated oscilloscope, with triggering&lt;br /&gt;
&lt;br /&gt;
* New template files for Microchip devices - get you up and running with your projects faster &lt;br /&gt;
&lt;br /&gt;
===Visual enhancments===&lt;br /&gt;
* New modern UI with a choice of dark/ light themes&lt;br /&gt;
&lt;br /&gt;
* Ability to colour code individual flowchart icons for ease of viewing, or select from pre-made colour schemes&lt;br /&gt;
&lt;br /&gt;
* Create, save and load colour schemes for icons&lt;br /&gt;
&lt;br /&gt;
* Overhaul of user interface&lt;br /&gt;
&lt;br /&gt;
* 3D engine graphical improvements &lt;br /&gt;
&lt;br /&gt;
===New Toolchain and Compilers===&lt;br /&gt;
* Support for 32bit PIC microcontrollers&lt;br /&gt;
&lt;br /&gt;
* Support for Microchip XC8, XC16 and XC32 compilers. &lt;br /&gt;
&lt;br /&gt;
* Significantly faster compilation of 8bit Microchip devices (approximately 10 times faster compilation than previous versions)&lt;br /&gt;
&lt;br /&gt;
===Licensing structure===&lt;br /&gt;
* Flexible licensing structure - build a bespoke license exactly to your requirements&lt;br /&gt;
&lt;br /&gt;
* License upgradable at any point to add new features&lt;br /&gt;
&lt;br /&gt;
* Free version available - for a limited number of microcontrollers and feature set&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support Improvements===&lt;br /&gt;
* Users can now import 3D assemblies, rather than individual parts only. &lt;br /&gt;
&lt;br /&gt;
* Support for industry standard file types; STEP and IGES&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our EB006 multiprogrammer, EB091 or Flowkit v2 to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O using Ghost Technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 6==&lt;br /&gt;
&lt;br /&gt;
===Component Creator===&lt;br /&gt;
* Now you can design your own electronic components and add them to your component library. You can use simulation API calls to define the electrical behaviour and mechanical behaviour in simulation.&lt;br /&gt;
&lt;br /&gt;
* The component library has been expanded considerably to include many new electronic components and simulation components. Components can be designed and shared on our website.&lt;br /&gt;
&lt;br /&gt;
* In addition to PCB style components you now have access to panel mounted switches, meters and displays for industrial control.&lt;br /&gt;
&lt;br /&gt;
* Customise or create Dashboard components like graphs, dials and meters to allow you to monitor how your system is functioning in simulation and In-Circuit Test.&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
* Improvements in simulation speed means that your simulation works close to real time which allows you to verify your design ‘live’.&lt;br /&gt;
&lt;br /&gt;
* The powerful API allows control of simulation events and components providing a wide range of PC-side functions.&lt;br /&gt;
&lt;br /&gt;
* Human Machine Interface components show your system parameters during simulation and In-Circuit-Test using intuitive displays including meters, graphs, oscillograms and tables.&lt;br /&gt;
&lt;br /&gt;
* Use text based consoles to see data passing around your system: perfect for designing systems with digital communications.&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support===&lt;br /&gt;
* Import 3D models and characterise the movement and simulation using API.&lt;br /&gt;
&lt;br /&gt;
* Use the system panel to design your own simple 3D model. View your design from different angles whilst it simulates.&lt;br /&gt;
&lt;br /&gt;
* Create low cost parts with laser cutters and 3D printers and see the parts working with your electronics on-screen.&lt;br /&gt;
&lt;br /&gt;
* Create simulations of your model which move in 3D space under electrical stimulus from a microcontroller and other components in your system. Use 2D dashboard controls to monitor your system in real time.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our new EB006 multiprogrammer to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O.&lt;br /&gt;
&lt;br /&gt;
* Monitor how your system is functioning in simulation and In-Circuit-Test. Use new components like graphs, meters, consoles and scrolling text boxes to verify your design.&lt;br /&gt;
&lt;br /&gt;
* Use Softscope and Consoles to see data in waveform or textual formats. Use the API to translate incoming data to hex or ASCII equivalent. Link Softscope and consoles to third party hardware using DLLs to create a full SCADA system.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42135</id>
		<title>Version Updates</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Version_Updates&amp;diff=42135"/>
		<updated>2026-05-05T14:21:03Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Flowcode 11==&lt;br /&gt;
Full graphical display WYSIWYG editor &lt;br /&gt;
&lt;br /&gt;
Web Mirror functionality&lt;br /&gt;
&lt;br /&gt;
New Project Wizard&lt;br /&gt;
&lt;br /&gt;
Zoomable 2d Panels&lt;br /&gt;
&lt;br /&gt;
Direct string comparisons&lt;br /&gt;
&lt;br /&gt;
E-Blocks 3 and Auto-id&lt;br /&gt;
&lt;br /&gt;
A new rich text components adds formatted text to components and panels&lt;br /&gt;
&lt;br /&gt;
New operators (e.g. increment/decrement and assignment)&lt;br /&gt;
&lt;br /&gt;
Dynamic menus and web-based windows added&lt;br /&gt;
&lt;br /&gt;
Anchors and 'fit component' options for panel objects&lt;br /&gt;
&lt;br /&gt;
Group icon contents can be viewed without needing to ungroup&lt;br /&gt;
&lt;br /&gt;
User is now warned when opening a project that is already open&lt;br /&gt;
&lt;br /&gt;
Flowcode now has separate icons for Embedded, Web Developer and PC Developer project files&lt;br /&gt;
&lt;br /&gt;
Macros can now be shown as a different graphical/text view direct from the macro tab&lt;br /&gt;
&lt;br /&gt;
Library version log file shows which versions of library files are used in compiled project&lt;br /&gt;
&lt;br /&gt;
Colour options available on macro descriptions&lt;br /&gt;
&lt;br /&gt;
Position anchors for components&lt;br /&gt;
&lt;br /&gt;
New richtext primitive for component panels&lt;br /&gt;
&lt;br /&gt;
View group icon contents&lt;br /&gt;
&lt;br /&gt;
Access variables in simulated component code&lt;br /&gt;
&lt;br /&gt;
Direct access to variable manager&lt;br /&gt;
&lt;br /&gt;
Warn when opening a project that is already open&lt;br /&gt;
&lt;br /&gt;
New file extensions for Flowcode project types&lt;br /&gt;
&lt;br /&gt;
Change macro view types on the fly&lt;br /&gt;
&lt;br /&gt;
Advanced component profiling and debugging&lt;br /&gt;
&lt;br /&gt;
Clear All Breakpoints no longer ignores the loop command&lt;br /&gt;
&lt;br /&gt;
Digital i/o panel now updated correctly when PORT property change iterates through subcomponents&lt;br /&gt;
&lt;br /&gt;
Digital i/o panel now updated correctly when pane is first opened&lt;br /&gt;
&lt;br /&gt;
Caption bar now shows project type&lt;br /&gt;
&lt;br /&gt;
Dropping icons onto overlapped macro views correctly drops onto topmost window&lt;br /&gt;
&lt;br /&gt;
Non-flowchart macros can now be exported as image&lt;br /&gt;
&lt;br /&gt;
New state diagram macro menu item added&lt;br /&gt;
&lt;br /&gt;
Web Developer projects do not show state diagram icons&lt;br /&gt;
&lt;br /&gt;
List Occurrences check is now case-insensitive&lt;br /&gt;
&lt;br /&gt;
Improvements to dark colour scheme&lt;br /&gt;
&lt;br /&gt;
Added ability to show and hide component macros via API command&lt;br /&gt;
&lt;br /&gt;
Fixed read-only nature of component properties&lt;br /&gt;
&lt;br /&gt;
Fixed the sim control speed slider&lt;br /&gt;
&lt;br /&gt;
Fixed 'corrupt macro' error message text that got lost during an exception&lt;br /&gt;
&lt;br /&gt;
Mouse events now triggered at the dead area at the top of Project Explorer&lt;br /&gt;
&lt;br /&gt;
Component major/minor versions now 0-999 (was 0-100)&lt;br /&gt;
&lt;br /&gt;
Hidden option to show '!=' as '&amp;lt;&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
Fixed MatrixLight/MatrixDark inbuilt colour schemes for charts&lt;br /&gt;
&lt;br /&gt;
2d panels now hide toolbar when simulating&lt;br /&gt;
&lt;br /&gt;
FCDChange event is fired when chip stays the same but clock speed changes&lt;br /&gt;
&lt;br /&gt;
Fixed longstanding bug with broadcast message parameter corruption&lt;br /&gt;
&lt;br /&gt;
Moved components on 2d panel now redraw their vacated areas too&lt;br /&gt;
&lt;br /&gt;
Subcomponents of a group now get unique names when copying/pasting&lt;br /&gt;
&lt;br /&gt;
Added GetActual2dPosition/GetActual2dPosition API commands&lt;br /&gt;
&lt;br /&gt;
Context menu for component panels stops renames, deletion, etc, when simulating&lt;br /&gt;
&lt;br /&gt;
Wndhost comps (button, combobox and textbox) now update when resized on the panel&lt;br /&gt;
&lt;br /&gt;
Text primitives now redraw their actual text area too&lt;br /&gt;
&lt;br /&gt;
Improved visual styling for dark mode, and fixed styling issues with combo boxes, etc.&lt;br /&gt;
&lt;br /&gt;
Removed redundant colour and code-customisation information from saved project files&lt;br /&gt;
&lt;br /&gt;
Fixed SIGNED/UNSIGNED casting&lt;br /&gt;
&lt;br /&gt;
Fixed simulation of Decision tail icon&lt;br /&gt;
&lt;br /&gt;
Search now finds ports/pins&lt;br /&gt;
&lt;br /&gt;
Added logical AND, OR and NOT (&amp;amp;&amp;amp;, ||, !) to maths functions list&lt;br /&gt;
&lt;br /&gt;
Improved tooltip help for maths and string functions&lt;br /&gt;
&lt;br /&gt;
Function lists now categorised&lt;br /&gt;
&lt;br /&gt;
Call stack view width can be altered using mouse wheel in Simulation Debugger window&lt;br /&gt;
&lt;br /&gt;
Component panel zoom level now shown on status bar&lt;br /&gt;
&lt;br /&gt;
Improved component toolbar display on non-100% DPI systems&lt;br /&gt;
&lt;br /&gt;
New variables are given default initialisers&lt;br /&gt;
&lt;br /&gt;
Macro parameters can have default values for parameters&lt;br /&gt;
&lt;br /&gt;
Macro tabs have 'close' and 'close other' menu item&lt;br /&gt;
&lt;br /&gt;
Added CallMacro in-built functions&lt;br /&gt;
&lt;br /&gt;
Added in-built functions to manipulate text-based property lists&lt;br /&gt;
&lt;br /&gt;
Fixed flicker in IOC chip view in interrupt properties dialog&lt;br /&gt;
&lt;br /&gt;
Components and macros now available to add to expressions in icon dialogs&lt;br /&gt;
&lt;br /&gt;
List properties can now be auto-sorted&lt;br /&gt;
&lt;br /&gt;
Flowcode now uses a 'ping' to ensure web-based dialogs retain current information&lt;br /&gt;
&lt;br /&gt;
[https://flowcode.co.uk/forums/viewtopic.php?p=23397#p23397 Update v11.0.1.14]&lt;br /&gt;
&lt;br /&gt;
==Flowcode 10==&lt;br /&gt;
&lt;br /&gt;
=====Licensing changes=====&lt;br /&gt;
&lt;br /&gt;
*Flowcode V10 is now free for makers and hobbyists with full functionality for a limited range of devices which include; '''[[Supported_Chips#Free_Targets|Arduino Uno &amp;amp; Nano, RPI etc. ]]'''&lt;br /&gt;
&lt;br /&gt;
=====Components=====&lt;br /&gt;
*Can now view component code&lt;br /&gt;
&lt;br /&gt;
*'''[[Components|Components]]''' are now free and open-sourced so you can use existing components and tailor them to your own requirements.&lt;br /&gt;
&lt;br /&gt;
*Dedicated 2D primitive components&lt;br /&gt;
&lt;br /&gt;
=====2D panels=====&lt;br /&gt;
New [[2d_Panels|2D panels]] provide clearer graphics, customisation of all panels with your own drawings, notes and much more printer friendly options available.&lt;br /&gt;
&lt;br /&gt;
Add an unlimited number of 2D panels into your project.&lt;br /&gt;
&lt;br /&gt;
Unlocks a host of new 2D panel only panel options such as graphing tools.&lt;br /&gt;
&lt;br /&gt;
====Simulation====&lt;br /&gt;
&lt;br /&gt;
*Improved ''[[Variable_Types|variable values]]'' display on simulation – view and edit ''[[Variable_Types|variable values]]'' during simulation and '''[[Ghost_Technology|ICD]]&lt;br /&gt;
&lt;br /&gt;
*Interrupt on Change diagram visual improvements&lt;br /&gt;
&lt;br /&gt;
*View and step through the simulation of component code (Pro Licence only)&lt;br /&gt;
&lt;br /&gt;
*Ghost support for EB0058 ESP board&lt;br /&gt;
&lt;br /&gt;
*Icon lists now show disabled icons in a muted colour&lt;br /&gt;
&lt;br /&gt;
*Show variables on ''[[Oscilloscope|oscilloscope]]'' and ''[[Using_the_Data_Recorder|data recorder]]''&lt;br /&gt;
&lt;br /&gt;
*The text colour of flowchart icons can be altered&lt;br /&gt;
&lt;br /&gt;
=====Application=====&lt;br /&gt;
*Create separate .c and .h files&lt;br /&gt;
&lt;br /&gt;
*Show help/wiki in separate browser&lt;br /&gt;
&lt;br /&gt;
=====UI Trees=====&lt;br /&gt;
&lt;br /&gt;
*New ''UI Trees'' tab within ''[[Global_Settings|Global Settings]]'' for customising ''[[Project Explorer|Project Explorer]]'' and Icon Lists&lt;br /&gt;
&lt;br /&gt;
=====User Tools=====&lt;br /&gt;
&lt;br /&gt;
*New ''User Tools'' tab within ''[[Global_Settings|Global Settings]]'' for  setting up User Tools to be used within the ''Build ribbon''&lt;br /&gt;
&lt;br /&gt;
=====I/O ports=====&lt;br /&gt;
&lt;br /&gt;
*Connected components lists on analogue/digital windows&lt;br /&gt;
&lt;br /&gt;
*When using Calculation icons (etc), pins can be dragged to the expression&lt;br /&gt;
=====Variables=====&lt;br /&gt;
*Combines global and local ''[[Creating_Variables|variables]]'' (which are also available separately)&lt;br /&gt;
&lt;br /&gt;
*Show''[[Using_the_Project_Explorer| values]]'' during ''[[Starting_Flowchart_Simulation|simulation]]''&lt;br /&gt;
&lt;br /&gt;
*Float ''[[Variable_Types|variables]]'' are now shown to a user-defined precision (defaults to “%g”)&lt;br /&gt;
&lt;br /&gt;
=====Built-in Functions=====&lt;br /&gt;
&lt;br /&gt;
*Single-dimension arrays show individual elements in Watch and Project Explorer lists&lt;br /&gt;
&lt;br /&gt;
*There are some new built-in functions available&lt;br /&gt;
&lt;br /&gt;
''[[API_Reference|New API calls]]'' : GetPanel and GetPanelName, SetSimSpeed and GetBackgroundColour&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[String_Manipulation_Functions|New String Functions routines]]'' : Contains$, SplitString$, ExplodeToIntArray$, ImplodeFromIntArray$, ExplodeToFloatArray$, ImplodeFromFloatArray$, Int2FormattedString$, Float2FormattedString$, InsertString$, RemoveFromString$, SearchAndReplace$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Mathematical_Functions|New Mathematical  Functions]]'' : cosh, sinh, tanh, arraydims, arraysize, GetOriginalScale&lt;br /&gt;
&lt;br /&gt;
=====Events=====&lt;br /&gt;
*There are some new events available&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous====&lt;br /&gt;
&lt;br /&gt;
*TODO list - auto generated icon list based on icons containing TODO in the comment. For example. TODO this icon needs work or TODO this will need changing.&lt;br /&gt;
&lt;br /&gt;
*''[[Auto_Documentation|Project Report improvements]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 9==&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 9. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
===App Developer===&lt;br /&gt;
* '''[[App_Developer|Flowcode App Developer]]'''&lt;br /&gt;
&lt;br /&gt;
A completely new piece of software - based on Flowcode - that allows you to create fantastic distributed control and data gathering systems with intuitive Human Machine interfaces for Windows PCs and tablets.  &lt;br /&gt;
&lt;br /&gt;
This comes with a suite of Application Programming Interfaces for low cost hardware including Arduino, Raspberry Pi, ESP32 and PIC which allows you to create powerful smart embedded + PC devices with Windows HMI displays that can be freely distributed.&lt;br /&gt;
&lt;br /&gt;
===State Diagrams===&lt;br /&gt;
* '''[[State_diagrams|State diagrams]]'''&lt;br /&gt;
&lt;br /&gt;
New graphical programming icons allows you to make use of this powerful programming paradigm. &lt;br /&gt;
&lt;br /&gt;
Create new state machine projects or enhance your existing ones and mix and match with flow chart icons, C code, blocks etc. &lt;br /&gt;
&lt;br /&gt;
===New ESP32 Toolchain===&lt;br /&gt;
* '''[[Compiler_Toolchains#ESP32_Toolchain|ESP32 toolchain]]''' &lt;br /&gt;
&lt;br /&gt;
Flowcode now supports a range of new devices for this powerful 80MHz board level device with integrated TCP/IP stack, and Wi-fi. &lt;br /&gt;
&lt;br /&gt;
This allows you to create great web-interconnected projects with this incredibly low cost hardware platform from Espressif semiconductors in China.&lt;br /&gt;
&lt;br /&gt;
===Data flow programming===&lt;br /&gt;
* '''[[DSP|Data flow programming]]'''&lt;br /&gt;
Now you can use data flow programming icons in your projects. This is a really great programming technique for projects including communications systems and Digital Signal Processing.&lt;br /&gt;
  &lt;br /&gt;
===New Components===&lt;br /&gt;
* '''[[Components|New components]]'''&lt;br /&gt;
New components include new DSP components, new Mechatronics parts, Easy Internet Of Things components, more sensors, and new test injectors.&lt;br /&gt;
We have updated our forums and now have sections to post your projects for both App Developer and Embedded. There are already a few posted. Why not come and replicate these projects to learn some interesting new things?&lt;br /&gt;
&lt;br /&gt;
===New Website===&lt;br /&gt;
* '''[https://flowcode.co.uk/ New website]'''&lt;br /&gt;
&lt;br /&gt;
Flowcode now has its own web site.&lt;br /&gt;
Here, you can find more information on Flowcode Embedded, Flowcode App Developer, a new Wiki, and a host of new courses on developing advanced communications systems from Mobile phone technology to CAN bus technology in automotive.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 8==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Features Added===&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features added in Flowcode 8. Please click on a feature to learn more about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Folding|Code Folding]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Icon_Grouping|Icon Grouping]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_Simulation|Simulating Custom C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[C_Code_to_Flowchart_Conversion|Custom C Code to Flowchart Conversion]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Code_Paradigms|Coding Paradigms - Flowchart, Blocks, Pseudocode, C Code]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Tab Tear Off - Multi Monitor Support]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Dynamic_Updates|Dynamic Updates]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Raspberry_Pi_Chip_Pack|Raspberry Pi Chip Pack]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[E-blocks2_Auto_ID|E-blocks2 Auto ID]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Matrix_SCADA | Matrix SCADA]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Component changes and additions===&lt;br /&gt;
&lt;br /&gt;
CAL components such as ADC, I2C, PWM, SPI and UART are now free to allow for more user-based component creation and library generation. &lt;br /&gt;
&lt;br /&gt;
High-level components created by Matrix are still licensed under the various component feature packs.&lt;br /&gt;
&lt;br /&gt;
We also have made a large selection of component, CAL and FCD updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====New components====&lt;br /&gt;
&lt;br /&gt;
Some of the new components include:&lt;br /&gt;
&lt;br /&gt;
*FAT Based GLCD Bitmap Drawer&lt;br /&gt;
*New sensor components&lt;br /&gt;
*Network abstraction component for TCP/IP and WIFI modules&lt;br /&gt;
*E-block specific categories&lt;br /&gt;
*Scenario simulation components and wiki based curriculum&lt;br /&gt;
*Graphical LCD Graph drawer&lt;br /&gt;
*Arduino style serial terminal - via the console&lt;br /&gt;
*Raspberry Pi specific - Console Text Generation, TCP/IP&lt;br /&gt;
*Raspberry Pi HDMI gLCD&lt;br /&gt;
*Modbus TCP - Master and Slave&lt;br /&gt;
*DAC MCP48x1&lt;br /&gt;
*HTS221&lt;br /&gt;
*ESP12S&lt;br /&gt;
*PCF8575&lt;br /&gt;
*SHT31 Humidity Sensor&lt;br /&gt;
*WAV Playback and Record&lt;br /&gt;
*RealSpeak&lt;br /&gt;
*Bluetooth RN4677&lt;br /&gt;
*Various new Grove sensors&lt;br /&gt;
*HBridge CAL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Component improvements====&lt;br /&gt;
&lt;br /&gt;
*CAL components are more usable and stand alone, injector, scope and console functionality is now built in making it much easier to build into your own components&lt;br /&gt;
*Bitmap Drawer component - more bitmap file formats (Mono, 16-Colour, 256-Colour, 24-bit) and up to ten bitmaps per component&lt;br /&gt;
*Servo motor 16-bit mode&lt;br /&gt;
*PWM Frequency based Period and Prescaler calculator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 7==&lt;br /&gt;
&lt;br /&gt;
===Performance improvements===&lt;br /&gt;
* Code Profiling - See which icons are 'hit' or 'missed', and the frequency of execution, to determine bugs/ redundancy in your code&lt;br /&gt;
&lt;br /&gt;
* New 2 channel integrated oscilloscope, with triggering&lt;br /&gt;
&lt;br /&gt;
* New template files for Microchip devices - get you up and running with your projects faster &lt;br /&gt;
&lt;br /&gt;
===Visual enhancments===&lt;br /&gt;
* New modern UI with a choice of dark/ light themes&lt;br /&gt;
&lt;br /&gt;
* Ability to colour code individual flowchart icons for ease of viewing, or select from pre-made colour schemes&lt;br /&gt;
&lt;br /&gt;
* Create, save and load colour schemes for icons&lt;br /&gt;
&lt;br /&gt;
* Overhaul of user interface&lt;br /&gt;
&lt;br /&gt;
* 3D engine graphical improvements &lt;br /&gt;
&lt;br /&gt;
===New Toolchain and Compilers===&lt;br /&gt;
* Support for 32bit PIC microcontrollers&lt;br /&gt;
&lt;br /&gt;
* Support for Microchip XC8, XC16 and XC32 compilers. &lt;br /&gt;
&lt;br /&gt;
* Significantly faster compilation of 8bit Microchip devices (approximately 10 times faster compilation than previous versions)&lt;br /&gt;
&lt;br /&gt;
===Licensing structure===&lt;br /&gt;
* Flexible licensing structure - build a bespoke license exactly to your requirements&lt;br /&gt;
&lt;br /&gt;
* License upgradable at any point to add new features&lt;br /&gt;
&lt;br /&gt;
* Free version available - for a limited number of microcontrollers and feature set&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support Improvements===&lt;br /&gt;
* Users can now import 3D assemblies, rather than individual parts only. &lt;br /&gt;
&lt;br /&gt;
* Support for industry standard file types; STEP and IGES&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our EB006 multiprogrammer, EB091 or Flowkit v2 to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O using Ghost Technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Flowcode 6==&lt;br /&gt;
&lt;br /&gt;
===Component Creator===&lt;br /&gt;
* Now you can design your own electronic components and add them to your component library. You can use simulation API calls to define the electrical behaviour and mechanical behaviour in simulation.&lt;br /&gt;
&lt;br /&gt;
* The component library has been expanded considerably to include many new electronic components and simulation components. Components can be designed and shared on our website.&lt;br /&gt;
&lt;br /&gt;
* In addition to PCB style components you now have access to panel mounted switches, meters and displays for industrial control.&lt;br /&gt;
&lt;br /&gt;
* Customise or create Dashboard components like graphs, dials and meters to allow you to monitor how your system is functioning in simulation and In-Circuit Test.&lt;br /&gt;
&lt;br /&gt;
===Simulation===&lt;br /&gt;
* Improvements in simulation speed means that your simulation works close to real time which allows you to verify your design ‘live’.&lt;br /&gt;
&lt;br /&gt;
* The powerful API allows control of simulation events and components providing a wide range of PC-side functions.&lt;br /&gt;
&lt;br /&gt;
* Human Machine Interface components show your system parameters during simulation and In-Circuit-Test using intuitive displays including meters, graphs, oscillograms and tables.&lt;br /&gt;
&lt;br /&gt;
* Use text based consoles to see data passing around your system: perfect for designing systems with digital communications.&lt;br /&gt;
&lt;br /&gt;
===Mechanical Support===&lt;br /&gt;
* Import 3D models and characterise the movement and simulation using API.&lt;br /&gt;
&lt;br /&gt;
* Use the system panel to design your own simple 3D model. View your design from different angles whilst it simulates.&lt;br /&gt;
&lt;br /&gt;
* Create low cost parts with laser cutters and 3D printers and see the parts working with your electronics on-screen.&lt;br /&gt;
&lt;br /&gt;
* Create simulations of your model which move in 3D space under electrical stimulus from a microcontroller and other components in your system. Use 2D dashboard controls to monitor your system in real time.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
* Access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.&lt;br /&gt;
&lt;br /&gt;
* Use our new EB006 multiprogrammer to monitor every pin on your PICmicro design, and monitor and interpret serial data I/O.&lt;br /&gt;
&lt;br /&gt;
* Monitor how your system is functioning in simulation and In-Circuit-Test. Use new components like graphs, meters, consoles and scrolling text boxes to verify your design.&lt;br /&gt;
&lt;br /&gt;
* Use Softscope and Consoles to see data in waveform or textual formats. Use the API to translate incoming data to hex or ASCII equivalent. Link Softscope and consoles to third party hardware using DLLs to create a full SCADA system.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Mathematical_Functions&amp;diff=41824</id>
		<title>Mathematical Functions</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Mathematical_Functions&amp;diff=41824"/>
		<updated>2025-11-03T11:05:41Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Old Versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Old Versions==&lt;br /&gt;
This page is current for Flowcode v11 and later. Earlier versions can be found below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
| [[Special:PermanentLink/41807|Flowcode v10]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Special:PermanentLink/39332|Flowcode v9]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Special:PermanentLink/39332|Flowcode v8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Introduction===&lt;br /&gt;
:''See [[Calculation Icon Properties]]''&lt;br /&gt;
&lt;br /&gt;
As well as the basic mathematical operators (+, -, *, /), the following mathematical functions can be used in calculations. All of these functions are now usable on each chip type.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
Flowcode includes an additional set of mathematical functions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; width:900px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;25%&amp;quot; | Function Prototype&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;45%&amp;quot; | Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;30%&amp;quot; | Example&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Floating Point Arithmetic&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float = fadd(float, float)&lt;br /&gt;
| Add two floating point numbers together&lt;br /&gt;
| fadd(3.14, 2.86) = 6.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float = fsub(float, float)&lt;br /&gt;
| Subtract two floating point numbers&lt;br /&gt;
| fsub(10.5, 3.2) = 7.3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float = fmul(float, float)&lt;br /&gt;
| Multiply two floating point numbers&lt;br /&gt;
| fmul(4.5, 2.0) = 9.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float = fdiv(float, float)&lt;br /&gt;
| Divide two floating point numbers&lt;br /&gt;
| fdiv(15.0, 3.0) = 5.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float = fmod(float, float)&lt;br /&gt;
| MOD function for floating point numbers&lt;br /&gt;
| fmod(7.5, 2.0) = 1.5&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = isinf(float)&lt;br /&gt;
| Checks to see if the floating point number is infinite&lt;br /&gt;
| isinf(1.0/0.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = isnan(float)&lt;br /&gt;
| Checks to see if the floating point is not a number&lt;br /&gt;
| isnan(0.0/0.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = float_eq(float, float)&lt;br /&gt;
| Compares two floating point numbers to see if they are equal&lt;br /&gt;
| float_eq(3.14, 3.14) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = float_ge(float, float)&lt;br /&gt;
| Compares two floating point numbers to see if they are greater then or equal&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| float_ge(5.0, 3.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = float_gt(float, float)&lt;br /&gt;
| Compares two floating point numbers to see if they are greater then&lt;br /&gt;
| float_gt(5.0, 3.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = float_le(float, float)&lt;br /&gt;
| Compares two floating point numbers to see if they are less then or equal&lt;br /&gt;
| float_le(3.0, 5.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | byte = float_lt(float, float)&lt;br /&gt;
| Compares two floating point numbers to see if they are less then&lt;br /&gt;
| float_lt(3.0, 5.0) = 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | int = random()&lt;br /&gt;
| Generates a random number (0-65535)&lt;br /&gt;
| (random() MOD 10) + 1 = 7 (range 1-10)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Mathematical Functions&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | fabs( x ), floor( x ), ceil( x )&lt;br /&gt;
| Absolute value, floor and ceiling functions&lt;br /&gt;
| fabs(-5.7) = 5.7&amp;lt;br&amp;gt;floor(4.9) = 4&amp;lt;br&amp;gt;ceil(4.1) = 5&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | fmod( x , y )&lt;br /&gt;
| Floating point modulus (remainder of x divided by y)&lt;br /&gt;
| fmod(25.5, 7.0) = 4.5&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | sqrt( x ), cbrt( x )&lt;br /&gt;
| Square and cube roots&lt;br /&gt;
| sqrt(25) = 5.0&amp;lt;br&amp;gt;cbrt(27) = 3.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | log( x ), log10( x )&lt;br /&gt;
| Logarithms (base e and base 10)&lt;br /&gt;
| log(2.718) ~ 1.0&amp;lt;br&amp;gt;log10(100) = 2.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | exp( x ), pow( x , y )&lt;br /&gt;
| Exponential and power functions (x to the power of y)&lt;br /&gt;
| exp(1) ~ 2.718&amp;lt;br&amp;gt;pow(2, 8) = 256&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | sin( x ), cos( x ), tan( x )&lt;br /&gt;
| Trigonometric functions where x is in radians&lt;br /&gt;
| sin(1.57) ~ 1.0&amp;lt;br&amp;gt;cos(0) = 1.0&amp;lt;br&amp;gt;tan(0.785) ~ 1.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | asin( x ), acos( x ), atan( x )&lt;br /&gt;
| Inverse trigonometric functions where x is in radians          &lt;br /&gt;
| asin(0.5) ~ 0.524&amp;lt;br&amp;gt;acos(0.707) ~ 0.785&amp;lt;br&amp;gt;atan(1) ~ 0.785&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | atan2( y , x )&lt;br /&gt;
| Four-quadrant inverse tangent&lt;br /&gt;
| atan2(1, 1) = 0.785&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | sinh( x ), cosh( x ), tanh( x )&lt;br /&gt;
| Hyperbolic functions&lt;br /&gt;
| sinh(1) ~ 1.175&amp;lt;br&amp;gt;cosh(0) = 1.0&amp;lt;br&amp;gt;tanh(1) ~ 0.762&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | isnan( x ), isinf( x )&lt;br /&gt;
| Tests for not-a-number and infinity&lt;br /&gt;
| isnan(5.0) = 0&amp;lt;br&amp;gt;isinf(5.0) = 0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | round( x )&lt;br /&gt;
| Decimal rounding (x rounded to the nearest integer)&lt;br /&gt;
| round(3.7) = 4&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | fround( x , y )&lt;br /&gt;
| Floating point rounding (x rounded to y decimal places)&lt;br /&gt;
| fround(3.14159, 2) = 3.14&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | asinh( x ), acosh( x ), atanh( x )&lt;br /&gt;
| Inverse hyperbolic functions&lt;br /&gt;
| asinh(1) ~ 0.881&amp;lt;br&amp;gt;acosh(1) = 0&amp;lt;br&amp;gt;atanh(0.5) ~ 0.549&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | fact( x )&lt;br /&gt;
| Factorial (multiply all numbers down to 1)&lt;br /&gt;
| fact(5) = 120 (5×4×3×2×1)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Integer Operations&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | MOD&lt;br /&gt;
| Returns the remainder after division&lt;br /&gt;
| 17 MOD 5 = 2 (17÷5 = 3 remainder 2)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Bitwise Operations&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | AND &amp;lt;also &amp;amp;&amp;gt;&lt;br /&gt;
| Bitwise AND operation&lt;br /&gt;
| 0b1100 AND 0b1010 = 0b1000&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | OR &amp;lt;also |&amp;gt;&lt;br /&gt;
| Bitwise OR operation&lt;br /&gt;
| 0b1100 OR 0b1010 = 0b1110&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | XOR&lt;br /&gt;
| Bitwise XOR (exclusive OR) operation&lt;br /&gt;
| 0b1100 XOR 0b1010 = 0b0110&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | NOT &amp;lt;also ~&amp;gt;&lt;br /&gt;
| Bitwise NOT operation&lt;br /&gt;
| NOT 0b1100 = 0b0011&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;&amp;lt;&lt;br /&gt;
| Left shift operation (multiply by 2^n)&lt;br /&gt;
| 5 &amp;lt;&amp;lt; 2 = 20 (5 × 4)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;gt;&amp;gt;&lt;br /&gt;
| Right shift operation (divide by 2^n)&lt;br /&gt;
| 20 &amp;gt;&amp;gt; 2 = 5 (20 ÷ 4)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Logical Operations (usually used in decision branches)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ==&amp;lt;br&amp;gt;(also =)&lt;br /&gt;
| Equal to operation&lt;br /&gt;
| Value1 = 26, Value2 = 26&amp;lt;br&amp;gt;If Value1 == Value2 then True&amp;lt;br&amp;gt;If Value1 = Value2 then True&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | !=&amp;lt;br&amp;gt;(also &amp;lt;&amp;gt;)&lt;br /&gt;
| Not equal to operation&lt;br /&gt;
| Value1 = 10, Value2 = 20&amp;lt;br&amp;gt;If Value1 != Value2 then True&amp;lt;br&amp;gt;If Value1 &amp;lt;&amp;gt; Value2 then True&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;amp;&amp;amp;&lt;br /&gt;
| Logical AND operation&lt;br /&gt;
| Value = 10&amp;lt;br&amp;gt;If (Value &amp;gt; 2) &amp;amp;&amp;amp; (Value &amp;lt; 15) then True&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;amp;#124;&amp;amp;#124;&lt;br /&gt;
| Logical OR operation&lt;br /&gt;
| Value = 20&amp;lt;br&amp;gt;If (Value &amp;lt; 5) &amp;amp;#124;&amp;amp;#124; (Value &amp;gt; 15) then True&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | !&lt;br /&gt;
| Logical NOT operation&lt;br /&gt;
| Flag = 1&amp;lt;br&amp;gt;If ! Flag then False (inverts the value)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Array Functions&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | arraydims( array )&lt;br /&gt;
| Get the number of dimensions in an array&lt;br /&gt;
| arraydims(data[5][3]) = 2&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | arraysize( array )&lt;br /&gt;
| Get the total size of an array&lt;br /&gt;
| arraysize(data[5][3]) = 15&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Hardware Functions&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | SetPinNoDDR( PortPin, Output )&lt;br /&gt;
| Set output pin quickly without changing data direction state.&lt;br /&gt;
| SetPinNoDDR(PORTA.0, 1) = pin high&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Input = GetPinNoDDR( PortPin )&lt;br /&gt;
| Read input pin quickly without changing data direction state.&lt;br /&gt;
| GetPinNoDDR(PORTB.1) = 0 or 1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Type Conversion&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | float2int( x )&lt;br /&gt;
| Convert floating point number to integer&lt;br /&gt;
| float2int(5.7) = 5 (truncates)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | int2float( x )&lt;br /&gt;
| Convert integer to floating point number&lt;br /&gt;
| int2float(42) = 42.0&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: #f0f0f0;&amp;quot; | Type Casting Operators (For more information see [[Typecasting]])&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | STRING&lt;br /&gt;
| Convert numeric value to string type&lt;br /&gt;
| STRING 123 = &amp;quot;123&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | FLOAT&lt;br /&gt;
| Convert value to floating point type&lt;br /&gt;
| FLOAT 5 = 5.0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | SIGNED&lt;br /&gt;
| Convert value to signed integer type&lt;br /&gt;
| SIGNED -5 = -5 (as signed)&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | UNSIGNED&lt;br /&gt;
| Convert value to unsigned integer type&lt;br /&gt;
| UNSIGNED -5 = 65531 (as unsigned)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Internal_Oscillator&amp;diff=41689</id>
		<title>Internal Oscillator</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Internal_Oscillator&amp;diff=41689"/>
		<updated>2025-09-02T15:33:45Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A lot of the devices have an inbuilt oscillator which can be used to reduce the number of devices required to drive the microcontroller.&lt;br /&gt;
&lt;br /&gt;
The device datasheet should detail the type of oscillator available to the device.&lt;br /&gt;
&lt;br /&gt;
To control the internal oscillator speed, a c code block will require adding at the very top of main, so its the first icon to be accessed. &lt;br /&gt;
&lt;br /&gt;
Luckily, we don't need to dive into the datasheet to work out the code to set the internal oscillator to the correct speed.&lt;br /&gt;
&lt;br /&gt;
The is an '''Internal Oscillator Helper''' component which is located in '''Components Libraries''' &amp;gt; '''Matrix Tools''' &amp;gt; '''IntOsc Helper'''&lt;br /&gt;
Alternatively, Use the search magnifying glass option.&lt;br /&gt;
&lt;br /&gt;
This can be found on left of the '''Components Libraries''' and enter '''intos''' in the search bar. &lt;br /&gt;
&lt;br /&gt;
[[file:InOscHelper1.png]]&lt;br /&gt;
&lt;br /&gt;
'''Setting the hardware at the correct speed for PIC16F18877'''&lt;br /&gt;
&lt;br /&gt;
1. '''Build''' &amp;gt; '''Project Options...''' '''Other options''' &amp;gt; Clock speed (MHZ) [defines delay-related timings] &amp;amp; enter desired speed, e.g. 16MHz. This does not set the hardware speed, but it's required step.&lt;br /&gt;
The '''Configure''' settings  must also be correct.&lt;br /&gt;
&lt;br /&gt;
E.g '''External Oscillator''' &amp;gt; '''Oscillator Off'''&lt;br /&gt;
&lt;br /&gt;
'''Software Oscillator''' &amp;gt; '''HFINTOSC 32MHz'''&lt;br /&gt;
&lt;br /&gt;
2. Add '''IntOsc Helper''' to the 2D panel, right-click on the IntOsc Helper component and select properties. &lt;br /&gt;
&lt;br /&gt;
3. Enter the required speed in Hz e.g 1600000&lt;br /&gt;
&lt;br /&gt;
4. Copy the full contents next to the code window (OSCFRQ = 0x05;) &lt;br /&gt;
&lt;br /&gt;
5. add a C code command icon at the top of Main and paste the code that was copied in step 4&lt;br /&gt;
&lt;br /&gt;
[[file:InOscHelper2.png]]&lt;br /&gt;
&lt;br /&gt;
The internal osc should now be set at 16MHz, assuming all the configuration settings are correct. &lt;br /&gt;
&lt;br /&gt;
You should be aware that other target device use OSCCON instead of OSCFRQ, but the IntOsc Helper allows for that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A [[One second LED flasher]] test can be very useful to confirm if your device is actually running at the intended speed.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41688</id>
		<title>Supporting Third Party Programming Tools</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41688"/>
		<updated>2025-08-29T10:34:03Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* mikroProg/Easypic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Gen_Compiler_Options_Programmer_PIC.png|right|524x400px]]&lt;br /&gt;
Each version of Flowcode comes ready with a default programming tool. However it is fairly easy to change the settings in Flowcode to allow for third party programming tools to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The programming tool that is invoked when the compile to chip button is pressed is configured in the '''Build menu''' under '''Compiler options''' then click on the '''Programmer tab''' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For help with third party programming tools the first port of call should be to check our [http://www.matrixmultimedia.com/mmforums/ forums] to see if anyone else has already tried the programming tool with Flowcode. If you are the first then if you wish you can post your findings for other users to benefit from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
Editing the Compiler or Linker tabs of the compiler options will likely stop Flowcode from being able to compile correctly unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
The settings below are for the '''Programmer''' tab of the compiler options. &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do edit the values in the compiler or linker tab then you can simply revert back to the default settings and start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microchip PIC / PIC16 / PIC32==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including E-blocks, E-blocks2, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-chip $(chip:u) &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PPP===&lt;br /&gt;
&lt;br /&gt;
PPP is the older programming software from Flowcode v5 and previous and can be used to talk to versions of the E-blocks EB006 up to and including version 8. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PPP\PPPv3.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-cs 2 -chip PIC$(chip:u) -nogui &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit2\pk2cmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-B$(appdir)tools\PICkit2\ -PPIC$(chip) -F$(target).hex -M -A5 -R'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Details on how to upgrade your PICkit 2 to work with new targets are available from [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=16843 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 2 was never designed to work with the newer devices and although it is known to work, you may cause damage to your PIC devices by using incorrect VPP programming voltages etc as supplied by the PICkit 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - PK3CMD (OLD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V5 -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V3.3 -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 3 will fail to program if you have spaces in your Flowcode project name, replacing spaces with underscores or removing them completely should resolve the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also note that if your using the PICkit 3 with MPLABX or have bought a new one recently then you will likely have to downgrade the firmware to allow Flowcode to work with the PICkit.&lt;br /&gt;
&lt;br /&gt;
Full details on how to do this are available from [http://woodworkerb.com/pickit-3-and-flowcode-6/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your still having problems getting the PICkit 3 to fire up then this [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=12970&amp;amp;p=58454#p52318 forum topic] may be of help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - IPE (NEW)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use the Microchip Real ICE programmer instead of the PICkit 3 substitute the parameter /TPPK3 with /TPRICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit4===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 4.20 is the minimum version that will work with the PICkit 4 hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 4 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SNAP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 5.40 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 5.40 is the minimum version that will work with the Snap hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the Snap depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICD3===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the ICD3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the ICD3'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FS USB===&lt;br /&gt;
&lt;br /&gt;
Flowcode PIC comes with a example for using the free microchip USB bootloader. Changing your target to the MCHP_FSUSB will automatically configure the programmer to use the Microchip PDFSUSB programming tool. Note - The USB bootloader firmware must be present on the device to allow the programming tool to connect correctly to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TINY PIC Bootloader===&lt;br /&gt;
&lt;br /&gt;
Support for the Serial TINY PIC Bootloader is documented [http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=5&amp;amp;t=4647 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AVR==&lt;br /&gt;
&lt;br /&gt;
===AVRISP mkII===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===USB Tiny===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc_usbtiny.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AVR Dude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
The AVRDUDE programming tool supports a number of third party programmers for more help and information please visit the [http://savannah.nongnu.org/projects/avrdude/ AVRDUDE home page].&lt;br /&gt;
&lt;br /&gt;
[http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/ AVRDUDESS] is a graphical user interface for AVRdude. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Flowcode Arduino allows you to specify a COM port to connect to the Arduino hardware via the Flowcode Project options window. Once you have specified the COM port and selected the correct target board the compile to chip option should program the Arduino device automatically using AVR dude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino Mega 2560 R1/R2===&lt;br /&gt;
&lt;br /&gt;
Flowcode is currently unable to program early versions of the Arduino Mega hardware. To program these devices use the tool [http://russemotto.com/xloader/ Xloader] to manually load the Flowcode generated .hex file onto the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&lt;br /&gt;
Flowcode ARM comes with a set of precompiled bootloader files. This allows the matrix mLoader USB reprogrammable operation to be used on any third party ARM hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including EB006, EB064, EB031, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-eb0310 &amp;quot;$(target).s19&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SAM-BA===&lt;br /&gt;
&lt;br /&gt;
The SAM-BA tool is provided by Atmel and works with the default SAM7S bootloader which can be automatically restored to the device by powering up the ARM hardware for ten seconds using the TST jumper in the none default setting. Note this will delete the Matrix USB bootloader from the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ST ARM==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ST-LINK===&lt;br /&gt;
&lt;br /&gt;
Flowcode by default is setup to use the ST-LINK programmer using the compile to chip option. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Discovery===&lt;br /&gt;
&lt;br /&gt;
Discovery boards are programmed by dropping the compiled binary firmware file onto a drive that appears under My Computer. Flowcode can automatically place the file onto the drive for you when using the compile to chip option with a discovery board selected as the target device.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Nucleo===&lt;br /&gt;
&lt;br /&gt;
Nucleo boards have a ST-LINK programmer built onto the board and so these work like standard ST ARM targets only without the additional requirement of a ST-LINK programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
&lt;br /&gt;
Raspberry Pi boards can be programmed over the network using Putty which is included with Flowcode. Enter the network details for the Pi into the Flowcode project options and this will allow the compile to chip to connect to the Pi using Putty via a SSH connection. SSH must be enabled on your Pi for this to function correctly but this should be enabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AISX Presto/Forte==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First, make sure you have the latest UP installed on your computer. &lt;br /&gt;
Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Program Files (x86)\ASIX\UP\up.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/p /q &amp;quot;$(outdir)$(target).hex&amp;quot; /part PIC$(chip)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way the command line works is by using the last UP.exe settings.&lt;br /&gt;
&lt;br /&gt;
If you want to use the programmer’s internal supply.&lt;br /&gt;
&lt;br /&gt;
Open UP.exe and within the programmer settings window, select During programming check box.&lt;br /&gt;
&lt;br /&gt;
I would also recommend changing Delay for VDD switching on/off when supplied from programmer from 10000 to 50000.&lt;br /&gt;
&lt;br /&gt;
Close UP then all is ready for programming.&lt;br /&gt;
&lt;br /&gt;
If you want to see a popup progress bar during programming, remove /q from the parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
Presto can only supply VDD 5.0V and VPP 13.0V &lt;br /&gt;
Forte can supply VDD 2.0V to 5.5V and VPP 6.5V to 17 Automatically, depending on the selected target device.&lt;br /&gt;
&lt;br /&gt;
If you are looking for additional command line programming the manual is available from [https://asix.tech/_programmers/presto_en.pdf here] on page 63 at the time of writing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mikroProg/Easypic==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Users\Public\Documents\Mikroelektronika\mikroProg Suite For PIC\mikroProg Suite For PIC.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-e -w -pPIC$(chip) -v -f&amp;quot;$(outdir)$(target).hex&amp;quot; -q'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the -v is verify enabled. &lt;br /&gt;
Verification will increase overall programming time.&lt;br /&gt;
If you want to speed up programming then you can remove -v&lt;br /&gt;
&lt;br /&gt;
-q quits the programming suite.&lt;br /&gt;
If you want the suit to remain after programming then -q can be removed.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41687</id>
		<title>Supporting Third Party Programming Tools</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41687"/>
		<updated>2025-08-29T10:28:02Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* mikroProg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Gen_Compiler_Options_Programmer_PIC.png|right|524x400px]]&lt;br /&gt;
Each version of Flowcode comes ready with a default programming tool. However it is fairly easy to change the settings in Flowcode to allow for third party programming tools to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The programming tool that is invoked when the compile to chip button is pressed is configured in the '''Build menu''' under '''Compiler options''' then click on the '''Programmer tab''' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For help with third party programming tools the first port of call should be to check our [http://www.matrixmultimedia.com/mmforums/ forums] to see if anyone else has already tried the programming tool with Flowcode. If you are the first then if you wish you can post your findings for other users to benefit from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
Editing the Compiler or Linker tabs of the compiler options will likely stop Flowcode from being able to compile correctly unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
The settings below are for the '''Programmer''' tab of the compiler options. &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do edit the values in the compiler or linker tab then you can simply revert back to the default settings and start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microchip PIC / PIC16 / PIC32==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including E-blocks, E-blocks2, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-chip $(chip:u) &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PPP===&lt;br /&gt;
&lt;br /&gt;
PPP is the older programming software from Flowcode v5 and previous and can be used to talk to versions of the E-blocks EB006 up to and including version 8. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PPP\PPPv3.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-cs 2 -chip PIC$(chip:u) -nogui &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit2\pk2cmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-B$(appdir)tools\PICkit2\ -PPIC$(chip) -F$(target).hex -M -A5 -R'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Details on how to upgrade your PICkit 2 to work with new targets are available from [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=16843 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 2 was never designed to work with the newer devices and although it is known to work, you may cause damage to your PIC devices by using incorrect VPP programming voltages etc as supplied by the PICkit 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - PK3CMD (OLD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V5 -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V3.3 -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 3 will fail to program if you have spaces in your Flowcode project name, replacing spaces with underscores or removing them completely should resolve the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also note that if your using the PICkit 3 with MPLABX or have bought a new one recently then you will likely have to downgrade the firmware to allow Flowcode to work with the PICkit.&lt;br /&gt;
&lt;br /&gt;
Full details on how to do this are available from [http://woodworkerb.com/pickit-3-and-flowcode-6/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your still having problems getting the PICkit 3 to fire up then this [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=12970&amp;amp;p=58454#p52318 forum topic] may be of help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - IPE (NEW)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use the Microchip Real ICE programmer instead of the PICkit 3 substitute the parameter /TPPK3 with /TPRICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit4===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 4.20 is the minimum version that will work with the PICkit 4 hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 4 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SNAP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 5.40 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 5.40 is the minimum version that will work with the Snap hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the Snap depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICD3===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the ICD3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the ICD3'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FS USB===&lt;br /&gt;
&lt;br /&gt;
Flowcode PIC comes with a example for using the free microchip USB bootloader. Changing your target to the MCHP_FSUSB will automatically configure the programmer to use the Microchip PDFSUSB programming tool. Note - The USB bootloader firmware must be present on the device to allow the programming tool to connect correctly to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TINY PIC Bootloader===&lt;br /&gt;
&lt;br /&gt;
Support for the Serial TINY PIC Bootloader is documented [http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=5&amp;amp;t=4647 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AVR==&lt;br /&gt;
&lt;br /&gt;
===AVRISP mkII===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===USB Tiny===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc_usbtiny.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AVR Dude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
The AVRDUDE programming tool supports a number of third party programmers for more help and information please visit the [http://savannah.nongnu.org/projects/avrdude/ AVRDUDE home page].&lt;br /&gt;
&lt;br /&gt;
[http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/ AVRDUDESS] is a graphical user interface for AVRdude. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Flowcode Arduino allows you to specify a COM port to connect to the Arduino hardware via the Flowcode Project options window. Once you have specified the COM port and selected the correct target board the compile to chip option should program the Arduino device automatically using AVR dude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino Mega 2560 R1/R2===&lt;br /&gt;
&lt;br /&gt;
Flowcode is currently unable to program early versions of the Arduino Mega hardware. To program these devices use the tool [http://russemotto.com/xloader/ Xloader] to manually load the Flowcode generated .hex file onto the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&lt;br /&gt;
Flowcode ARM comes with a set of precompiled bootloader files. This allows the matrix mLoader USB reprogrammable operation to be used on any third party ARM hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including EB006, EB064, EB031, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-eb0310 &amp;quot;$(target).s19&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SAM-BA===&lt;br /&gt;
&lt;br /&gt;
The SAM-BA tool is provided by Atmel and works with the default SAM7S bootloader which can be automatically restored to the device by powering up the ARM hardware for ten seconds using the TST jumper in the none default setting. Note this will delete the Matrix USB bootloader from the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ST ARM==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ST-LINK===&lt;br /&gt;
&lt;br /&gt;
Flowcode by default is setup to use the ST-LINK programmer using the compile to chip option. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Discovery===&lt;br /&gt;
&lt;br /&gt;
Discovery boards are programmed by dropping the compiled binary firmware file onto a drive that appears under My Computer. Flowcode can automatically place the file onto the drive for you when using the compile to chip option with a discovery board selected as the target device.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Nucleo===&lt;br /&gt;
&lt;br /&gt;
Nucleo boards have a ST-LINK programmer built onto the board and so these work like standard ST ARM targets only without the additional requirement of a ST-LINK programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
&lt;br /&gt;
Raspberry Pi boards can be programmed over the network using Putty which is included with Flowcode. Enter the network details for the Pi into the Flowcode project options and this will allow the compile to chip to connect to the Pi using Putty via a SSH connection. SSH must be enabled on your Pi for this to function correctly but this should be enabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AISX Presto/Forte==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First, make sure you have the latest UP installed on your computer. &lt;br /&gt;
Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Program Files (x86)\ASIX\UP\up.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/p /q &amp;quot;$(outdir)$(target).hex&amp;quot; /part PIC$(chip)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way the command line works is by using the last UP.exe settings.&lt;br /&gt;
&lt;br /&gt;
If you want to use the programmer’s internal supply.&lt;br /&gt;
&lt;br /&gt;
Open UP.exe and within the programmer settings window, select During programming check box.&lt;br /&gt;
&lt;br /&gt;
I would also recommend changing Delay for VDD switching on/off when supplied from programmer from 10000 to 50000.&lt;br /&gt;
&lt;br /&gt;
Close UP then all is ready for programming.&lt;br /&gt;
&lt;br /&gt;
If you want to see a popup progress bar during programming, remove /q from the parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
Presto can only supply VDD 5.0V and VPP 13.0V &lt;br /&gt;
Forte can supply VDD 2.0V to 5.5V and VPP 6.5V to 17 Automatically, depending on the selected target device.&lt;br /&gt;
&lt;br /&gt;
If you are looking for additional command line programming the manual is available from [https://asix.tech/_programmers/presto_en.pdf here] on page 63 at the time of writing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mikroProg/Easypic==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Users\Public\Documents\Mikroelektronika\mikroProg Suite For PIC\mikroProg Suite For PIC.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-e -w -pPIC$(chip) -v -f&amp;quot;$(outdir)$(target).hex&amp;quot; -q'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the -v is verify enabled. &lt;br /&gt;
Verification will increase overall programming time.&lt;br /&gt;
If you want to speed up programming then you can remove -v&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41686</id>
		<title>Supporting Third Party Programming Tools</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41686"/>
		<updated>2025-08-29T09:59:26Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Gen_Compiler_Options_Programmer_PIC.png|right|524x400px]]&lt;br /&gt;
Each version of Flowcode comes ready with a default programming tool. However it is fairly easy to change the settings in Flowcode to allow for third party programming tools to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The programming tool that is invoked when the compile to chip button is pressed is configured in the '''Build menu''' under '''Compiler options''' then click on the '''Programmer tab''' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For help with third party programming tools the first port of call should be to check our [http://www.matrixmultimedia.com/mmforums/ forums] to see if anyone else has already tried the programming tool with Flowcode. If you are the first then if you wish you can post your findings for other users to benefit from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
Editing the Compiler or Linker tabs of the compiler options will likely stop Flowcode from being able to compile correctly unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
The settings below are for the '''Programmer''' tab of the compiler options. &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do edit the values in the compiler or linker tab then you can simply revert back to the default settings and start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microchip PIC / PIC16 / PIC32==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including E-blocks, E-blocks2, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-chip $(chip:u) &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PPP===&lt;br /&gt;
&lt;br /&gt;
PPP is the older programming software from Flowcode v5 and previous and can be used to talk to versions of the E-blocks EB006 up to and including version 8. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PPP\PPPv3.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-cs 2 -chip PIC$(chip:u) -nogui &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit2\pk2cmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-B$(appdir)tools\PICkit2\ -PPIC$(chip) -F$(target).hex -M -A5 -R'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Details on how to upgrade your PICkit 2 to work with new targets are available from [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=16843 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 2 was never designed to work with the newer devices and although it is known to work, you may cause damage to your PIC devices by using incorrect VPP programming voltages etc as supplied by the PICkit 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - PK3CMD (OLD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V5 -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V3.3 -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 3 will fail to program if you have spaces in your Flowcode project name, replacing spaces with underscores or removing them completely should resolve the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also note that if your using the PICkit 3 with MPLABX or have bought a new one recently then you will likely have to downgrade the firmware to allow Flowcode to work with the PICkit.&lt;br /&gt;
&lt;br /&gt;
Full details on how to do this are available from [http://woodworkerb.com/pickit-3-and-flowcode-6/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your still having problems getting the PICkit 3 to fire up then this [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=12970&amp;amp;p=58454#p52318 forum topic] may be of help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - IPE (NEW)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use the Microchip Real ICE programmer instead of the PICkit 3 substitute the parameter /TPPK3 with /TPRICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit4===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 4.20 is the minimum version that will work with the PICkit 4 hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 4 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SNAP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 5.40 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 5.40 is the minimum version that will work with the Snap hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the Snap depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICD3===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the ICD3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the ICD3'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FS USB===&lt;br /&gt;
&lt;br /&gt;
Flowcode PIC comes with a example for using the free microchip USB bootloader. Changing your target to the MCHP_FSUSB will automatically configure the programmer to use the Microchip PDFSUSB programming tool. Note - The USB bootloader firmware must be present on the device to allow the programming tool to connect correctly to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TINY PIC Bootloader===&lt;br /&gt;
&lt;br /&gt;
Support for the Serial TINY PIC Bootloader is documented [http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=5&amp;amp;t=4647 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AVR==&lt;br /&gt;
&lt;br /&gt;
===AVRISP mkII===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===USB Tiny===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc_usbtiny.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AVR Dude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
The AVRDUDE programming tool supports a number of third party programmers for more help and information please visit the [http://savannah.nongnu.org/projects/avrdude/ AVRDUDE home page].&lt;br /&gt;
&lt;br /&gt;
[http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/ AVRDUDESS] is a graphical user interface for AVRdude. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Flowcode Arduino allows you to specify a COM port to connect to the Arduino hardware via the Flowcode Project options window. Once you have specified the COM port and selected the correct target board the compile to chip option should program the Arduino device automatically using AVR dude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino Mega 2560 R1/R2===&lt;br /&gt;
&lt;br /&gt;
Flowcode is currently unable to program early versions of the Arduino Mega hardware. To program these devices use the tool [http://russemotto.com/xloader/ Xloader] to manually load the Flowcode generated .hex file onto the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&lt;br /&gt;
Flowcode ARM comes with a set of precompiled bootloader files. This allows the matrix mLoader USB reprogrammable operation to be used on any third party ARM hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including EB006, EB064, EB031, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-eb0310 &amp;quot;$(target).s19&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SAM-BA===&lt;br /&gt;
&lt;br /&gt;
The SAM-BA tool is provided by Atmel and works with the default SAM7S bootloader which can be automatically restored to the device by powering up the ARM hardware for ten seconds using the TST jumper in the none default setting. Note this will delete the Matrix USB bootloader from the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ST ARM==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ST-LINK===&lt;br /&gt;
&lt;br /&gt;
Flowcode by default is setup to use the ST-LINK programmer using the compile to chip option. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Discovery===&lt;br /&gt;
&lt;br /&gt;
Discovery boards are programmed by dropping the compiled binary firmware file onto a drive that appears under My Computer. Flowcode can automatically place the file onto the drive for you when using the compile to chip option with a discovery board selected as the target device.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Nucleo===&lt;br /&gt;
&lt;br /&gt;
Nucleo boards have a ST-LINK programmer built onto the board and so these work like standard ST ARM targets only without the additional requirement of a ST-LINK programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
&lt;br /&gt;
Raspberry Pi boards can be programmed over the network using Putty which is included with Flowcode. Enter the network details for the Pi into the Flowcode project options and this will allow the compile to chip to connect to the Pi using Putty via a SSH connection. SSH must be enabled on your Pi for this to function correctly but this should be enabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AISX Presto/Forte==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First, make sure you have the latest UP installed on your computer. &lt;br /&gt;
Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Program Files (x86)\ASIX\UP\up.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/p /q &amp;quot;$(outdir)$(target).hex&amp;quot; /part PIC$(chip)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way the command line works is by using the last UP.exe settings.&lt;br /&gt;
&lt;br /&gt;
If you want to use the programmer’s internal supply.&lt;br /&gt;
&lt;br /&gt;
Open UP.exe and within the programmer settings window, select During programming check box.&lt;br /&gt;
&lt;br /&gt;
I would also recommend changing Delay for VDD switching on/off when supplied from programmer from 10000 to 50000.&lt;br /&gt;
&lt;br /&gt;
Close UP then all is ready for programming.&lt;br /&gt;
&lt;br /&gt;
If you want to see a popup progress bar during programming, remove /q from the parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
Presto can only supply VDD 5.0V and VPP 13.0V &lt;br /&gt;
Forte can supply VDD 2.0V to 5.5V and VPP 6.5V to 17 Automatically, depending on the selected target device.&lt;br /&gt;
&lt;br /&gt;
If you are looking for additional command line programming the manual is available from [https://asix.tech/_programmers/presto_en.pdf here] on page 63 at the time of writing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==mikroProg==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Users\Public\Documents\Mikroelektronika\mikroProg Suite For PIC\mikroProg Suite For PIC.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-e -w -pPIC$(chip) -v -f&amp;quot;$(outdir)$(target).hex&amp;quot; -q'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the -v is verify enabled. &lt;br /&gt;
Verification will increase overall programming time.&lt;br /&gt;
If you want to speed up programming then you can remove -v&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Replacing_a_Component&amp;diff=41685</id>
		<title>Replacing a Component</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Replacing_a_Component&amp;diff=41685"/>
		<updated>2025-08-14T10:11:35Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Component Replace function allows you to replace an existing component with another component with similar functionality, when replacing a component the properties are kept and copied over to the new component, e.g. the port and pin the component is connected to and even properties such as the Polarity etc.&lt;br /&gt;
&lt;br /&gt;
There is also an option to 'Preserve current scale' which can be ticked to keep the size / scale of the component, this is especially useful when modifying and expanding existing programs so that the position and size of the component remain the same to adapt into the program as the position of the component is kept the same by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To replace a component,first add the component that you  wish to have as a replacement, this will add the component to Flowcodes memory.&lt;br /&gt;
You can copy the handle of the new component at this point since the handle will remain the same on changed component.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now delete the component you just added as its served its purpose  &lt;br /&gt;
&lt;br /&gt;
right-click on a selected component on either the [[2d_Panels|2D panels]] or [[System_Panel|3D system panel]] and then select 'Replace' option in the context menu. This brings up the 'Component Replacement' window which contains a list of components to choose from to replace the component. This list consists of recently used components as well as components with similar functionality to adequately replace the selected component.&lt;br /&gt;
There will be times when the required replacement component won't be shown.&lt;br /&gt;
For example, the LED Mono is currently used and you want to replace it with an LED that will use your own images. &lt;br /&gt;
&lt;br /&gt;
[[File:Component-Replace1.png]]&lt;br /&gt;
&lt;br /&gt;
There are a lot of LED Mono macros to replace so it would be a lot quicker to use the replace option. &lt;br /&gt;
In this case, there are no alternative components as the 'Replace' option is grayed out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Component-Replace2.png]]&lt;br /&gt;
&lt;br /&gt;
Now the replace option is no longer greyed out so you can select the LED user images.&lt;br /&gt;
&lt;br /&gt;
[[File:Component-Replace3.png]]&lt;br /&gt;
&lt;br /&gt;
Finally, you might want to change the component title name as that will remain as the original components name, by clicking on the name next to Handle.&lt;br /&gt;
&lt;br /&gt;
[[File:Component-Replace4.png]]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Using_a_new_version_of_XC8&amp;diff=41507</id>
		<title>Using a new version of XC8</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Using_a_new_version_of_XC8&amp;diff=41507"/>
		<updated>2025-05-14T07:49:24Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Keeping the original compiler and adding a new compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Replacing the original  compiler with a new version==&lt;br /&gt;
&lt;br /&gt;
Download compiler from [https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers here]&lt;br /&gt;
&lt;br /&gt;
Find required compiler version to install then remember the compiler install path.&lt;br /&gt;
&lt;br /&gt;
Within Flowcode, select '''File''' &amp;gt; '''Global Settings…''' &amp;gt; '''Locations tab''' &lt;br /&gt;
&lt;br /&gt;
Under Override toolchain locations, enter the path where installed XC8 is located, e.g. for v2.50:&lt;br /&gt;
'''C:\Program Files\Microchip\xc8\v2.50'''&lt;br /&gt;
The end \ can be left off, Select OK. &lt;br /&gt;
&lt;br /&gt;
You now be able to compile used the latest XC8 compiler.&lt;br /&gt;
&lt;br /&gt;
To change back to the original compiler, replace the above path with:&lt;br /&gt;
&lt;br /&gt;
'''C:\Program Files (x86)\Flowcode\Common\Compilers\picv2\'''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Note. Currently XC8 v3.0 and above is not yet supported.&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
==Keeping the original compiler and adding a new compiler==&lt;br /&gt;
&lt;br /&gt;
Download compiler from [https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers here]&lt;br /&gt;
&lt;br /&gt;
Find required compiler version to install then remember the compiler install path.&lt;br /&gt;
&lt;br /&gt;
Copy  '''pic_xc8_comp.bat''' '''from C:\ProgramData\MatrixTSL\FlowcodeV10\FCD\PIC\batch\'''&lt;br /&gt;
&lt;br /&gt;
Give it a new name so you have two batch files, place it anywhere you won’t accidently delete it.&lt;br /&gt;
&lt;br /&gt;
Edit the file and change '''&amp;quot;%MX_COMPILER%bin\xc8-cc.exe&amp;quot;'''  to the path for the new XC8 location of xc8-cc.exe.&lt;br /&gt;
For example:&lt;br /&gt;
'''&amp;quot;C:\Program Files\Microchip\xc8\v2.50\bin\xc8-cc.exe&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Save the new batch file.&lt;br /&gt;
&lt;br /&gt;
Within Flowcode Load a typical PIC xc8 target e.g. 16F18877via New project or Build &amp;gt; Project options.&lt;br /&gt;
&lt;br /&gt;
Select  '''Build''' &amp;gt;  '''Compiler Options''' and if use Eblocks, select '''E-Blocks''' from PIC selection.&lt;br /&gt;
&lt;br /&gt;
For the location select Browse then change '''Executable Files (*.exe)''' to '''Batch Files (*.bat)'''&lt;br /&gt;
&lt;br /&gt;
Select the new batch file, then '''Open'''&lt;br /&gt;
&lt;br /&gt;
Click on the save icon then enter a new name, then '''OK'''.&lt;br /&gt;
&lt;br /&gt;
Finally make sure the new version is selected and click the  '''Default compiler for the platform C for PIC''' ,then Click '''OK'''&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Using_a_new_version_of_XC8&amp;diff=41506</id>
		<title>Using a new version of XC8</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Using_a_new_version_of_XC8&amp;diff=41506"/>
		<updated>2025-05-14T07:48:17Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Replacing the original  compiler with a new version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Replacing the original  compiler with a new version==&lt;br /&gt;
&lt;br /&gt;
Download compiler from [https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers here]&lt;br /&gt;
&lt;br /&gt;
Find required compiler version to install then remember the compiler install path.&lt;br /&gt;
&lt;br /&gt;
Within Flowcode, select '''File''' &amp;gt; '''Global Settings…''' &amp;gt; '''Locations tab''' &lt;br /&gt;
&lt;br /&gt;
Under Override toolchain locations, enter the path where installed XC8 is located, e.g. for v2.50:&lt;br /&gt;
'''C:\Program Files\Microchip\xc8\v2.50'''&lt;br /&gt;
The end \ can be left off, Select OK. &lt;br /&gt;
&lt;br /&gt;
You now be able to compile used the latest XC8 compiler.&lt;br /&gt;
&lt;br /&gt;
To change back to the original compiler, replace the above path with:&lt;br /&gt;
&lt;br /&gt;
'''C:\Program Files (x86)\Flowcode\Common\Compilers\picv2\'''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Note. Currently XC8 v3.0 and above is not yet supported.&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
==Keeping the original compiler and adding a new compiler==&lt;br /&gt;
&lt;br /&gt;
Download compiler from [https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers here]&lt;br /&gt;
&lt;br /&gt;
Find required compiler version to install then remember the compiler install path.&lt;br /&gt;
&lt;br /&gt;
Copy  '''pic_xc8_comp.bat''' '''from C:\ProgramData\MatrixTSL\FlowcodeV10\FCD\PIC\batch\'''&lt;br /&gt;
&lt;br /&gt;
Give it a new name so you have two batch files, place it anywhere you won’t accidently delete it.&lt;br /&gt;
&lt;br /&gt;
Edit the file and change '''&amp;quot;%MX_COMPILER%bin\xc8-cc.exe&amp;quot;'''  to the path for the new XC8 location of xc8-cc.exe.&lt;br /&gt;
For example:&lt;br /&gt;
'''&amp;quot;C:\Program Files\Microchip\xc8\v2.46\bin\xc8-cc.exe&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Save the new batch file0.&lt;br /&gt;
&lt;br /&gt;
Within Flowcode Load a typical PIC xc8 target e.g. 16F18877via New project or Build &amp;gt; Project options.&lt;br /&gt;
&lt;br /&gt;
Select  '''Build''' &amp;gt;  '''Compiler Options''' and if use Eblocks, select '''E-Blocks''' from PIC selection.&lt;br /&gt;
&lt;br /&gt;
For the location select Browse then change '''Executable Files (*.exe)''' to '''Batch Files (*.bat)'''&lt;br /&gt;
&lt;br /&gt;
Select the new batch file, then '''Open'''&lt;br /&gt;
&lt;br /&gt;
Click on the save icon then enter a new name, then '''OK'''.&lt;br /&gt;
&lt;br /&gt;
Finally make sure the new version is selected and click the  '''Default compiler for the platform C for PIC''' ,then Click '''OK'''&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41504</id>
		<title>Component: Switch (Controls)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41504"/>
		<updated>2025-05-02T08:39:58Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Switch component==&lt;br /&gt;
A 2d switch component.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example Flowcode program to read the value of a switch.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|Switch.fcfx|Switch}}&lt;br /&gt;
&lt;br /&gt;
Here is a schematic of how to connect a basic switch to a microcontroller pin.&lt;br /&gt;
&lt;br /&gt;
[[File:switchschematic.jpg]]&lt;br /&gt;
&lt;br /&gt;
The polarity setting in switch properties determines how the corresponding bit in the input variable responds when the switch changes state. &lt;br /&gt;
&lt;br /&gt;
This applies only when using switch functions and not when using input command icons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active High Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from 0V to the positive supply voltage (either 3.3V or 5V, depending on the microcontroller).&lt;br /&gt;
&lt;br /&gt;
As a result, the corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-down resistor is required to ensure the pin stays at 0V when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors (as shown in the image above), they provide protection in case the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active Low Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from the positive supply voltage to 0V.&lt;br /&gt;
&lt;br /&gt;
The corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-up resistor is required to ensure the pin stays at the positive supply voltage when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors(as shown in the image above), they provide protection if the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some differences depending on the type of switch you have, the above states assume a generic push to make type switch, however a push to break type switch would have reversed logic and a toggle switch can work well with either setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The resistors are required for correct operation because when a microcontroller's input pin is essentially connected to nothing it will pick up noise in the environment and provide inconsistent readings.&lt;br /&gt;
&lt;br /&gt;
This state is referred to as floating i.e. the pin is floating. To test this remove the resistors (if possible) and touch the unconnected pin with your finger the output LED from the example file above will toggle on and off at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any values of resistor can be used but it is important to keep the smaller resistor at least 10X smaller then the larger resistor to ensure that the pressed state provides at least 0.91% of the required pressed state voltage. &lt;br /&gt;
&lt;br /&gt;
For example a active high switch circuit using 1K and 10K resistors should pull up to about 4.54V when the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
(5V / 11K) * 10K = 4.54545V&lt;br /&gt;
&lt;br /&gt;
==Downloadable macro reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the state of the switch (true = on, false = off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the switch to be on or off.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | bState&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The new state of the switch (true=on, false=off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | State&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | On Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Off Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background Colour&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Connections''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Simulations''' &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41503</id>
		<title>Component: Switch (Controls)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41503"/>
		<updated>2025-05-02T08:39:06Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Steve Tandy &amp;amp; Martin Whitlock&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Controls&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Switch component==&lt;br /&gt;
A 2d switch component.&lt;br /&gt;
&lt;br /&gt;
==Component Pack==&lt;br /&gt;
&lt;br /&gt;
FREE&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example Flowcode program to read the value of a switch.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|Switch.fcfx|Switch}}&lt;br /&gt;
&lt;br /&gt;
Here is a schematic of how to connect a basic switch to a microcontroller pin.&lt;br /&gt;
&lt;br /&gt;
[[File:switchschematic.jpg]]&lt;br /&gt;
&lt;br /&gt;
The polarity setting in switch properties determines how the corresponding bit in the input variable responds when the switch changes state. &lt;br /&gt;
&lt;br /&gt;
This applies only when using switch functions and not when using input command icons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active High Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from 0V to the positive supply voltage (either 3.3V or 5V, depending on the microcontroller).&lt;br /&gt;
&lt;br /&gt;
As a result, the corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-down resistor is required to ensure the pin stays at 0V when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors (as shown in the image above), they provide protection in case the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active Low Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from the positive supply voltage to 0V.&lt;br /&gt;
&lt;br /&gt;
The corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-up resistor is required to ensure the pin stays at the positive supply voltage when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors(as shown in the image above), they provide protection if the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some differences depending on the type of switch you have, the above states assume a generic push to make type switch, however a push to break type switch would have reversed logic and a toggle switch can work well with either setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The resistors are required for correct operation because when a microcontroller's input pin is essentially connected to nothing it will pick up noise in the environment and provide inconsistent readings.&lt;br /&gt;
&lt;br /&gt;
This state is referred to as floating i.e. the pin is floating. To test this remove the resistors (if possible) and touch the unconnected pin with your finger the output LED from the example file above will toggle on and off at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any values of resistor can be used but it is important to keep the smaller resistor at least 10X smaller then the larger resistor to ensure that the pressed state provides at least 0.91% of the required pressed state voltage. &lt;br /&gt;
&lt;br /&gt;
For example a active high switch circuit using 1K and 10K resistors should pull up to about 4.54V when the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
(5V / 11K) * 10K = 4.54545V&lt;br /&gt;
&lt;br /&gt;
==Downloadable macro reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the state of the switch (true = on, false = off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the switch to be on or off.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | bState&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The new state of the switch (true=on, false=off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | State&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | On Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Off Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background Colour&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Connections''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Simulations''' &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41502</id>
		<title>Component: Switch (Controls)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41502"/>
		<updated>2025-05-02T08:38:04Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Steve Tandy&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Controls&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Switch component==&lt;br /&gt;
A 2d switch component.&lt;br /&gt;
&lt;br /&gt;
==Component Pack==&lt;br /&gt;
&lt;br /&gt;
FREE&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example Flowcode program to read the value of a switch.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|Switch.fcfx|Switch}}&lt;br /&gt;
&lt;br /&gt;
Here is a schematic of how to connect a basic switch to a microcontroller pin.&lt;br /&gt;
&lt;br /&gt;
[[File:switchschematic.jpg]]&lt;br /&gt;
&lt;br /&gt;
The polarity setting in switch properties determines how the corresponding bit in the input variable responds when the switch changes state. &lt;br /&gt;
&lt;br /&gt;
This applies only when using switch functions and not when using input command icons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active High Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from 0V to the positive supply voltage (either 3.3V or 5V, depending on the microcontroller).&lt;br /&gt;
&lt;br /&gt;
As a result, the corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-down resistor is required to ensure the pin stays at 0V when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors (as shown in the image above), they provide protection in case the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Active Low Polarity&lt;br /&gt;
&lt;br /&gt;
When the switch is closed, the voltage on the pin transitions from the positive supply voltage to 0V.&lt;br /&gt;
&lt;br /&gt;
The corresponding bit in the input variable changes from 0 to 1.&lt;br /&gt;
&lt;br /&gt;
A pull-up resistor is required to ensure the pin stays at the positive supply voltage when the switch is open.&lt;br /&gt;
&lt;br /&gt;
If using two resistors(as shown in the image above), they provide protection if the pin is mistakenly set as an output while the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some differences depending on the type of switch you have, the above states assume a generic push to make type switch, however a push to break type switch would have reversed logic and a toggle switch can work well with either setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The resistors are required for correct operation because when a microcontroller's input pin is essentially connected to nothing it will pick up noise in the environment and provide inconsistent readings.&lt;br /&gt;
&lt;br /&gt;
This state is referred to as floating i.e. the pin is floating. To test this remove the resistors (if possible) and touch the unconnected pin with your finger the output LED from the example file above will toggle on and off at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any values of resistor can be used but it is important to keep the smaller resistor at least 10X smaller then the larger resistor to ensure that the pressed state provides at least 0.91% of the required pressed state voltage. &lt;br /&gt;
&lt;br /&gt;
For example a active high switch circuit using 1K and 10K resistors should pull up to about 4.54V when the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
(5V / 11K) * 10K = 4.54545V&lt;br /&gt;
&lt;br /&gt;
==Downloadable macro reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the state of the switch (true = on, false = off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the switch to be on or off.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | bState&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The new state of the switch (true=on, false=off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | State&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | On Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Off Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background Colour&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Connections''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Simulations''' &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41501</id>
		<title>Component: Switch (Controls)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Switch_(Controls)&amp;diff=41501"/>
		<updated>2025-05-02T08:27:19Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Steve Tandy&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Controls&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Switch component==&lt;br /&gt;
A 2d switch component.&lt;br /&gt;
&lt;br /&gt;
==Component Pack==&lt;br /&gt;
&lt;br /&gt;
FREE&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example Flowcode program to read the value of a switch.&lt;br /&gt;
{{Fcfile|Switch.fcfx|Switch}}&lt;br /&gt;
&lt;br /&gt;
Here is a schematic of how to connect a basic switch to a microcontroller pin.&lt;br /&gt;
&lt;br /&gt;
[[File:switchschematic.jpg]]&lt;br /&gt;
&lt;br /&gt;
The polarity setting within the switch properties determines how the relevant bit of the input variable responds when a switch changes state.&lt;br /&gt;
This applies only when using switch functions and not when using input command icons.&lt;br /&gt;
*	Active High Polarity: When the switch is closed, the voltage on the pin transitions from 0V to the positive supply voltage (either 3.3V or 5V, depending on the microcontroller). As a result, the corresponding bit in the input variable changes from 0 to 1. A pull-down resistor is required for the input pin to ensure it stays at 0V when the switch is open.&lt;br /&gt;
*	Active Low Polarity: When the switch is closed, the voltage on the pin transitions from the positive supply voltage to 0V, and again, the relevant bit of the input variable changes from 0 to 1. A pull-up resistor is required for the input pin to ensure it stays at the positive supply voltage when the switch is open.&lt;br /&gt;
&lt;br /&gt;
There are some differences depending on the type of switch you have, the above states assume a generic push to make type switch, however a push to break type switch would have reversed logic and a toggle switch can work well with either setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The resistors are required for correct operation because when a microcontroller's input pin is essentially connected to nothing it will pick up noise in the environment and provide inconsistent readings. This state is referred to as floating i.e. the pin is floating. To test this remove the resistors (if possible) and touch the unconnected pin with your finger the output LED from the example file above will toggle on and off at high speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any values of resistor can be used but it is important to keep the smaller resistor at least 10X smaller then the larger resistor to ensure that the pressed state provides at least 0.91% of the required pressed state voltage. For example a active high switch circuit using 1K and 10K resistors should pull up to about 4.54V when the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
(5V / 11K) * 10K = 4.54545V&lt;br /&gt;
&lt;br /&gt;
==Downloadable macro reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the state of the switch (true = on, false = off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetState'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the switch to be on or off.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | bState&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The new state of the switch (true=on, false=off)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | State&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | On Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Off Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background Colour&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Connections''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Simulations''' &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41500</id>
		<title>Supporting Third Party Programming Tools</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41500"/>
		<updated>2025-04-23T15:09:28Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* AISX Presto/Forte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Gen_Compiler_Options_Programmer_PIC.png|right|524x400px]]&lt;br /&gt;
Each version of Flowcode comes ready with a default programming tool. However it is fairly easy to change the settings in Flowcode to allow for third party programming tools to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The programming tool that is invoked when the compile to chip button is pressed is configured in the '''Build menu''' under '''Compiler options''' then click on the '''Programmer tab''' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For help with third party programming tools the first port of call should be to check our [http://www.matrixmultimedia.com/mmforums/ forums] to see if anyone else has already tried the programming tool with Flowcode. If you are the first then if you wish you can post your findings for other users to benefit from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
Editing the Compiler or Linker tabs of the compiler options will likely stop Flowcode from being able to compile correctly unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
The settings below are for the '''Programmer''' tab of the compiler options. &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do edit the values in the compiler or linker tab then you can simply revert back to the default settings and start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microchip PIC / PIC16 / PIC32==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including E-blocks, E-blocks2, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-chip $(chip:u) &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PPP===&lt;br /&gt;
&lt;br /&gt;
PPP is the older programming software from Flowcode v5 and previous and can be used to talk to versions of the E-blocks EB006 up to and including version 8. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PPP\PPPv3.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-cs 2 -chip PIC$(chip:u) -nogui &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit2\pk2cmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-B$(appdir)tools\PICkit2\ -PPIC$(chip) -F$(target).hex -M -A5 -R'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Details on how to upgrade your PICkit 2 to work with new targets are available from [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=16843 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 2 was never designed to work with the newer devices and although it is known to work, you may cause damage to your PIC devices by using incorrect VPP programming voltages etc as supplied by the PICkit 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - PK3CMD (OLD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V5 -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V3.3 -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 3 will fail to program if you have spaces in your Flowcode project name, replacing spaces with underscores or removing them completely should resolve the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also note that if your using the PICkit 3 with MPLABX or have bought a new one recently then you will likely have to downgrade the firmware to allow Flowcode to work with the PICkit.&lt;br /&gt;
&lt;br /&gt;
Full details on how to do this are available from [http://woodworkerb.com/pickit-3-and-flowcode-6/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your still having problems getting the PICkit 3 to fire up then this [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=12970&amp;amp;p=58454#p52318 forum topic] may be of help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - IPE (NEW)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use the Microchip Real ICE programmer instead of the PICkit 3 substitute the parameter /TPPK3 with /TPRICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit4===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 4.20 is the minimum version that will work with the PICkit 4 hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 4 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SNAP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 5.40 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 5.40 is the minimum version that will work with the Snap hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the Snap depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICD3===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the ICD3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the ICD3'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FS USB===&lt;br /&gt;
&lt;br /&gt;
Flowcode PIC comes with a example for using the free microchip USB bootloader. Changing your target to the MCHP_FSUSB will automatically configure the programmer to use the Microchip PDFSUSB programming tool. Note - The USB bootloader firmware must be present on the device to allow the programming tool to connect correctly to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TINY PIC Bootloader===&lt;br /&gt;
&lt;br /&gt;
Support for the Serial TINY PIC Bootloader is documented [http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=5&amp;amp;t=4647 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AVR==&lt;br /&gt;
&lt;br /&gt;
===AVRISP mkII===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===USB Tiny===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc_usbtiny.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AVR Dude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
The AVRDUDE programming tool supports a number of third party programmers for more help and information please visit the [http://savannah.nongnu.org/projects/avrdude/ AVRDUDE home page].&lt;br /&gt;
&lt;br /&gt;
[http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/ AVRDUDESS] is a graphical user interface for AVRdude. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Flowcode Arduino allows you to specify a COM port to connect to the Arduino hardware via the Flowcode Project options window. Once you have specified the COM port and selected the correct target board the compile to chip option should program the Arduino device automatically using AVR dude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino Mega 2560 R1/R2===&lt;br /&gt;
&lt;br /&gt;
Flowcode is currently unable to program early versions of the Arduino Mega hardware. To program these devices use the tool [http://russemotto.com/xloader/ Xloader] to manually load the Flowcode generated .hex file onto the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&lt;br /&gt;
Flowcode ARM comes with a set of precompiled bootloader files. This allows the matrix mLoader USB reprogrammable operation to be used on any third party ARM hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including EB006, EB064, EB031, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-eb0310 &amp;quot;$(target).s19&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SAM-BA===&lt;br /&gt;
&lt;br /&gt;
The SAM-BA tool is provided by Atmel and works with the default SAM7S bootloader which can be automatically restored to the device by powering up the ARM hardware for ten seconds using the TST jumper in the none default setting. Note this will delete the Matrix USB bootloader from the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ST ARM==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ST-LINK===&lt;br /&gt;
&lt;br /&gt;
Flowcode by default is setup to use the ST-LINK programmer using the compile to chip option. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Discovery===&lt;br /&gt;
&lt;br /&gt;
Discovery boards are programmed by dropping the compiled binary firmware file onto a drive that appears under My Computer. Flowcode can automatically place the file onto the drive for you when using the compile to chip option with a discovery board selected as the target device.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Nucleo===&lt;br /&gt;
&lt;br /&gt;
Nucleo boards have a ST-LINK programmer built onto the board and so these work like standard ST ARM targets only without the additional requirement of a ST-LINK programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
&lt;br /&gt;
Raspberry Pi boards can be programmed over the network using Putty which is included with Flowcode. Enter the network details for the Pi into the Flowcode project options and this will allow the compile to chip to connect to the Pi using Putty via a SSH connection. SSH must be enabled on your Pi for this to function correctly but this should be enabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AISX Presto/Forte==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First, make sure you have the latest UP installed on your computer. &lt;br /&gt;
Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Program Files (x86)\ASIX\UP\up.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/p /q &amp;quot;$(outdir)$(target).hex&amp;quot; /part PIC$(chip)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way the command line works is by using the last UP.exe settings.&lt;br /&gt;
&lt;br /&gt;
If you want to use the programmer’s internal supply.&lt;br /&gt;
&lt;br /&gt;
Open UP.exe and within the programmer settings window, select During programming check box.&lt;br /&gt;
&lt;br /&gt;
I would also recommend changing Delay for VDD switching on/off when supplied from programmer from 10000 to 50000.&lt;br /&gt;
&lt;br /&gt;
Close UP then all is ready for programming.&lt;br /&gt;
&lt;br /&gt;
If you want to see a popup progress bar during programming, remove /q from the parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
Presto can only supply VDD 5.0V and VPP 13.0V &lt;br /&gt;
Forte can supply VDD 2.0V to 5.5V and VPP 6.5V to 17 Automatically, depending on the selected target device.&lt;br /&gt;
&lt;br /&gt;
If you are looking for additional command line programming the manual is available from [https://asix.tech/_programmers/presto_en.pdf here] on page 63 at the time of writing&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Library_Updates&amp;diff=41499</id>
		<title>Library Updates</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Library_Updates&amp;diff=41499"/>
		<updated>2025-04-10T09:54:16Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Library Updates [[file:Library_updates_icon.png]] can be  accessed via the Help ribbon or when you first [[Opening_Flowcode|open Flowcode]]&lt;br /&gt;
&lt;br /&gt;
If you select ''Library Updates'' via the Help ribbon, then you will have a dropdown giving you the options of either ''Files in-use'' or ''Full database''&lt;br /&gt;
&lt;br /&gt;
If required you can rollback a component to an earlier version.&lt;br /&gt;
&lt;br /&gt;
To do that for your current project make sure ''Files in-use'' is selected.&lt;br /&gt;
&lt;br /&gt;
Select ''Show up-to-date'' files (1)&lt;br /&gt;
&lt;br /&gt;
You will see ''Filename'', ''Current Revision'', ''New Revision'' &amp;amp; ''Size''&lt;br /&gt;
&lt;br /&gt;
Scroll down to the component/file you wish to rollback and select it via the tickbox (2) to the left of its name.&lt;br /&gt;
&lt;br /&gt;
Select the required version within ''New Revision'' column (3) , then left-click on ''Download''&lt;br /&gt;
&lt;br /&gt;
Close the library updates window, then left-click on the ''Reload'' icon[[File:Reload_icon.png]] at the top, or ''File'' menu, ''Reload''.&lt;br /&gt;
&lt;br /&gt;
[[File:Rollback Component1.png]]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Library_Updates&amp;diff=41498</id>
		<title>Library Updates</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Library_Updates&amp;diff=41498"/>
		<updated>2025-04-10T09:53:11Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Library Updates [[file:Library_updates_icon.png]] can be  accessed via the Help ribbon or when you first [[Opening_Flowcode|open Flowcode]]&lt;br /&gt;
&lt;br /&gt;
If you select ''Library Updates'' via the Help ribbon, then you will have a dropdown giving you the options of either ''Files in-use'' or ''Full database''&lt;br /&gt;
&lt;br /&gt;
If required you can rollback a component to an earlier version.&lt;br /&gt;
&lt;br /&gt;
To do that for your current project make sure ''Files in-use'' is selected.&lt;br /&gt;
&lt;br /&gt;
Select ''Show up-to-date'' files (1)&lt;br /&gt;
&lt;br /&gt;
You will see ''Filename'' (2), ''Current Revision'', ''New Revision'' (3) &amp;amp; ''Size''&lt;br /&gt;
&lt;br /&gt;
Scroll down to the component/file you wish to rollback and select it via the tickbox (2) to the left of its name.&lt;br /&gt;
&lt;br /&gt;
Select the required version within ''New Revision'' column (3) , then left-click on ''Download''&lt;br /&gt;
&lt;br /&gt;
Close the library updates window, then left-click on the ''Reload'' icon[[File:Reload_icon.png]] at the top, or ''File'' menu, ''Reload''.&lt;br /&gt;
&lt;br /&gt;
[[File:Rollback Component1.png]]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Rollback_Component1.png&amp;diff=41497</id>
		<title>File:Rollback Component1.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Rollback_Component1.png&amp;diff=41497"/>
		<updated>2025-04-10T09:49:38Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:ESP32_Setup8.png&amp;diff=41496</id>
		<title>File:ESP32 Setup8.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:ESP32_Setup8.png&amp;diff=41496"/>
		<updated>2025-04-02T11:35:01Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:ESP32 Setup8.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Display_Manager_(Graphical_Library)&amp;diff=41493</id>
		<title>Component: Display Manager (Graphical Library)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Display_Manager_(Graphical_Library)&amp;diff=41493"/>
		<updated>2025-03-28T11:36:21Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| MatrixTSL&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Graphical Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Display Manager component==&lt;br /&gt;
A component designed to simplify the process of drawing primitives and text onto a  graphical display. Keeps track of coordinates so you don't have to. Also works great as a base layer for gLCD based games as it will check for collisions and  perform movement.&lt;br /&gt;
&lt;br /&gt;
==Version information==&lt;br /&gt;
&lt;br /&gt;
 Library Version, Component Version, Date, Author, Info&lt;br /&gt;
 13, 2.0, 22-05-24, BR, Added text alignment options&lt;br /&gt;
 14, 2.1, 14-06-24, BR, Renamed Button to Widget to better include things like sliders&lt;br /&gt;
 15, 2.1, 26-07-24, BR, Added SetTextFloat and AddTextNumber macros&lt;br /&gt;
 16, 2.1, 29-07-24, BR, Renamed Themes to ObjectThemes and WidgetThemes&lt;br /&gt;
 17, 2.1, 29-07-24, BR, Added CreateTextField macro which automates creating a simple textbox&lt;br /&gt;
 18, 2.1, 06-08-24, BR, Fixed a problem with updating values, theme, text on IDs&lt;br /&gt;
 19, 2.1, 06-08-24, BR, Textfield now uses hidden object type instead of rectangle&lt;br /&gt;
 20, 2.1, 06-08-24, BR, Fixed a problem where slider value could be set with out of range value&lt;br /&gt;
 21, 2.1, 06-08-24, BR, Fixed problem where SetTextNumber would reset an ESP32&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
===Objects===&lt;br /&gt;
&lt;br /&gt;
The component can create the following objects.&lt;br /&gt;
&lt;br /&gt;
*'''Object_Hidden''' - 0 - A hidden area with no graphics.&lt;br /&gt;
*'''Object_Rectangle''' - 1 - A simple rectangular box.&lt;br /&gt;
*'''Object_Line''' - 2 - A simple straight line.&lt;br /&gt;
*'''Object_Ellipse''' - 3 - A simple ellipse or circle.&lt;br /&gt;
*'''Object_EllipseFilled''' - 4 - A filled ellipse or circle.&lt;br /&gt;
*'''Object_RectangeFilled''' - 5 - A filled rectangular box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TextField===&lt;br /&gt;
&lt;br /&gt;
There is also an additional TextField object which consists of an Object_Rectangle that is pre-populated with text.&lt;br /&gt;
&lt;br /&gt;
===Widgets===&lt;br /&gt;
&lt;br /&gt;
The component can also create the following interactive buttons and sliders.&lt;br /&gt;
&lt;br /&gt;
*'''Widget_Hidden''' - 0 - A hidden area with no graphics.&lt;br /&gt;
*'''Widget_Rectangle''' - 1 - A rectangular box with a shadow.&lt;br /&gt;
*'''Widget_RoundedRectangle''' - 2 - A rounded rectangular box with a shadow.&lt;br /&gt;
*'''Widget_Ellipse''' - 3 - A simple ellipse or circle with a shadow.&lt;br /&gt;
*'''Widget_VSlider''' - 4 - A vertical slider with a square thumb.&lt;br /&gt;
*'''Widget_HSlider''' - 5 - A horizontal slider with a square thumb.&lt;br /&gt;
*'''Widget_VSlider_Round''' - 6 - A vertical slider with a round thumb.&lt;br /&gt;
*'''Widget_HSlider_Round''' - 7 - A horizontal slider with a round thumb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The type can be entered by using the component's public constants. Begin with the Display Manager handle name followed by :: and the list of the public variables will be displayed.&lt;br /&gt;
&lt;br /&gt;
For example...  '''DisplayManager1::Object_Rectangle'''  or  '''DisplayManager1::Widget_VSlider'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Touch Repeat Rate for Button Widgets===&lt;br /&gt;
&lt;br /&gt;
The Touch Repeat Rate property applies to button based widgets and sets the frequency that a valid touch will be detected for a held button. This is similar to holding down a single key on a keyboard and acts to reduce the frequency of positive button detections when touching the button. For example if you had a button that incremented a value, without the repeat rate the value would increment much faster then anticipated in an uncontrollable manner. When no touch is detected it is recommended to call the NoTouch macro to clear the touch counters and allow a more responsive user experience.&lt;br /&gt;
&lt;br /&gt;
Example of implementing touch repeat rate &lt;br /&gt;
&lt;br /&gt;
[[File:ButtonRepeatRate.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
An example showing how to use the display manager with a GLCd and a touch interface to create a full HMI.&lt;br /&gt;
&lt;br /&gt;
The example shows how to create a simple menu system as well as a toggle switch and a slider used to control a PWM output.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|DisplayManagerDemo.fcfx|Display Manager Demo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example showing how you can use the CreateWigitArray component to easily create a touch keypad for your gLCD&lt;br /&gt;
&lt;br /&gt;
Component will create the widgets as keypad buttons with your custom text, it allows you to click on the widgets so you have a working keypad.&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager1.png]]&lt;br /&gt;
&lt;br /&gt;
The CreateWidgetArray function macro that is very flexible in what you can create:&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager2.png]]&lt;br /&gt;
&lt;br /&gt;
Lots of flexibility and there are also tooltips to help.&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager3.png]]&lt;br /&gt;
&lt;br /&gt;
Note: if you get a unable to run simulation error then make sure you have the latest components downloaded.&lt;br /&gt;
&lt;br /&gt;
===How the key touch is detected===&lt;br /&gt;
&lt;br /&gt;
The first widget is automatically assigned a unique widget ID e.g. the first widget with text 1 on it is assigned 24.&lt;br /&gt;
&lt;br /&gt;
All the following widgets ID is then incremented from 24, e.g.  widget with text 6 on is assigned 24+ 5  = 29.&lt;br /&gt;
&lt;br /&gt;
The widget button pressed can then be calculated from 29 – 24 + 1 = 6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|DisplayManager_WidgetArray_Keypad_Example.fcfx|Display Manager Widget Array Keypad Example}}&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===CheckForTouch===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CheckForTouch'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Uses the X and Y coordinates from a touch sensor to check for Widget presses. Returns 0 for no Widgets pressed. Returns ID for a valid Widget press. Any touched slider Widgets will automatically move their thumb and value to the touch position. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ClearAll===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ClearAll'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Removes all objects and Widgets from memory. Also clears the screen if required.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ClearScreen&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Don't clear the screen, 1=Clear the screen&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateObject===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateObject'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Define a none touchable graphical object. Returns the Object ID.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectType&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Hidden, 1=Rect, 2=Line, 3=Ellipse, 4=FilledEllipse, 5=FilledRect&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width or X Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height or Y Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DrawObject&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not draw object yet, 1=Draw object now (Does not apply to hidden objects)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateTextField===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateTextField'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Creates a text field consisting of a rectangular border containing a single line of text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Text string to set as the label&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GLCD Font Index to use&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateWidget===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateWidget'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Define an interactive Widget or slider. Returns the Widget ID.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetType&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=WidgetHidden, 1=WidgetRect, 2=WidgetRoundedRect, 3=WidgetEllipse, 4=VSlider, 5=HSlider, 6=VSliderRound, 7=HSliderRound&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width or X Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height or Y Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DrawWidget&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not draw Widget yet, 1=Draw Widget now  (Does not apply to hidden widgets)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DrawAll===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DrawAll'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Redraws all of the defined Objects and Widgets. Doesn't draw text, this is done using the SetText macros.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DrawItem===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DrawItem'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a single object or Widget onto the display without clearing the display. Doesn't draw text, this is done using the SetText macros.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the Object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetLastTouchID===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetLastTouchID'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Gets the ID of the last Widget that returned a valid press via the CheckForTouch macro. Returns 0  for no valid touch recorded.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetSliderValue===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetSliderValue'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the value of one of the sliders ranging between 0 and 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Initialises the object and Widget control variables and sets up the default themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves an existing object or Widget to absolute coordinates on the screen.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Relative&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Absolute Positioning, 1=Relative Positioning&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyScale===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyScale'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Changes the width and height of the selected Object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Changes the theme index of the selected Object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Theme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index of the Widget or object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NoTouch===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''NoTouch'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Called when no touch is present,  Allows the repeat rate counter to be cleared allowing for better responses to fast touches.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OverrideObjectTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''OverrideObjectTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Overrides the colour of an object theme, used by the draw object macro. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ThemeIndex&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Index of the object colour theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OverrideWidgetTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''OverrideWidgetTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Overrides the colour of a Widget theme, used by the draw Widget macro. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ThemeIndex&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Index of the object colour theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetSliderValue===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetSliderValue'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the value of one of the sliders and optionally redraws the slider to reflect the value change.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range: 0 to 1&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | RedrawSlider&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not redraw, 1=Redraw&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextFloat===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextFloat'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a numerical value onto an object or Widget location. Useful for displaying, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:]] - &lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | NumDP&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of decimal points to display&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Unit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unit string to add after the numeric value. e.g. &amp;quot;g&amp;quot; or &amp;quot;s&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextLabel===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextLabel'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a single line of text onto an object or Widget location. Useful for labelling Widgets such as buttons or having name, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Text string to set as the label&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GLCD Font Index to use&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextNumber===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextNumber'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a numerical value onto an object or Widget location. Useful for displaying, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:]] - &lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Unit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unit string to add after the numeric value. e.g. &amp;quot;g&amp;quot; or &amp;quot;s&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Graphical Display&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Graphical Display to draw our objects on&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DM Library&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Display Manager compatible GLCD library component.  e.g. Bitmap drawer components.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Ram Usage Bytes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The calculated number of bytes of RAM required by the display manager.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text Align Offset&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels to move away from an edge when calling &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Objects&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Max Objects&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The total number of primitive objects allowed on the screen at once. Sets the size of the RAM buffers used to track the various screen elements. Each object requires 10 bytes of RAM to stores things like size, location and type.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Object Theme Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the number of themes available when drawing primitive objects. Each object theme requires 6 bytes of RAM to store the colour channels.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Object &amp;amp; Text Theme 0&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Object &amp;amp; Text Theme 1&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widgets&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Max Widgets&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The total number of touchable interactibe objects allowed on the screen at once e.g. Widgets and sliders. Sets the size of the RAM buffers used to track the various screen elements Each Widget requires 18 bytes of RAM to stores things like size, location, value and type.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Touch Repeat Rate&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the period for touch repeats in terms of calls of the CheckForTouch macro. Widgets will only register a repeat touch after x calls if continually held down. Sliders will always register a touch.   The touch count can be cleared using the NoTouch macro if no touch is detected.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Slider Thumb Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels wide to make a slider thumb marker,&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Slider Center Line Thickness&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels thick to draw the slider central line&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Widget Theme Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the number of themes available for drawng Widgets. Each Widget theme requires 12 bytes of RAM to store the colour channels.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widget Theme 0&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Highlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Lowlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widget Theme 1&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Highlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Lowlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Lib_DisplayManager.fcfx FC_Comp_Source_Lib_DisplayManager.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Lib_DisplayManager.fcfx FC_Comp_Source_Lib_DisplayManager.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Display_Manager_(Graphical_Library)&amp;diff=41492</id>
		<title>Component: Display Manager (Graphical Library)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Display_Manager_(Graphical_Library)&amp;diff=41492"/>
		<updated>2025-03-28T11:25:59Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| MatrixTSL&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Graphical Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Display Manager component==&lt;br /&gt;
A component designed to simplify the process of drawing primitives and text onto a  graphical display. Keeps track of coordinates so you don't have to. Also works great as a base layer for gLCD based games as it will check for collisions and  perform movement.&lt;br /&gt;
&lt;br /&gt;
==Version information==&lt;br /&gt;
&lt;br /&gt;
 Library Version, Component Version, Date, Author, Info&lt;br /&gt;
 13, 2.0, 22-05-24, BR, Added text alignment options&lt;br /&gt;
 14, 2.1, 14-06-24, BR, Renamed Button to Widget to better include things like sliders&lt;br /&gt;
 15, 2.1, 26-07-24, BR, Added SetTextFloat and AddTextNumber macros&lt;br /&gt;
 16, 2.1, 29-07-24, BR, Renamed Themes to ObjectThemes and WidgetThemes&lt;br /&gt;
 17, 2.1, 29-07-24, BR, Added CreateTextField macro which automates creating a simple textbox&lt;br /&gt;
 18, 2.1, 06-08-24, BR, Fixed a problem with updating values, theme, text on IDs&lt;br /&gt;
 19, 2.1, 06-08-24, BR, Textfield now uses hidden object type instead of rectangle&lt;br /&gt;
 20, 2.1, 06-08-24, BR, Fixed a problem where slider value could be set with out of range value&lt;br /&gt;
 21, 2.1, 06-08-24, BR, Fixed problem where SetTextNumber would reset an ESP32&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
===Objects===&lt;br /&gt;
&lt;br /&gt;
The component can create the following objects.&lt;br /&gt;
&lt;br /&gt;
*'''Object_Hidden''' - 0 - A hidden area with no graphics.&lt;br /&gt;
*'''Object_Rectangle''' - 1 - A simple rectangular box.&lt;br /&gt;
*'''Object_Line''' - 2 - A simple straight line.&lt;br /&gt;
*'''Object_Ellipse''' - 3 - A simple ellipse or circle.&lt;br /&gt;
*'''Object_EllipseFilled''' - 4 - A filled ellipse or circle.&lt;br /&gt;
*'''Object_RectangeFilled''' - 5 - A filled rectangular box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TextField===&lt;br /&gt;
&lt;br /&gt;
There is also an additional TextField object which consists of an Object_Rectangle that is pre-populated with text.&lt;br /&gt;
&lt;br /&gt;
===Widgets===&lt;br /&gt;
&lt;br /&gt;
The component can also create the following interactive buttons and sliders.&lt;br /&gt;
&lt;br /&gt;
*'''Widget_Hidden''' - 0 - A hidden area with no graphics.&lt;br /&gt;
*'''Widget_Rectangle''' - 1 - A rectangular box with a shadow.&lt;br /&gt;
*'''Widget_RoundedRectangle''' - 2 - A rounded rectangular box with a shadow.&lt;br /&gt;
*'''Widget_Ellipse''' - 3 - A simple ellipse or circle with a shadow.&lt;br /&gt;
*'''Widget_VSlider''' - 4 - A vertical slider with a square thumb.&lt;br /&gt;
*'''Widget_HSlider''' - 5 - A horizontal slider with a square thumb.&lt;br /&gt;
*'''Widget_VSlider_Round''' - 6 - A vertical slider with a round thumb.&lt;br /&gt;
*'''Widget_HSlider_Round''' - 7 - A horizontal slider with a round thumb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The type can be entered by using the component's public constants. Begin with the Display Manager handle name followed by :: and the list of the public variables will be displayed.&lt;br /&gt;
&lt;br /&gt;
For example...  '''DisplayManager1::Object_Rectangle'''  or  '''DisplayManager1::Widget_VSlider'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Touch Repeat Rate for Button Widgets===&lt;br /&gt;
&lt;br /&gt;
The Touch Repeat Rate property applies to button based widgets and sets the frequency that a valid touch will be detected for a held button. This is similar to holding down a single key on a keyboard and acts to reduce the frequency of positive button detections when touching the button. For example if you had a button that incremented a value, without the repeat rate the value would increment much faster then anticipated in an uncontrollable manner. When no touch is detected it is recommended to call the NoTouch macro to clear the touch counters and allow a more responsive user experience.&lt;br /&gt;
&lt;br /&gt;
Example of implementing touch repeat rate &lt;br /&gt;
&lt;br /&gt;
[[File:ButtonRepeatRate.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
An example showing how to use the display manager with a GLCd and a touch interface to create a full HMI.&lt;br /&gt;
&lt;br /&gt;
The example shows how to create a simple menu system as well as a toggle switch and a slider used to control a PWM output.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|DisplayManagerDemo.fcfx|Display Manager Demo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example showing how you can use the CreateWigitArray component to easily create a touch keypad for your gLCD&lt;br /&gt;
&lt;br /&gt;
Component will create the widgets as keypad buttons with your custom text, it allows you to click on the widgets so you have a working keypad.&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager1.png]]&lt;br /&gt;
&lt;br /&gt;
The CreateWidgetArray function macro that is very flexible in what you can create:&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager2.png]]&lt;br /&gt;
&lt;br /&gt;
Lots of flexibility and there are also tooltips to help.&lt;br /&gt;
&lt;br /&gt;
[[File:Updated__Display_Manager3.png]]&lt;br /&gt;
&lt;br /&gt;
Note: if you get a unable to run simulation error then make sure you have the latest components downloaded.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|DisplayManager_WidgetArray_Keypad_Example.fcfx|Display Manager Widget Array Keypad Example}}&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===CheckForTouch===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CheckForTouch'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Uses the X and Y coordinates from a touch sensor to check for Widget presses. Returns 0 for no Widgets pressed. Returns ID for a valid Widget press. Any touched slider Widgets will automatically move their thumb and value to the touch position. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ClearAll===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ClearAll'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Removes all objects and Widgets from memory. Also clears the screen if required.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ClearScreen&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Don't clear the screen, 1=Clear the screen&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateObject===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateObject'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Define a none touchable graphical object. Returns the Object ID.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectType&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Hidden, 1=Rect, 2=Line, 3=Ellipse, 4=FilledEllipse, 5=FilledRect&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width or X Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height or Y Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DrawObject&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not draw object yet, 1=Draw object now (Does not apply to hidden objects)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateTextField===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateTextField'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Creates a text field consisting of a rectangular border containing a single line of text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Text string to set as the label&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GLCD Font Index to use&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CreateWidget===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''CreateWidget'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Define an interactive Widget or slider. Returns the Widget ID.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetType&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=WidgetHidden, 1=WidgetRect, 2=WidgetRoundedRect, 3=WidgetEllipse, 4=VSlider, 5=HSlider, 6=VSliderRound, 7=HSliderRound&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | X Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Y Pixel Coordinate&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Width or X Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pixel Height or Y Radius&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index to use to draw the Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DrawWidget&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not draw Widget yet, 1=Draw Widget now  (Does not apply to hidden widgets)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DrawAll===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DrawAll'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Redraws all of the defined Objects and Widgets. Doesn't draw text, this is done using the SetText macros.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DrawItem===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DrawItem'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a single object or Widget onto the display without clearing the display. Doesn't draw text, this is done using the SetText macros.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the Object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetLastTouchID===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetLastTouchID'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Gets the ID of the last Widget that returned a valid press via the CheckForTouch macro. Returns 0  for no valid touch recorded.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetSliderValue===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetSliderValue'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the value of one of the sliders ranging between 0 and 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Initialises the object and Widget control variables and sets up the default themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves an existing object or Widget to absolute coordinates on the screen.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Y&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Relative&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Absolute Positioning, 1=Relative Positioning&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyScale===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyScale'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Changes the width and height of the selected Object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Height&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ModifyTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''ModifyTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Changes the theme index of the selected Object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique ID of the object or Widget&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Theme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Theme index of the Widget or object&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NoTouch===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''NoTouch'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Called when no touch is present,  Allows the repeat rate counter to be cleared allowing for better responses to fast touches.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OverrideObjectTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''OverrideObjectTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Overrides the colour of an object theme, used by the draw object macro. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ThemeIndex&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Index of the object colour theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OverrideWidgetTheme===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''OverrideWidgetTheme'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Overrides the colour of a Widget theme, used by the draw Widget macro. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ThemeIndex&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Index of the object colour theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | BG_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HL_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_R&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_G&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LL_B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour channel value&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetSliderValue===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetSliderValue'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the value of one of the sliders and optionally redraws the slider to reflect the value change.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | WidgetID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range: 0 to 1&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | RedrawSlider&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Do not redraw, 1=Redraw&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextFloat===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextFloat'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a numerical value onto an object or Widget location. Useful for displaying, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:]] - &lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | NumDP&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of decimal points to display&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Unit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unit string to add after the numeric value. e.g. &amp;quot;g&amp;quot; or &amp;quot;s&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextLabel===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextLabel'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a single line of text onto an object or Widget location. Useful for labelling Widgets such as buttons or having name, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Text string to set as the label&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GLCD Font Index to use&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTextNumber===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTextNumber'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Draws a numerical value onto an object or Widget location. Useful for displaying, value statistics. Drawn using the object themes.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unique identifier of object or Widget.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:]] - &lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Unit&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Unit string to add after the numeric value. e.g. &amp;quot;g&amp;quot; or &amp;quot;s&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Font&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | HAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Left, 1=Center, 2=Right&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VAlignment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Top, 1=Middle, 2=Bottom&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | ObjectTheme&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Object theme index to control the colour of the text&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Transparent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=Background Colour Drawn, 1=Don't Draw Background Colour&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Graphical Display&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Graphical Display to draw our objects on&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DM Library&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Display Manager compatible GLCD library component.  e.g. Bitmap drawer components.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Ram Usage Bytes&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The calculated number of bytes of RAM required by the display manager.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text Align Offset&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels to move away from an edge when calling &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Objects&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Max Objects&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The total number of primitive objects allowed on the screen at once. Sets the size of the RAM buffers used to track the various screen elements. Each object requires 10 bytes of RAM to stores things like size, location and type.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Object Theme Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the number of themes available when drawing primitive objects. Each object theme requires 6 bytes of RAM to store the colour channels.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Object &amp;amp; Text Theme 0&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Object &amp;amp; Text Theme 1&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widgets&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Max Widgets&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The total number of touchable interactibe objects allowed on the screen at once e.g. Widgets and sliders. Sets the size of the RAM buffers used to track the various screen elements Each Widget requires 18 bytes of RAM to stores things like size, location, value and type.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Touch Repeat Rate&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the period for touch repeats in terms of calls of the CheckForTouch macro. Widgets will only register a repeat touch after x calls if continually held down. Sliders will always register a touch.   The touch count can be cleared using the NoTouch macro if no touch is detected.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Slider Thumb Width&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels wide to make a slider thumb marker,&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Slider Center Line Thickness&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of pixels thick to draw the slider central line&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Widget Theme Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the number of themes available for drawng Widgets. Each Widget theme requires 12 bytes of RAM to store the colour channels.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widget Theme 0&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Highlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Lowlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Widget Theme 1&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Foreground&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Foreground colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Background&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Background colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Highlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Highlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-1-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Lowlight&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lowlight colour of the theme&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Lib_DisplayManager.fcfx FC_Comp_Source_Lib_DisplayManager.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Lib_DisplayManager.fcfx FC_Comp_Source_Lib_DisplayManager.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager3.png&amp;diff=41491</id>
		<title>File:Updated Display Manager3.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager3.png&amp;diff=41491"/>
		<updated>2025-03-28T11:19:09Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager2.png&amp;diff=41490</id>
		<title>File:Updated Display Manager2.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager2.png&amp;diff=41490"/>
		<updated>2025-03-28T11:18:50Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager1.png&amp;diff=41489</id>
		<title>File:Updated Display Manager1.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Updated_Display_Manager1.png&amp;diff=41489"/>
		<updated>2025-03-28T11:18:06Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:DisplayManager_WidgetArray_Keypad_Example.fcfx&amp;diff=41488</id>
		<title>File:DisplayManager WidgetArray Keypad Example.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:DisplayManager_WidgetArray_Keypad_Example.fcfx&amp;diff=41488"/>
		<updated>2025-03-28T11:11:22Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Potentiometer_(Analog_Input)&amp;diff=41487</id>
		<title>Component: Potentiometer (Analog Input)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Potentiometer_(Analog_Input)&amp;diff=41487"/>
		<updated>2025-03-20T09:22:07Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix TSL&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Analog Input&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Potentiometer component==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Potentiometer.fcfx FC_Comp_Source_Potentiometer.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Potentiometer.fcfx FC_Comp_Source_Potentiometer.fcfx]&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A simple example that shows how to use some common functions of the potentiometer in conjunction with an LCD.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|Potentiometer Example.fcfx|Potentiometer Example}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using Fixed Voltage Reference===&lt;br /&gt;
&lt;br /&gt;
An example of a 0 to 1023 mV meter with a resolution of 1mv.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|ADC_using_FVR_16F15324.fcfx|ADC using FVR}} &lt;br /&gt;
&lt;br /&gt;
A PIC16F15324 is used since it has a Fixed Voltage Reference (FVR) register.&lt;br /&gt;
&lt;br /&gt;
Bit0 and bit1 determine what the FVR is set at.&lt;br /&gt;
&lt;br /&gt;
A line of C code is added to set the FVR to a gain of x1 = FVR of 1.024V:&lt;br /&gt;
&lt;br /&gt;
'''FVRCON = 0b11000001;''' &lt;br /&gt;
&lt;br /&gt;
With this setting, the Int value from ADC directly proportional voltage in mV.&lt;br /&gt;
&lt;br /&gt;
E.g. a value of 732 = 732mV&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Binary is used to make reading values a lot easier.&lt;br /&gt;
&lt;br /&gt;
From the datasheet:&lt;br /&gt;
&lt;br /&gt;
[[File:PIC16F1532x FVRCON.png]] &lt;br /&gt;
&lt;br /&gt;
If you wanted to change the fixed voltage reference to 2.048V&lt;br /&gt;
&lt;br /&gt;
Then change bit0 and bit1 of the C code to '''FVRCON = 0b11000010;''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filtering ADC Inputs===&lt;br /&gt;
&lt;br /&gt;
Simple example which uses a filtering technique to provide a digital low pass filter on the ADC readings. The output of the filter is 50% the ADC reading and 50% the previous reading.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|LPFilter_2D.fcfx|LPFilter}}&lt;br /&gt;
&lt;br /&gt;
In this example the output of the filter is 25% the ADC reading and 75% the previous reading.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|LPFilter2_2D.fcfx|LPFilter2}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Analogue Inputs Window===&lt;br /&gt;
&lt;br /&gt;
The [[Analog_Window|Analogue inputs window]] available from the View ribbon, allows you to see the values for all of the analogue inputs which are active in your program. They can also be manually altered by dragging the mouse along one of the sliders.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Recorder===&lt;br /&gt;
&lt;br /&gt;
An ADC based component will automatically add a trace to the [[Using_the_Data_Recorder|data recorder]] window allowing you to get a view of the analogue data over time during simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:Data_Recorder1.png]]&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===GetAverageByte===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetAverageByte'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Read the ADC as a byte&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | NumSamples&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DelayUs&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetAverageInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetAverageInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Read the ADC at full bit depth&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | NumSamples&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | DelayUs&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetByte===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetByte'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Read the ADC as a byte&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Read the ADC at full bit depth&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetString===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetString'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the ADC as a direct voltage&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-string-icon.png]] - STRING&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GetVoltage===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''GetVoltage'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Reads the ADC as a direct voltage&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-6-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Analogue Input Channel - Which pin is the analogue input connected to?&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Settings&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-14-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VRef voltage&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used by the GetVoltage or GetString component macros to take an ADC reading and convert it into a Voltage. +VRef voltage x 10mV Default 500 = 5.0V &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | VRef option&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Defines what is used as the ADC maximum reference. ADC Range = GND to VRef Voltage VDD - Defines the microcontrollers power supply pin as the max reference, VREF+ Pin - Dedicated pin on the microcontroller to allow for a variable reference voltage.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Conversion speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Clock setting to select how fast the ADC peripheral will perform an ADC conversion. The FRC setting is based on a RC time base and so will vary with temperature and pressure. Other settings are generally based on divisions of the master clock.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-14-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Acquisition cycles&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of micro seconds to wait for the ADC input to charge before starting the analogue sample.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-14-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Bit Depth&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Maximum number of digital bits the ADC can sample. 8 bit = ADC range 0 - 255 10 bit = ADC range 0 - 1023  12 bit = ADC range 0 - 4095&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Retain Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Appearance&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Component Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | LabelColour&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Show Connection Label&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Show Pin Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Colour Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-23-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Fill&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Frame Outline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-23-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Frame Fill&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Pointer Outline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-23-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Pointer Fill&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Tick Mark Outline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-23-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Tick Mark Fill&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-2-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Cap Outline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-23-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Cap Fill&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-13-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Main Image&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-13-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Cap Image&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Style&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-12-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Scope Traces&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Selects if the scope traces are automatically generated or not&amp;amp;nbsp;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:PIC16F1532x_FVRCON.png&amp;diff=41486</id>
		<title>File:PIC16F1532x FVRCON.png</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:PIC16F1532x_FVRCON.png&amp;diff=41486"/>
		<updated>2025-03-20T09:12:18Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:ADC_using_FVR_16F15324.fcfx&amp;diff=41485</id>
		<title>File:ADC using FVR 16F15324.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:ADC_using_FVR_16F15324.fcfx&amp;diff=41485"/>
		<updated>2025-03-20T09:11:40Z</updated>

		<summary type="html">&lt;p&gt;MartinW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41484</id>
		<title>Supporting Third Party Programming Tools</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Supporting_Third_Party_Programming_Tools&amp;diff=41484"/>
		<updated>2025-03-10T10:34:07Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* AISX Presto/Forte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Gen_Compiler_Options_Programmer_PIC.png|right|524x400px]]&lt;br /&gt;
Each version of Flowcode comes ready with a default programming tool. However it is fairly easy to change the settings in Flowcode to allow for third party programming tools to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The programming tool that is invoked when the compile to chip button is pressed is configured in the '''Build menu''' under '''Compiler options''' then click on the '''Programmer tab''' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For help with third party programming tools the first port of call should be to check our [http://www.matrixmultimedia.com/mmforums/ forums] to see if anyone else has already tried the programming tool with Flowcode. If you are the first then if you wish you can post your findings for other users to benefit from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
Editing the Compiler or Linker tabs of the compiler options will likely stop Flowcode from being able to compile correctly unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
The settings below are for the '''Programmer''' tab of the compiler options. &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do edit the values in the compiler or linker tab then you can simply revert back to the default settings and start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Microchip PIC / PIC16 / PIC32==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including E-blocks, E-blocks2, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-chip $(chip:u) &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PPP===&lt;br /&gt;
&lt;br /&gt;
PPP is the older programming software from Flowcode v5 and previous and can be used to talk to versions of the E-blocks EB006 up to and including version 8. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PPP\PPPv3.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-cs 2 -chip PIC$(chip:u) -nogui &amp;quot;$(outdir)$(target).hex&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit2\pk2cmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-B$(appdir)tools\PICkit2\ -PPIC$(chip) -F$(target).hex -M -A5 -R'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Details on how to upgrade your PICkit 2 to work with new targets are available from [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=16843 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 2 was never designed to work with the newer devices and although it is known to work, you may cause damage to your PIC devices by using incorrect VPP programming voltages etc as supplied by the PICkit 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - PK3CMD (OLD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\PICkit3\PK3CMD.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters (8-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V5 -E -M'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters (16-bit PIC):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-P$(chip) -F$(target).hex -V3.3 -E -M -L'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the PICkit 3 will fail to program if you have spaces in your Flowcode project name, replacing spaces with underscores or removing them completely should resolve the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also note that if your using the PICkit 3 with MPLABX or have bought a new one recently then you will likely have to downgrade the firmware to allow Flowcode to work with the PICkit.&lt;br /&gt;
&lt;br /&gt;
Full details on how to do this are available from [http://woodworkerb.com/pickit-3-and-flowcode-6/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your still having problems getting the PICkit 3 to fire up then this [http://www.matrixtsl.com/mmforums/viewtopic.php?f=54&amp;amp;t=12970&amp;amp;p=58454#p52318 forum topic] may be of help.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit3 - IPE (NEW)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use the Microchip Real ICE programmer instead of the PICkit 3 substitute the parameter /TPPK3 with /TPRICE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PICkit4===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 4.20 is the minimum version that will work with the PICkit 4 hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the PICkit 4 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPPK4 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SNAP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 5.40 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
Version 5.40 is the minimum version that will work with the Snap hardware.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the Snap depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the PICkit'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPSNAP /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICD3===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First make sure you have the latest MPLAB X installed on your computer. We used version 4.20 which is used in the location path shown below. Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
There are two options for using the ICD3 depending on how you are powering your hardware:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered externally'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Powered via the ICD3'''&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(mplabxdir)mplab_platform\mplab_ipe\ipecmd.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 3V3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W3.3'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters - Powered at 5V:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/P$(chip) /F&amp;quot;$(outdir)$(target).hex&amp;quot; /TPICD3 /M /OL /W5'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FS USB===&lt;br /&gt;
&lt;br /&gt;
Flowcode PIC comes with a example for using the free microchip USB bootloader. Changing your target to the MCHP_FSUSB will automatically configure the programmer to use the Microchip PDFSUSB programming tool. Note - The USB bootloader firmware must be present on the device to allow the programming tool to connect correctly to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TINY PIC Bootloader===&lt;br /&gt;
&lt;br /&gt;
Support for the Serial TINY PIC Bootloader is documented [http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=5&amp;amp;t=4647 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AVR==&lt;br /&gt;
&lt;br /&gt;
===AVRISP mkII===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===USB Tiny===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(compileravr)batchfiles\avrc_usbtiny.bat'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''AVRDUDE $(chipalt) $(chip:l) &amp;quot;$(outdir)$(target).hex&amp;quot; &amp;quot;$(target).hex&amp;quot; 0 $(cfgb) $(cfg0) $(cfg1) $(cfg2) $(cfg3)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AVR Dude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
The AVRDUDE programming tool supports a number of third party programmers for more help and information please visit the [http://savannah.nongnu.org/projects/avrdude/ AVRDUDE home page].&lt;br /&gt;
&lt;br /&gt;
[http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/ AVRDUDESS] is a graphical user interface for AVRdude. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino===&lt;br /&gt;
&lt;br /&gt;
Flowcode Arduino allows you to specify a COM port to connect to the Arduino hardware via the Flowcode Project options window. Once you have specified the COM port and selected the correct target board the compile to chip option should program the Arduino device automatically using AVR dude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arduino Mega 2560 R1/R2===&lt;br /&gt;
&lt;br /&gt;
Flowcode is currently unable to program early versions of the Arduino Mega hardware. To program these devices use the tool [http://russemotto.com/xloader/ Xloader] to manually load the Flowcode generated .hex file onto the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&lt;br /&gt;
Flowcode ARM comes with a set of precompiled bootloader files. This allows the matrix mLoader USB reprogrammable operation to be used on any third party ARM hardware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mLoader===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
mLoader is the default programming software and can be used to talk to the various Matrix hardware including EB006, EB064, EB031, Formula Flowcode, ECIO, MIAC, ProtoBoard, ProjectBoard...&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''$(appdir)tools\mLoader\mLoader.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''-eb0310 &amp;quot;$(target).s19&amp;quot;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SAM-BA===&lt;br /&gt;
&lt;br /&gt;
The SAM-BA tool is provided by Atmel and works with the default SAM7S bootloader which can be automatically restored to the device by powering up the ARM hardware for ten seconds using the TST jumper in the none default setting. Note this will delete the Matrix USB bootloader from the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ST ARM==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ST-LINK===&lt;br /&gt;
&lt;br /&gt;
Flowcode by default is setup to use the ST-LINK programmer using the compile to chip option. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Discovery===&lt;br /&gt;
&lt;br /&gt;
Discovery boards are programmed by dropping the compiled binary firmware file onto a drive that appears under My Computer. Flowcode can automatically place the file onto the drive for you when using the compile to chip option with a discovery board selected as the target device.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Nucleo===&lt;br /&gt;
&lt;br /&gt;
Nucleo boards have a ST-LINK programmer built onto the board and so these work like standard ST ARM targets only without the additional requirement of a ST-LINK programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
&lt;br /&gt;
Raspberry Pi boards can be programmed over the network using Putty which is included with Flowcode. Enter the network details for the Pi into the Flowcode project options and this will allow the compile to chip to connect to the Pi using Putty via a SSH connection. SSH must be enabled on your Pi for this to function correctly but this should be enabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AISX Presto/Forte==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Take care to ensure you '''only''' edit the values in the '''Programmer''' tab.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProgTab.jpg]]&lt;br /&gt;
&lt;br /&gt;
First, make sure you have the latest UP installed on your computer. &lt;br /&gt;
Make sure your path matches your installed location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''C:\Program Files (x86)\ASIX\UP\up.exe'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;'''/p &amp;quot;$(outdir)$(target).hex&amp;quot; /part PIC$(chip)'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way the command line works is by using the last UP.exe settings.&lt;br /&gt;
&lt;br /&gt;
If you want to use the programmer’s internal supply.&lt;br /&gt;
&lt;br /&gt;
Open UP.exe and within the programmer settings window, select During programming check box.&lt;br /&gt;
&lt;br /&gt;
I would also recommend changing Delay for VDD switching on/off when supplied from programmer from 10000 to 50000.&lt;br /&gt;
&lt;br /&gt;
Close UP then all is ready for programming.&lt;br /&gt;
&lt;br /&gt;
If you want to see a popup progress bar during programming, remove /q from the parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
Presto can only supply VDD 5.0V and VPP 13.0V &lt;br /&gt;
Forte can supply VDD 2.0V to 5.5V and VPP 6.5V to 17 Automatically, depending on the selected target device.&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:SimpleIBDemo.fcfx&amp;diff=41482</id>
		<title>File:SimpleIBDemo.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:SimpleIBDemo.fcfx&amp;diff=41482"/>
		<updated>2025-02-05T09:23:35Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:SimpleIBDemo.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:FreqGenMulti.fcfx&amp;diff=41481</id>
		<title>File:FreqGenMulti.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:FreqGenMulti.fcfx&amp;diff=41481"/>
		<updated>2025-01-31T08:39:35Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:FreqGenMulti.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:FreqGen.fcfx&amp;diff=41480</id>
		<title>File:FreqGen.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:FreqGen.fcfx&amp;diff=41480"/>
		<updated>2025-01-31T08:36:13Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:FreqGen.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:LowPassFilter.fcfx&amp;diff=41479</id>
		<title>File:LowPassFilter.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:LowPassFilter.fcfx&amp;diff=41479"/>
		<updated>2025-01-31T08:27:05Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:LowPassFilter.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Delay.fcfx&amp;diff=41478</id>
		<title>File:Delay.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Delay.fcfx&amp;diff=41478"/>
		<updated>2025-01-29T11:28:00Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:Delay.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Input_Digital_(DSP_Inputs)&amp;diff=41477</id>
		<title>Component: Input Digital (DSP Inputs)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Input_Digital_(DSP_Inputs)&amp;diff=41477"/>
		<updated>2025-01-29T11:27:39Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| DSP Inputs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Input Digital component==&lt;br /&gt;
Allows the values from a buffer to be assigned. Either a value at a time or from an array. The input signal would usually take the form of an ADC reading or raw data values.&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_DSP_Input.fcfx FC_Comp_Source_DSP_Input.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_DSP_Input.fcfx FC_Comp_Source_DSP_Input.fcfx]&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a basic example demonstrating how to pass a value into the DSP chain.&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|Delay.fcfx|Delay}}&lt;br /&gt;
&lt;br /&gt;
The input value in the example uses an ADC reading but this can be taken from anything such as a reading from a CSV file on a SD card or a value passed by a sensor on a I2C bus etc.&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AddByte===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddByte'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds a single byte value to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddByteArray===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddByteArray'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds an array of byte values to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddFloat===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddFloat'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds a single float value to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddFloatArray===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddFloatArray'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds an array of float values to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-f32-icon.png]] - FLOAT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds a single integer value to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddIntArray===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddIntArray'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds an array of integer values to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddLong===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddLong'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds a single long value to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u32-icon.png]] - ULONG&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddLongArray===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AddLongArray'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Adds an array of long values to the current location in the specified buffer. Auto increments current location if output buffer size is greater than 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u32-icon.png]] - ULONG&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Count&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Buffer Size&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of individual elements the buffer can store, default 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Buffer Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the buffer data type, data is automatically scaled to fit and make full use of the data type.&amp;amp;nbsp;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_(BL0162)_(E-blocks_2)&amp;diff=41476</id>
		<title>Component: Servo Motor (BL0162) (E-blocks 2)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_(BL0162)_(E-blocks_2)&amp;diff=41476"/>
		<updated>2025-01-29T11:20:12Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix TSL&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| E-blocks 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servo Motor component==&lt;br /&gt;
Servo motor component to drive the E-blocks 2 BL0162 Servo Motors board. Provides up to eight individually addressable connections for standard DC servo motors to be connected.&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx FC_Comp_Source_EBlocks2_Servo_BL0162.fcfx]&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition &amp;amp; SetPosition component macros.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example using BL0162 Servo controller for BL0055 Arduino Shield&lt;br /&gt;
&lt;br /&gt;
Samples the Port D8-D13 (portB) switches and moves the servo motors based on the input states. &lt;br /&gt;
&lt;br /&gt;
D8 increments motor 0, D9 decrements motor on channel 0.&lt;br /&gt;
&lt;br /&gt;
D10 increments motor 1, D11 decrements motor on channel 1.&lt;br /&gt;
&lt;br /&gt;
D12 increments motor 3, D13 decrements motor on channel 2.&lt;br /&gt;
&lt;br /&gt;
Connections:  &lt;br /&gt;
&lt;br /&gt;
Servo Board Port D0-D2.&lt;br /&gt;
&lt;br /&gt;
Switch Board Port D8 - D13&lt;br /&gt;
&lt;br /&gt;
LCD A0 to A5 (PortC)&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|BL0162_Servo_BL0055.fcfx|BL0162 Servos Example for BL0055}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new position with a fixed rate of 100 steps per second.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to move to.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DisableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DisableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Disables a servo channel effectivly disabling the motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EnableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''EnableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the servo motor interrupts&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete. Returns 1 if the servo is still moving. Returns 0 if the servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called. Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro. Default speed is 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTrim===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTrim'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the level of trim for each servo channel to be adjusted progmatically.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channels (1 - 8)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the number of servo's that you need to control. Value from 1 to 8.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 4&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 6&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 7&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Pulse Width&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Minimum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Shortest pulse width that will be used.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Maximum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Longest pulse width used for the PWM signals.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 4&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 6&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 7&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Show Servo Interface&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 4&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 6&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 7&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:Controlling_Servos_Example.fcfx&amp;diff=41475</id>
		<title>File:Controlling Servos Example.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:Controlling_Servos_Example.fcfx&amp;diff=41475"/>
		<updated>2025-01-29T11:18:56Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:Controlling Servos Example.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41474</id>
		<title>Component: Servo Motor Controller (Mechatronics)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41474"/>
		<updated>2025-01-29T11:10:23Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Mechatronics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servo Motor Controller component==&lt;br /&gt;
Can control up to eight standard PWM driven servo's.  Supports 8-bit and 16-bit movement resolutions. 'Servo Object' properties allow you to connect the controller to on-screen simulations using the &amp;quot;Servo Motor&amp;quot; component and its derivatives. &lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition &amp;amp; SetPosition component macros.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example using BL0162 Servo controller for BL0055 Arduino Shield&lt;br /&gt;
&lt;br /&gt;
Samples the Port D8-D13 (portB) switches and moves the servo motors based on the input states. &lt;br /&gt;
&lt;br /&gt;
D8 increments motor 0, D9 decrements motor on channel 0.&lt;br /&gt;
&lt;br /&gt;
D10 increments motor 1, D11 decrements motor on channel 1.&lt;br /&gt;
&lt;br /&gt;
D12 increments motor 3, D13 decrements motor on channel 2.&lt;br /&gt;
&lt;br /&gt;
Connections:  &lt;br /&gt;
&lt;br /&gt;
Servo Board Port D0-D2.&lt;br /&gt;
&lt;br /&gt;
Switch Board Port D8 - D13&lt;br /&gt;
&lt;br /&gt;
LCD A0 to A5 (PortC)&lt;br /&gt;
&lt;br /&gt;
{{Fcfile|BL0162_Servo_BL0055.fcfx|BL0162 Servos Example for BL0055}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new angle at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DisableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DisableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Disables a servo channel effectivly disabling the motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EnableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''EnableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the servo motor interrupts&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete.   Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsServoAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsServoAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete for a specific servo output.  Returns 1 if the servo is still moving.   Returns 0 if the servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Servo Motor Output Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new angle, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves the motor straight to the specified angle. Uses the angle property to calculate the correct amount to move.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeedInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeedInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTrim===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTrim'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the level of trim for each servo channel to be adjusted progmatically.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channels (1 - 8)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the number of servo's that you need to control. Value from 1 to 8.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Resources&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Peripherals&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lists the internal peripherals of the MCU used by the component. When the servo motor is initialised you will not be able to use the listed peripherals for other functionality.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Pulse Width&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Minimum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Shortest pulse width that will be used.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Maximum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Longest pulse width used for the PWM signals.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range of movement in the servo motor to calibrate the Angle component macros. Can be found by measuring the angle between position 0 and position 255.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim Mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41473</id>
		<title>Component: Servo Motor Controller (Mechatronics)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41473"/>
		<updated>2025-01-29T11:06:53Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Mechatronics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servo Motor Controller component==&lt;br /&gt;
Can control up to eight standard PWM driven servo's.  Supports 8-bit and 16-bit movement resolutions. 'Servo Object' properties allow you to connect the controller to on-screen simulations using the &amp;quot;Servo Motor&amp;quot; component and its derivatives. &lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition &amp;amp; SetPosition component macros.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example using BL0162 Servo controller for BL0055 Arduino Shield&lt;br /&gt;
&lt;br /&gt;
Samples the Port D8-D13 (portB) switches and moves the servo motors based on the input states. &lt;br /&gt;
&lt;br /&gt;
D8 increments motor 0, D9 decrements motor on channel 0.&lt;br /&gt;
&lt;br /&gt;
D10 increments motor 1, D11 decrements motor on channel 1.&lt;br /&gt;
&lt;br /&gt;
D12 increments motor 3, D13 decrements motor on channel 2.&lt;br /&gt;
&lt;br /&gt;
Connections:  &lt;br /&gt;
&lt;br /&gt;
Servo Board Port D0-D2.&lt;br /&gt;
&lt;br /&gt;
Switch Board Port D8 - D13&lt;br /&gt;
&lt;br /&gt;
LCD A0 to A5 (PortC)&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new angle at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DisableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DisableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Disables a servo channel effectivly disabling the motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EnableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''EnableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the servo motor interrupts&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete.   Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsServoAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsServoAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete for a specific servo output.  Returns 1 if the servo is still moving.   Returns 0 if the servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Servo Motor Output Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new angle, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves the motor straight to the specified angle. Uses the angle property to calculate the correct amount to move.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeedInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeedInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTrim===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTrim'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the level of trim for each servo channel to be adjusted progmatically.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channels (1 - 8)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the number of servo's that you need to control. Value from 1 to 8.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Resources&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Peripherals&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lists the internal peripherals of the MCU used by the component. When the servo motor is initialised you will not be able to use the listed peripherals for other functionality.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Pulse Width&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Minimum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Shortest pulse width that will be used.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Maximum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Longest pulse width used for the PWM signals.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range of movement in the servo motor to calibrate the Angle component macros. Can be found by measuring the angle between position 0 and position 255.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim Mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41472</id>
		<title>Component: Servo Motor Controller (Mechatronics)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41472"/>
		<updated>2025-01-29T11:03:23Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Mechatronics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servo Motor Controller component==&lt;br /&gt;
Can control up to eight standard PWM driven servo's.  Supports 8-bit and 16-bit movement resolutions. 'Servo Object' properties allow you to connect the controller to on-screen simulations using the &amp;quot;Servo Motor&amp;quot; component and its derivatives. &lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition &amp;amp; SetPosition component macros.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example using BL0162 Servo controller for BL0055 Arduino Shield&amp;lt;br&amp;gt;&lt;br /&gt;
Samples the Port D0-D7 switches and moves the servo motors based on the input states.&amp;lt;br&amp;gt;&lt;br /&gt;
D0 increments motor 0, D1 decrements motor 0.&amp;lt;br&amp;gt;&lt;br /&gt;
D2 increments motor 1, D3 decrements motor 1.&amp;lt;br&amp;gt;&lt;br /&gt;
Connections: Combo Board Ports A0-A5 &amp;amp; D0-D7 / Servo Board Port D8-D13.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|BL0162_Servo_BL0055.fcfx|BL0162 Servos Example for BL0055}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new angle at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DisableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DisableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Disables a servo channel effectivly disabling the motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EnableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''EnableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the servo motor interrupts&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete.   Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsServoAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsServoAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete for a specific servo output.  Returns 1 if the servo is still moving.   Returns 0 if the servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Servo Motor Output Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new angle, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves the motor straight to the specified angle. Uses the angle property to calculate the correct amount to move.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeedInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeedInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTrim===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTrim'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the level of trim for each servo channel to be adjusted progmatically.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channels (1 - 8)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the number of servo's that you need to control. Value from 1 to 8.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Resources&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Peripherals&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lists the internal peripherals of the MCU used by the component. When the servo motor is initialised you will not be able to use the listed peripherals for other functionality.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Pulse Width&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Minimum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Shortest pulse width that will be used.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Maximum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Longest pulse width used for the PWM signals.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range of movement in the servo motor to calibrate the Angle component macros. Can be found by measuring the angle between position 0 and position 255.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim Mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Filter_(DSP_Operators)&amp;diff=41471</id>
		<title>Component: Filter (DSP Operators)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Filter_(DSP_Operators)&amp;diff=41471"/>
		<updated>2025-01-29T08:31:01Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Detailed description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.3&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| DSP Operators&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filter component==&lt;br /&gt;
Filter component to allow basic filtering to be performed Filters include: LowPass, HighPass, BandPass, BandStop, FIR, IIR&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the data recorder you can see the analogue wave and the filter response changing as the frequency changes. &lt;br /&gt;
&lt;br /&gt;
Basically allows you to play with the filter coefficients and modify the frequency to see how the filter performs.&lt;br /&gt;
&lt;br /&gt;
The PWM is just providing an analogue output but would need a R/C filter to make it truly analogue.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Low Pass Filter ===&lt;br /&gt;
&lt;br /&gt;
Example of the filter component set up to create a low pass filter with the input frequency controlled using the potentiometer on the panel.&lt;br /&gt;
{{Fcfile|LowPassFilter.fcfx|LowPassFilter}}&lt;br /&gt;
Low pass filter running at a low frequency - note that the amplitude of the filtered data closely matches that of the original waveform data.&lt;br /&gt;
&lt;br /&gt;
[[File:LPFilter.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Low pass filter running at a high frequency - note that the amplitude of the filtered waveform is now greatly attenuated.&lt;br /&gt;
&lt;br /&gt;
[[File:LPFilter2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== High Pass Filter ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of the filter component set up to create a high pass filter with the input frequency controlled using the potentiometer on the panel.&lt;br /&gt;
{{Fcfile|HighPassFilter.fcfx|HighPassFilter}}&lt;br /&gt;
High pass filter running at a low frequency - note that the amplitude of the filtered waveform is greatly attenuated.&lt;br /&gt;
&lt;br /&gt;
[[File:HPFilter.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
High pass filter running at a high frequency - note that the amplitude of the filtered data closely matches that of the original waveform data.&lt;br /&gt;
&lt;br /&gt;
[[File:HPFilter2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Band Pass Filter ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of the filter component set up to create a band pass filter with the input frequency controlled using the potentiometer on the panel.&lt;br /&gt;
{{Fcfile|BandPassFilter.fcfx|BandPassFilter}}&lt;br /&gt;
Band pass filter running at a low frequency - note that the amplitude of the filtered waveform is greatly attenuated.&lt;br /&gt;
&lt;br /&gt;
[[File:BPFilter.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Band pass filter running at a mid frequency - note that the amplitude of the filtered data closely matches that of the original waveform data.&lt;br /&gt;
&lt;br /&gt;
[[File:BPFilter2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Band pass filter running at a high frequency - note that the amplitude of the filtered waveform is greatly attenuated.&lt;br /&gt;
&lt;br /&gt;
[[File:BPFilter3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===Filter===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Filter'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Performs the filter operation to the current value in the buffer.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FilterArray===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''FilterArray'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Performs the filter operation to the contents of the entire buffer in one go.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetFilterCoefficient===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetFilterCoefficient'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the coefficients of low pass, High pass, band pass and band stop filters to be edited.  Must be enabled using the Variable Coefficients property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Index&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range: 0-1&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Connect To&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | DSP component with output buffer to collect our data from.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Buffer Size&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Number of individual elements the buffer can store, default 1.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Buffer Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the buffer data type.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Direction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the data direction flow of the component&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Filter Properties&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Specifies the filter type created by the component: Low Pass - Filters out frequencies above the cutoff frequency High Pass - Filters out frequencies below the cutoff frequency Band Pass - Combination of High Pass and Low Pass Filters Band Stop - Inverse of Band Pass FIR - Finite impulse response using standard filter coefficients IIR - Infinite impulse response using standard filter coefficients&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Variable Coefficients&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Decides if the coefficient values can be altered during runtime using the SetCoefficient component macro. Only available for the simple filter types, low pass, high pass, band pass and band stop.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-14-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Coefficient 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Cutoff frequency = Nyquist frequency / Coefficient Cutoff frequency is described as when the unwanted frequencies in the signal have been attenuated by at least 50% &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Calculations&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-15-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Sample Rate&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample frequency used to work out some basic useful calculations&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-15-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Nyquist Frequency&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Maximum theoretical frequency that can be obtained by the sample frequency&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-15-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Cutt Off Frequency 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | First cutoff frequency&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_DSP_Filter.fcfx FC_Comp_Source_DSP_Filter.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_DSP_Filter.fcfx FC_Comp_Source_DSP_Filter.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:LowPassFilter.fcfx&amp;diff=41470</id>
		<title>File:LowPassFilter.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:LowPassFilter.fcfx&amp;diff=41470"/>
		<updated>2025-01-29T08:28:00Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:LowPassFilter.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:HighPassFilter.fcfx&amp;diff=41469</id>
		<title>File:HighPassFilter.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:HighPassFilter.fcfx&amp;diff=41469"/>
		<updated>2025-01-29T08:27:44Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:HighPassFilter.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:BandPassFilter.fcfx&amp;diff=41468</id>
		<title>File:BandPassFilter.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:BandPassFilter.fcfx&amp;diff=41468"/>
		<updated>2025-01-29T08:27:28Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:BandPassFilter.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=File:BandPassFilter.fcfx&amp;diff=41467</id>
		<title>File:BandPassFilter.fcfx</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=File:BandPassFilter.fcfx&amp;diff=41467"/>
		<updated>2025-01-29T08:06:24Z</updated>

		<summary type="html">&lt;p&gt;MartinW: MartinW uploaded a new version of File:BandPassFilter.fcfx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41466</id>
		<title>Component: Servo Motor Controller (Mechatronics)</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Servo_Motor_Controller_(Mechatronics)&amp;diff=41466"/>
		<updated>2025-01-28T16:49:03Z</updated>

		<summary type="html">&lt;p&gt;MartinW: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix Ltd&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 2.1&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Mechatronics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Servo Motor Controller component==&lt;br /&gt;
Can control up to eight standard PWM driven servo's.  Supports 8-bit and 16-bit movement resolutions. 'Servo Object' properties allow you to connect the controller to on-screen simulations using the &amp;quot;Servo Motor&amp;quot; component and its derivatives. &lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No detailed description exists yet for this component''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example showing how to control three servos using AutoMoveToPosion, MoveTopposition &amp;amp; SetPosition component macros.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|Controlling_Servos_Example.fcfx|Controlling Servos Example.fcfx}}&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example using BL0162 Servo controller for BL0055 Arduino Shield&amp;lt;br&amp;gt;&lt;br /&gt;
Samples the Port D0-D7 switches and moves the servo motors based on the input states.&amp;lt;br&amp;gt;&lt;br /&gt;
D0 increments motor 0, D1 decrements motor 0.&amp;lt;br&amp;gt;&lt;br /&gt;
D2 increments motor 1, D3 decrements motor 1.&amp;lt;br&amp;gt;&lt;br /&gt;
Connections: Combo Board Ports A0-A5&amp;amp;D0-D7 / Servo Board Port D8-D13.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Fcfile|BL0162_Servo_BL0055.fcfx|BL0162 Servos Example for BL0055}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new angle at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AutoMoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''AutoMoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Automatically moves towards the new 16-bit position at a fixed rate determined by the AutoMoveSpeed. AutoMove not currently supported by ESP32.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to automatically move to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DisableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''DisableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Disables a servo channel effectivly disabling the motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EnableServo===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''EnableServo'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Enables a servo channel effectivly setting the position of the motor to the value in the local position variable.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the servo motor interrupts&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete.   Returns 1 if the servos are still moving.  Returns 0 if all servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IsServoAutoMoving===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''IsServoAutoMoving'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Is the AutoMoveToPosition movement complete for a specific servo output.  Returns 1 if the servo is still moving.   Returns 0 if the servo movement is complete.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Servo Motor Output Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new angle, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-bool-icon.png]] - BOOL&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MoveToPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''MoveToPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves a single step towards the new position, the rate of movement is determined by how often the move to macro is called.  Returns 1 if the position has been reached.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Target position to move towards. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAngle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAngle'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves the motor straight to the specified angle. Uses the angle property to calculate the correct amount to move.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Angle in degrees, Range 0 to calibration angle&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetAutoMoveSpeedInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetAutoMoveSpeedInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of the auto move to position macro.  Default speed is shown in the Servo_Period_Multiplier property.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Slowest (Default), 2= Double, 3=Triple, 4=Quadruple&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPosition===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPosition'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-255&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetPositionInt===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetPositionInt'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Moves directly to the specified position with no interpolation. Uses a 16-bit position parameter to add extra precision.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to assign the new position. Range: 0-7&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u16-icon.png]] - UINT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Position&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Position to jump to. Range: 0-65535&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SetTrim===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''SetTrim'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Allows the level of trim for each servo channel to be adjusted progmatically.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The channel to set the position for.  First channel is zero.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Legacy: 0=0us, 1=+25us, 2=+50us, 3=+75us, 4=+100us, 5=-25us, 6=-50us, 7=-75us, 8=-100us or Smooth: 0-200&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channels (1 - 8)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the number of servo's that you need to control. Value from 1 to 8.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Resources&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-10-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Peripherals&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Lists the internal peripherals of the MCU used by the component. When the servo motor is initialised you will not be able to use the listed peripherals for other functionality.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Pulse Width&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Minimum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Shortest pulse width that will be used.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Maximum (us)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Longest pulse width used for the PWM signals.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Connections&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin on which to output PWM for the servo motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Angle&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-21-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Angle 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range of movement in the servo motor to calibrate the Angle component macros. Can be found by measuring the angle between position 0 and position 255.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Trim&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim Mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Trim 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Trim the pulse width for this channel.  Use this to trim the positioning of two servos so that similar input values will produce the same degree of movement.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-17-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Servo Object 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Drag a servo motor component onto the System Panel, and then select it here, to create an on screen simulation of the way that your flowchart moves the servo's. Servo motors should be based on the 'Servo Motor Base' component, or use a custom component set to responf to 'User.Notify' events (ID = n/a,  Data = Position (0-127)).&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Servo_Controller.fcfx FC_Comp_Source_Servo_Controller.fcfx]&lt;/div&gt;</summary>
		<author><name>MartinW</name></author>
		
	</entry>
</feed>