V I R T U A L - B R E A D B O A R D

VBB is free to download with many useful features right out of the box including graphical programming, logic and breadboard layout. In addition there are several pay-for modules which extend VBB

VBB Module Description
GrapeVine A graphical programming language free for use with VBB and Boogie-Board.
Arduino Toolkit Integrated Arduino Development with emulation, debugging and programming  
JARVIS Knowledge base of circuit designs which you can place into your circuit
COMMS Create virtual to real bridges using serial and ethernet connections
CDK Create components and interactive models to control
Firmata Control firmata boards from VBB or control VBB from firmata clients
PicMicro Instruction set simulator for many PIC12,PIC16,PIC18 devices
AVR Instruction set simulator for ATMega 328 device with Arduino IDE monitor
Fritzing Importer for Fritzing component library

Recent Articles and Tutorials

Why Managed Embedded For VBB

Using VBB with Arduino IDE 8 Sept 2014

Using the Fritzing Component 21 July 2014

Netlists in VBB   25 June 2014

Resistors in VBB   22 June 2014

Arduino Options in VBB 15 June 2014


Featured Video

Latest News  

12 September 2014  

Why Managed Embedded For VBB New Article

The problem I am trying to solve for VBB is how to lock together the emulated and deployed application so they are the same thing and not have to deal with conversion friction which reduce the value of the emulation.

It's proven useless trying to emulate unmanaged system applications. Not because of the difficulty of simulating the CPU's, we have AVR and PIC simulated cores already. Its because microcontrollers don't stand alone and its too hard to simulate the entire world at a waveform level.

Learn More...   

11 September 2014  

Boogie Sneak Peak

Today I finished working through the Boojay JUnit test suite to verify the Boogie implementation and except a handful of minor exceptions Boogie passed the more than 100 test suite covering a wide variety of language constructs. The categories include arrays, assorted, autocasting, builtins, callables, crossplatformability, expressions, generators, macros, statements and types give you some idea of the richness of Boo. I am preparing a release test report and will be re-running and extending the suite each release to validate correctness.

To clear up the names :

Boo The language which is basically a statically typed version of python
Boojay Java Cross compiler for Boo which generates java bytecode from Boo syntax
Boogie Muvium Java runtime framework binding Boojay with an Arduino IO framework on an embedded device  
Boogie Board Arduino footprint development board programmable in Boogie and other Muvium languages
Muvium Ahead-of-time java compiler for highly constrained embedded devices (down to 8-bit)

I have also just about completed the integration of Boogie into VBB and with the backend up and running will be able to release a preview version this weekend. Check out the sneak peak - Spot the Pythonesque capabilities..


( PS - Last days for the summer deal on the Arduino Developer Bundle )

8 September 2014  

Using Arduino IDE Tutorial

VBB supports integrated Arduino development using the Arduino Toolkit but this requires the conversion to-and-from java. There are several ways in which VBB also supports working side by side with the Arduino IDE. This tutorial shows how to setup a project to work side by side with the Arduino IDE using the JARVIS Arduino code generator. Learn More... 8 Sept 2014


5 September 2014  

Unit testing Boo - Progress Report

I have been promising all sorts of write up's and their coming but this week I have been in the 'zone'! I think it's fresh energy from the Hackathon and all the boxes I had to tick to make that happen cleared the decks for attacking the muvium Boo port this week. I have never used Python before but Boo is a fantastic interpration of Python that is ideal for embedded because of it's static compilation. To make this happen I have been working with Boojay which is the Boo java bytecode emitter and porting the back-end language support to suite small footprint implementations.


It's electifying to see Boo compiling to bytecode and then muvium squeezing into a tiny micro and executing with the performance of C. One of the best things about Boojay is the unit test suite which I have integrated into the muvium junit test harness to verify the implementation. The muvium Junit harness allows you to target a suite of java tests and dynamically compile the test, program the board and compare the expect result. In the process I am learning so much about Boo because I am inspecting the bytecode emitted by various Boo(Python) language constructs and understanding how the language is helping simplify concepts to make things easier. A fan in the making I think..


