This document provides an overview of the TotTag infrastructure and outlines any software or hardware you may need.
These are the major pieces of the TotTag platform and supporting development environment. You should make sure to have all of these pieces before beginning.
Name | Picture | What it is used for | |||
---|---|---|---|---|---|
TotTag |
This is the TotTag hardware. Most of the time you should not need to worry about the individual board components; however, it is important to pay attention to the two programming headers. In general, you should also avoid having large amounts of metal near any of the antennas. Note: The Device ID is just a sticker on the board. When the board is programmed, you manually set the ID to match this sticker. |
||||
Note: This link is to the EDU edition, which should be much cheaper ($60 vs $378 at time of writing) |
This is the JLink programmer. Often just the word "Programmer" or "JLink" will be used, and they both refer to this device. Working with TotTags you may frequently have multiple JLinks plugged into your machine. On the back of each box is a serial number (the S/N part) that you can use to choose a specific programmer. |
||||
JLink Adapter |
This is an adapter board designed by the Lab11 team. You can get similar boards from Tag-Connect directly, but they do not have the power control or a reset button. Note: For TotTag, the switch should always be in the unlabeled or down position (the top position says RST). Note: Pay attention to the power switch. If the tag is plugged into USB or attached to a battery, the switch should be in the DEV ("power from device") position. If the tag is only plugged into the programmer, it should be in the 3V3 ("3.3V from the programmer box") position. |
||||
TagConnect Cable |
|
The Tag-Connect Cable attaches the programmer to the board. For extended use, there is a backing board that will fix the cable to the board. |
You will need to have each of these tools installed:
-
Git - Version control software. Used to keep track of all of TotTag code and documentation.
- git submodule - A method for one collection of code
to point to another one. SociTrack uses some libraries
that are linked as submodules. If the remote library
updates, you will have to manually update your local
version. Generally, this command is safe to run and will
do everything you need:
git submodule update --init --recursive
- git submodule - A method for one collection of code
to point to another one. SociTrack uses some libraries
that are linked as submodules. If the remote library
updates, you will have to manually update your local
version. Generally, this command is safe to run and will
do everything you need:
-
JLink Software - Software required for your computer to talk to the JLink programmer. You need to press the "Click for Downloads" link under "J-Link Software and Documentation Pack".
- The SociTrack Repository - This website, where you will find all of the code and documentation for the platform.
JLink tends to fail silently or unhelpfully sometimes. Here are a few common problems:
J-Link connection not established yet but required for command.
Connecting to J-Link via USB...
# Hangs here with no more output
-
Do you have another terminal window open that's connected to JLink (e.g. one with an RTT debug connection going)? You need to close that first.
-
This can happen if your JLink software is older than the software on the JLink programmer. Every time anyone uses one of the JLink boxes, their software will update the firmware on the box. The JLink software prints out the version on your computer when it starts, but there's not an obvious way to see the version that's on the box. If yours is old, try updating the JLink software. (As example, I ran into this problem with an old laptop running
SEGGER J-Link Commander V6.10c (Compiled Sep 28 2016 18:29:56)
, which I had to update toSEGGER J-Link Commander V6.50a (Compiled Aug 26 2019 10:26:37)
). -
Occasionally, JLink will refuse to connect until you reboot your computer. I find this happens more often on Macs. No idea why.
The next step is Setting Up a Programming Machine!