In my excitement to write about attending my first Raspberry Pi meetup yesterday, I forgot to say anything about what I actually got up to myself. In between chatting and finding out about other projects I did make some progress on mine.
In quiet moments I hacked on the ELIUS code to get the remaining tests working following the move to a unified memory heap, and pushed the final code to the master branch on github. The code now uses a single linked heap for both dictionary definitions and string pool. Moving over the other data areas and values is still to follow, but the code is already simpler, with fewer system variables needed.

This afternoon I spent a fun few hours with
Norwich Raspberry Pi User and Developer Group. The group held a meetup at
The Soup Lab, which turned out to be a small but very geeky location to meet. I wasn't sure what to expect, but found a group of like-minded and very enthusiastic raspberry Pi owners with a wide range of projects and interests on their minds. I saw a clever power-saving relay-switched power bar, a low-cost robot arm. experiments with JTAG, Zoe - a retro-looking control system for hydroponic gardening, and so on. Alongside these projects everyone was helping each other with problems and puzzlement ranging from how to power a small, encased project, to driving a LCD projector and setting up local network connections, showing interesting hardware (as well as all the Raspberry Pis there were several variants of Arduino kicking around).

It's funny how ideas work their way out sometimes. Today I spent an hour or two simplifying the memory map for my operating system and language CORNELIUS. I had thought that the way I had laid out the memory was pretty much as simple as it could be for this application, but just yesterday it occurred to me that there could be a better way.
The prompt for the idea came initially from my discovery of Duncan Jauncey's Alternate Universe MUD. I have been enjoying poking about in it and spotting the references to old sci-fi material such as The Hitch-Hikers Guide to the Galaxy, and the Traveller game. I'll write more about this another time.
It seems like ages ago that I was complaining about not being able to access the UART pins when an add on board is attached to the GPIO header of my Raspberry Pi. I even drew a picture of what I was looking for. I still haven't found anything exactly like that, but I have found something a bit clumsier, but which might work at a pinch.
Apparently they are known as IC Test Hooks. I bought a set of five in different colours from HobbyTronics. It's hard to see in the picture, but they each have two tiny wire hooks which pop out of the end when you squeeze the handle, then spring back in again to grip the pin.
My presentation to IPRUG about the Raspberry Pi a few weeks ago went down well, so when Kerry, the leader of the group, asked if anyone was willing to join in for an evening of five-minute "lightning" talks I thought I'd have another go.
This time I put together a slide deck and some chat about some of the cool 1960s* software and ideas I have been reading about. In many ways the presentation was similar to my blog post from 17 January, but with a slightly different emphasis.
One of the odd things about working with bare-metal and operating system level software is how tiny things can seem like huge steps when you know what is going on behind the scenes. In this case the "one small step" is the traditional "hello world", something that ELIUS has not really been able to up to now.
To get to this point required several key improvements.
The first bit was to add the beginnings of hardware emulation to my test system. As you may recall if you have been following along, I am building this code on a more traditional desktop computer so that I can test that it works without having to guess what is going on inside the "black box" of a Raspberry Pi with no other operating system. At some point in the future I hope that the CORNELIUS platform will be solid enough to use for further development, but that seems a long way away at the moment.
Unlike many embedded controller boards, the Raspberry Pi does not have any analogue input. For a lot of uses this is not an issue, but as I progress with my plans to build an ultrasonic recording and processing system (a.k.a "bat detector") I'm beginning to think that I need to add some analogue input to catch the high-frequency audio signals from the microphone.
Initially I thought that this would be relatively easy. There are several analogue input boards available for the Raspberry Pi (here, here, and here, for example) and I know that there are analogue inputs on my Gertboard, and also on the little Arduino I have somewhere.
As I mentioned a few days ago, I am trying to build an ultrasonic "bat detector", with the aim of using a Raspberry Pi to record and transpose the inaudible noises given off by bats as they fly around the night sky. I researched the different types of microphones and eventually ordered a pair of Panasonic WM62A electrets.
They arrived yesterday, and caused me some confusion. I picked up a padded bag and saw who it was from, so I excitedly opened it. I yanked out the folded paper invoice and reached into the bag, to find ... nothing. I even looked inside just to make sure. There were no microphones there. Surely the supplier would not send just the invoice in a padded bag? When I unfolded the invoice, there, nestled in the creases was a small silvery plastic pack, about the size of those silica gel packs you often find, or perhaps the size of the little packs of screws you get with a new hard drive. Inside it were the two tiniest microphones I have ever seen. Just 6mm in diameter. Some microphones really are "micro"!
The last few months have been an interesting journey for me. Not only have I been having loads of fun (and quite a few late nights) with my Raspberry Pi experimentations, but I have also been spending my working days programming in C. It came as a bit of a surprise when I was first approached to do this work, as I my career had taken me out of C into C++ for several years, Java for over a decade, then a bit of Ruby for a while.
This is a bit of a milestone for me. I have got to the point where I now have enough of the ELIUS language to enable it to begin to define itself. This may seem an odd thing to want to do, so I’ll try and explain in a bit more detail what I am aiming for, why I took made some of the choices I did, and how it currently works.