07
Jul 10

andi-servo

As I mentioned in my last post, part of building Dagda required me to write a linux device driver for the Ajeco ANDI-SERVO motion control board:

ANDI-SERVO motion control board

After only eleven years, I finally got round to releasing the code for that driver under the MIT licence using Google Code project hosting.

How much use it would be to anyone is up for debate – the current version of the ANDI-SERVO is still in production, but differs from the model I developed on; the driver was written for Linux 2.0.35 and hasn’t been updated; and it’s pretty basic at that. Still, better out there than thrown away 🙂

The board itself is described in this datasheet; the main chip at it’s core, the actual device the driver is controlling, is described in this datasheet, this programming guide, and this user guide. Those, and the first edition of Alessandro Rubini’s excellent book Linux Device Drivers, were the main references for writing the driver.

The documentation I wrote for this was actually in LaTeX because I was still learning it at the time, but here’s the pdf it translated into. There’s only four pages, but they cover the structure and basics of the driver and the code’s simple enough to follow.

Speaking of code, it’s in a mercurial repository. You can browse it on the Google Code project webpage or clone it with hg like so:

hg clone https://andi-servo.googlecode.com/hg/ andi-servo

Enjoy, and I hope someone finds it useful…


22
Jun 10

Dagda – part two (cameras and computers)


So the last post was all about the mechanical chassis and frame and power systems; this time I want to look at the cameras and the computer.

The cameras we used were standard research ones we had in the lab at the time – fairly straightforward things, whose resolution would now be too low to be used on the most basic mobile phone (and which were strictly grayscale only), but which were fairly high end at the time:

Hitachi KP-M1

They were small and light, which was a plus, but they needed special cables and power supply boxes, which was a bit of a pain:

Hitachi KP-M1 rearHitachi KP-M1 power supply boxes

Still, they let us get video reasonably cheaply. We did have another camera sensor, mounted on the very top, which Niall Winters was using for his PhD which was on Omnidirectional Video – it was one of the first panaspheric cameras, and again, mostly home-made:

Dagda's Omnidirectional Camera Continue reading →


10
May 10

Why the Nokia N900 is fundamentally better than the iPhone





Nokia N900As I said before, with the trial N900 gone back to WOMWorld, I wanted to compare the Nokia N900 to its most obvious competitor, the iPhone, and the outcome was important enough to do in a seperate post. So here goes.

The thing is, the N900 is not just a phone, it’s more than that. Yes, every marketing department says that every time they bring out a new phone, but in a very few cases it’s actually been true. It was true about the first smartphone; it was true about the first iPhone; and it’s true about the N900. The first smartphone was the start of the smartphone market, the first iPhone was the start of the app store and marked the real birth of the mobile web; and the N900 is the first real convergent device and it marks the first time there’s been a real, compromise-free choice between a walled garden from Apple and an open platform. There are two reasons why this is true, and why the N900 is fundamentally better than the iPhone, and more importantly, why it will remain so, and they are:

  1. Convergence. Right now, you have several communications streams — email, twitter, facebook, IM, SMS, VoIP, voice, and more. Convergence is about handling all of those in a single device, all fully supported and fully integrated, and with the ability to both consume and create content. Nothing else on the market today can touch the N900 for this, including the iPhone. The N900 takes convergence as a design principle from the hardware level on up; the iPhone does not. And the iPhone is not likely to even try to compete with the N900 in this area because Steve Jobs does not want convergenceAs Charles Stross pointed out recently, computing as we know it is just past a major tipping point that will see mobile computing change the field utterly. Whomever owns the the app store and the communications streams will own that market, and Steve Jobs realises that that ownership is key to Apple’s business model. Which takes us into the second point:
  2. Freedom. What the N900 does is to take existing communications streams (voice, VoIP, twitter, etc) and bring them all to you over one single device using open standards. The point of the N900 is to be a tool for you to use, whereas the point of the iPhone platforms is to be a tool to allow Apple to own the communications stream (ironically, that means that Nokia is now being more like Apple’s earlier days thanks to a change in philosophy at Apple that Slate recently noted). It’s a difference reflected in the nature of the two companies; Nokia makes communications devices to work on standardised networks owned by several other third parties; its products must interoperate with others well or it goes out of business. Apple, however, makes products that must not work well with other products or Apple’s business model won’t work and they go out of business. Got an iPod? How do you get music to it? Yup, iTunes. No drag-and-drop, no straightforward file transfer, you have to go via an Apple product, and not just some application they sell to you once, but an application they maintain ongoing involvement in via the app store and iTunes store. The iPhone platforms lock you in, while the N900 allows you the freedom to do whatever you want. The N900 is probably the closest thing to a phone that both Richard Stallman and Steve Wozniak would be happy to use as we are ever likely to see. It runs linux, you can code for it in a range of languages, there’s no wierd licencing deal going on, it plays with every existing communications stream out there; even in hardware, it uses industry-standard connectors for the headphones and microUSB ports and other subsystems. This phone is an object example in how to build a device that’s about giving the user a better tool to use; rather than building a better EULA to force the user to use your device; and it’s also an object lesson in why something that sounds as hippie-flower-power as ‘Freedom’ is actually a serious end-user issue.

In an Apple-v-Nokia comparison, the Nokia N900 kicks the iPhone’s backside. In design, the N900 does convergence far, far better. In ideology, the iPhone isn’t even playing the same game as the N900. In price, the N900 costs 25% less than the iPhone (and does more than it). Granted, there are implementation bugs, but comparing what the Nokia represents to what the iPhone represents, I’ll take the Nokia any day of the week. The N900 only lacks polish — the iPhone lacks substance and that’s a far more serious problem.

So why doesn’t Android kick the iPhone’s backside in this way? Because in terms of convergence, Android isn’t quite as far along as the N900 (yet). And because in terms of freedom, Android is just another walled garden but this time with a different name on the wall. Granted, Android’s walled garden is a better place than the iPhone’s but it’s still got walls. The N900 is just that little bit better at convergence and just that little bit better at being open. For example, you use standard Debian repositories on the N900, not an app store. Want to get your software on the N900 from a distribution point of view? You don’t have to go via Nokia. That’s a pretty fundamental difference, and so long as Nokia don’t try to alter that, they’ll have the better product from an end-user’s point of view.

So should you buy an N900? Will I be buying one?

Yes, in short. It’s far cheaper than the iPhone, it does more, it restricts me less, it’s more expandable and usable, and it makes my life a lot easier than any other smartphone or netbook would. It would reduce the amount of stuff I have to cart about the place with the E71 and do the jobs I need doing better than I can do them at the moment. I just need to find a local place to buy from so I can get a fast fix/replacement in the event that bug 6063 shows up again.