I am about half way through the test suite.. I really will write all this stuff up but right now I am just trying to ride the energy boost to accelerate the integration of Boogie into VBB and bring forward the KickStarter so you guys can get your hands on a Boogie Board of your own ASPAP. In the meantime here is some Junit eyecandy..



1 September 2014

What a week! One of the reasons I get involved in events like the hackathon is to set deadlines to help me accelerate development. In the hackathon I wanted to have the VBBExpress PCB's ready and integrate WaveRaster into VirtualBreadboard for use with Boogie Boards. Getting all that ready in time was really a push but that's what it's all about!


My idea for the hackathon was called 'FunQ' which is the gamifaction of the waiting queue. The idea is people waiting in a queue connect to and control themed iGadgART with their phone using WaveRaster as they move along a queue. We had quite some fun and I will do a complete write up about it in the next few days.


Today I want to show you what a VZ-Shield looks like because I am extremely excited and happy with the result. I have been working on this concept for years now. I think it can completely revolutionise DIY micro manufacturing and when I combine it with J.A.R.V.I.S your circuits will just about make themselves!


So here it is - the very first VBBExpress board. It's a VZ-Shield routed to drive 8 Servo motors with a LED, Pushbutton and optional power regulator. Right now I am putting together a tutorial on how you can make your own VZ-Shields but I couldn't wait to give you this peek. Cool huh!


25 August 2014

Science Hack Day Eindhoven 29-30 August 2014


Join Me if you can to field test the new VBB stuff and I promise to shower you with free tools! I am going to a field trip to the Science Hack Day to find out for myself what this Hackathon gig is all about. The plan is to apply VBB/Arduino/BoogieBoards/WaveRaster/iGadgART to do something cool. Not sure what yet, only signed up today. Those who can join my team will get hands-on VBB workshop, VBB licenses, dev boards, first look at the rapid PCB manufacturing and a shot at some cash if we can come up with something cool to make!. Hope to see you there.


22 August 2014

So back from vacation and getting back on track. This week I have been busy setting up the very first VBB custom FAB board the VZ-Shield

This is an AutoRouting Shield which you will be able to order for only $10 shipped same day when before the daily manufacturing deadline. The first project I am building to demonstrate the VZ-Shield is a board to support the Feed Monkey project which requires 8 servo connectors and button and light connectors. The VZ-Shield is based on the standard Breadboard pattern with special support for powered 3 pin connectors typical of servo's and other analog sensors and actuators. Below you can see how the 3 pin connectors are used ( this version of VBB will be available next week ).


I will walk through the whole process next week and also the additional features of the board but basically you just wire it up in VBB and when you order it you will have a custom PCB without wires ready to solder. I can't wait to explore the new possibilities with this new 'makeable' capacity.


6 August 2014

Free Custom Shield-PCB promotion!
/portal/vbb/doc/Home/VZ_Shield.png Share your project, get a FREE CUSTOM PCB!

The PCB FAB system is ready to go. It involves customising VBB template PCB's using a CNC profiler driven directly from your VBB designs. A low cost, next day PCB service is being created from this capability. /portal/vbb/images/youtube.png VBBExpress PCB Service . The plan is to franchise this service so contact me if you are interested in purchasing a machine and receiving PCB orders which you will FAB and supply to your local region and join in the VBB Micro Manufacturing Network.


The 'VZShield' is the first customisable template to be offered, the PCB's are on order and will have arrived by the time I get back. While trialling the PCB FAB system you can get yourself a FREE PCB based on the VZShield template when you share your project.


Shared Projects should include a writeup and a working emulation model using either GrapeVine or Boogie which will be standard in the free version of VBB. This will allow anyone to download and preview the project. As a reference project I will be creating a 8 way servo controller shield for use with the Feed Monkey iGadgART project. This will be turned into a project template for you to share your own projects in a way that can be easily added to the VBB online project library.


