Seeeduino Stalker v2.2

Seeeduino Stalker is a feature rich Arduino compatible Wireless Sensor Network node with Data logger functionality. This is the current (and also the latest) version of Seeeduino Stalker.

The documentation for the previous discontinued versions are available here: Seeeduino Stalker v1.0 and Seeeduino Stalker v2.0
Look here for comparison between v1.0, v2.0 amd v2.1

Link to product page for this device (follow this link to buy):
Seeeduino Stalker Atmega 328P v2.2 : ARD104D2P

Seeeduino Stalker is a feature rich Arduino compatible Wireless Sensor Network node. It's modular structure and onboard peripherals makes it convenient to log time stamped sensor data on a periodic basis. Seeeduino Stalker comes with a Temperature sensor, RTC with backup power, SD Card Socket, Bee Socket and Solar LiPoimer Ion Battery Charger. The Seeeduino Stalker is a good candidate for all your tracking, monitoring and control projects.

It is enhanced with user requested features in its v2.2 iteration.

Seeduino Stalker v2.2.jpg


Stalker v2.2 diagram.jpg

Application Ideas

Error: image is invalid or non-existent

NOTE: Please note that UartSBee cannot be inserted into the Bee Series socket present on Seeeduino Stalker. The UartSBee is intended for interfacing the other Bee modules (shown in the photo above) to a computer and cannot itself be be inserted into the socket meant for these other Bee modules. There is a separate 5 way pinheader present on UartSBee as well as Seeeduino Stalker for interfacing them to each other. This pinheader is composed of: VCC (to supply power to Stalker), TXD, RXD, DTR (for controlling Stalker's Reset signal) & GND.



Stalker v2.2 schematic.png
Schematics only (PDF)
Download v2.2 design files (Cadsoft Eagle)


Key Technical Specifications

Microcontroller: ATmega328P
On Board Crystal 8 MHz
PCB size:
in millimeter
Indicators: Reset, Power, LED on PB0 (Arduino Pin 8)
Power supply: 3.7v Lipo Battery, Use 5VDC solar panel for charging the battery.
Power Connector: 2 pin JST/ USB
I/O counts: 20
ADC input: Dedicated 4 channel (ADC0~ADC3, 10 bit resolution)
Connectivity: I2C, UART, SPI
DS3231 RTC Accuracy: ±2ppm from 0°C to +40°C / ±3.5ppm from -40°C to +85°C
DS3231 Temperature Sensor Accuracy: ±3°C

Electrical Characterstics

Specifications Min Norm Max Units
Battery JST Input voltage 3.5 4.2 4.2 Volts (DC)
Solar JST Input voltage 4.6 5 6 Volts (DC)
Global Current Consumption - See note mA
3.3V I2C voltage 3.2 3.3 3.5 Volts (DC)
5.0V I2C voltage 4.6 4.7 5 Volts (DC)
UART Baud Rate
(while programming)
- - 115200 bps


Getting Started

If you are new to the "Physical Computing" world and if Seeeduino Stalker v2.2 is the first physical computing platform you want to begin with, then we suggest you to start with Seeeduino.

The following steps will help you assemble the hardware and software resources to get you started with Seeeduino Stalker v2.2

Step 1: Acquiring the Hardware

You will require the following hardware for running your first program.

Seeeduino Stalker v2.2
Buy Here

UartsBee v4.0
Required for programming
the Seeeduino Stalker.
Buy Here

Mini USB Cable
You would probably have this one lying around,
or if not, buy one here. We would use this
to connect the UartsBee to one of the
USB ports on your computer.

1 pin dual-female jumper wire
Required for connecting the UartsBee to Seeeduino Stalker.You might already have few lying around your workspace. If not, you can buy a colourful one here.

Step 2: Installing the drivers and plugging in the hardware

  1. UartSBee is like the multi-purpose Swiss Army knife of the Physical Computing world. There is a very detailed procedure to use UartSBee for both Windows and GNU/Linux users here. In our case it will perform three functions:
    • Allow us to program the Seeeduino Stalker.
    • Allow us to communicate with Seeeduino Stalker.
    • Provide power (from USB power of your computer) to Seeeduino Stalker (including any peripherals connected to it).
  2. The first two functions of UartSBee (programming and communication) are achieved through an Integrated Circuit called FT232RL which is present on it. Before FT232RL can be used for these purposes, its drivers (certain freely available programs from FT232RL's manufacturer) must be installed on your windows/ubuntu based PC. So before proceeding further, download the driver setup file from here and install it on your Windows PC. (OS X Drivers also available and required for OS X)
  3. UartSBee has an onboard voltage regulator and a switch to allow you to select what voltage (5.0V or 3.3V) you would like to supply to the target circuit board. In our case the target circuit board is Seeeduino Stalker and so you would need to set this slide switch to 5.0 volts
  4. The wiring connection scheme of our hardware is "Computer→(Mini USB Cable)→UartSBee →(Flat Ribbon Cable)→Seeeduino Stalker". The jumper wires must be connected between UartSBee and Seeeduino Stalker before connecting the UartSBee to the Computer. Refer the photos below and make sure the signals line up as shown in the table (Note: The TXD and RXD pins must be cross connected as shown in the table).
  5. Next connect the Mini USB cable from UartSBee to your computer. If you are using a Windows based PC, the "Found New Hardware" balloon will popup and within a few moments the drivers for FT232RL (i.e. UartSBee) will be installed.

Seeeduino Stalker v2.1 Uartsbee 3.1 Connection.jpg
Jumper Wire connections
Seeeduino Stalker       UartSBee
USB5V   ↔   VCC
RXD   ↔   TXD
TXD   ↔   RXD
GND   ↔   GND
DTR   ↔   DTR

Connection Notes

Jumpers and Connectors

Stalker v2.2 bottom.JPG

microSD Card (TransFlash Card) Related

Bee Module Related

Bee Module Related - Only XBee related

User LED Related

Battery Related

Real Time Clock (RTC) Related

Charge Status Read Demo

void setup()
void loop()
  char CH_status_print[][4]= { "off","on ","ok ","err" };
  unsigned char CHstatus = read_charge_status();
  //read the charge status Serial.print("charge status -->");
unsigned char read_charge_status(void)
  unsigned char CH_Status=0;
  unsigned int ADC6=analogRead(6);
  if(ADC6 > 900) {
    CH_Status = 0;
  else if(ADC6 > 550) { 
    CH_Status = 1;
  else if(ADC6 > 350) {
    CH_Status = 2;
  else { 
    CH_Status = 3;
  return CH_Status;


Adjust Date/Time

Seeeduino Stalker v2.1 adjust.png

Get Current Date/Time

Seeeduino Stalker v2.1 now.png

DS3231 Read Temperature

   RTC.convertTemperature();             //convert current temperature into registers
Serial.print(RTC.getTemperature());   //read registers and display the temperature
Serial.println("deg C");

Seeeduino Stalker v2.1 temp.png

DS3231 Interrupts

This example is a demonstration of interrupt detection from DS3231 INT output. This feature is useful for data-logger functionality where the MCU is put to sleep mode when not in use and DS3231 INT wakes up the CPU periodically. This extends battery power. The complete operation is documented in the code.

Seeeduino Stalker v2.1 interrupts.png

Data Logger Examples

The principal application of Seeeduino Stalker v2.2 is data-logging of sensor signal like temperature along with the time-stamp. We have provided 3 sketches along with the DS3231 library demonstrating 3 different implementation. These sketches puts the MCU in sleep mode when not performing data sampling / logging operation. The complete implementation is documented very well in the code. The following section gives an overview :
Seeeduino Stalker v2.1 SolarPanel.png

  1. StalkerV21_DataLogger_Periodic.pde
    • This sketch logs temperature data periodically to SD card configured by RTC.enableInterrupts(periodicity) function.
    • The periodicity is provided using predefined constants EverySecond or EveryMinute or EveryHour
    • This sketch produces verbose output i.e the various events happening inside MCU are displayed in serial terminal.
  2. StalkerV21_DataLogger_5min.pde
    • This sketch logs temperature data using to SD card configured by RTC.enableInterrupts(h, m, s) function.
    • The periodicity is provided using h, m and s. Once an interrupt is detected, the next interrupt time is updated by advancing the h,m and s value. The DateTime Class comes handy for this.
    • ex:- interruptTime = DateTime(interruptTime.get() + 300); //decide the time for next interrupt
    • This sketch also produces verbose output i.e the various events happening inside MCU are displayed in serial terminal.
  3. StalkerV21_DataLogger_15Sec_NoSerialPort.pde
    • This is similar to previous sketch with different data-log interval. All Serial Port related code is commented to reduce power consumption.
    • There is no significant reduction in power consumption by removing Serial Port related code.

Stalker v2.1 datalogger flowchart.png

A note on power consumption

The following screenshot shows the current consumption measurement of Seeeduino Stalker v2.2 @ 3.3V input connected to LIPO_BAT. In actual application LIPO_BAT is connected to a 3.7V LiPo battery. Hence, consider the following measurement with a pinch of salt.
Seeeduino Stalker v2.1 datalogger 15S Current Measurement.png

Alternative datalogger / SD Card library

Few Seeeduino Stalker users have developed a datalogger functionality for Seeeduino Stalker v1.0. This interesting implementation is mentioned here to highlight a different way of using SD card. Refer to A and B threads at the Arduino Forum.

Arduino-filelogger library used in these is available from Google Code arduino-filelogger project page. These sketches works only with Seeeduino Stalker v1.0. Interested users can port to Seeeduino Stalker v2.1 using the DS3231 library.


Besides the various Bee Series modules, the following accessories are available for use with Seeeduino Stalker v2.0:

Water-proof Enclosure
for Seeeduino Stalker v2.0

SanDisk 2GB
microSD Card

microSD Card Reader
(in a capsule)

Mini USB cable for use with
UartSBee while programming

Single wire - Jumper Wires

Lithium Polymer (LiPo)

Solar Panel for
charging LiPo Battery via Stalker

Note: If you buy the "microSD Card Reader (in a capsule)", you would not need the "Mini USB cable" since the former also doubles up


Here is the Seeeduino Stalker FAQ, users can list the Frequently Asked Questions here, example as below:

  1. Has the user defined switch been removed on version 2.x of Seeeduino Stalker?
    Yes, we have removed the user button on the version 2.x
  2. In version 1.0 of Seeeduino Stalker the microcontroller could be woken up from sleep mode via interrupt from the Bee module. Is this same feature also available on version 2.0?
    In the previous version (i.e. 1.0), the microcontroller could be woken on RF data packet reception by the Bee module via its pin 15 which was connected to INT0 (PD2) of the microcontroller. In the newer version, the INT0 (PD2) pin of the microcontroller is connected by a jumper (INT_RTC) to the INT pin of the RTC chip which can wake it up at a pre-configured time (or periodically). Since Seeeduino Stalker is meant for use as a wireless sensor network node, this modification would be useful in cases where the microcontroller must wake up periodically to transmit sensor readings and go to sleep again.
  3. The I2C pin headers on Version 1.0 of Seeeduino Stalker allowed easy connection to external 3.3V as well as 5.0V devices. Is the same feature available on the version 2.x?
    Yes, in fact we have improved it - previously PCA9306 was used for level translation on I2C bus. But now we use N channel MOSFETs for translation - this technique has many advantages (refer NXP's Application Note AN97055.
  4. There is no English datasheet for the CN3083, what do I do?
    We had used CN3083 on the beta revision of version 2.1 of Seeeduino Stalker (v2.1). The final v2.0 version will have CN3063 on it. The datasheet for CN3083 is only available in the Chinese language. On the other hand, CN3063 has an English language datasheet and is attached above. Both parts: CN3063 as well as CN3083 are very much similar in operation.
  5. I find the explanation of the battery related jumpers given above a bit confusing, I need a simpler explanation.
    BAT_READ - Allows you to read the battery voltage via Analog Pin 7 of the microcontroller using its builtin Analog to Digital Convertor.
    CH_READ - Digital Pin 6 of the microcontroller will remain low (logic 0) while the battery is being charged. Unmount this jumper to use Digital Pin 6 for other purposes.
    OK_READ - Digital Pin 7 of the microcontroller go low (logic 0) after the battery has been charged. Unmount this jumper to use Digital Pin 7 for other purposes.
    CH_STATUS - The above two signals (CH_READ and OK_READ) also have LEDs connected to them. CH_STATUS jumper allows you to disable these LEDs and decrease power consumption.


If you have questions or other better design ideas, you can go to our forum or wish to discuss.

Revision History

Revision Descriptions Release Date
Seeeduino Stalker v1.0 Initial public release Dec 23, 2009
Seeeduino Stalker v2.0b Beta of New and improved version with more features Dec 17, 2010
Seeeduino Stalker v2.0 Final non-beta (minor improvements on bottom silkscreen) Mar 14, 2011
Seeeduino Stalker v2.1 RTC DS3231, CR2032 Holder, New SD Card socket Oct 3, 2011
Seeeduino_Stalker_v2.2 change Battery charge status read method Dec 27, 2011


Datasheets of Components

How to buy

Seeeduino Stalker v2.1 can be ordered through the Bazaar. Its product page is located here.

See Also


This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are licensed under various open source license, see source code files for details.

Copyright (c) 2008-2016 Seeed Development Limited ( /
This static html page was created from