Skip to content

panStamp NRG 2. Technical details

George edited this page Jan 2, 2019 · 18 revisions

Introduction

NRG 2 is panStamp's most powerful wireless module. Based on the popular CC430F5137 SoC, this module provides precise 12-bit analog inputs, digital ports, real-time clock and many other useful tools for most challenging wireless telemetry and control projects. NRG 2 is also programmable from Arduino IDE 1.6.x. Most of the critical aspects of the NRG board (radio, power management, RTC, ...) are covered by the panStamp core functions and only generic functions like UART, SPI, I2C and I/O management are delegated to Arduino in order to guarantee compatibility with other libraries.

Unlike NRG 1, NRG 2 does not provide any on-board sensor, making all analog inputs available in the pinout. A variety of sensors and actuators can be attached to these modules by means of carrier boards.

Specifications

  • Dimensions: 0.63 x 0.86 in (16 x 22 mm)
  • MCU: CC430F5137 (MSP430 core + CC11XX radio SOC)
  • Speed: Programmable speed between 8MHz and 24MHz
  • Flash: 32KB
  • RAM: 4KB
  • Info memory: 512 bytes
  • Six 12-bit ADC inputs
  • Unique MAC address
  • Voltage range: from 2VDC to 3.6VDC
  • Rx current: 18 mA max
  • Tx current: 36 mA max
  • Sleep current: 1-2 uA
  • Maximum Tx power: +12 dBm
  • RF bands: 433/868/915/918 MHz ISM bands
  • Communication length: 200m in open spaces at 0dBm with pigtail antenna
  • 128-bit AES Hardware Security Encryption
  • Support for FHSS (Frequency-Hopping Spread Spectrum)
  • On-board LED
  • Programmable via SBW, serial BSL and wirelessly (SWAP)

panStamp NRG 2

Pin mapping

panStamp NRG 2

One of the great things about the CC430 processor is that digital functions (green lines) can be moved to any P1 or P2 pin. Green text shows the default position of these functions.

Digital pins 16 to 22 (port 3) can not be interrupted by pin level changes during sleep mode. The rest of pins can be used with attachInterrupt and can wake-up the module from deep sleep mode. Also, if you use any kind of external interruption (like the counter of a sensor), you have to use a different pin. In fact, if you use a pin of the previous mentioned, the interruption will not work properly after sleep.

All GND pins are internally connected to ground (0 V).

Footprint

SMT footprint

Memory Organization

The following table shows how the memory of the CC430F5137 MCU is distributed:

CC430F5137 memory organization

Another interesting point about the MSP430 architecture is that Flash and RAM share a common addressing schema so that we can access address locations in the same way, regardless of the nature of the memory. This is really appreciated for example when a given constant variable needs to be permanently located in flash since this variable will never be copied into RAM by the stack.

Info memory

CC430 processors do not include EEPROM space. Instead, they provide a special region in Flash to store configurations. This region is called info memory and is 512 bytes long in the CC430F5137 MCU. The panStamp library provides the necessary functions to use this info space as any other EEPROM-based region.

Programming methods

panStamp NRG can be programmed in three different ways.

SBW programming

The first method is SBW (Serial bi-wire) JTAG interface. Any MSP430 programmer supporting SBW can be used to program panStamps, including MSP430 Launchpads and ez430 programmers, which are very low cost programming interfaces.

panStamp NRG - SBW programming

Serial programming

panStamp NRG can also be programmed serially via Texas Instrument's BSL. Any kind of USB-UART converter can be used for this task, including our panSticks of course. Serial programming is the method used when loading firmware images from the Arduino 1.6 IDE.

panStamp NRG - Serial programming

Wireless programming

Finally, panStamp NRG can be flashed (following one of the above methods) with SWAP firmware loader. With this bootloader in place, NRG modules can be wirelessly programmed from SWAPdmt (command-line version).

Links

Anti Swap

API for Anti Swap

Clone this wiki locally