Vous êtes sur la page 1sur 81

VirtualBreadboard

User Manual
James Caska WORKING DOCUMENT 15 July 2010

Date 15 July 2010

Notes Created Initial Partial Working Document

Table of Contents Overview of System .....................................................................................................6 Installation ....................................................................................................................7 Supported Operating Systems...............................................................................7 Installation Instructions...........................................................................................7 Installation Dependencies ......................................................................................7 Xenocode ..................................................................................................................8 How does it work? ...............................................................................................8 Issues .....................................................................................................................8 Permissions ...........................................................................................................8 AntiVirus................................................................................................................8 Linux Support ...........................................................................................................9 Application Overview Orientation ...........................................................................10 DesignSheets ..........................................................................................................10 Flex.......................................................................................................................10 Simulation ...........................................................................................................11 Instruments.........................................................................................................11 Documentation ..................................................................................................11 Code Generators ................................................................................................12 Source Code Projects ( *.SRC ).........................................................................13 New Project Dialog....................................................................................................15 Perspective Tab ......................................................................................................15 New Tab ..................................................................................................................16 Existing Tab ............................................................................................................18 Recent .....................................................................................................................19 VBB Solution Orientation..........................................................................................20 VBB Application Window..................................................................................21 VBB Application Menu ......................................................................................21 The VBB application Toolbar............................................................................22 DesignSheet Toolbar .........................................................................................22 Current DesignSheet .........................................................................................22 The layout toolbar .............................................................................................23 The Solution Explorer ........................................................................................23 The properties panel .............................................................................................25 The property description panel .......................................................................25 Empty panel........................................................................................................25 Status Toolbar ....................................................................................................25 DesignSheet Toolbox ........................................................................................25 FlexTile DesignSheet .................................................................................................26 Background ............................................................................................................26 Background Knowledge: FlexTiles .......................................................................27 FlexTiles ...............................................................................................................27 Flex Router VirtualBreadboard Board ..............................................................28

TopSide ...............................................................................................................29 Bottom Side ........................................................................................................30 Flex Router Route Board .....................................................................................31 Anatomy of the FlexTile System ..........................................................................31 Rules ....................................................................................................................31 FlexTiles ...............................................................................................................32 FlexRouterBoard Layout ...................................................................................32 Routing Regions ................................................................................................32 Edge Regions .....................................................................................................32 Scaleable Model.................................................................................................32 Adding a new FlexTile DesignSheet ....................................................................33 Elements of the Flex DesignSheet ...................................................................35 Viewing the design ............................................................................................36 Toolbox ...............................................................................................................37 Placing a FlexTile................................................................................................37 Properties............................................................................................................38 Selecting FlexTile properties ............................................................................39 Property: FlexTile Part # ....................................................................................39 Property: FlexTile Sub Part# .............................................................................39 Toolbar ................................................................................................................40 Select Arrow ......................................................................................................40 Moving a FlexTile ...............................................................................................41 Zoom ..................................................................................................................42 Create New Breadboard Model..................................................................43 Synchronize with Breadboard Model ........................................................45 Generate FabDoc ..............................................................................................48 Open Custom FlexTile Library.........................................................................49 Custom FlexTile List ...........................................................................................49 Definitions Panel ................................................................................................49 PinOut .................................................................................................................50 Button Bar...........................................................................................................50 Working with FlexTile Library Editor Dialog.......................................................50 Rolling your own FlexTiles ................................................................................50 Roll your own FlexTile by soldering components to a FlexProto board ....51 Use the header sockets of the FlexRouterBoard directly as a breakout ....51 Roll your own FlexTile by creating your own custom PCB...........................51 Placing a Custom FlexTile .................................................................................54 Editing a Custom FlexTile .................................................................................54 FAB DesignSheet .......................................................................................................59 Elements of the FAB DesignSheet ...................................................................59 DesignSheet ...........................................................................................................59 Top View .............................................................................................................60 Bottom View.......................................................................................................61

Toolbar ....................................................................................................................62 Toggle Color................................................................................................62 Print ................................................................................................................62 Toggle FADoc Page .....................................................................................63 Breadboard DesignSheet ..........................................................................................64 Background ............................................................................................................64 Adding a Breadboard DesignSheet.....................................................................64 Designing with Breadboard DesignSheet ..........................................................64 Toolbar ....................................................................................................................65 Component Editing Essentials .............................................................................67 Placing a component from the Toolbox.........................................................68 Select a component...........................................................................................68 Select a group of components ........................................................................69 Append a component to a selection ..............................................................70 Move a group of selected components .........................................................71 Copy and paste selected components ...........................................................72 Delete the selected components(s).................................................................73 DesignSheet Management Essentials .................................................................75 Zoom In and Zoom Out....................................................................................75 Panning ...............................................................................................................76 Restore Origin ....................................................................................................76 Wiring Essentials ....................................................................................................77 Working with Junctions ....................................................................................78 Working with Net Labels ..................................................................................79 Toolbox ...................................................................................................................81

Overview of System

What is VBB For? The core mission of VirtualBreadboard is to rapidly synthesise real time embedded applications. VirtualBreadboard is an embedded application virtualisation toolkit. The primary mission of VirtualBreadboard is to be able to seamlessly interchange virtual and real components in a single integrated design environment. True to the concept of a electronics Breadboard, VirtualBreadboard is mostly about connecting simulated electronic components together to create a virtual embedded application that executes in the PC Beyond just electronics , VirtualBreadboard extends into mechanical peripherals that can work with the simulated electronics to create virtual robots and robotic worlds.

