Products > 12Blocks > Features

Visual Programming
Drag blocks from the library to the worksheet and press run. Snap blocks together with their tabs. You can configure a block’s parameters by updating their values or dragging blocks into the yellow region.

Editing Tools
Drag blocks with your mouse. Use the block tabs to connect blocks. Delete blocks by dragging them back to the library. Use the scrollbars or mouse scroll wheel to scroll around the worksheet. Undo/Redo actions. Select a single block by clicking on it. Select multiple by lassoing around them and/or selecting blocks while pressing the <shift> or <control> key. Copy/Cut/Paste/Delete blocks. Right drag a block to create a copy. Press the Ctrl key to drag out a single block from a stack.

View and Edit Source
Edit/View Source to edit the text code representation of your program. When you return to 12Blocks the blocks will reflect the changes you’ve made.

Copy/Paste as Code
Select blocks, Edit/Copy then Paste into your text editor as actual code. Or Copy actual code and Edit/Paste into your worksheet.

Built-in Compiler and Loader
Press Run to convert to text code, compile to binary and upload.

Schematics, Photos, Description
Include everything you need in one worksheet- File/Properties to drag/drop a schematic for your hardware, add photos and enter description

Connect to Monitor and Control
By default a serial connection between 12Blocks and your microprocessor is made after a program is loaded to let you monitor and control the program. On the Propeller this uses one of the eight cog to provide a 1Mbps connection-it does not affect the speed of the program running in the other 7 cogs. The connection let’s you change program parameters without recompiling.

Real-time Graphing
View/Values to show the actual values of global variables. Variables can be graphed in real-time at different timescales with optional trigger

IO Pin Graphing
View/Pins to show the actual state of the microprocessors IO pins used to communicate with other devices. Pins can be graphed in real-time at different timescales with optional trigger

Built-in Terminal
View/Terminal to start a terminal connection to the microprocessor. Send/receive strings and numbers with blocks from the terminal section.

Save As EXE
File/Save As/exe builds a single file package that can be run on another computer to load, control and monitor a program with a custom interface

Save as ZIP
File/Save As/zip builds a package of all source code required by a program

Save As PNG/ Print
File/Save As/png to save your program as an image or File/Print it

Load Permanently
Device/Load Permanently to burn the program into your microprocessors EEPROM

Tabbed Worksheets
Open, Save, and create New worksheets using the File menu. Use tabs to switch between open worksheets. Drag blocks onto another tab to move blocks between worksheets.

Port Selector
Manually specify the port of the device you wish to program or let 12Blocks automatically find it. In Auto mode, 12Blocks will display the current port with an asterix: COM10*

Library Selector
Choose which device you wish to program. This affects pin assignment, clock constants and which blocks are supported by the hardware. See the 12Blocks/hardware directory to support custom hardware.

Supports popular microcontrollers
Propeller, bs2, PICAXE, Mindstorm, Arduino.

Multiplatform
Windows, Mac and Linux.

Resources
Examples:File/Examples for dozens of commented example programs
Reference Help: Help/Reference to get more information about a topic
Exercise Guide: More than 20 exercises from blinking to PID control
Tutorials: File/Tutorials for step-by-step tutorials to get you started- or write
your own by saving a commented file into the Tutorial folder.

Custom Blocks
File/Import Blocks to import a source file to the current worksheet and
automatically create blocks. Block properties can be edited manual using
File/Properties or provided with inline XML in the source file. Source file can
also be saved into 12Blocks/hardware/device directory to permanently add
blocks to library for use with all worksheets.

Comprehensive Library
Over 100 blocks to solve most problems including:

  • Repeat a stack of blocks: forever, a set number of times, or while a condition is true
  • State Machines support different behaviours based on the state of your program
  • Triggers start blocks when something happens
  • Tasks let you delegate behavior- either synchronously or asynchronously
  • TV and VGA graphics
  • Sound text to speech, play/record wav files, synthesize music
  • Motor/Servo control high and low level blocks- including ramping and idle
  • Sensors proximity, compass, mouse, keyboard¦
  • Arrays, Variables and Strings
  • Functions with parameters, local variables and return values. Can be refactored and used in recursion
  • Pin Input and Output including frequencies, periods, discharge rate, serial protocols, pulse width modulation
  • User Interface blocks to control and monitor your program with a custom interface- including image background, meter, joystick, gamepad
  • Skype to monitor/control your device remotely via text chat messages
  • Fiducial detection to control devices using computer vision
  • Export to File to save variable values to file
  • ROS integration to interoperate with other devices and algorithms like computer vision, motion planning, Kinect, structure from motion, and SLAM using the Robot Operation System