Merge pull request #469 from mossmann/rm-mail-irc

Remove links to mailing list and IRC
This commit is contained in:
Straithe
2021-11-15 19:44:41 -05:00
committed by GitHub
31 changed files with 9 additions and 955 deletions
+1 -1
View File
@@ -27,6 +27,6 @@ Before asking for help with Ubertooth, check to see if your question is listed i
For assistance with Ubertooth general use or development, please look at the [issues on the GitHub project](https://github.com/greatscottgadgets/ubertooth/issues). This is the preferred place to ask questions or open issues so that others may locate the answer to your question in the future.
We invite you to join our community discussions on [Discord](https://discord.gg/rsfMw3rsU8) and [IRC](https://web.libera.chat/#ubertooth). Note that while technical support requests are welcome here, we do not have support staff on duty at all times. Be sure to also submit an issue on GitHub if you’ve found a bug or if you want to ensure that your request will be tracked and not overlooked.
We invite you to join our community discussions on [Discord](https://discord.gg/rsfMw3rsU8). Note that while technical support requests are welcome here, we do not have support staff on duty at all times. Be sure to also submit an issue on GitHub if you’ve found a bug or if you want to ensure that your request will be tracked and not overlooked.
GitHub issues on this repository that are labelled "technical support" by Great Scott Gadgets employees can expect a response time of two weeks. We currently do not have expected response times for other GitHub issues or pull requests for this repository.
+2 -4
View File
@@ -5,11 +5,9 @@ Getting Help
Asking Questions
~~~~~~~~~~~~~~~~
If you have questions about using Ubertooth the first places to look are the `FAQ <https://ubertooth.readthedocs.io/en/latest/faq.html>`__ and the `mailing list archive <http://sourceforge.net/p/ubertooth/mailman/ubertooth-general/>`__.
If you have questions about using Ubertooth the first place to look is the `FAQ <https://ubertooth.readthedocs.io/en/latest/faq.html>`__.
If neither of these places hold the answer to your questions you should ask on the `mailing list <https://lists.sourceforge.net/lists/listinfo/ubertooth-general>`__.
Many Ubertooth developers and users are available in the `#ubertooth channel on Discord <https://discord.gg/rsfMw3rsU8>`__. This channel is bridged to `#ubertooth on Libera Chat <https://web.libera.chat/#ubertooth>`__ for folks who are more comfortable with IRC. Please remember that we work across many timezones and you may need to wait some time for a response to your question.
Many Ubertooth developers and users are available in the `#ubertooth channel on Discord <https://discord.gg/rsfMw3rsU8>`__. Please remember that we work across many timezones and you may need to wait some time for a response to your question.
+2 -2
View File
@@ -6,7 +6,7 @@ There are three major components of Project Ubertooth:
* hardware: The hardware design of Ubertooth One is quite stable. You can `build one <https://ubertooth.readthedocs.io/en/latest/assembling_hardware.html>`__ or `buy one <http://greatscottgadgets.com/ubertoothone>`__.
* firmware: This is software that executes on the ARM processor on the Ubertooth One itself. This page assumes that you have the USB bootloader plus bluetooth_rxtx firmware installed on your board (which is typically what is installed at the time of assembly). The bluetooth_rxtx firmware is moderately stable but is likely to be enhanced as time goes on.
* host code: This is software running on a general purpose computer connected to the Ubertooth One via USB. The sample host code for Project Ubertooth is in active development and will likely change a great deal in the coming months. If you have not yet built the host code, please follow the `build guide <https://ubertooth.readthedocs.io/en/latest/build_guide.html>`__.
* host code: This is software running on a general purpose computer connected to the Ubertooth One via USB. If you have not yet built the host code, please follow the `build guide <https://ubertooth.readthedocs.io/en/latest/build_guide.html>`__.
Ubertooth One is a development platform. The true power of the device is best realized when you start writing your own software and adapting it to your needs. If you are just getting to know the board, however, it can be helpful to try out open source code that others have made available. This guide will help you get started with your Ubertooth One by introducing you to some useful host code from the Ubertooth software repository.
@@ -97,4 +97,4 @@ Notice that Kismet-Ubertooth identifies not only the LAP but also the 8 bit Uppe
Where to Go from Here
~~~~~~~~~~~~~~~~~~~~~
I hope you have found this guide helpful in getting to know your Ubertooth One. The host code for Project Ubertooth is in active development and new features are being worked on all the time. If you are interested in contributing to the project, or if you need help or would just like to chat about Project Ubertooth, join the `ubertooth-general <https://lists.sourceforge.net/lists/listinfo/ubertooth-general>`__ mailing list. Happy hacking!
I hope you have found this guide helpful in getting to know your Ubertooth One. If you are interested in contributing to the project, or if you need help or would just like to chat about Project Ubertooth, join the `#ubertooth channel on Discord <https://discord.gg/rsfMw3rsU8>`__. Happy hacking!
+2 -2
View File
@@ -67,8 +67,8 @@ If you are having issues with a tool or believe you have found a bug,
please file an issue on the project GitHub:
\[la]https://github.com/greatscottgadgets/ubertooth\[ra]
.PP
For interactive support, join the \fB\fC#ubertooth\fR IRC channel on Libera
Chat.
For interactive support, join the \fB\fC#ubertooth\fR IRC channel on Discord:
\[la]https://discord.gg/rsfMw3rsU8\[ra]
.SH COPYRIGHT
.PP
The code and documentation for Project Ubertooth are Copyright 2010\-2017
+2 -1
View File
@@ -47,7 +47,8 @@ If you are having issues with a tool or believe you have found a bug,
please file an issue on the project GitHub:
<https://github.com/greatscottgadgets/ubertooth>
For interactive support, join the `#ubertooth` IRC channel on Libera Chat.
For interactive support, join the `#ubertooth` channel on Discord:
<https://discord.gg/rsfMw3rsU8>
## COPYRIGHT
-13
View File
@@ -1,13 +0,0 @@
NANOC := nanoc
compile:
$(NANOC) compile
# Add the following to your .ssh/config file to use upload
#Host web.sourceforge.net
# User <SF username>,ubertooth
upload: compile
rsync --delete --exclude .svn -ave ssh output/* web.sourceforge.net:htdocs/
clean:
rm -rf output tmp
-19
View File
@@ -1,19 +0,0 @@
This is the source directory for the Project Ubertooth web site, including all
project documentation. To browse the content online, visit:
http://ubertooth.sourceforge.net/
If you have downloaded this material and would like to browse the content
locally, point your browser to the file:
output/index.html
Everything below this point other than the output directory is source material
for automatic generation of the web site. If you would like to contribute to the
web site, you should learn how to use the nanoc site compiler by going through
the short tutorial at:
http://nanoc.stoneship.org/
Most contributions would basically go like this: edit content files, run "nanoc
compile", test locally, and commit to svn.
-1
View File
@@ -1 +0,0 @@
require 'nanoc3/tasks'
-39
View File
@@ -1,39 +0,0 @@
#!/usr/bin/env ruby
# A few helpful tips about the Rules file:
#
# * The order of rules is important: for each item, only the first matching
# rule is applied.
#
# * Item identifiers start and end with a slash (e.g. "/about/" for the file
# "content/about.html"). To select all children, grandchildren, ... of an
# item, use the pattern "/about/*/"; "/about/*" will also select the parent,
# because "*" matches zero or more characters.
compile '/stylesheet/' do
# don't filter or layout
end
compile '/images/*' do
# don't filter or layout
end
compile '*' do
filter :erb
layout 'default'
end
route '/stylesheet/' do
'/style.css'
end
route '*' do
case item[:extension]
when 'html', 'html'
item.identifier + 'index.html' # /foo/ -> /foo/index.html
else
item.identifier.chop + '.' + item[:extension] # /foo/ -> /foo.jpeg
end
end
layout '*', :erb
-41
View File
@@ -1,41 +0,0 @@
# A list of file extensions that nanoc will consider to be textual rather than
# binary. If an item with an extension not in this list is found, the file
# will be considered as binary.
text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xhtml', 'xml' ]
# The path to the directory where all generated files will be written to. This
# can be an absolute path starting with a slash, but it can also be path
# relative to the site directory.
output_dir: output
# A list of index filenames, i.e. names of files that will be served by a web
# server when a directory is requested. Usually, index files are named
# "index.hml", but depending on the web server, this may be something else,
# such as "default.htm". This list is used by nanoc to generate pretty URLs.
index_filenames: [ 'index.html' ]
# Whether or not to generate a diff of the compiled content when compiling a
# site. The diff will contain the differences between the compiled content
# before and after the last site compilation.
enable_output_diff: false
# The data sources where nanoc loads its data from. This is an array of
# hashes; each array element represents a single data source. By default,
# there is only a single data source that reads data from the "content/" and
# "layout/" directories in the site directory.
data_sources:
-
# The type is the identifier of the data source. By default, this will be
# `filesystem_unified`.
type: filesystem_unified
# The path where items should be mounted (comparable to mount points in
# Unix-like systems). This is "/" by default, meaning that items will have
# "/" prefixed to their identifiers. If the items root were "/en/"
# instead, an item at content/about.html would have an identifier of
# "/en/about/" instead of just "/about/".
items_root: /
# The path where layouts should be mounted. The layouts root behaves the
# same as the items root, but applies to layouts rather than items.
layouts_root: /
-26
View File
@@ -1,26 +0,0 @@
---
title: Developing Firmware
---
<h1>Developing Firmware</h1>
<p>You'll need a toolchain that supports ARM Cortex-M3. The Makefiles in
Project Ubertooth are designed for GCC and a Linux-based toolchain,
specifically the free installation provided at <a
href="https://launchpad.net/gcc-arm-embedded">https://launchpad.net/gcc-arm-embedded</a>,
but it should be possible to compile firmware with any development environment
for the Cortex-M3. Just unpack the archive and add the bin directory to your
PATH.</p>
<p>Prior to r518, we used the <a
href="http://www.codesourcery.com/">Codesourcery</a> toolchain, but it has
become harder to locate.</p>
<p>Although firmware source and binary images can be found in the
<a href="https://github.com/greatscottgadgets/ubertooth/releases">release downloads</a>,
you will probably want fresh code from <a
href="https://www.github.com/greatscottgadgets/ubertooth">git</a>.</p>
<p>Ubertooth Zero and Ubertooth One are not binary compatible. The default
target is Ubertooth One. If you are compiling firmware for Ubertooth Zero, set
the environment variable BOARD = UBERTOOTH_ZERO.</p>
-171
View File
@@ -1,171 +0,0 @@
---
title: Hardware Build Guide
---
<h1>Hardware Build Guide</h1>
<p>This describes the build process for Ubertooth One, but the processes for
Ubertooth Zero and Pogoprog are essentially the same.</p>
<h2>step 0: read these instructions</h2>
<p>Seriously. There are probably things in the later steps that you should
know about before getting started.</p>
<h2>step 1: order a PCB</h2>
<p>You will need a four layer printed circuit board. I recommend using Laen's
PCB service at <a href="http://dorkbotpdx.org/wiki/pcb_order">DorkbotPDX</a>.
Take the Ubertooth One Gerber files from the most recent Project Ubertooth
release package (or generate them with KiCad) and send them to Laen. The board
is 1.8 square inches, so it will cost $18 per set of three. That's one for
yourself, one for a friend, and one to screw up! If you live on Mars and can't
get a four layer board manufactured, Ubertooth Zero is a two layer alternative.
Pogoprog is also a two layer board.</p>
<p>If you are building an Ubertooth One or Zero, you should also consider
building a Pogoprog unless you already have a plan for how you will <a
href="../program">program</a> your board.</p>
<h2>step 2: order a stencil</h2>
<p>Surface mount soldering is fun and easy if you use a stencil to apply solder
paste to your circuit board! Send the top paste Gerber file
(ubertooth-one-SoldP_Front.gtp) to a stencil manufacturer such as <a
href="http://ohararp.com/Stencils.html">OHARARP</a> or <a
href="http://www.pololu.com/catalog/product/446">Pololu</a>. Alternatively you
might plan to use a syringe or a toothpick to apply solder paste, but this is
not recommended. You might instead just use a soldering iron, but this is
strongly discouraged unless you have successfully soldered QFNs with required
ground pads before (and, if you have, you probably aren't reading these
instructions anyway).</p>
<h2>step 3: order the parts</h2>
<p>Take the bill of materials (bom) from the most recent Project Ubertooth
release (or generate it with KiCad) and order the parts. The parts should all
be available from one or more online electronics suppliers such as <a
href="http://www.mouser.com/">Mouser</a> and <a
href="http://www.digikey.com/">Digi-key</a>. It is important to order some
extra parts (especially the tiny ones which fortunately are cheap) in case you
lose or damage any components.</p>
<p>You may want to order an antenna too. The <a
href="http://www.pulseelectronics.com/products/antennas/products__solutions/antennas_for_wireless_devices/wd_antennas/w1030_external_24_ghz_high_gain_short">Pulse
W1030</a> is a nice size, but you can also find compatible antennas on many
commercial Wi-Fi and Bluetooth products. Most any antenna intended for the 2.4
GHz band (such as 802.11b/g/n) is suitable as long as it has an RP-SMA
connector, adapter, or pigtail. You could choose an SMA connector instead of
RP-SMA; this might especially be convenient for interfacing with benchtop test
gear. RP-SMA was selected as the default choice for Project Ubertooth because
there are more RP-SMA than SMA antennas floating around on consumer Wi-Fi and
Bluetooth gear.</p>
<p>You might prefer to select alternative parts, but be careful of the 1%
resistors and all of the 0402 inductors and capacitors in the RF section which
have been selected for their particular characteristics. Any LPC175x
microcontroller will do, but it is recommended that you choose one with at
least 128 kB RAM. And, really, if you're going through all this trouble, why
not go with 512 kB?</p>
<h2>step 4: prepare your tools and materials</h2>
<p>essential:</p>
<ul>
<li>an electric skillet, one that you don't intend to use for food ever again</li>
<li>solder paste (no-clean lead-based solder paste is recommended)</li>
<li>a small putty knife or razor blade</li>
<li>fine tipped tweezers</li>
<li>any old soldering iron</li>
<li>solder</li>
</ul>
<p>strongly recommended:</p>
<ul>
<li>good ventilation</li>
<li>a temperature controlled soldering iron: this is more than just having
a knob; it should have a temperature sensor in the iron</li>
<li>an embossing tool or other high temperature heat gun (even better: a
proper hot air rework station)</li>
<li>a multitester with LED/diode test mode</li>
<li>desoldering braid</li>
<li>brass sponge</li>
<li>helping hands</li>
<li>magnifying glass</li>
</ul>
<h2>step 5: apply solder paste</h2>
<p>Using your stencil and a putty knife, apply the solder paste as described in
this <a href="http://www.sparkfun.com/tutorials/58">tutorial</a>.
<h2>step 6: place the parts</h2>
<p>With fine tipped tweezers, carefully place the parts on the board. If you
have to move a part, pick it up and place it again rather than sliding it
around a lot. Otherwise the paste can get out of place. Most of the 0402 and
0603 parts can be placed in either direction, but the LEDs are exceptions. You
must place them with ground in the direction of the arrow on the circuit board.
You may have to look at the design in KiCad to see which way the arrow goes,
and you'll probably have to test your LEDs with a multitester to find out which
side is which. Don't populate USB connectors, RP-SMA connectors, or pogo pins
(in the case of Pogoprog) at this time.</p>
<h2>step 7: reflow</h2>
<p>Carefully place the board in the electric skillet, and turn the skillet on.
It is best to warm up the board to a moderate temperature before turning the
skillet up to full power. Then turn up the heat until you can see the solder
flow. If you see parts moving around to incorrect positions, resist the
temptation to correct them at this time! As soon as the solder everywhere on
the board appears liquid, cut the power completely. You may want to lift the
board out of the skillet with a spatula at this point to allow it to cool
faster. There is a danger of overheating the components, but this is unlikely
unless you left the skillet on longer than necessary or used lead-free solder
paste.
<h2>step 7: rework</h2>
<p>Here is where the embossing tool, a good soldering iron, desoldering braid,
and a magnifying glass come in very handy. If there is anything wrong with the
assembly, you will have to correct individual part placement as needed.</p>
<h2>step 8: inspection</h2>
<p>Once all the parts appear to be soldered in place correctly, look again,
this time with a magnifying glass. You should also do some continuity tests
with a multitester at this point. Watch out in particular for supply shorts;
the easiest way to test for these is to verify a lack of continuity across
bypass capacitors (all the caps that are close to the ICs). If there is a
short that you can't see, it is probably under the pins of one of the ICs.
Repeat steps 7 and 8 as necessary.</p>
<h2>step 9: hand soldering</h2>
<p>There are a few parts that you should solder on by hand with an iron at this
point. These are the USB and RP-SMA connectors on the Ubertooth boards and the
pogo pins on Pogoprog.</p>
<h2>step 10: power-on test</h2>
<p>Power on the device by plugging in the USB connection. An Ubertooth One or
Zero should illuminate the RST LED. If this doesn't happen, quickly unplug USB
verify that the LED is oriented correctly, and go back to step 8. A Pogoprog
should flash its TX and RX LEDs during USB enumeration. If this doesn't
happen, quickly unplug USB, verify the LED orientations, check your driver
situation, and go back to step 8.
<h2>step 11: further testing</h2>
<p>If you are building a Pogoprog, you should make sure that an FTDI USB serial
adapter has been detected by your host operating system. If so, you can try
using it to <a href="../program">program</a> an Ubertooth board. If you are
making an Ubertooth board, you should follow the procedure in
firmware/assembly_test/README.</p>
<h2>step 12: boast</h2>
<p>Tell us about your success on the <a
href="https://lists.sourceforge.net/lists/listinfo/ubertooth-general">ubertooth
general</a> mailing list.</p>
-84
View File
@@ -1,84 +0,0 @@
---
title: Ubertooth One
---
<h1>Ubertooth One</h1>
<p>Ubertooth One is the next generation hardware platform of Project Ubertooth.
It supersedes <a href="../zero/">Ubertooth Zero</a> and is currently the
preferred platform.</p>
<img src="../../images/ubertooth-one.jpeg" alt="Ubertooth One photo" />
<h2>architecture</h2>
<ul>
<li><a href="http://en.wikipedia.org/wiki/SMA_connector">RP-SMA</a> RF
connector: connects to test equipment, antenna, or dummy load.</li>
<li><a
href="http://focus.ti.com/docs/prod/folders/print/cc2591.html">CC2591</a>
RF front end.</li>
<li><a
href="http://focus.ti.com/docs/prod/folders/print/cc2400.html">CC2400</a>
wireless transceiver.</li>
<li><a href="http://ics.nxp.com/products/lpc1000/lpc17xx/">LPC175x</a> ARM
Cortex-M3 microcontroller with Full-Speed USB 2.0.</li>
<li>USB A plug: connects to host computer running Kismet or other host
code.</li>
</ul>
<h2>features</h2>
<ul>
<li>2.4 GHz transmit and receive.</li>
<li>Transmit power and receive sensitivity comparable to a Class 1
Bluetooth device.</li>
<li>standard <a
href="http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf">Cortex
Debug Connector</a> (10-pin 50-mil JTAG).</li>
<li>In-System Programming (ISP) serial connector.</li>
<li>expansion connector: intended for inter-Ubertooth communication or
other future uses.</li>
<li>six indicator LEDs.</li>
</ul>
<h2>design</h2>
<p>Ubertooth One was designed in <a
href="http://kicad.sourceforge.net/wiki/index.php/Main_Page">KiCad</a>, an open
source electronic design automation software package, with surface mount
components suitable for <a
href="http://www.sparkfun.com/tutorials/59">reflow</a>.</p>
<h2><a name="pins" />pins and LEDs</h2>
<img src="../../images/u1_roadmap.png" alt="Ubertooth One diagram" />
<p>This diagram shows the location of LEDs and the pins of the expansion
connector.</p>
<p>LED guide:</p>
<ul>
<li>RST: indicates that the LPC175x is powered on. This should always be on
during operation except during a full reset of the LPC175x (e.g., while
entering ISP mode).</li>
<li>1V8: indicates that the CC2400 is being supplied with 1.8 V. Control of
this supply depends on firmware. 1V8 power is required to activate the
crystal oscillator which is required to activate USB.</li>
<li>USB: indicates that USB has passed enumeration and configuration.</li>
<li>TX: Control of this LED depends on firmware. It typically indicates
radio transmission.</li>
<li>RX: Control of this LED depends on firmware. It typically indicates
radio reception.</li>
<li>USR: Control of this LED depends on firmware.</li>
</ul>
<p>The TX, RX, and USR LEDs blink in a distinctive chasing pattern when the
bootloader is ready to accept USB DFU commands.</p>
<h2>demonstration</h2>
<p>Michael Ossmann presented <a
href="http://www.shmoocon.org/schedule#ubertooth">Project Ubertooth: Building a
Better Bluetooth Adapter</a> at <a href="http://www.shmoocon.org/">ShmooCon</a>
2011.</p>
-118
View File
@@ -1,118 +0,0 @@
---
title: Programming
---
<h1>Programming</h1>
<p>This page describes how to load compiled firmware onto an Ubertooth One or
Ubertooth Zero. Other pages describe how to write <a
href="../../firmware/develop">firmware</a> or <a href="../../host/develop">host
code</a> for the platform.</p>
<p>There are three ways to program an Ubertooth board: the USB bootloader, the
ISP bootloader, and JTAG.</p>
<h2>USB bootloader</h2>
<p>This is the recommended method of loading code onto an Ubertooth Zero or
Ubertooth One provided that the USB bootloader is already installed (at the
time of manufacture, for example). If you need to install the bootloader
itself, you will have to use either ISP or JTAG.</p>
<p>The bootloader executes every time the device starts up from reset or power
cycle. Normally it just gets out of the way and passes control to the
application firmware very quickly. Alternatively it can enter Device Firmware
Upgrade (DFU) mode which permits firmware upload and download over USB. There
are two ways to tell the bootloader that you want it to enter DFU mode:</p>
<p>1. soft bootloader entry: By setting a flag in RAM, the application firmware
can instruct the bootloader to enter DFU mode following a reset (without loss
of power). For example, with the bluetooth_rxtx firmware running you can
trigger a reset into DFU mode using 'ubertooth-util -f' (located in
host/bluetooth_rxtx/). Soft entry only works on Ubertooth One, not Ubertooth
Zero.</p>
<p>2. hard bootloader entry (also known as pin entry): By connecting two pins
on the expansion header with a jumper during reset (either soft or hard boot),
you can force the bootloader into DFU mode. When using pin entry, the
bootloader will enter DFU mode for only a few seconds and will then execute the
application if no DFU activity has started during that period. This allows
developers to permanently or semi-permanently jumper the pins providing a DFU
opportunity on every reset. This method works on Ubertooth One but not
Ubertooth Zero.</p>
<p>The bootloader indicates DFU mode by flashing the LEDs in a distinctive
pattern. It also identifies itself as "usb_bootloader" on USB.</p>
<p>During DFU mode, firmware may be uploaded or downloaded using ubertooth-dfu.
See host/usb_dfu/README for usage instructions.</p>
<p>It is possible that soft bootloader entry may be broken by installing a
faulty application or an application that does not provide a method of
triggering soft entry. In this case, pin entry must be used (e.g. by holding a
paper clip in the expansion header while plugging in the device) to "unbrick"
the unit.</p>
<p>For Ubertooth One, the pins to connect are pins 1 and 3 of the <a
href="../one/#pins">expansion header (P4)</a>. For Ubertooth Zero, the pins to
connect are pins 1 and 13 of the expansion header (J1).</p>
<h2>ISP bootloader</h2>
<p>The LPC175x features an In-System Programming (ISP) bootloader that allows
code to be loaded over a serial interface. In order to use ISP, you will need
<a href="http://sourceforge.net/projects/lpc21isp/">lpc21isp</a> and a 3.3V
serial programming device such as one of the following:</p>
<h3>Pogoprog</h3>
<p>The official Ubertooth ISP programmer is Pogoprog, an open source board that
can be assembled using a process similar to Ubertooth One assembly.</p>
<h3>an FTDI Basic Breakout - 3.3V</h3>
<p>You can use SparkFun's <a href="http://www.sparkfun.com/products/9873">FTDI
Basic Breakout - 3.3V</a> to program an Ubertooth. Adafruit's <a
href="http://www.adafruit.com/index.php?main_page=product_info&products_id=284">FTDI
Friend</a> is a similar board that should work as well. To allow lpc21isp to
automatically activate the LPC175x's ISP bootloader, you must modify the board
in one of two ways.</p>
<h4>method one: the easy way</h4>
<p>Just short the CTS pin to GND. This will force the microcontroller into ISP
mode every time it resets while the programmer is connected. In order to
perform a normal reset to run the newly loaded code, you will have to first
disconnect the programmer.</p>
<h4>method two: the better way</h4>
<p>Connect the CTS pin to the RTS pin (pin 3) on the FT232RL using fine gauge
wire such as wire wrap wire. This is trickier to solder, but it has the
advantage that the pin will be fully controlled by lpc21isp. This means that
you can leave the programmer connected to the Ubertooth board throughout
multiple program/test cycles.</p>
<h3>using ISP</h3>
<img src="../../images/pogoprog-placement.jpeg" alt="Pogoprog placement" />
<p>Warning: Code loaded via ISP will blow away the bootloader. It is generally
recommended to use this method only for installing the bootloader itself.</p>
<p>Connect your serial programmer to the Ubertooth board and type &quot;make
program&quot; in the firmware source code directory. If you have a precompiled
binary in .hex format, you can invoke lpc21isp directly with &quot;lpc21isp
-control firmware.hex /dev/ttyUSB0 230400 4000&quot; (replacing firmware.hex
with the firmware filename and /dev/ttyUSB0 with the device file of your serial
programmer.</p>
<h2>JTAG</h2>
<p>Warning: Code loaded via JTAG will blow away the bootloader. It is
generally recommended to use this method only for installing the bootloader
itself.</p>
<p>Connect your ARM Cortex-M3 JTAG debugger (such as one supported by <a
href="http://openocd.berlios.de/web/">OpenOCD</a>) to the standard Cortex Debug
Connector on the Ubertooth One or the non-standard JTAG connector on the
Ubertooth Zero. You know what to do.</p>
-49
View File
@@ -1,49 +0,0 @@
---
title: Ubertooth Zero
---
<h1>Ubertooth Zero</h1>
<p>Ubertooth Zero was the first working prototype hardware platform of Project
Ubertooth. It has been superseded by <a href="../one/">Ubertooth One</a>.</p>
<img src="../../images/ubertooth-zero.jpeg" alt="Ubertooth Zero photo" />
<h2>architecture</h2>
<ul>
<li><a href="http://en.wikipedia.org/wiki/SMA_connector">RP-SMA</a> RF
connector: connects to test equipment, antenna, or dummy load.</li>
<li><a
href="http://focus.ti.com/docs/prod/folders/print/cc2400.html">CC2400</a>
wireless transceiver IC.</li>
<li><a href="http://ics.nxp.com/products/lpc1000/lpc17xx/">LPC175x</a> ARM
Cortex-M3 microcontroller with Full-Speed USB 2.0.</li>
<li>USB A plug: connects to host computer running Kismet or other host
code.</li>
</ul>
<h2>features</h2>
<ul>
<li>2.4 GHz transmit and receive.</li>
<li>Transmit power and receive sensitivity comparable to a Class 3
Bluetooth device.</li>
<li>non-standard JTAG connector.</li>
<li>In-System Programming (ISP) serial connector.</li>
<li>expansion connector: intended for inter-Ubertooth communication or
other future uses.</li>
<li>six indicator LEDs.</li>
</ul>
<h2>design</h2>
<p>Ubertooth Zero was designed in <a href="http://www.cadsoft.de/">CadSoft
EAGLE</a> with surface mount components suitable for <a
href="http://www.sparkfun.com/tutorials/59">reflow</a>.
<h2>demonstration</h2>
<p>Michael Ossmann presented <em>Ubertooth Zero, a preview</em> (video: <a
href="http://www.youtube.com/watch?v=m87gn7uOBGs">part 1</a>, <a
href="http://www.youtube.com/watch?v=OAC8SmdwGBY">part 2</a>) at <a
href="http://sandiego.toorcon.org/">ToorCon 12</a> in October, 2010.</p>
-15
View File
@@ -1,15 +0,0 @@
---
title: Developing Host Code
---
<h1>Developing Host Code</h1>
<p>Host code is the software running on a host computer to which an Ubertooth
One or Ubertooth Zero is attached via USB.</p>
<p>The Ubertooth developers use GCC on Linux. Theoretically, host code could
be written on or for other platforms, but it hasn't been done yet.</p>
<p>Although source can be found in the
<a href="https://github.com/greatscottgadgets/ubertooth/releases">release downloads</a>,
you will probably want fresh code from <a
href="http://www.github.com/greatscottgadgets/ubertooth">git</a>.</p>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

-20
View File
@@ -1,20 +0,0 @@
---
title: Home
---
<h1>Project Ubertooth</h1>
<p><em>An open source 2.4 GHz wireless development platform suitable for
Bluetooth experimentation</em></p>
<p>Ubertooth has now moved to <a
href="https://github.com/greatscottgadgets/ubertooth/">GitHub</a>. You may
follow the links below to find up to date information about the project.</p>
<ul>
<li>Our open source hardware, software and firmware is available from our
<a href="https://github.com/greatscottgadgets/ubertooth/">git repository</a>.</li>
<li>Documentation can be found on the
<a href="https://github.com/greatscottgadgets/ubertooth/wiki">wiki</a>.</li>
<li>A list of Ubertooth One
<a href="http://greatscottgadgets.com/ubertoothone/">resellers</a> is also available.</li>
</ul>
-126
View File
@@ -1,126 +0,0 @@
* {
margin: 0;
padding: 0;
font-family: Palatino, 'Times New Roman', Times, serif;
}
body {
background: #fff;
}
a {
text-decoration: inherit;
font-family: inherit;
}
a:link,
a:visited {
color: #30f;
}
a:hover {
color: #39f;
}
a[name]:hover {
color: inherit;
}
#main {
position: absolute;
top: 40px;
left: 280px;
width: 500px;
}
#main h1 {
font-size: 40px;
font-weight: normal;
line-height: 40px;
letter-spacing: -1px;
font-family: Impact, Helvetica, Arial, sans-serif;
}
#main h2,h3,h4 {
font-family: 'Courier New', Courier, monospace;
}
#main p {
margin: 20px 0;
font-size: 15px;
line-height: 20px;
}
#main ul {
margin: 20px;
}
#main li {
list-style-type: square;
font-size: 15px;
line-height: 20px;
}
#main img {
margin: 20px 0;
}
#sidebar {
position: absolute;
top: 40px;
left: 20px;
width: 200px;
padding: 20px 20px 0 0;
border-right: 1px solid #ccc;
text-align: right;
}
#sidebar h1 {
font-family: 'Courier New', Courier, monospace;
}
#sidebar h2 {
font-size: 18px;
color: #333;
letter-spacing: 1px;
line-height: 20px;
font-family: 'Courier New', Courier, monospace;
}
#sidebar ul {
list-style-type: none;
margin: 20px 0;
}
#sidebar li {
font-size: 14px;
line-height: 20px;
}
pre,
pre a {
/*margin: 1em 1em 1em 1.6em;*/
font-family: 'Courier New', Courier, monospace;
font-size: small;
padding: 2px 2px 2px 0;
/*background-color: #FAFAFA;*/
/*border: 1px solid #DADADA;*/
}
-6
View File
@@ -1,6 +0,0 @@
---
title: Build Guide
---
<h1>This build guide is out of date</h1></br>
Up to date instructions for the latest release are available on our
<a href="https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide">GitHub wiki</a>
-169
View File
@@ -1,169 +0,0 @@
---
title: Getting Started
---
<h1>Getting Started</h1>
<p>There are three major components of Project Ubertooth:</p>
<ul>
<li>hardware: The hardware design of Ubertooth One is quite stable. You can
<a href="../../hardware/build">build</a> one or <a
href="http://greatscottgadgets.com/">buy</a> one.</li>
<li>firmware: This is software that executes on the ARM processor on the
Ubertooth One itself. This page assumes that you have the USB bootloader
plus bluetooth_rxtx firmware installed on your board (which is typically
what is installed at the time of assembly). The bluetooth_rxtx firmware is
moderately stable but is likely to be enhanced as time goes on.</li>
<li>host code: This is software running on a general purpose computer
connected to the Ubertooth One via USB. The sample host code for Project
Ubertooth is in active development and will likely change a great deal in
the coming months. If you have not yet built the host code, please follow
the <a href=../build>build guide</a>.</li>
</ul>
<p>Ubertooth One is a development platform. The true power of the device is
best realized when you start writing your own software and adapting it to your
needs. If you are just getting to know the board, however, it can be helpful to
try out open source code that others have made available. This guide will help
you get started with your Ubertooth One by introducing you to some useful host
code from the Ubertooth software repository.</p>
<h2>Spectrum Analysis</h2>
<img src="../../images/specan_ui.png" alt="spectrum analyzer screenshot" />
<p>The first thing you should try with a new Ubertooth One is real-time
spectrum analysis. Take a look at Jared's <a
href="http://www.sharebrained.com/2011/05/24/ubertooth-spectrum-analysis-fun/">demonstration
video</a> for a preview.</p>
<p>Connect an antenna to your Ubertooth One and plug it into your computer.
(Never operate your Ubertooth One without an antenna connected.) You should see
the RST and 1V8 LEDs illuminate. This indicates that the LPC175x
microcontroller is running (RST) and that power is being supplied to the CC2400
wireless transceiver IC (1V8). The USB LED may also light up if your computer's
operating system has enumerated and configured the device (typical on Linux).
Now you need some host code to tell the Ubertooth One what to do.</p>
<p><a href="http://sourceforge.net/projects/ubertooth/">Download</a> the latest
Project Ubertooth file release or check out current development code from the
<a href="http://sourceforge.net/projects/ubertooth/develop">svn repository</a>
and navigate to the host/specan_ui directory. Take a look at the README file
and make sure that you have installed the prerequisite software. Then execute
ubertooth-specan-ui as described in the README and watch the 2.4 GHz activity
detected by the Ubertooth One.</p>
<p>One possible thing that could go wrong at this point is that your operating
system does not grant you permission to communicate with the USB device.
Depending on your distribution and preference, this can be fixed on Linux
either by adding your user account to the &quot;usb&quot; group or by creating
a new udev rule such as:</p>
<code>$ echo 'ACTION==&quot;add&quot; BUS==&quot;usb&quot; SYSFS{idVendor}==&quot;ffff&quot;
SYSFS{idProduct}==&quot;0004&quot; GROUP:=&quot;plugdev&quot; MODE:=&quot;0660&quot;' &gt;
/etc/udev/rules.d/99-ubertooth.rules</code>
<p>A udev rules file is available in host/bluetooth_rxtx directory in both svn
and the release packages. Copy it to /etc/udev/rules.d and run the
following as root:</p>
<code>udevadm control --reload-rules</code>
<p>Make sure you are a member of the &quot;plugdev&quot; group or change the
rule to refer to the group of your choice. After adding the udev rule, unplug
the Ubertooth One, reboot or restart udevd, and plug in the Ubertooth One
again.</p>
<p>During operation of ubertooth-specan-ui the RX LED should illuminate, and
the USR LED should be dimly lit. After you finish trying out
ubertooth-specan-ui reset your Ubertooth One by unplugging it and plugging it
back in.</p>
<h2>LAP Sniffing</h2>
<img src="../../images/ubertooth-lap.png" alt="ubertooth-lap screenshot" />
<p>Bluetooth packets start with a code that is based on the Lower Address Part
(LAP) of a particular Bluetooth Device Address (BD_ADDR). The BD_ADDR is a 48
bit MAC address, just like the MAC address of an Ethernet device. The LAP
consists of the lower 24 bits of the BD_ADDR and is the only part of the
address that is transmitted with every packet.</p>
<p>The most important passive Bluetooth monitoring function is simply capturing
the LAP from each packet transmitted on a channel. LAP sniffing allows you to
identify Bluetooth devices operating in your vicinity.</p>
<p>In order to sniff LAPs, you'll have to compile the tools in
host/bluetooth_rxtx. These are command line programs intended to work with the
bluetooth_rxtx firmware installed on your Ubertooth One. Follow the
instructions in the README file in that directory to install the the
prerequisite <a href="http://libbtbb.sourceforge.net/">libbtbb</a>, a library
for Bluetooth baseband functions. You can install libbtbb from a <a
href="http://sourceforge.net/projects/libbtbb/files/">file release</a> rather
than git if you prefer.</p>
<p>Once libbtbb is installed, just type &quot;make&quot; in the
host/bluetooth_rxtx directory to compile the tools there. Then make sure your
Ubertooth One is plugged in and execute:</p>
<code>$ ubertooth-rx</code>
<p>You should see various random LAPs detected. Due to uncertainties in
identifying Bluetooth packets without prior knowledge of an address, it is
normal for this process to identify false positives. error correction should
mitigate this problem, but a small number of false positives may still be seen.
When you see the same LAP detected more than once, that is very likely an actual
Bluetooth transmission.</p>
<p>Generate some Bluetooth traffic and enjoy the show. I like to use a mobile
phone or other Bluetooth device to perform an inquiry (usually called
&quot;find new Bluetooth devices&quot; or something similar) to make sure that
everything is working properly. An inquiry should produce lots of packets with
the LAP 0x9e8b33.</p>
<p>Once you have seen a LAP multiple times, you can be confident that it is a
genuine Bluetooth piconet. To find the next byte of the address, the UAP, we
can use:</p>
<code>$ ubertooth-rx -l [LAP]</code>
<p>In this mode ubertooth-rx only detects packets from the given piconet and
uses them to determine the next byte of the address and some of the internal
clock value.</p>
<p>For more information on this process, and the challenges involved in
monitoring Bluetooth connections, please read this
<a href="http://ubertooth.blogspot.co.uk/2013/02/motivating-problem.html">blog
post</a>
<h2>Kismet</h2>
<img src="../../images/kismet.png" alt="Kismet-Ubertooth screenshot" />
<p>More advanced Bluetooth sniffing has been implemented in the form of a
plugin for <a href="http://www.kismetwireless.net/">Kismet</a>, the venerable
802.11 monitoring tool. In order to compile the Kismet-Ubertooth plugin, you
will need a Kismet source tree matching the installed version. The easiest way
to make this work is to uninstall any binary Kismet installation you may have
installed and then download the Kismet source and follow the instructions to
compile and install from the fresh source code. Once Kismet is installed,
follow the instructions in host/kismet/plugin-ubertooth/README to install and
use the plugin.</p>
<p>Notice that Kismet-Ubertooth identifies not only the LAP but also the 8 bit
Upper Address Part (UAP) of detected devices as it is able. This is done by
analyzing the timing and other characteristics of multiple packets over time.
Another advantage of Kismet is that it dumps complete decoded packets to a
pcapbtbb file that can be read with a Wireshark plugin that is distributed with
<a href="http://libbtbb.sourceforge.net/">libbtbb</a>. Full packet decoding is
only possible when the packet's UAP has been determined.</p>
<h2>Where to Go from Here</h2>
<p>I hope you have found this guide helpful in getting to know your Ubertooth
One. The host code for Project Ubertooth is in active development and new
features are being worked on all the time. If you are interested in
contributing to the project, or if you need help or would just like to chat
about Project Ubertooth, join the <a
href="https://lists.sourceforge.net/lists/listinfo/ubertooth-general">ubertooth-general</a>
mailing list. Happy hacking!</p>
-46
View File
@@ -1,46 +0,0 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Project Ubertooth - <%= @item[:title] %></title>
<link rel="stylesheet" type="text/css" href="/style.css" media="screen">
<meta name="generator" content="nanoc 3.1.6">
</head>
<body>
<div id="main">
<%= yield %>
</div>
<div id="sidebar">
<h1>Project Ubertooth</h1>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki">home</a></li>
<li><a href="https://github.com/greatscottgadgets/ubertooth/releases">download</a></li>
</ul>
<h2>usage</h2>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Getting-Started">getting started</a></li>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide">build guide</a></li>
</ul>
<h2>hardware</h2>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Ubertooth-Zero">Ubertooth Zero</a></li>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Ubertooth-One">Ubertooth One</a></li>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Assembling-Hardware">build guide</a></li>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Programming">programming</a></li>
</ul>
<h2>firmware</h2>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Firmware">developing</a></li>
</ul>
<h2>host code</h2>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Software">developing</a></li>
</ul>
<h2>help</h2>
<ul>
<li><a href="https://github.com/greatscottgadgets/ubertooth/wiki/Getting-Help">Getting Help</a></li>
<li><a href="https://lists.sourceforge.net/lists/listinfo/ubertooth-general">mailing list</a></li>
</ul>
</div>
</body>
</html>
-2
View File
@@ -1,2 +0,0 @@
# All files in the 'lib' directory will be loaded
# before nanoc starts compiling.