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.
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.
The CC430 is an MCU+RF System-on-Chip (SoC) by Texas Instruments. It is a popular choice for OpenTag boards.
|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)|
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
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.
|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|
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"
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.
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:
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.