Académique Documents
Professionnel Documents
Culture Documents
User Manual
James Caska WORKING DOCUMENT 15 July 2010
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.
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..
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
Documentation
Text ( *.TXT )
XML (*.XML)
General Xml document for document project
Code Generators
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.
Java Source
For developing and debugging applications with the java 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
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
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.
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.
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.
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
Right Click on a Source Project to add a source file to a Source Code Project
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.
FlexTiles
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
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
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
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
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.
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
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.
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 the FlexTile will update the Properties box with the FlexTile properties
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
You can see that a model for the Microchip based FlexTile has been added to the Breadboard design.
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
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
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
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.
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
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
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
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
in the Toolbar
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
Custom FlexTile Added by Clicking My Bright Leds in the Custom Modules Toolbox
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
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.
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.
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.
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
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
Depending on your printer printer and personal preferences you may prefer to use the black and white image when printing.
Pops up a print dialog to allow the printer to be selected to print the FABDoc
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.
OpenVBB Adaptors
Toolbar
Name
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.
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
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
Select a component
To select a component enter Select Mode and left click on the component
Drag to reposition
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
Links touching or crossing are not merged together without a junction Enter Junction Mode and click with the left mouse to place junctoins
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.
Toolbox
See the OpenVBB Component Catalog
ROADMAP : MORE !