You can already start thinking about your designs using the UVShield already available in VBB which is almost exactly the same as VZShield. VZShield has a few extra bells and whistles including a special row for powered 3 pin connectors so commonly seen in sensor and servo projects plus several power rail connection options.


Boogie-Board Kickstarter!
/portal/vbb/doc/Home/kickstarter.png Back me on Kickstarter, COMING SOON  

I am building toward a KickStarter for the Boogie-Boards, iGadgART, a Udemy based step-by-step self-education course and possibly other rewards which I really hope you will back me on. There are a bunch of different reward possibilities and I haven't yet decided the complete mix. Kickstarter campaigns are hard to get right so I want to get some feedback and help with getting the right 'buzz'. As part of that I am actively looking for campaign contributors and communicators - if you think you can help let me know. I am thinking to offer a share of the rewards in return for your contributions in shaping and sharing the message.


To date I have been spectacularly bad at 'buzz'. This is part strategy ( stay under the radar ) and part personality ( I find it hard to put myself out there! ). But I recognise that in this day and age it's important that people feel good about the products they are involved with. This is the reason for the VBB make-over with Boogie and GrapeVine.

/portal/vbb/doc/Home/Boogie.png VBB has fantastic potential as an educational platform and I wanted to make it fun and funky to capture kids imagination and energy as young as possible. And well, I have it admit it really makes a difference. My 8 year old boy find's 'Boogie' much more interesting than V18'O (huh?).. He is my test case and both my kids absolutely love FeedMonkey and other iGadgART I have cooking. They have started to learn GrapeVine and will soon start on Boogie so this is the educational level I want to begin from. Up until now I haven't built any coursework to enable this type of learning with VBB and that's something I want to make part of the kickstarter, an in-depth step-by-step course that can be followed virtually and and also for real with a Boogie-Board starter kit.


Why Boogie-Board and not just use Arduino? Well actually you will be able to follow alot of the course with an Arduino and so that will be an option for those who already have Arduino boards. Also I will offer a chip swap option so you can transform DIP based Arduino boards into Boogie-Boards. However there are things you can only do with Boogie because Arduino has it's limits.


Most importantly Boogie is Object Orientated so you can create dynamic objects and do all those funky OOP things you can do in Boo/Python/Java that you can't do in C. GrapeVine for example is an OOP based Visual Programming language, and WaveRaster /portal/vbb/images/youtube.png WaveRaster 'What is it'   which Boogie-Boards also support is an OOP based Android programming System which is so amazing it still blows my mind. You can try to understand WaveRaster, /portal/vbb/images/youtube.png WaveRaster 'How it works' , but you won't 'get' how this is useful for creating ah-hoc user interfaces until you touch it with your own hands. Here is an early example to get started /portal/vbb/images/youtube.png WaveRaster 'Using WaveRaster With Arduino ' . Just say this 10 times, The Android App gets embedded and the Android Phone remotely rasters the display. Got it?


So what exactly are Boogie-Boards then? A Boogie-Board is very similar to an Arduino except it has a different compiler ( muvium java ) and a different micro ( PicMicro ). When the PicMicro is programmed with a Muvium Bootloader it becomes a Muvium Micro. So a Boogie-Board is a development board for a Muvium-Micro in the Arduino Form-Factor. I first created Muvium back in 2003, years before Arduino was even thought of and if you attended Microchip Masters in 2004 or 2005 you could have taken the preview course on Muvium using Eclipse and an earlier version of VBB - talk about head of it's time! You can also develop for Boogie-Boards using Eclipse ( or other java platforms like netbeans ) once you become an expert but Eclipse is just not the right tool for getting started, that's what VBB is for.


With interactive emulations that accurately map to the real world, VBB is impossible to beat for self education when used alongside a complete coursework. I am very excited to finally be in a position to complete the VBB vision and I hope you can back me and become part of the VBB story.


