Indigresso Wiki

Open Source Stuff for DASH7

User Tools

Site Tools


Board Support

OpenTag is intended primarily for embedded systems, so the terminology “board” is used to describe the system that it is running on. In some cases, the “board” might be a virtual system or a simulator, but most of the time it is an actual board (PCB) that contains at least a microcontroller (MCU) and a radio.

Currently Supported Boards

Boards are organized by the microcontroller they contain. There may be many boards for each microcontroller. If you know of more boards that could support OpenTag, please inform JP.

CC430 Boards

The CC430 is an MCU+RF System-on-Chip (SoC) by Texas Instruments. It is a popular choice for OpenTag boards.

Board Status Name/Link CC430 Variant Features
EZ430 Chronos Active EZ430 Chronos CC430F6137 4KB SRAM, 32KB Flash, watch form factor
EM430RF Active TI CC430 Wireless Dev Kit CC430F6137 4KB SRAM, 32KB Flash, 2 LED, 1 button + requires modifying antenna circuit to 433 MHz
RF430DK Sampling RF430 Transponder Dev Kit RF430F5978 4KB SRAM, 32KB Flash, PaLFI 134 kHz transponder, keyfob form-factor
WizziKit Active WizziKit CC430F5137 4KB SRAM, 32KB Flash, XBee & Arduino form-factor
AG430DK Inactive Inactive (no link) CC430F5137 4KB SRAM, 32KB Flash, 16KB EEPROM, FTDI USB-serial, 3 LED, 1 button
OMG Anubis Development OpenTag Module+Gadget, model Anubis CC430F5137 + MSP430F5503 CC430 (4KB/32KB) for OpenTag, with MSP430F5503 (4KB/32KB) as a USB shell interface (Gadget)

MSP430 Boards

The MSP430 is a family of MCUs by Texas Instruments. The F5 variant is the newest and best MSP430, and it is the type that is supported currently by OpenTag

Board Status Name/Link MSP430 Variant Radio Features
MSP-EXP430F5529 Active MSP430F5529 Experimenter Board MSP430F5529 CC11xx 8KB SRAM, 128KB Flash, Feature-rich evaluation board
ez430-RF5509 Sampling Sampling MSP430F5509 CC1101 4KB SRAM, 24KB Flash, USB stick, integrated antenna

STM32 Boards

The STM32 is an ARM Cortex M3 microcontroller family from STMicroelectronics. Most notably, the STM32F10x series is a low-cost, high performance line, and the STM32L1xx series is a low-cost, low-power line.

Board Status Name/Link STM32 Variant Radio Features
Haystack Jupiter Inactive Haystack Dev Kit STM32L151C8 SPIRIT1 10KB SRAM, 64KB Flash, 4KB EEPROM, integrated USB, Arduino “Half-Shield” form factor
Haystack Saturn I OSH Saturn I Board STM32L151CC SPIRIT1 32KB SRAM, 256KB Flash, 8KB EEPROM, integrated USB, Arduino form factor
OpenNode-433 Sampling OpenNode 433 MHz kit STM32F103CB CC1101 20KB SRAM, 128KB Flash, Onboard-Sensors, TelosB form-factor
DK7A433 Active Semtech SX1212 DASH7 dev kit STM32L151CBT6 SX1212 16KB SRAM, 128KB Flash, integrated USB, 2 LED, integrated antenna
MLX_Proto_E Inactive MLX73-series Prototype dev kit STM32F103ZGT6 MLX73xxx STM3210E-EVAL kit + MLX73-series eval daughterboard

Selecting a Board for Your Application

Assuming that the board you want to use has a board configuration header file (see below), you can include the board header you want to use in /Apps/YOUR_APP/Code/platform_config.h. Some of the demo apps included with OpenTag already support several boards, and you can just pick one of them. If your board is not listed, then make sure all other board configuration headers are commented out and add the following line to platform_config.h:

#include "YOUR_MCU/board_YOUR_BOARD.h"        //example: "CC430/board_AG430DK_GW1.h"

Customizing a Board

All board configuration files are stored as C header files (.h) in internal subdirectories within the /Board directory. There is one subdirectory for each MCU. Boards that are based on a given MCU will have one or more board configuration header files in that MCU's directory. For example, the board configuration header for the Agaidi CC430 kit will be: /Board/CC430/AG430DK_GW1.h. This one is for the Gateway variant, which has the FTDI USB-serial. Other variants of this board have similar names.

What is Inside a Board Header

The best way to get an understanding of what OpenTag needs from a board is to look inside one of the board header files. The board header files are not terribly complicated, and anyone who has a little bit of experience with embedded projects (even something rudimentary like Arduino) should be able to figure out what is going on.

A board header file contains at least the attributes shown below:

  1. Memory Configuration / Allocation (must match linker)
  2. MCU Feature Configuration (i.e. peripheral availability)
  3. MCU Parameter Configuration (i.e. crystal parameters)
  4. Peripheral wiring
    • Kernel Timer specification (OT_GPTIM)
    • MPipe pin & peripheral wiring
    • Trigger pin wiring (typically LEDs)

Making a New Board Configuration Header

The easiest way to do this is to duplicate one of the existing board configuration headers, change the name, and make necessary changes. If your new board uses the same MCU as one of the boards already supported, this can be relatively easy. If not, you should still go through this procedure, but you will probably need to change some of the definitions to match the FW library for your MCU. For example, the CC430 does not do things exactly like the STM32 does, so there are some differences in the scope of the configuration parameters. Consult the platform documentation and code to find which definitions are required for your chosen MCU.

opentag/board/main.txt · Last modified: 2015/10/10 15:25 by jpnorair