Due to other, exciting distractions (which I will mention in a later post), I haven’t had a chance to keep the blog up to date. Still, work progresses on the boat, and that’s the important part. Last month, with the keel now in its new position about 30mm further back along the hull, and sealed into place, it was time to add the electronics board.
Posts Tagged “FreeBSD”
After a lunchtime conversation with a friend of mine, I ditched some of the earlier design considerations around message-passing and MQ-based systems in favour of the NoSQL database Redis.
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
That’s according to the official blurb on the web site, at least. It has several interesting components which are useful for Beoga Beag. It has a rudimentary pub/sub architecture pattern, it is extremely lightweight, it stores its database in memory rather than on a disk (so it’s less likely to burn through the Compact Flash file system), and it has an “append-only file” (AOF) archive mechanism.
The new ALIX board has arrived. It’s to the left of the picture, sitting on top of a copy of the infamous Lyon’s Notes (which is appropriate). Also, the initial Atmel board with USBtiny programmer cable, serial cable to same development system, and a couple of WRAP boards thrown in for good measure.
It’s running my custom version of NanoBSD quite nicely, and can see the GPS without any difficulty. The GPS unit is a BU-353 unit (the USB version) which is out of the shot. It’s attached to the window, and gazing at the man-made stars. To give a breakdown of what’s in that photograph, the ALIX is on the left. In the USB port is the GPS, the RS-232 cable at the top of the board is communicating with my development machine (running FreeBSD). The red CAT5 cable is connecting the board to the “house network.” The Atheros CM9 radio is a miniPCI card mounted on the underside of the board. It works on 5.8GHz and on 2.4GHz. In this case, I’m using 5.8GHz because (apparently) it has better cross-water characteristics and the band isn’t as crowded. The mini coax cable is at the top-left of the picture, connected to a short, 9dBi antenna. You can also see a 12v cable with barrel plug. At the top-right of the picture is a WRAP board, also developed by PC Engines. It was being used as a testbed for the operating system, but that is no longer needed thanks to the ALIX.
After much tweaking and hacking with configuration files and kernel build options, I finally have a FreeBSD 8.3-RELEASE kernel and install running on a Wrap board. Technically, it’s NanoBSD, which is a scaled-down FreeBSD install, which boots from Compact Flash. The WRAP board is the PC Engines forerunner to the ALIX. When National Semiconductor and AMD stopped making Geode chips, the guys at PC Engines had to stop making their very popular WRAP board. I still have a few of them tucked away, for emergencies such as this.
I’ve been asked recently, about the software platforms used on board Beoga Beag. This seems as good a time as any, to talk about the various layers. As mentioned previously, the lower layer is a custom board, running an ATmega8 Atmel processor. The software (Igor and Otto) is custom-written in C for the boat.