Tuesday, November 16, 2010

Ubertooth: first release

Tonight I uploaded the first release of Project Ubertooth, an open source wireless development platform that can be used for Bluetooth testing and research. This is a very preliminary release, but it includes the complete hardware design for Ubertooth Zero, firmware source code, and the host code needed to perform rudimentary Bluetooth sniffing as I demonstrated at ToorCon 12. Although you can download a project archive, I recommend using the Subversion repository so that you can easily keep up to date with the project as it develops.

The documentation is still a bit thin, but there are README files scattered about the project directories. The host code can be compiled with gcc on Linux. The firmware also can be compiled with a gcc toolchain (I have found the CodeSourcery package to be helpful) and can be flashed onto a board with lpc21isp. I've been using a slightly modified SparkFun FTDI Basic Breakout for this, but there are several serial programming devices that will work with lpc21isp.

Also in the repository is an early hardware design for Ubertooth One, the next generation board that I hope to have ready within a couple months. This is a more challenging design that will probably require a few revisions, so keep your expectations low if you try to build one based on the current layout.

6 comments:

Anonymous said...

cool

Emeryth said...

Great job!
Do you think it would be possible to use some cheap 2.4GHz transceiver module instead of the CC2400?

Casainho said...

Hello.

I will download the code and schematics, I am interested in bluetooth and I am using LPC1768 now.

Aren't you using JTAG to debug and flash the code on LPC175x? -- I am doing it, JTAG debug is very productive.

If you don't know about JTAG debug, see here how I am using it: http://forums.reprap.org/read.php?147,33082,66865#msg-66865

If you need help to setup it, just say ;-)

Michael Ossmann said...

Emeryth: I've looked at every 2.4 GHz transceiver IC I can find, and the only two that support this application are the CC2400 and the ADF7242 (which is not yet in full production to the best of my knowledge). The most common problem with other chips is that they have rigid packet formats that are incompatible with Bluetooth.

Casainho: Yes, JTAG is useful, but one of my design goals is to allow the use of the lowest cost programming device possible. That's why I've made certain to have the serial bootloader working. Ubertooth Zero has JTAG broken out to a non-standard header, and Ubertooth One will have a standard Cortex-M3 50-mil JTAG header. I'd also like to get a USB bootloader working so that people can program it without any hardware.

I've just set up a mailing list at the sourceforge site if you are interested in ongoing discussion.

Casainho said...

Ok, I did register on mailing list and sent a message... is that working?

Casainho: Yes, JTAG is useful, but one of my design goals is to allow the use of the lowest cost programming device possible. That's why I've made certain to have the serial bootloader working.

Ubertooth Zero has JTAG broken out to a non-standard header, and Ubertooth One will have a standard Cortex-M3 50-mil JTAG header. I'd also like to get a USB bootloader working so that people can program it without any hardware.


I use JTAG for debug and programming, but at development. For user programming, I am using USB bootloader.

I got the USB bootloader code from here: http://www.cm3tools.com/CodeRedWiki/RDB1768cmsisExampleProjects

There you can find a lot of useful examples for LPC17xx.

Look, I would like to have bluetooth on my board, but using USB Mass Storage and then using a 2€ cheap USB<->Bluetooth from Ebay/China. Do you think is possible?

I also found another project were I may learn and reuse firmware: http://www.circuitsathome.com/mcu/bluetooth-code-for-arduino-usb-host

Finally, my board documentation (not yet released): http://objects.reprap.org/wiki/HBox_RepRap_Electronics

And you did well to use KiCAD ;-)

Laen said...

Great work!