Archive for February, 2009
A BTnode-alike sensor node can be made from individual modules. Just click on the picture - it has notes with additional infos at Flickr.
Will be used for prototyping the “Bluetooth enabled input device” (e.g. by translating from a PS/2 keyboard / mouse interface to Bluetooth) for a wearable computer.
With Bluetooth connectivity in place (for attaching additional input devices that extend touchscreen input) and an affordable Head Mounted Display (HMD) that is supported by the iPhone - things move forward towards a capable wearable computer.
This comes some years after the experiments with an iPAQ.
There is an updated video meanwhile.
Here is a short video showing the interacting devices (Apple wireless keyboard, iPhone, communicating over Bluetooth) in operation.
Feels like getting closer to the “mainstreaming” goal - it uses hardware that comes of the shelf (unfortunately you still need to have access to a jailbroken phone), uses a packaged application, does not expose bits and pieces to the end user, just works with all the applications that use the standard on-screen keyboard - and finally: it may just help you doing something more efficiently or comfortably.
It uses the Bluetooth stack developed by the researchers at ETH Zurich - they deserve all the credit.
They kept and keep continuing with the development of their BTnode software - so for a most recent version you should refer to the BTnode CVS repository. Everybody with a Linux or OSX desktop system can do his own experiments with the BTnode software in a setup like the one described under A Bluetooth stack in user space.
iPhone to iPod touch gaming via a wireless link. This video was done with the 2 devices interacting via WLAN.
There will be an update when we do this via Bluetooth.
We actually have Bluetooth connectivity - see screenshot below.
This is a data transfer (l2ping) over Bluetooth originated from a Linux system running Bluez to an iPhone using its built-in Bluetooth module.
Bluetooth development for the iPhone and the iPod touch join on the same path.
The screenshot below shows the whole setup in operation - it found another Bluetooth device in range.
An inquiry scan found another Bluetooth device in range.
00:18:42:e9:f8:ba is actually my N95 - as to be seen below
To be continued.
A Bluetooth stack in user space already existed for quite a while. The researchers at ETH Zurich provide software for their BTnodes. A BTnode has (among other features) an ATmega 128 micro controler and a BT module with an HCI interface that is connected via a UART.
Fortunately, you can do development and real-world tests with just the same software compiled for running on a host system (e.g. PC). The emulator runs in user mode and uses a BT module attached to the serial port. Have a look at
for further info.
For experimenting with the sensor node software I used a module like this - which has a Mitsumi Bluetooth module with a CSR chipset, works at 115200 bps and could do hardware handshaking (RTS/CTS) - nevertheless - the jumpers on the board also allow to work with no handshaking at all (in case your serial port does not provide it) by looping RTS/CTS at the module side. The photo on Flickr has notes that explain the jumper settings.
I benefited a lot from having worked with Bluetooth on the HP iPAQ (Compaq at that time still) from the very early days - when this even still involved switching the HCI transport mode for the chip in the iPAQ with a tool provided by CSR. At that time I built a 2nd generation iPAQ based wearable computer for usage in a research project.
See the recent setup with the external adapter working on Linux.
After having tested it on a Linux system - I can confirm that the software works on OSX as well - run as a standard user with read/write access to /dev/tty.KeySerial1 (a Keyspan USA-19HS adapter).
Now - let us attach the (we are still talking about an external one) BT module to the iPhone serial port and compile / run the emulator program as just another user space program.
It just works (you will notice that - as shown on the photo on the top - I have 2 external modules - that’s the reason for the different MAC addresses).