Donut Board

Notes

Status report, 11 May 2005. I have posted a very preliminary firmware file, donutasm.zip, to the project library. This is just the P&E Micro example file, with the manufacturer and product ID fields set to an arbitrary value. The license on their file is a BSD style license. Yes, we are working on full functional firmware, but this and the gnu/linux driver software go hand-in-hand, and we are doing both simultaneously.

Viewing the Donut board with the above code flashed into it shows up as follows when viewed using usbview from thegnu/linux system. Note the arbitrary manufacturer code of 1122 and the product ID of 3344.

usbview pix

Status report, 8 May 2005. The first article has been tested and responds to the gnu/linux client. We used usbview on a stock SuSE Linux 9.3 system to watch the usb behavior, and all of the correct data was received. This is great news, but it did not happen without a few bumps along the way.

We have been using stock commercial gnu/linux distributions, in order to make sure that what we see is what the normal user would see. The first two tests were unsuccessful, on earlier releases of the same software. The first attempt was made with an installation of SuSE 9.0 - one which works well with all of our store-bought usb devices, and when we plugged in our Donut board it locked up the entire system with a kernel panic. This is not good. The next attempt was with an identical system using SuSE 9.2, which once again works fine with all of the store-bought usb devices. This time there were no adverse reactions on the gnu/linux box, but neither did usbview see the Donut board. An identical system was loaded with the just-released SuSE 9.3, and this time we had success.

From reading Greg Kroah-Hartman's blogkroah.com/log/ (Greg is the maintainer for the kernel usb interface) I see that there have been many updates and fixes to the usb functionality in the last year. As such, if you are intending to develop gnu/linux usb tools, it pays to have a recent kernel and tool set. You are hereby forewarned.

USB Manufacturers Code - US$2500.00. Here is one of those corporate standards body uglinesses which rankle those of us who believe in free software. It turns out that in order to get a manufacturers code assigned for a USB interface, one must be a member of the trade organization, which costs US$2500.00 per year. You can look here for the details: www.usb.org For commercial vendors, this is a cost of doing business. For Free developers, this is a tax on freedom. So do not be surprised that we are using "dummy" manufacturers codes in our development. I probably should not suggest what the reader could or should do. I am not much of a fan of anarchy, but neither will I pay US$2500.00 per year to avoid it here.

Status report, 3 May 2005. Two Donut boards have been built, and both worked right the first time. They were flashed with the P&E Micro example code, and responded properly via the USB interface, as checked with the P&E Micro example Wxx client. We are currently working to get the linux PC software set up to speak properly to the Donut board over the USB interface, and to expand what the internal firmware can do. We will report progress as it happens. As soon as we have functional and stable code, it will be posted here. Note that the source code for the P&E Micro example code is released by them using a BSD type license, rather than GPL which is the usual license for what we design and release ourselves. See the assembly code file for details.

The only issue we found during assembly of the boards is that it really does require a binocular microscope to place the 0603 size passive components by-hand. They are small enough that on a couple of occasions, some of the tiny resistors or capacitors fell right through holes in the board. Other than that, the assembly was very straightforward. Note that the board is shown mounted in a Pac-Tec CM69-120 enclosure, for which the size and hole pattern was customized.