More when I get back recharged and ready to .. um.. Boogie!!


5 August 2014

VBB 5.07 Available Now!  

Release Notes - Will record a release note video tommorrow

- Replaced the Piping Board with 'Boogie-Board' which is to become the reference development board for VBB tutorials, reference code etc

- Renamed Piping to GrapeVine ( If you have created Piping projects zip them and send them to me and i will upgrade them to work with the new version )

- Reworked all Piping examples to GrapeVine

- Updated VirtualShield graphics

- Added Redo and put the Undo/Redo buttons on the toolbar

- Linked Arrow keys to scroll bars

- Linked mouse scrollbar to zoom with ALT key is hold down

- Linked mouse scroll wheel to vertical scroll when ALT key is not held down

- Fixed crash on minimise

- Fixed the current solution working director browse button

- Fixed ARDUINO ERROR - just click ok on importer

- Improved the snap to grid

- Fixed zoom when not using lock origin mode

30 July 2014

Lets Boogie!

/portal/vbb/doc/Home/Boogie.png I have spent years trying to find the perfect language to become the native language for VBB. The original thinking was Java, and to support this I built an AOT java compiler for microcontrollers called muvium. In addition I integrated a Java runtime and debugging framework into VBB but.. yawn it just didn't stick.


Then along comes Arduino which is C made to look like java and wiola! There are other factors for sure but I have become convinced that it's the type-free programming that is really attractive to the typical Arduino and physical computing dudes ( and dudette's ). For more casual type programmers where the program is only part of the solution type-free languages really seem to be the bomb and bundling C with Java makes Arduino more type-free than java it'self which uses strict typing.


As a more or less full-on software guy I find type-free languages hard to live with because they introduce errors when software libraries need to work together but for scripting and 'hacking' the lower learning curve of type-free languages seems to be strongly prefered


While I have been able to run the java parts of Arduino in VBB using the java frameworks originally created for muvium, Arduino is not a perfect fit for the native language for VBB. After all Arduino is also C, a very CIL unfriendly language. What I need is a language that supports both CIL and JVM. Java using J# for CIL and javac for JVM was a good first effort but Java is not a type-free language and in addition Microsoft stopped supporting J# putting VBB on a clock to to deprecate J#  


My initial response was to develop a Visual Basic (VB.NET) Bytecode Generator which was released in VBB as VBee. This allowed me to experiment using Visual Basic as the native VBB language. But since Visual Basic became VB.NET it also lost alot of the type-free features that made the original VB6 and VBA popular. This has seen VB.NET become less popular over recent years so also didn't stick. Strike 2.


After some head scratching I found myself asking what has stepped up to replace VB6/VBA as the type-free Language of choice? Why Python of course.


However, Python is an interpreted language , not CIL and not JVM.. unless.. Enter Boo!


Amazing! Boo is exactly what I have been looking for and in recent months I have been integrating an embedded Boo version into VBB which I am calling Boogie

  • Boo is based on Python syntax but with critical differences essential for embeddable runtime
    • Boo is statically typed which means it uses smart analyses to add typing suitable for Ahead-of-Time-Compilation (AOT)
  • Boo compiles to CIL
    • Like J# I can use Boo to run embedded Boo applications emulated at full CIL speed in VBB
  • Boo compiles to Java Bytecode via Boojay
    • Like javac I can load Boo JVM code into the VBB Java Debugger framework
    • Muvium can compile and deploy the Boo generated JVM bytecode to embedded Muvium microcontrollers
  • Boo can bind .NET libraries for scripting components VBB and other scripting tasks
  • Future Proof
    • Cross-platform support for Mono when we finally make VBB fully mono compatible
    • Boo is a supported Scripting language in Unity for potential future 3D support in VBB


There is still alot of work to do to fully support tab-completion editing, in-circuit debugging and more but the first steps will begin in just a few days time with the release of 5.07. Get ready to Boogie!


More soon!


More News ...