Installation
Supported Operating Systems

VBB is a Windows Application developed with Visual Studio 2005 and should run well on a modern PC running WindowsXP and Vista or Windows 7

Installation Instructions
The VirtualBreadboard application uses Xenocode to deliver a single standalone EXE that you can simply download it to your desktop or preferred location. Download Here: Make sure you also download the dependencies (See Below)

Installation Dependencies
VirtualBreadboard has the following dependencies which need to be installed on your computer. These may already be installed on your computer and only need to be installed the first time you install VBB. .Net 2.0 Redistributable. Click here to download from Microsoft NET 2.0 This is the .net (2.0) framework. You probably only need to download this if you are using XP J# 2.0 Redistributable. Click here to download from Microsoft This is the java extensions to the .net framework. This is the most likely one you are going to need to install Latest version of DirectX - Click here to download from Microsoft VBB links to the August 2009 DirectX SDK so you may have to update your directX version

Xenocode
Xenocode is a software sandbox that allows all the files from an application to be included in a single executable. This allows distribution without installation which is fantastic for a product like VBB which is constantly being updated. I could have included the dependencies in the VBB image but this would make it 60-70Mb and you would have to download that each time VBB updated. This way you can download less than 20Mb file and drop it on your desktop and run it side by side with previous versions without having to uninstall the old version and re-install the new version.

How does it work?


Xencode unpacks temporary files into the default user directory for example on Vista this is here
C:\Users\<USERNAME>\AppData\Local\Xenocode\Sandbox\VirtualBreadboard\< Version>

Issues
If Xencode cannot perform this unpack it wont be able to function and this has caused issues in the past.

Permissions
If you are completely locked out from a machine with no permissions to even write to the default AppData directly then you wont be able to run VBB

AntiVirus
In the past some antivirus have detected the unpacking mechanism and determined Xencode to be a virus. This is a false positive and we have reported this to antivirus vendors whom all seem to now have Xenocode in their databases so you may need to update your antivirus signatures if you have a problem.

Linux Support

A common question is do you support linux. Some people even get angry that I dont support linux. Calm down everyone, its not so easy but I am working on it. ROADMAP:

The Linux support strategy is to port to the Mono runtime. Mono is a cross platform runtime for .net applications. However the platform is not 100% compatible as some things have not yet been implemented in Mono. In particular DirectX is a stumbling block, there is no version of Xenocode for mono and major components like the code editors in VBB there are no mono versions. So there is plenty to do but we chipping away at it..

Application Overview Orientation


VBB is an Integrated Development Environment for the purpose of designing, simulating and building microcontroller based electronics hardware systems. The fundamental concept is the DesignSheet, VBB manages a collection of DesignSheets which can link together to perform various tasks. VBB has two phases, design-time and run-time. Each DesignSheet has a design-time view and may have a run-time view. Hierarchy

