O-M-G! It’s safe to say that having yet another hobby project is the last thing I need. Having said this, however, I think I’ve just been introduced to my next hobby project.

Just to set the scene, a couple of years ago, I foolishly agreed to take over the software support of some products using PIC microcontrollers from Microchip Technology.

Unfortunately, I discovered too late that the code in question was written in PIC assembly language. I’ve since grown to love PICs, but it must be acknowledged that wrapping one’s brains around the internal architectures of the early devices can bring the strongest amongst us to our knees. The problem is that you are obliged to do this is you wish to use PIC assembly language. Hmmm. A conundrum indeed.

Hex file size comparison: original (left) vs. new (right) (Click image to see a larger version)

To cut a long story short (which is opposite to the way I usually do things), my friend Joe Farr in the UK introduced me to the Positron PIC BASIC Compilers created by Les Johnson. Why “Compilers” (plural)? Well, Les supplies different compilers for 8-bit and 16-bit PICs and both are included. A one-time PayPal payment of only £39.99 will gain you access to the latest and greatest compilers, along with any and all future updates and upgrades.

All I can say is that I am now a devotee of these BASIC compilers. They understand each PIC’s internal architecture, so you don’t have to. They also generate extremely compact and efficient machine code. As an example, compare the .hex file generated from the original hand-coded assembly with the .hex file resulting the same underlying algorithm captured in Positron BASIC (I blurred the results to conceal the captivating cunningness of this code).

The reason I’m waffling on about this here is that my friend Rick Curl, who hails from Birmingham, Alabama, which is about 90 miles south from me, is also an aficionado of Positron Basic Compilers. Rick just emailed me to say: “Hi Max, I don’t know if you’re keeping up with items being posted the Positron forum, so I wanted to call a couple of them to your attention: A great video about the production of Mullard vacuum tubes in Lancashire in the early 1960s and A great dual VU meter for your PC (you don’t have to install it, just run the EXE, and make sure to download from the link in the SECOND post!).”

Well, by golly, I was quivering in antici … … … pation, poised to click on these links when another email from Rick “pinged” its way into my “Inbox.” In this new communication, Rick spake as follows: “Take a look at this video. Tony the Toy Maker uses the Positron compiler in his products. One of his newer creations is the AltairEZ2.”

The AltairEZ2 is fantastic, but the toy that really caught my attention in this video is Cube World, which Tony conceived and created, and which was subsequently developed by Radica Games and Mattel (I remember seeing adverts on TV). As we read on the Wikipedia:

Cube World cubes can be assembled together by magnets on top of one another or side by side. Each cube contains a stick figure that has a unique animation it performs by itself and with others, such as playing a musical instrument or lifting weights. When the cubes are combined, the figures interact with one another, and can move from cube to cube, with up to four at a time in any display across a maximum network of sixteen cubes. The cubes also contain an in-built gyroscope, animating the figures when the cube is tilted upside down. Each cubes also contain unique games played with the buttons, and feature over 100 animations

I love this concept. This is what I’m contemplating as my new hobby project. However, the original Cube World was implemented more than a decade ago using low-resolution black-and-white. I’m envisaging something slightly spiffier in higher resolution with color graphics.

If it’s OK legally (I’m not sure if there are any patents or anything), it would be great to develop this as an open-source project in which people could 3D print their own cubes and build their own PCBs (or buy them). We could provide a software interface allowing folks to create their own animations using predefined characters and objects, or they could create their own characters and objects from scratch. All these characters could interact with characters and objects in other cubes, and we could provide an online exchange for people to share their character creations and animation artifacts.

I don’t know about you, but my head is now buzzing with ideas. As I said, this was just what I didn’t need. Thanks Rick. I’ll get you for this!