Virtual BeagleBone Development Tool


There are times when I setup virtual instances of Debian to create development environments for certain web/programming projects…things that are a little more involved, or I don’t want to incorporate on my existing local machine. This has worked very well for me this far. I can always go back to a project, with all it’s software and dependencies and “out-dated” software versions just as they were, and it works every time. I don’t have to worry that a new version of PHP came out - which I use on a new project - and as a result, an old project doesn’t work anymore, etc.

This brings me to my purpose for writing today:

I’ve been doing BeagleBone development for about 3 months now. And a thought came to me today, as I have different boards for different projects. I would like to do something similar for my BeagleBone projects that I do for my other programming projects.

I know that I could install the BeagleBone OS on a Virtual machine, but there is nothing to represent the hardware and what it is doing - if you write something to talk I2C, you will get errors since there is no hardware support for that and the rest of the OS will reflect the same.

But I think it would be pretty awesome if there was a virtual environment with some sort of graphical representation of the activity on the pins and peripherals of the BeagleBone device.

Not only would this allow me to develop entire projects on the PC before I invest into any hardware, but it basically allows me to try the same code on different versions of the BeagleBone. If the GUI side of this virtual environment had drag and drop “sensors” and motors and things of that nature, I could actually read in “data” and actually “turn motors” as if it were real life.

Development would be much faster, conceptual projects could be put together faster, and I think all around it could improve my quality of work.

I can foresee some issues with visualizing certain things on the hardware side that may be CPU intensive…but perhaps there could be emulated parts to ease those issues out.

Anyone else like this idea, want to expand on this idea?
There isn’t really anything out there like this to my knowledge. Is it possible to get this?

Leave a comment, Thanks!

Yeah, I’ll expand, or rather comment on the subject. I think it is a waste of time. With that said, do not get me wrong in thinking I am attacking your ideas. I have thought about this too. However the time investment would be all your, and as a solo developer you may be able to get something working within a couple years . . . So maybe not a complete waste of time, but definitely a huge time investment.

There is an alternative however that can be fairly similar, but does require investment of at least one beagelbone. There would be no virtual machine.

  1. You setup a Debian dev machine, cross compiler, and related tools for the BBB
  2. One the above mentioned system, you run an NFS share.
  3. (optional) you also have a tftp server on your host dev machine.
  4. You “boot” Your Beagelbone over the network using a NFS rootfs, and (optionally) kernel over tftp.
  5. You create a minimal base image, for all future “dev” images.

Then, it is just a matter of making a new directory / share, for each new image. Then extract your tar’d image to that directory, update your server, etc. You can even have several types of base images laying around for various things. One very small for production, one build system image. For building binaries / packages, etc for your small production image . . . You’re only really limited by your imagination - And your ability to learn / think “outside of the box”.

As for hardware emulation, as in circuits. There are many tools out there to achieve that. And one as mentioned on hackaday as going free, and possibly open source. Others . . . usually are fairly expensive. Such as Labcenter’s Proteus.

Hi William,

Don’t you remember the name of tool that was mentioned in hackaday? Anybody remember?