Solution (VSM Project(s) o DesignSheet(s)


The Solution Explorer is context sensitive. Solution ( *.VSM ) The VBB VSM Virtual System Model Solution file is the root file for VBB. It contains references to a collection of Projects and contains global settings for the solution. Project ( *.PRJ ) A project contains a collection of DesignSheets and project specific configuration settings

DesignSheets
DesignSheets are the main document managed by the VBB system. There are many different types of DesignSheet performing a wide variety of functions

Flex

FlexTile3D ( *.FLX )
Is a DesignSheet supporting a 3D design environment for composing FlexTile hardware designs.

FabDoc ( *.FAB)
Views and prints the fabrication document which is used to assembly FlexTile designs

Simulation

Breadboard ( *.VBB)
The Breadboard is a DesignSheet supporting the OpenVBB simulation framework. Components designed using OpenVBB can be dropped into a Breadboard DesignSheet, wired up and simulated

World ( *.WLD )
The World DesignSheet contains a collection of OpenVBB components which are design blocks for a 3D physics based runtime. Used in the RoboPAL perspective to create an interactive robotics world.

Instruments

Logic Analyser ( *.VLI )


Virtual MulitChannel Logic Analyser Instrument that is very useful for analyser logic signals for debugging and testing

Documentation

Text ( *.TXT )

General text document for document project

XML (*.XML)
General Xml document for document project

Code Generators

Muvium Metal ( *.MTL )


Java on the Bare Metal DesignSheet. Muvium is a java ahead-of-time compiler for the PICMicro. Generates executable code for the PICMicro and provides a debugger for in-circuit debugging of virtual or real device. The DesignSheet contains configuration information including the source java class file, target device, oscillator settings and peripheral configuration information and access parameters for the microchip ICD

Microchip ( *.MCH)
Microchip code generator for accessing the MPASMWin or other compiler and provides a debugger for in-circuit debugging of virtual or real device. Contains configuration information including target device, configuration bits and access parameters for the microchip ICD in addition to scripting information how to access command line code generators

Arduino ( *.ARD)
Arduino code generator interfaces with the Arduino code chain and programs the device inline. Contains configuration information including the location of the Arduino toolchain, COM port to connect with target device.

FlowCode ( *.FLW )
FlowCode support visual programming using the visij ( visual java ) paradigm. Visij applications are serialised and executed in a Visij runtime container. Visij

runtimes are available for the PC, PICMicro with Muvium and LegoNXT with Lejos.

Source Code Projects ( *.SRC )


The source code project is a special type of DesignSheet which contains a collection of source code files. Two types of source code project Microcontroller Application Source for executing in a (virtual or real ) microcontroller OpenVBB Component for creating simulation components

Microcontroller Application Source


For developing application code for a microcontroller. Microcontroller Application Source Projects work with code generators to create deployable application code

Java Source
For developing and debugging applications with the java language. Code Generators : Muvium Metal

Microchip Assembly Project


For developing and debugging applications with the Microchip Assembly language Code Generators: MPASM

Visual Basic (.net) Source


For developing and debugging applications with the Visual Basic (.net) language. Code Generators : Muvium Metal

Arduino Source

For developing and debugging applications with the Arduino language Code Generators: Muvium Metal, Arduino

PBasic Source
For developing and debugging applications with the PBasic language Code Generators: Muvium Metal, PBasic Pro

OpenVBB Component
An OpenVBB Component is intended for use within the VirtualBreadboard Breadboard framework. You develop OpenVBB components to model and simulate the behaviour. You can also develop OpenVBB components within Visual Studio See VBBDK

Java Source OpenVBB Component Project


Develop OpenVBB components with the java language

Visual Basic OpenVBB Component Project


Develop OpenVBB components with the Visual Basic (.net) language

New Project Dialog


The New Project form is responsible for locating and opening an existing project or project template or creating a new project. It is the first form that appears when you start RoboPAL. It also appears when you select New or Open from the Main Form. There are 4 tabs Perspective New Existing Recent

Perspective Tab
A Perspective is a collection of DesignSheets, OpenVBB components and examples specific to a task. Perspectives are a type of Skin for VBB to create an application specific version of VBB. For example RoboPAL is a collection of applications specific perspectives for Robotics applications. The Perspective Tab allows the current Perspective to be selected. A Perspective is a customised collection of available designers, components and examples specific to a particular type of application. Often too many options can be overwhelming so Perspectives are used to organise relevant collections of information. This can be particularly useful for educational applications where a limited number of options can be presented in a Perspective which can be later expanded upon. Available Perspectives are organised in hierarchical Tree on the left side of the panel. Note that only the leaves of the tree are actual perspectives. On the right side of the panel are the perspectives details and any perspective wide settings.

New Tab
The New Tab is used for creating New projects from project templates. A project template is a complete solution based on an example or project type which you can use to quickly get started. The templates are organized into a tree of project types to help you locate a template that best suits your embedded application challenge. The Project Types Tree on the left hand side selects the project type and the Project Templates lists the available templates for the selected type.

The Project Templates are listed in the Project Template list. The Project Types Tree is a collection of project templates. Double-Click the template to open it Click the folders to show the list of templates

Follow the hierarchy to locate the examples

Existing Tab
The Existing Tab allow projects that already exist to be located and opened

3 2

1. 2. 3. 4.

Existing Tab List of VBB Solutions in the current directory Drop down navigator Move up to the previous directory

The navigation dropdown list allows you to search the computer for directories containing an existing VBB solution to open

Recent
The recent tab hold the most recently used project list for quick access to recently used projects.

VBB Solution Orientation


When you create a New Project you will see the following screen. 1 2 4 5 6 7 3

12 8

10

9 11

1. VBB Application Window 2. VBB Application Menu 3. The VBB application Toolbar 4. The current DesignSheet Toolbar 5. The current DesignSheet highlighted by blue header 6. The layout toolbar 7. The solution Explorer 8. The properties panel 9. The property description panel 10. Empty panel 11. Status Toolbar 12. Toolbox of currently select DesignSheet

VBB is context sensitive to the current DesignSheet, the toolbox and toolbar changes when the currently selected DesignSheet changes.

VBB Application Window


The VBB Application is a MIDI ( Multiple Document Interface ) style application where the document being managed is the DesignSheet

VBB Application Menu

File
Name New Open Close Solution Save Save As Exit ShortCut Description Ctrl + N Opens the New Project Dialog with the New Tab selected. Only available when no solution is loaded. Ctrl + O Opens the New Project Dialog with the Existing Tab selected. Only available when no solution is loaded. Closes the current solution and returns to the closed solution state. Only available when a solution is loaded. Ctrl + S Saves the current solution Opens the Save Dialog prompting for the new project name. Only available when a solution is loaded. Shut down VBB Only available when no solution is loaded.

Edit
Name Cut ShortCut Description Ctrl + X Copies the current selection to the clipboard and deletes the selection from the current DesignSheet. Only available when a DesignSheet is active and components have been selected. Ctrl + N Copies the current selection of the current DesignSheet to the clipboard Only available when a DesignSheet is active and components have been selected. Ctrl + O Pastes the components copied to the clipboard to the current DesignSheet. Only available when a DesignSheet is active and components have been copied to the clipboard.

Copy

Paste

Delete

Deletes the current selection from the current DesignSheet. Only available when a DesignSheet is active and components have been selected.

The VBB application Toolbar


Name New Open SaveAll Description Opens the New Project Dialog with the New Tab selected. Only available when no solution is loaded. Opens the New Project Dialog with the Existing Tab selected. Only available when no solution is loaded. Saves the current solution to disk. If this is the first time saved then the Save dialog is opened. Only available when a solution is loaded Runs the simulation for the current solution. Only available when in design mode.

Run

DesignSheet Toolbar
The DesignSheet Toolbar contains tools for editing and navigating graphical DesignSheets. Like the Toolbox, the Toolbar is updated with the tools specific to the currently selected designer and updates when a new designer is selected.

Current DesignSheet
The current DesignSheet TitleBar is highlighted blue 2

1. You can always click into the TitleBar to select the DesignSheet as the current DesignSheet

2. Some DesignSheets allow you click anywhere on the DesignSheet to select it

The layout toolbar


The design panel has up to three design panes. Each pane may contain a DesignSheet. One Panel Show the design panel as a single design pane. Any selected DesignSheet is shown in the single pane Two Panel Splits the design panel into two separate design panes Three Splits the design panel into three separate design panes. Panel When you double click a DesignSheet in the navigation tree it is selected into one of the available panes according to its default viewing position. You can override the default location by drag ging and dropping the design from the navigation tree to the desired panel. When switching between layouts the previous layout remembers which DesignSheets are in which panel.

The Solution Explorer


The solution Explorer contains a tree representing the DesignSheets in the solution.

The Solution Explorer is context sensitive.

Right Click on a solution to add additional projects to the solution

Right Click on a Project to add DesignSheet

Right Click on a Source Project to add a source file to a Source Code Project

The properties panel


Many items, DesignSheets and Components have Properties The properties editor is populated when components are selected with DesignSheets. The properties are specific to individual components.

The property description panel


When a component is selected the description of the property is displayed in the property description panel

Empty panel
When a panel has no DesignSheet it appears blue. You can fill the panel with a DesignSheet by dragging and dropping a design into the panel

Status Toolbar
Shows status information including runtime timing and debug information

DesignSheet Toolbox
Toolbox of currently select DesignSheet The toolbox contains the collections of components specific to the current designer. Components are grouped into collections which can be drag and dropped onto the current DesignSheet. When the current designer changes the Toolbox is updated with the components specific to the newly selected DesignSheet.

FlexTile DesignSheet
Background

Designing hardware with VBB is a fundamentally different process than traditional hardware design. In VBB hardware is designed with pre-routed electronic functional blocks called FlexTiles. Each FlexTile is designed so they can work together to create a whole fully functional electronic system. The traditional approach begins with generating a schematic, generating BOM, routing a PCB and then finally generating a 3D model for verification. VBB inverts this, starting with the 3D verified design and then works backwards to generate a schematics equivalent model. The key to FlexTiles is constrained manufacturing and is best used for prototyping and small medium volume production applications.

Background Knowledge: FlexTiles


The FlexTile system is a patented modular manufacturing system which describes how to interconnect electronic modules into functional designs for both prototype but then also the manufacture of turnkey hardware. It consists of two , two layer printed circuit boards that work together to make arbitrary connections. You might call it field programmable hardware.

FlexTiles

FlexTiles are pre-routed electronic function blocks.

Flex Router VirtualBreadboard Board


The host board that accepts FlexTiles 1. The TopSide Host has header connectors to accept the FlexTiles into its topside header sockets 2. The Bottom VirtualBreadboard side looks something like a high density Breadboard but accepts spring loaded connector pins instead of wires 1 2

Features of the Board

TopSide
1 2

4 6 3 7 5

1. 2. 3. 4. 5. 6. 7.

Assembling hole for connecting the top and bottom routing boards Mounting hole to secure top edge Flextiles Mounting hole to secure side edge Flextiles FlexTile Header - Left side is the routing side FlexTile Header Right side is the power and bus side Row marker for locating correct row to place a Flextile Row connection nodes hole through from bottom side

Bottom Side
We call this the VirtualBreadboard side because it looks something like a Breadboard.

4 5 3 6

1. 2. 3. 4. 5. 6. 7. 8. 9.

Assembling hole for connecting the top and bottom routing boards Mounting hole to secure top edge flextiles Mounting hole to secure side edge flextiles FlexPin panel column Label for locating panel to place FlexPin FlexPin column markers to assist in locating flexpin coordinates FlexRow drilled exposed printed circuit board strip to place flexPin FlexRow marker for locating flexpin coordinates FlexPin plate-through drill location at row,column for placing FlexPin Notch marker matching the column marker demarking groups of 5 flexpin coordinates for locating an individual column along a FlexRow

Flex Router Route Board


1 2

The FlexRouterBoard is the backplane system which makes the electrical interconnects between flextile pins. It consists of two, two layer boards interconnected by spring loaded contacted pins. The RouterBoards are like Field Programmable Hardware. The key to the design is the mechanical arrangement that allows for high density of mechanical connections in the available space. A FlexRouterBoard consists of two PCBs HostBoard InterconnectBoard

Anatomy of the FlexTile System


The Flex system is a constrained system while trying to remain as flexible as possible. FlexTiles may be placed nearly anywhere on a FlexRouterBoard

Rules
FlexTiles must have the correct orientation FlexTile pin 1 must be on an odd FlexRow number

FlexTiles
have an even number of rows. can have any number of columns use only SMD parts if used in Routing Routable Pins are on the Left Power Pins are on the right side, VDD on odd numbers, VSS on even

FlexRouterBoard Layout
Top Edge 1 Top Edge N

Left Edge

Routing 1

Routing N

Right Edge

Bottom Edge

Bottom Edge

In the FlexRouterBoard there two broad regions, Edge and Routing Regions

Routing Regions
The routing regions are the general purpose regions into which FlexTiles can be arbitrarily placed. FlexTiles designed for use in the routing regions must use only SMD parts, this is to enable the conversion of the prototype layout into turnkey hardware.

Edge Regions
Edge Regions are generally used for interconnect and securing FlexTiles with mounting holes. Through hole components can be used in the Edge Regions. Top/Bottom edge regions are generally used for interconnect, communications, power connections etc. Side regions are are generally used to secure a FlexTile to a screw mounting hole or add a through hole parts to a FlexTile.

Scaleable Model
ROADMAP : Define Fully

The underpinnings of the FlexTile System is a scaleable parametric model. As we grow our product range we will expand our offering to include expanded capabilities and design possibilities. N Number of Node Connect Layers B Number of Bus Connects R Number of Rows C Number of Columns

Adding a new FlexTile DesignSheet


To Add a new FlexTile DesignSheet to your project 1. Right Click on the project to add a DesignSheet and select Add FlexTile Sheet

Select a name for the new FlexTile DesignSheet

Click OK

The new Flex DesignSheet will appear in the solution treeview TIP: To Select the Flex DesignSheet into a panel drag it from the treeview and drop it into the panel to view. See: drag and drop selecting the current DesignSheet

Elements of the Flex DesignSheet


1 3 4

1 2 3 4 5

The Toolbar for the Flex DesignSheet The Toolbox containing the available FlexTiles The DesignSheet title and panel. Is initially blank The DesignSheet in the solution treeview matches the title name Properties box which displays the Flex DesignSheet properties or the current selected FlexTile properties.

Viewing the design

Right Click and hold to rotate the design Move Down to rotate horizontal clockwise Move Up to rotate horizontal ant-clockwise Move Right to rotate vertical clockwise Move Left to rotate vertical anti-clockwise

Toolbox
The toolbox contains the available Flex RouterBoards and FlexTiles in category groups which can be accessed by clicking the + and to open and close the category groups

Left Click to place the Flex Router Board

TIP: You must first place a Flex RouterBoard from the Flex RouterBoard group.

Placing a FlexTile
To place a FlexTile simply click the icon in the Toolbox and this will place the FlexTile in the next available place.

Left Click to place the FlexTile

Properties
Flex DesignSheet Properties DoubleClick the name of the Flex sheet in the treeview to show the sheet properties.

Property: Breadboard
Description: The Breadboard property links the FlexTiles DesignSheet with a model. The linked model contains a matching model for each FlexTile and is used when computing an FABDoc.

Selecting FlexTile properties


To select the properties for a FlexTile select the FlexTile to update the properties box with the FlexTile and select the properties appropriately.

Select the FlexTile in Select Mode See Toolbar: Select

Selecting the FlexTile will update the Properties box with the FlexTile properties

FlexTiles contain one or more properties

Property: FlexTile Part #


Description: This is the designation of the FlexTile layout

Property: FlexTile Sub Part#


Description: If there are component options such as compatible processor or operating voltage then these are selected in the SubPart property.

Toolbar

Select Arrow Zoom Create New Breadboard Model Synchronize with Breadboard Model Generate FabDoc Open Custom FlexTile Library

Select Arrow
To select an FlexTile click the select arrow and then using the mouse left click on a FlexTile. Once selected a FlexTile will get a Yellow Border around it. 1

TIP: The best place to select a FlexTile is around the center of the FlexTile. 1 Select the Select Arrow it is a state button and will become highlighted 2. Once selected the FlexTile is highlighted with a yellow border.

Moving a FlexTile
Once selected you can move the flextile using the Keyboard Arrow Keys Move Up

Move Left

Move Right

Move Down

Note that the FlexTile will move down relative to the top of the FlexRouterBoard and will jump over other flextiles. Herethe down arrow was pressed moving the FlexTile down and jumping over the FlexTile below its previous location.

Zoom
Click Zoom to enter zoom mode. In Zoom mode when you click and hold the mouse down moving upward zooms out and moving downward zooms in

Left Click and Hold and move upward to zoom out

Left Click and Hold and move downward to zoom in

Create New Breadboard Model


Once you have completed a design you can automatically create a new Breadboard populated with the models for the FlexTiles in the design. Click the Create New Breadboard Model Button

Enter the name of the new Breadboard file to create Click OK

The new Breadboard will be added the treeview

Selecting the newly created Breadboard1

You can see that a model for the Microchip based FlexTile has been added to the Breadboard design.

Synchronize with Breadboard Model


Lets say you want to add another FlexTile to the design. If you link the design with the model then you can automatically synchronise the model with the FlexTile layout by clicking the Synchronize Button. To link the FlexTile design with the Breadboard model

Double Click to show the Sheet properties in the properties window

Select the model breadboard to link.

This links Breadboard1 model with FlexTile layout. Now if we add extra FlexTiles, status LEDS for instance and click the synchronize button. Then if we look at the Breadboard1 model we see the LEDS have been added for us.
Click Synchronize to add new models LEDS added to the model using the synchronize button

First select the Breadboard

If you click on a model in the Breadboard design, you will see a FabId property. For example selecting the LEDS just added shows the properties Colors, FabId. This is a unique Id that matches up with the FlexTiles in the design

Breadboard models are designed to be simulated and tested so you might want to add for example some additional test models. So if you delete a FlexTile and press the synchronize button the models will be deleted from the design but any additional test components you have added will be unaffected For example, here the previous step was repeated by placing a new LEDS and clicking synchronize to add another set of LEDS to the model. In addition a new logic analyser test instrument was added to the project and a Probe was added to the design.
Synchronized button placed the new model in the Breadboard Added Non FlexTile test components

Placed a new FlexTile

Now if the second set of LEDS is not needed and is deleted. TIP : Delete a FlexTile by selecting it in select mode button or selecting delete from the file menu and pressing delete

The when we synchronize again we want to remove the unused FlexTile model but leave the newly added Test model component unaffected. Pressing the synchronize button shows this is the case.
LEDS model removed by synchronise

Test probe remains intact

Deleted the unneeded FlexTile

Generate FabDoc
So we have an FlexTile Layout and we have a Breadboard model and they are linked together using the Breadboard property of the FlexTile DesignSheet. Then we are ready to generate a FABDoc. Pressing Generate FabDoc will create a FABDoc and add it to the view tree.

AutoFAB doc will be added to the project when clicking the Generate FABDoc

What is a FABDoc? A FABDoc is a netlist expressed in terms of the FlexRouterBoard routing matrix. Generating a FABDoc is the process of resolving the netlist for the wiring between the pins of the models of the FlexTile components and generating the routing matrix.

Wiring is resolved in a netlist to generate a FABDoc

Open Custom FlexTile Library


The final toolbar button opens the Custom FlexTile Library Editor Dialog 1
1

3 2

4 1. 2. 3. 4. The Custom FlexTile Library Dialog Form The list of the current Custom FlexTiles The definition panel of the custom FlexTile The Button Bar

Custom FlexTile List


The list of the custom FlexTile list. Clicking the list selects the FlexTile

Definitions Panel
Name Name of the FlexTile Description A description of the FlexTile functionality Cols The number of columns the FlexTile will occupy Rows The number of rows the FlexTile will occupy

Generic Appearance Option select to use default appearance which the name of the FlexTile printed on a background color which you can choose in a print forecolor that you can choose o BackGround Color the background color of the tile in the default appearance o Text Color the text color of the FlexTile in the default appearance Custom Bitmap select your own Bitmap for use as the FlexTile image

PinOut A table to enter then names of the pinout of the FlexTile Button Bar
Add Clears the definition panel and enables it for editing Edit Populates the definition panel with the currently selected FlexTile in the Custom FlexTiles list Delete- Deletes the currently selected FlexTile in the custom FlexTile list Update If adding then adds a new FlexTile with the definition in definitional panel else edits the currently selected FlexTile with the new definition Cancel Cancels the session without saving the changed Close Closes the dialog and saves the changes to the FlexTile

Working with FlexTile Library Editor Dialog


Rolling your own FlexTiles
When there no FlexTile available for to function you want implement then you can add your own custom FlexTile. Most users will have some unique components they work with in their specific electronics field. It is envisioned that a custom FlexTile collection will be created for these unique components. Custom FlexTiles are a great way to organise and re-use these components between prototype designs. The VBB FlexTile catalog is intended to be used for the common shared functions between all electronic fields. There are three ways envisioned to creating custom FlexTiles 1. Roll your own FlexTile by soldering components to a FlexProto board 2. Use the header sockets of the FlexRouterBoard directly as a breakout 3. Roll your own FlexTile by creating your own custom PCB

Roll your own FlexTile by soldering components to a FlexProto board


FlexProtoBoards are designed specifically for creating custom FlexTiles. For example the Proto8 ( VBB-00025 ) is a 1 column 8 row FlexTile. See datasheet for more information

4 6 1. 2. 3. 4. 5. 6. 8 routable pins Top row maps to the 8 routable pins Optional breakout header VDD (+5V ) Bus Row VSS (Gnd) Bus row Proto area 5

Use the header sockets of the FlexRouterBoard directly as a breakout


The FlexRouterBoard has 2mm header which can be used directly either as a receptacle to receive wires as per a standard breadboard or a custom header

Roll your own FlexTile by creating your own custom PCB


You can roll your own PCB to create a custom FlexTile.

ROADMAP: Complete with the dimensions and routing rules and submission rules for Turnkey manufacturing with a custom FlexTile and policy for 3rd Party FlexTile providers. Once you have create a custom FlexTile you can make it available using the FlexTile Library Editor Dialog Lets say you have created a custom flexTile with some new ultrabright LEDS for example a Red LED and a Green LED. You used a PROTO8 and now you want to add it to your custom FlexTile library.

Red 1 Green 2

First open the FlexDialog by clicking Press the

in the Toolbar

button to add the new component and complete the dialog

Name =My Bright LEDS Description = Read and Green SuperBright LEDS Cols = 1 Rows = 8 Pinout Row 1 = RED Pinout Row 2 = Green

Then click the Update Button The FlexTile will now appear in the custom FlexTiles list

Click the Close Button The FlexTile will now appear in the My Custom Modules Toobar group

Placing a Custom FlexTile


You can now place the custom FlexTile in your design just like a regular FlexTile by clicking it in the Toolbox.

Custom FlexTile Added by Clicking My Bright Leds in the Custom Modules Toolbox

Editing a Custom FlexTile


Lets say you have created a more detailed representation of your custom FlexTile and you would like to edit it

To edit your FlexTile First open the FlexDialog by clicking

in the Toolbar

Now select your FlexTile in the case My Bright LEDS and clicked edit to edit the FlexTile

We want to update the appearance with a custom bitmap so select the Custom Bitmap option and click the browse bitmap button
Select Custom Bitmap Option Press Browse Button and locate new Bitmap

Locate Bitmap and Presss Open

The appearance will be update with your new image in the FlexTile definition panel Click Update to save your changes and Close to return to the AutFAB DesignSheet.

Now when you add a My Bright Leds component you will see your new custom image

TIP: The previous FlexTile added with the previous definition will not be updated with the new appearance until the project is closed and reopened.

Modelling a Custom FlexTile


So we can now update our model with our custom FlexTile, Click Synchronize with Breadboard Model and open the new model. Two new models have been added matching up with the LEDS added.

Custom Models Added

Simulating Custom FlexTiles


For the native VBB FlexTiles there is a simulatable model available. The models generated by the Custom FlexTile Dialog are not simulatable and only document the model. It is possible however to add non-FlexTile model elements to simulate the functionality side by side with the document models.

Consider the following scenario where coloured LEDS have been added to the custom FlexTile document models to create a functional simulation side by side with the FlexTile document model.

Functional Model added for side by side simulation of FlexTile functionality

ROADMAP: Link custom models built with the OpenVBBDK with the FlexTile models as per the way it is done with Native FlexTiles

FAB DesignSheet
The FAB DesignSheet is a document automatically generated by a FlexTile DesignSheet.

Elements of the FAB DesignSheet


1. DesignSheet 2. Toolbar 2 1

DesignSheet
The DesignSheet contains two pages representing the Top and Bottom view of the Flex RouterBoard.

Top View

The Top View shows the location and FlexTile numbers to place in the design when fabricating real hardware. 3 1

2 1. Is the FlexTile part # 2. Is the unique ID of the FlexTile in the design 3. Is the row number to place the FlexTile pin

Bottom View
The Bottom view show ths VirtualBreadboard matrix and the locations where FlexPins need to be placed in order to construct a valid circuit. See: Assembling Flex for details on using the document.

1. The location of the pin in row 5, column 4 2. The Row Labels 3. The Column Labels

Toolbar

There are 3 functions in the Toolbar

Toggle Color
The Toggle Color button toggles black and white and color versions of the DesignSheet view. The color of the button itself changes to reflect the action taken Pressing this icon turns the image into a black and white image

Pressing this icon turns the image into a color image

Depending on your printer printer and personal preferences you may prefer to use the black and white image when printing.

Print

Pops up a print dialog to allow the printer to be selected to print the FABDoc

Toggle FADoc Page


Toggles between the two pages available in the FABDoc Press to Toggle Page

Press to Toggle Page

Breadboard DesignSheet
Background
OpenVBB is a toolkit and library for emulating electronic circuits in real-time. OpenVBB components are wired together to create complete electronic systems which can be emulated and interacted with in real-time. The main goal of OpenVBB is to enable emulations that model the real behaviour of electronic circuits to execute in real-time that is to model the interactive behaviour of the system emulated. This is different to the goal of electronic simulation systems such as SPICE which simulate the behaviour of discrete devices. OpenVBB components model these devices at a higher or more abstract level. The low level devices are effectively contracted to behave in a certain fashion. The OpenVBB toolkit finds its roots in the java language but is cross platform in its implementation. The OpenVBB RunTime infrastructure marshals signals between emulated components.

Control domain Physics Simulator/Emulator Robot Toolkit

OpenVBB RTI Components Controllers

OpenVBB Adaptors

Adding a Breadboard DesignSheet Designing with Breadboard DesignSheet


The Breadboard DesignSheet is a graphical design tool for placing and wiring OpenVBB components into logic active schematics. OpenVBB components are active and may embed visual at design time or run time.

Toolbar

Name

Name Select Arrow

Description Select mode is used to select components for editing their properties or cut/copy/ paste/delete operations. The select arrow when clicked will enable select mode for the current DesignSheet and the arrow icon will become highlighted Select mode is mutually exclusive with the Move Mode. In select mode you can select one or more components: Left click a component to select it. A selected component has a dashed box around it The selected components properties will be shown in the properties list. Left click + Shift to select multiple component Left click + Shift on a selected component to unselect it or remove from the selection group A Window drawn around a group of component selects the components in the window A Window drawn + Shift around a group of components with adds the components in the window to the selected components Some components have built-in property editing capabilities. The first click on a component will select the component and enable its in-place editing capabilities. Subsequent clicks will interact with the components build in property editor.

Rotate Left Rotate Right Move Arrow

Click Rotate Left to rotate a selected component or component selection 90degrees counter clockwise. Not all components support rotation. Click Rotate Right to rotate a selected component or component selection 90degrees clockwise. Not all components support rotation. Move mode is used to reposition one or more components around a DesignSheet. The move arrow when clicked will enable move mode in the current DesignSheet and the move icon will become highlighted

Move mode is mutually exclusive with the Select Mode. In move mode: Component selection is the same as for select mode except property editing capabilities are disabled. Move a single component by dragging with left mouse Shift + Left drag and drop to move a component selection OR Right button drag and drop to move a component selection Enter Link Mode Curser becomes cross hair While In Link Mode: Left Click a link to begin a link Left Click to create a join or the end of the link Right Click to finish creating the link. Note: If the two end points of the link are connected to components then the links become pipes. Only pipes can carry information between components so be careful to connect them correctly. Links can only join components together. You cannot lay a link onto another link and have the links join into one link. Junction Enter Junction mode In Junction Mode Left click to place junction node on two links to merge them Enter Net Label Mode In NetLable mode Left click to place a net label junction and select a net label name to name the node Zooms dynamically. In Free Zoom Mode Left Click down-and-hold on the DesignSheet and move the mouse upwards to zoom out and downwards to zoom in. Doubles the zoom factor of the current DesignSheet causing the DesignSheet and all the components on it to appear larger Halves the zoom factor of the current DesignSheet causing the DesignSheet and all the components on it to appear smaller. Zooms into a bounded window. In Zoom Window Mode Left Click down-and-hold to anchor a window then move

Net Label

Free Zoom

Zoom In Zoom Out Zoom Window

Zoom Extents Restore Origin

mouse to draw a bounding window. Release mouse to zoom to fit the bounded window to the design panel. Sets the zoom factor to fit everything into a single window Restores the zoom factor to 1 and restores the x and y pan offset to zero to restore the origin. Locks the origin such that during dynamic zooming the left most margin of the form remains in the same position. When not enabled left and right margins are zoom equally. Enables quick panning of the design. In Pan mode Left click down-and-hold to grab the design and move the mouse to pan the whole design HOTKEY: Press SPACE while in any other mode to shortcut to Pan mode. Doubles the size of the currently selected components Halves the size of the currently selected components

Space

Scale Up Scale Down

Component Editing Essentials


There are several ways you can work with components. Placing a component Select a component Select a group of components Append a component to a selection Move a group of selected components Copy and paste selected components Delete selected components

Placing a component from the Toolbox


Placing a component is an important skill not quite drag and drop. You need to click on the Toolbox icon releasing the mouse button. This attaches the component to the mouse pointer when you move over the DesignSheet. You can then drag the component into position in the DesignSheet and click a second time to place the component.

Select a component
To select a component enter Select Mode and left click on the component

Selected components are bounded by a dashed blue line.

Select a group of components


Select a group by drawing a window around the components to select. Draw a window with a Left Click to anchor the window, and holding down the mouse button drag out a window. Release the mouse to select the components fully inside the window.

Left Click-and-hold to drag out window

Selects components fully inside window

Append a component to a selection


Append a component to a selection by holding shift and left clicking the component.

Shift + Left Click

Move a group of selected components


To move a selected group of components Select Move Mode by clicking the move state button Shift + Left Button drag and drop or Right button drag and drop.
Shift + Left Click-and-hold OR Right Click-and-hold

Drag to reposition

Release to place. Selection remains

Copy and paste selected components


Copy and paste duplicates the selected components with a small offset from the selected components. Copy with File Menu Edit:Copy ( or Ctrl+C shortcut) Paste with File Menu Edit:Paste ( or Ctrl+V shortcut)

Note: The selection shifts to the newly pasted components.

Delete the selected components(s)


Delete removes the selected components. The selection is destroyed Delete with the File Menu Edit:Delete ( or Del shortcut )

Note the selection is destroyed

Shrink and grow a selection


To increase density of certain parts of a graphical design it can be useful to scale down a component or group of components. Equally it is useful to be able to restore the size of the components and scale components back up. To scale down a component selection Click the scale down component toolbar button

To scale up a component selection Click the scale up component toolbar button

DesignSheet Management Essentials


Zoom In and Zoom Out.
Some components, notably fields, are larger than the design panel windows on many monitors. It is useful to be able to zoom To Zoom Out Click the Zoom Out toolbar button

To Zoom In Click the Zoom In toolbar button

Panning
Panning allows you to move the whole design around in the window. This is especially important if the design is larger than the window and you need to locate different sections of the design. To Pan and click-and-hold to drag the design Click the Pan toolbar button NOTE: You can enter PAN mode using the SPACE bar any time as a ShortCut

Restore Origin
If your design has been zoomed and panned you can easily become disoriented. To Restore the Origin Click the Restore origin toolbar button

Wiring Essentials
Wires are links from component pin to component pin.

To begin wiring click the wiring button The cursor will become a crosshair

To start a link move to the pin to create a link from and click the left button

The link will attach to the pin and to the mouse cursor. Move the cursor to the first joint of the link and press the left button again

Now the link is anchored to the last joint and the cursor Click again with the left mouse on the next joint location or the destination pin

Now the link is anchored to the destination pin and the cursor To finish the link click the right mouse button

When a link is made between two pins the link becomes thicker to indicate the link is an active link

Working with Junctions


Junctions are used to merge links together. Note: Links overlayed over each other are not considered a single link To create a junction click the junction mode and then

Links touching or crossing are not merged together without a junction Enter Junction Mode and click with the left mouse to place junctoins

Links need to be merged with a junction to become active

Working with Net Labels


Net Labels are used to name wires so they can be merged across designs.

Select Net Mode and click on the wire to place a junction, this should be place on a wire. A dialog will popup where you can type in a new net label or select a name from the list of existing labels on the current design.

Here we have two nets, A and B,

Which are resolved and merged together to create active nets

Toolbox
See the OpenVBB Component Catalog

ROADMAP : MORE !

Vous aimerez peut-être aussi