OpenBeacon USB

From OpenPCD

Jump to: navigation, search
OpenBeacon USB Stick

Contents


Introduction

For mobile OpenBeacon applications the OpenBeacon USB stick can be used. The device contains a freely programmable 32 bit ARM controller. It can be reprogrammed without special tools over USB. We released the firmware under GPL license.

You can support our project by buying OpenBeacon USB-I in our shop.

Firmware Versions

OpenBeacon related Firmware sources can be found in our public OpenBeacon git repository.

Have a look at our openbeacon-sniffer firmware as a base for your own firmware. The base firmware for the OpenBeacon USB that displays the output below is openbeacon-estimator. A Serial Port Windows Driver is needed for W2K/XP. For Linux no driver needed a /dev/ttyACM[0-n] device node is created automatically upon plugging.

The firmware can be recompiled using a free GCC ARM cross compiler tool chain. It transmits beacon by default when powered - and can be switched to a reader-only mode over USB via an emulated serial port over USB. If you power the device with batteries you get a stand alone wireless node.

See our presentation papers for further information on the hardware at http://www.openbeacon.org/dl/cccamp2007-Sputnik.pdf .

Accessing OpenBeacon USB

OpenBeacon USB stand alone meshing system by using an AC USB charger

Under Linux we personally prefer the "cu" command line tool from uucp-Package to access the created serial port easily under Linux based operating systems:

cu -lttyACM0 -s 115200

It is, of course, also possible to use minicom or any other similar tool to communicate with the serial port. No matter if you use cu, minicom or something else, you might have to install the kernel module cdc_acm depending on your distribution.

For windows you are forced to stick to Hyperterminal in most cases.

To get the integrated Terminal mode - press "?" for help on the serial console:

*****************************************************
* OpenBeacon USB terminal                           *
* (C) 2007 Milosch Meriac <meriac@openbeacon.de>    *
*****************************************************
*
* s    - store transmitter settings
* 0    - receive only mode
* 1..4 - automatic transmit at selected power levels
* +,-  - faster/slower transmit speed
* ?,h  - display this help screen
*
*****************************************************

You can also use it as a low cost replacement for the current OpenBeacon Base Station 1 - the current firmware emulated a CDC serial port over USB and displays tag sightings there - you can access it by using 115200 baud, 8 data bit, no parity and one stop bit. Under Linux just plug it into your computer - a /dev/ttyACM? device will appear automagically.

For Microsoft Windows you have to use the supplied .inf-file from the "win32driver" directory - you can verify the assigned COM port by using the control panel.

Flashing OpenBeacon USB

Use the contained "at91flash"-tool to update to contained firmware.

./at91flash openbeacon.bin

The supplied script depends on our modified sam7 tool: http://www.openpcd.org/dl/sam7utils-0.1.1-bm.tar.bz2

There is a text describing the flash process coming with the OpenBeacon source. Important info is - you are asked to set/remove a jumper during the flash process. This is a jumper between pin 5 and 6 of the connector - close to the antenna connector. On the PCB side of the board there is a rectangular pin as pin 1.

<antenna
  5 3 1
  6 4 2

The steps to flash the OpenBeacon USB can be summarized as follows:

  1. Build the project of interest by issuing 'make'.
  2. Attach the jumper, attach the device to the USB port. Wait for 10 seconds.
  3. Detach the device from the USB port, remove the jumper, plug it back in.
  4. A serial device should appear - ttyUSBx (x may vary from system to system, based on how many USB devices are connected to the system).
    • For the ttyUSBx device to appear, make sure that the Atmel-specific Vendor/Product ID is in your /etc/modprobe.conf(.local) otherwise you won't get the /dev/ttyUSB? device automagically.
 options usbserial vendor=0x03EB product=0x6124

You can also modprobe the usbserial module with those parameters.

  1. Flash the firmware by issuing a make flash from the project directory.
  2. Detach the device from USB port and plug it back in.
  3. A ttyACMx device should appear.
    • For the ttyACMx device to appear, cdc_acm module should be loaded - if not, issue the following command to load cdc_acm module.
 modprobe cdc_acm

Hope you'll enjoy it ;-)