Telemetry Control Box (A3042) Manual

© 2022-2025, Kevan Hashemi, Open Source Instruments Inc.

Contents

Description
Versions
Set-Up
Network Communication
Telemetry Reception
Command Transmission
Digital Input-Output
Power Consumption
Design and Development

Description

[24-OCT-24] The Telemetry Control Box (TCB) is a telemetry receiver for devices such as our Subcutaneous Transmitters (SCT), Implantable Inertial Sensors (IIS), or Implantable Stimulator-Transponders (IST). The TCB-A16 provides sixteen antenna inputs, to which we can connect up to sixteen coaxial antennas, such as the Loop Antenna (A3015C). Each antenna input is equipped with its own dedicated receiver and power meter. The telemetry messages we record with a TCB contain not only the telemetry channel number and sample value, but also the identity of the top antenna, which is the antenna at which the message presented the greatest microwave power, and the top power, which is a logarithmic measure of the microwave power at the top antenna. The top antenna is almost always the antenna closest to the animal, so the to TCB's top antenna measurement allows us to monitor the location of animals in mazes and other complex environments. The TCB-B16 provides all the functionality of the TCB-A16, but in addition allows us to use the sixteen antennas as command transmitters, and provides four programmable, high-speed, digital input-output signals. Command transmission allows us to control devices such as Implantable Stimulator-Transponders (ISTs). The digital communication lines allow the TCB-B16 to receive timing signals and transmit telemetry information to external devices.


Figure: Telemetry Control Box. On the back side are sixteen BNC sockets for antenna connections and a Power over Ethernet (PoE) socket.

The TCB requires only one network cable for communication and power, an industry-standard Power over Ethernet (PoE) connection. We supply the TCB with an Ethernet jumper cable so we can connect it to a PoE switch, and we sell high-reliability, fan-less, PoE switches of various sizes for use with the TCB and our other PoE devices. When you order a TCB-A16, you can order up to sixteen Loop Antennas (A3015C) to go with it, depending upon how many you need to deploy in your telemetry system.


Figure: Display Panel. Activity lamps glow in proportion to sample rate. In this picture, the Detector Module Error (DMERR) light is shining, which indicates a problem with one of the internal detector modules. This light should never turn on during normal operation of the TCB. Press SHOW to turn on all the lights temporarily. Press HIDE to turn off the activity lights if they are too bright.

The TCB-A16 replaces our long-running Octal Data Receiver (A3027E, ODR) and LWDAQ Driver (A2071E) telemetry system. The TCB-A16 provides sixteen antenna inputs, the ODR provided eight. The TCB-A16 provides a top antenna measurement, the ODR does not. The TCB-A16 requires a PoE connection, the LWDAQ Driver required a 100-Base-T connection and a separate 24-V power adaptor. The TCB-B16 replaces the Command Transmitter (A3029C) and LWDAQ Driver (A2071E). The TCB-B16 provides sixteen independent, non-interfering command transmitters, the A3029C provided only one. The TCB-B16 requires no additional power supply for command transmission, the A3029C required its own 24-V power adaptor.

Versions

[14-OCT-25] The following versions of the Telemetry Control Box (A3042, TCB) are defined. The TCB-A16 went into production in January 2023. The TCB-B16 went into production in August 2024.

Version Dimensions Comment
TCB-A16 55 cm × 35 cm × 12 cm 16-way receiver, location monitor.
TCB-B16 55 cm × 35 cm × 12 cm 16-way receiver, location monitor, command transmitter, digital I/O.
Table: Versions of the Telemetry Control Box (A3042, TCB).

The TCB-B16 provides command transmission through all sixteen antennas for controlling Implantable Stimulator-Transponders (ISTs). The TCB-B16 populates the four holes X1-X4 on the back wall with four more BNC sockets. These can provide programmable, high-speed, digital input-output for experiments in which external stimuli need to be controlled in a manner synchronous with the telemetry signals, or in which synchronizing signals need to be embedded in the telemetry recording.

Set-Up

[01-MAY-25] The TCB obtains all its power and communication through a single Power-over-Ethernet (PoE) socket. The TCB system consists of the TCB, a PoE switch, coaxial cables, feedthroughs, and Faraday enclosures. In the paragraphs below, we provide detailed instruction on setting up the TCB for communication with your computer, but ultimately refer you to the SCT setup instructions once that communication is established.


Figure: TCB Telemetry System. Four antennas are arranged in the enclosure. The TCB, an Animal Cage Camera (ACC), and the data acquisition computer are all connected to the same Power over Ethernet switch. Telemetry sensors and stimulators are implanted in animals in the Faraday enclosure.

Power Up PoE Switch: Connect power to your PoE switch. If you are not in the United States, you will need a computer power cable to connect to your local type of wall power socket, but you can be assured that the power adaptor will operate with any AC voltage 100-250 V, 50-60 Hz. Lights should illuminate on the PoE switch.


Figure: Telemetry Control Box, Vertical with PoE Switch.

Connect TCB to PoE: Use a network cable to connect the TCB to the PoE switch. This cable can shielded or unshielded, and it can be up to ten meters long. Lights should illuminate on the TCB.

Install Software: Download and install the latest version of the LWDAQ software from here, following these installation instructions.

Connect Computer to PoE: Connect your data acquisition computer to the switch. Configure your computer to use its wired Ethernet interface with subnet 10.0.0.0 and IP address 10.0.0.20. The TCB ships with an IP address 10.0.0.x, where x is given by the last two or three digits of the serial number on the back of the TCB enclosure. The table below gives examples of serial numbers and their addresses.

Serial NumberAddress
Y6106110.0.0.61
Y6116310.0.0.163
P014810.0.0.148
C008910.0.0.89
Y7010510.0.0.105
Table: Example Serial Numbers and IP Addresses

You should see a link light beside the sockets you have used on the PoE switch for your computer and your TCB. Launch the LWDAQ software and try to contact the TCB using the Configurator Tool, as described here. Don't proceed until you can contact the TCB and read its EEPROM.


Figure: Telemetry Control Box Set-Up for Bench-top Enclosure with Cameras.

Continue with Telemetry Setup: Connect antennas, set up software, and test out sample transmitters with the help of our Subcutaneous Transmitter (SCT) setup instructions, which you will find here.

Use the Neurorecorder to record telemetry data from the TCB. Use the Receiver Instrument, available with a button in the Neurorecorder, to view live data before it is written to disk. Use the Neuroplayer to view, analyze, and export the data during or after recording. In the Neuroplayer, use the Neurotracker to see which antenna is receiving the most power from each of your transmitters. Use the Stimulator Tool to send commands to your Implantable Stimulator-Transponders (ISTs).

Network Communication

[01-MAY-25] The TCB is a LWDAQ system of Form C, as described in the LWDAQ Specification. It consists of a relay, a controller, and a device with three elements. Device element one is the telemetry receiver, which consists of detector modules and the logic that reads them out and stores their messages in a buffer. Device element two is the telemetry transmitter, which consists of transmitter modules and the logic that organises them. Device element three is the digital interface, which consists of four digital input-output (DIO) signals. These signals appear on four BNC connectors X1-X4 on the back wall of the TCB. The TCB-A16 provides only element one. The TCB-B16 provides all three elements. The TCB implements the LWDAQ command job. We use command jobs to reset the telemetry receiver, transmit telemetry commands, and configure the digital interface. Because the TCB does not implement driver sockets or multiplexer sockets, we do not need to write to a device address register to select which socket for the command job. But we must write to the device element register to tell the controller if the command is destined for the telemetry receiver (1), telemetry transmitter (2), or digital interface (3).

To communicate with the TCB, our data acquisition software composes messages in the LWDAQ-TCPIP message format that read to and write from its controller address space. This space is defined in the file Main.vhd of the P3042BB firmware.

-- Relay Interface Memory Map Constants with Read and Write as seen by the
-- LWDAQ Relay that is master of the interface. We respect the existing
-- allocation of controller addresses given in the A2071 manual. 
constant cont_id_addr : integer := 0; -- Hardware Identifier (Read)
constant cont_sr_addr : integer := 1; -- Status Register (Read)
constant cont_djr_addr : integer := 3; -- Device Job Register (Read/Write)
constant cont_der_addr : integer := 15; -- Device Element Register (Write)
constant cont_hv_addr : integer := 18; -- Hardware Version (Read)
constant cont_fv_addr : integer := 19; -- Firmware Version (Read)
constant cont_crhi_addr : integer := 32; -- Command Register HI (Write)
constant cont_crlo_addr : integer := 33; -- Command Register LO (Write)
constant cont_di_lo : integer := 38; -- Digital Inputs LO (Read)
constant cont_cfsw_addr : integer := 40; -- Configuration Switch (Read)
constant cont_srst_addr : integer := 41; -- Software Reset of Controller (Write)
constant cont_fifo_av_addr : integer := 61; -- Fifo Blocks Available (Read)
constant cont_fifo_ds_addr : integer := 62; -- Fifo Data Strobe (Read/Write)
constant cont_fifo_rd_addr : integer := 63; -- Fifo Read Portal (Read)

The hardware identifier, hardware version, and firmware version number registers provide values that allow us to determine which type of receiver we are trying to read out and control. These are values made available by all LWDAQ systems. The LWDAQ Configurator Tool reads these values and presents them to us when we contact a LWDAQ Relay, such as the relay provided by the TCB. We read them out with our LWDAQ_byte_read routine, which in turn uses the LWDAQ byte read instruction to access the byte.

Telemetry Reception

[08-JAN-26] The objective of telemetry reception is to obtain a faithful reconstruction of the signal transmitted by every transmitter. A TCB might have eight of its antennas arranged in an IVC rack. These antennas receive independently, so we might have up to eight copies of a single transmitted message. The TCB must eliminate duplicates, identify the top antenna, and provide a single entry in its message buffer for each transmitted message. A TCB message entry consists of six bytes: an eight-bit telemetry channel number, a sixteen-bit data value, an eight-bit timestamp, an eight-bit top antenna power, and an eight-bit top antenna index. Below is a typical raw message content report obtained from the Receiver Instrment with show_messages set to 20.

Messages 0 to 20 (index id value timestamp $hex):
    0   0   512 126 0x0002007E 8308
    1 179 42799   0 0xB3A72F00 A60B
    2 180 35672  28 0xB48B581C A60B
    3  23 39620  41 0x179AC429 AC0B
    4  68 39898  43 0x449BDA2B 980B
    5 179 42739  65 0xB3A6F341 A60B
    6  24 39365  92 0x1899C55C AD0B
    7 177 42046  94 0xB1A43E5E A70B
    8  68 39906 117 0x449BE275 960B
    9 179 42741 132 0xB3A6F584 A70B
   10  23 39480 156 0x179A389C AD0B
   11 178 42408 159 0xB2A5A89F A60B
   12  68 39888 169 0x449BD0A9 980B
   13 179 42762 185 0xB3A70AB9 A60B
   14 177 42013 218 0xB1A41DDA A70B
   15  24 39406 230 0x1899EEE6 AD0B
   16  68 39901 240 0x449BDDF0 980B
   17   0   513 126 0x0002017E 0000
   18 179 42734   3 0xB3A6EE03 A60B
   19 180 35672  28 0xB48B581C A60B
   20  23 39436  33 0x179A0C21 AD0B
Data Receiver Version 126.

Each TCB message consists of six bytes. The first four bytes are the content of the telemetry message, as transmitted by the telemetry device. The first byte is the telemetry channel number declared by the message. The next two bytes are the sixteen bit contents of the message, with the high byte first. The fourth byte is byte zero of the telemetry receiver clock. These four bytes are present in all messages retrieved from all OSI telemetry receives. The TCB adds a payload of two bytes to its core message. The first payload byte is the top antenna power. The second payload byte is the top antenna indes. The index matches the number over the antenna connector on the back of the TCB. The messages with channel number zero are not telemetry messages, they are clock messages embedded in the data for the sake of time-keeping. Content of these messages is first a zero to indicate a clock message, then bytes two and one of the telemetry receiver clock. The payload contents vary with firmware version. The first payload byte contains eight status flags and the second paybload byte contains the state of the digital outputs. The eight status flags in the top antenna power byte are, from most signficiant to least significant bit: MRDY, DMERR, not MSBEMPTY, not DPREMPTY, CONFIG, ETH, UPLOAD, and EMPTY. The eight bits of the top antenna index byte are, from most significant to least significant bit: EN4, EN3, EN2, EN1, X4, X3, X2, and X1. In the above example, we see two clock messages. The first has payload 0x8308, the second has payload 0x0000. In the first, we have UPLOAD and EMPTY both set, which means a client was downloading from the TCB and the message buffer was almost empty. We also had MRDY set, which means a message was ready to be read out of one of the detector modules. Meanwhile, the digital output drivers were all disabled and the state of the inputs X1-X4 was logic LO, LO, LO, HI. In the second clock message we have all bits zero, so there is no download taking place, no message waiting in a detector module, and the message buffer is no longer close to empty. The digital inputs are all LO, which means X4 must have transitioned from HI to LO between the two clock messages.

The TCB detector modules are read out along a daisy-chain bus. Each detector module has both upstream and downstream eight-bit data buses and upstream and downstream data strobes. The modules share an eight-bit detector control bus. One of the control bus signals is Message Ready (MRDY). Each detector module asserts MRDY when it has a message ready for readout. When it sees MRDY, the baseboard logic asserts another control bus line, Detector Module Read Control (DMRC), and uses its own upstream data strobe to read the message from the closest module in the daisy-chain. If MRDY is still asserted after the readout, this will be because another message is available in the daisy-chain. The baseboard logic reads all available messages as fast as it can. If it reads the same message twice, but the second message has greater power, it discards the previous message. When no further copies of a message are available for readout, the baseboard logic stores the message in its message buffer.

There is a limit to how many message the baseboard logic can read out from the daisy chain per second. We call this the TCB's maximum message rate. The maximum message rate in turn limits on the maximum sample throughput of the TCB, which is the maximum number of unique sensor samples the TCB can provide to our data acquisition computer. For TCBs with firmware versions four (FV4) and five (FV5), this limit is 150 kMPS (one hundred and fifty thousand message per second). For TCBs with firmware version six (FV6) and seven (FV6), this limit is 320 kMPS. The maximum message rate arises from the time it takes to read one message from the daisy chain, which for FV6 is 3 μs. Now suppose that we place sixteen antennas inside a Faraday canopy and record from transmitters within the canopy. If the canopy is well-sealed, and local microwave interference is minimal, all sixteen antennas will receive each message transmitted by each transmitter in the canopy. We receive each message sixteen times, so the baseboard logic must read each message out of all sixteen of its detector modules, and in the end keep only the most powerful message from the top antenna. The maximum throughput samples the TCB can receive is 320 kMPS / 16 = 20 kSPS. This 20 kSPS allows us to record from approximately forty 512 SPS transmitters. If we remove eight of the antennas, reception is just as good, but our TCB can now handle eighty of the same type of transmitter. We could put these eight antennas in a second Faraday canopy. Now the two sets of eight are isolated from one another. The signals from transmitters in the first enclosure will be received eight times, and those in the second enclosure will be received eight times. We could also deploy sixteen antennas in four sets of four: four antennas in each of four separate benchtop Faraday enclosures. Now each message will be received four times, so our maximum sample throughput becomes 320 kMPX / 4 = 80 kSPS. We can record from 160 transmitters that each produce 512 SPS.

We increase the TCB's maximum sample throughput by reducing the number of antennas in each Faraday enclosure. Antennas in a Faraday enclosure are isolated from all other antennas. But as we reduce the number of antennas, we reduce the probability that any given message will be received. Suppose we place four TCB antennas in each of four bench-top Faraday enclosures, and suppose each antenna receives 70% of all samples transmitted within its enclosure. With each individual antenna failing to receive 30% of samples, the probability of any one sample being missed by all four antennas only 0.34 = 0.8%. Reception from the four antennas combined will be 99.2%, which is great. But if we reduce the number of antennas to two, reception will drop to 1 − (0.3 * 0.3) = 91%, which is not so good. We recommend four antennas in each benchtop enclosure and eight in each canopy enclosure. In a canopy enclosure, which is much larger than a benchtop enclosure, we find that superb reception can be obtained with eight antennas, but not with four. As a rule of thumb: put four antennas in a benchtop enclosure and eight in a canopy enclosure. There is one exception to this rule: when ambient radio-frequency interference is severe, we should deploy sixteen antennas in a canopy. We can tell that interference is severe when we see that reception from all our sensors drops as soon as we crack open the canopy door. The tenth floor laboratory of one of our customers in the middle of London is like this: open the door and reception drops almost to zero. Even with the canopy sealed up, only antennas within 50 cm of a telemetry sensor will obtain reliable reception from a sensor. When we deploy sixteen antennas in, we do not see sixteen copies of each sample, we see no more than four. The TCB's maximum throughput will be at least 80 kSPS. If, in such an environment, the source of local interference should be turned off, we would immediately see sixteen copies of each sample, and at that point we might need to unplug some of the antennas from the TCB.

If the number of messages per second a TCB is receiving exceeds its maximum message rate, we say the TCB is overwhelmed. We have observed one example of a TCB being overwhelmed in the field. The telemetry system was set up in a windowless room in the center of a brick building in Manchester, UK. Our customer had fifteen antennas connected to a TCB and distributed through an IVC rack. They had no Faraday canopy because they had no need of one in their brick room. When they turned on six A3040D3 HMTs, each transmitting a total of 2048 SPS, the total incoming message rate the TCB had to deal with was roughly 6 · 2048 · 15 = 184 kMPS. This TCB was equipped with firmware version four (FV4), with maximum message rate 150 kMPS, so the TCB was overwhelmed. Duplicates were not being eliminated by the TCB itself, nor the Neurorecorder. The NDF fil were two or three times larger than they should have been. Our Neuroplayer was able to read and play back the files, but a third-party NDF-to-H5 translater was unable to do so. Our customer measured reception with four and six antennas. Reception was poor with four and very good with six, so we recommended eight. Dropping the number of antennas from fifteen to eight proved effective: they obtained excellent reception and their TCB was no longer overwhelmed. After this experience, we worked on the firmware to produce FV6 with its 320 kMPS maximum message rate. Nowadays, we stress test every TCB by placing transmitters sufficient to generate 20 kSPS in an enclosure, and then delivering these samles to every single one of the TCB's sixteen antenna inputs. The result is an internal TCB message rate of 320 kMPS. If the TCB can record for several days with no errors, it passes quality control.


Figure: Stress Test of Telemetry Control Box (TCB-B16). We have four antenna cables split into sixteen separate signals for the sixteen TCB inputs. Each antenna is receives 20 kSPS from the same set of ten A3049Q4, two-channel, 1024 SPS transmitters. The total incoming message rate is roughly 320 kMPS, which is the TCB's maximum throughput.

The TCB's message buffer a first-in, first-out (FIFO) buffer that we access from the LWDAQ Software through the Fifo Read Portal (63). To begin recording telemetry data from a TCB, we must first reset the telemetry receiver, which we do with the help of byte write instructions. See Receiver.tcl for a complete presentation of the management of TCB readout. We use LWDAQ_set_device_element to set the Device Element Register to one (1). We use LWDAQ_transmit_command_hex to transmit 0x0081 to the telemetry receiver, and this command causes the reset. Now we read Fifo Blocks Available with LWDAQ_byte_read and multiply by 512 to get the number of bytes available. The maximum value of this counter is 255, so if there are more than 130 kBytes of data available, you will not know it, even though the FIFO is 2 MBytes long. We then use LWDAQ_ram_read to fetch the available data. This routine uses the LWDAQ stream read instruction to read data out of the buffer portal. The LWDAQ Relay, which provides the TCPIP interface, uses Fifo Data Strobe (62) is used to punctuate its communication with the LWDAQ Controller, which provides the FIFO. See C3038A01.c for the code that runs on the RCM6700 that provides the LWDAQ Relay function. For details of the LWDAQ Controller, see the comments in Main.vhd and CPU_ROM.asm.

The TCB telemetry data consists of six-byte message. Each message begins with a four-byte telemetry message record, which we describe in the Telemetry User Manual. After that comes the top power and the top antenna, each one byte. When we download from the TCB, we must download a whole number of messages, so the number of bytes we download should be divisible by six. If the bytes available is 255 · 512 Bytes, we can download 21760 Bytes, and then read the bytes available a second time. Eventually, we will get all the available data.

Command Transmission

[01-MAY-25] The TCB-B implements a multi-channel command transmitter for radio-controlled implants by commandeering the reception antennas for command transmission. We present the command transmission protocol in detail in the Implantable Stimulator-Transponder (A3041) manual. We reproduce below the timing diagram from the protocol.


Figure: Command Transmission Protocol. The transmitter modules use on-off modulation to transmit commands to implantable stimulators.

A typical command transmission lasts 10-40 ms. During this time, all TCB-B antennas are connected to their own dedicated radio-frequency power source whenever the command transmission requires that a HI be transmitted. The power sources turn on and off so quickly that we can disconnect them and turn them off during each LO level. During these LO periods, the TCB can receive telemetry signals. Reception will drop to around 50% during command transmission, and recover immediately afterwards. The traces below show an IST responding to a command transmitted by a single TCB-B16 antenna. Command reception is >90% for ranges ≤30 cm.


Figure: Command Transmission and Reception. We have three probes on an A3041 IST circuit. Blue: Crystal radio output, VR, showing on-off 917-MHz power from Transmitting Feedthrough, 50 mV/div. Yellow: Logic level RP from crystal radio comparator, 1 V/div. Green: OND generated by logic chip, 1 V/div.

The transmitting feedthrough provides one transmitter module and one radio-frequency switch for each of its antenna connections. These antenna connections are no longer strictly "inputs" because they will occasionally act as outputs. Electrical power for the transmitter modules on the TCB-B16 is provided by a lithium-ion battery. Each transmitter module takes as input an !ON signal. When the transmitting feedthrough asserts ON, the radio-frequency switch connects the antenna to the transmitter module and the transmitter module itself turns on its radio-frequency oscillator. Roughly 21 dBm of 917-MHz radio-frequency power will appear on the antenna connector. When ON is not asserted, the antenna is connected through the transmitting feedthrough to a detector module on the TCB baseboard and the transmitter module's oscillator is deprived of electrical power. No oscillation and no radio-frequency power produced. Each transmitter module mounts on a 5 × 2 socket header at one end and is held at the other end by a standoff and screw. The electrical power and control enter through the header. The radio frequency power exits through a UMCC connector that we connect with a 50-mm cable to another UMCC jack next to the antenna switch.

On the TCB-B16, the transmitting feedthrough logic is provided by an LCMXO2-4000ZE field-programmable gate array. Connection to the baseboard is via four flying wires terminated in a MOLEX-4 socket. These four wires carry +5V, 0V, TX, and RX. The logic chip receives instructions from the baseboard via TX and sends notifications back to the baseboard via RX. Instructions enable antennas, transmit telemetry command bytes, and configure the four digital input-outputs.

The transmitting feedthrough logic chip runs off 1.2 V and 3.0 V, both of which we regulate down from +5V. Power for the transmitter modules, however, is provided by a 380 mAhr high-current, lithium-polymer battery. Rated for 25C discharge, this battery can deliver 9.5 A for one or two seconds. The battery includes its own over-voltage, under-voltage, over-current, and short circuit protection. It mounts on the wall of the TCB enclosure and connects with a short cable and two-way socket. The battery charger is a 70-mA current source with 4.1-V voltage limit. Because the transmitter modules are active for less than 1% of the time, the 70-mA charger is sufficient to restore the battery after bursts of 16 · 0.3 = 4.8 A. When on the shelf without power, the battery is disconnected from the circuit by a mosfet switch. Lithium-polymer batteries discharge at approximately 5% per month. The battery could drain to 15% capacity in three years without power. After that, the 70-mA current source will restore the battery to 25% capacity in half an hour.

On each transmitter module, we have a TLV61048 boost regulator producing +5.0 V from VBAT = 3.7 V with 90% efficiency. These run all the time, consuming roughly 100 μA with no load. We have a mosfet switch to connect power to our RF oscillator and amplifier. There are two stages of RF amplification, both use SOT-89 packages. The oscillator can use the GALI-3+ . With feedback through a 50-mm delay line and a 915-MHz SAW filter, we get our oscillation with +10 dBm output after stabilizing attenuator. The next stage can be GVA-92+ providing 25 dBm when saturated. The GVA-92+ requires no output matching network at 900 MHz. The recommended input matching network of 18 nH parallel followed by 5.6 pF series is designed to match a 50-Ω source to a load of 40 + 10j Ω. We omit this network with no loss of performance. We add a 2-dB attenuator and a 1-GHz low-pass filter to the output to produce 23 dBm with minimal harmonics. We launch this power off the board with a UMCC jack. Total current consumption from +5V is 200 mA, or 300 mA from VBAT. By the time the signal gets through the radio frequency switch and the BNC connector on the back wall of the TCB enclosure, we have 21 dBm.

The Stimulator Tool manages transmission of commands to ISTs as well as decoding their acknowledgements and metadata messages. The Stimulator.tcl source code shows how we manage command transmission. The Stimulator_transmit routine is the one that connects to the TCB and sends the LWDAQ commands that cause the transmitter modules to generate the telemetry command. After selecting device element two (2), we use command jobs to transmit a series of sixteen-bit commands through the baseboard logic to the transmitting feedthrough logic. The bottom seven bits (DC1-DC7) of these commands specify an operation. The eighth bit (DC8) is always one. The top eight bits (DC9-DC16) provide an operand for the operation. Here are the transmitting feedthrough operations.

-- Instruction Op-Codes
constant rf_off_op  : integer := 0; -- Turn off the RF transmitter.
constant rf_on_op   : integer := 1; -- Turn on the RF transmitter.
constant rf_xmit_op : integer := 2; -- Transmit a command byte.
constant tm_test_op : integer := 3; -- Transmitter Module test.

The rf_on operation ignores the operand and turns on all the transmitters for 5.00 ms. On a TCB-B16, full power will be drawn for these 5 ms, then all the transmitters turn off and the job is done. The rf_off operation makes sure all the transmitters are off. The rf_xmit operation takes the top eight bits and transmits them through all transmit modules at the same time, using the protocol pictured above. The tm_test operation is for calibration and testing: it turns on one and only one transmit module continuously. The operand gives the number of the antenna socket that will be producing power. The LWDAQ software's Diagnostic Instrument provides a means to control the transmit modules. In the Diagnostic Instrument's info panel, set daq_device_element to 2. Enter your TCB's IP address in daq_ip_addr. Enter "XX83" in the Diagnostic Instrument's command entry box, where "XX" is a two-digit hexadecimal number that selects one of the antenna sockets. The "XX" we must enter to select a particular antenna is given by the table below. Due to an error on our part, the numbering of the transmit modules is opposite to the numbering of the antennas. To turn on the transmit module for antenna fifteen, we enter command "0283". To turn on the transmit module for antenna number two, we enter command "0F83". Once we have entered the command in the command entry box, we press "Transmit". The selected transmit module should turn on and generate +23± dBm (200 mW) of 917±2 MHz.

Antenna
Number
Turn-On
Code
(hex)
Antenna
Number
Turn-On
Code
(hex)
1108380883
20F8370783
30E8360683
40D8350583
50C8340483
60B8330383
70A8320283
8098310183
Table: Hexadecimal Codes to Turn on Individual TCB-B16 Transmit Modules. These are the codes we use in the Diagnostic Instrument to turn on individual transmit modules. We give the code for each antenna socket number, as marked on the TCB enclosure. It would be nice if the hexadecimal code to turn on a module were the same as its antenna number, but due to an error on our part, the internal numbering of the transmit modules is reversed with respect to the antenna numbering on the enclosure.What is the LWDAQ command I must send to a TCB-B16 to turn on a particular transmit module?

Digital Input-Output

[31-DEC-25] The TCB-B16 provides four digital input-output (DIO) signals with BNC sockets on the back wall of the enclosure, marked X1-X4. We enable these digital signals as outputs and set their digital levels, by transmitting LWDAQ commands to the TCB-B16. We can use the Diagnostic Instrument to send commands when learning to use the digital signals. We can use TCL scripts to configure and read out the digital signals during an experiment. We use the LWDAQ Diagnostic Instrument to configure them and check that they work. We can see the digital signal levels reported in the top antenna index byte in every clock message in our TCB-B16 telemetry recording.

Each digital signal is controlled by three connections to the transmitting feedthrough logic. These are Output Enable (XEN1-XEN4), Output Data (XD1-XC4), and Clamped Input (XC1-XC4). When XEN1 is asserted, an SN74LVC1G126 drives X1 with XD1 through 50 Ω. We power the 1G126 with 5 V so that it can provide 2.5-V down a 50-Ω coaxial cable. By enabling the SN74LVC1G126 and setting XD low, we provide 50-Ω termination for the X1 input. The value XC1 is a clamped version of X1 for input. On the transmitting feedthrough, the logic chip is far from the X1-X4 sockets. We connect each of X1-X4 to the transmitting feedthrough with a 150-mm BNC to UMCC cable, but we still have 400 mm from the end of the coaxial cable to the logic chip. We run the logic signal down a 50-Ω microstrip transmission line to the terminating 50-Ω resistor next to the logic chip.

To configure the digital interface, we select device element three (3) and use the command job to transmit an operation code and operand. We list the operations below. As with the commands we send to the telemetry transmitter on the transmitting feedthrough, these op-codes make up the bottom seven bits of the command (DC1-DC7), while the eighth bit (DC8) is always one, and the top eight bits (DC9-DC16) contain an operand.

-- Instruction Op-Codes
constant dio_en_op  : integer := 8; -- Enable or disable digital outputs.
constant dio_set_op : integer := 9; -- Set or clear digital outputs.

The dio_en operation uses the operand to enable the four digital outputs. Bits 0-3 (DC9-DC12) of the operand enable digital output X1-4 respectively. Now the digital input-output becomes an output. The dio_set operation sets the value of the digital outputs. Bits 0-3 set the value of outputs X1-4. When we disable an output, its output value is not driven onto the digital input-output signal. But as soon as we enable the output, this same value will be driven onto the signal once again.

The digital state of X1-X4, as well as whether or not each of the outputs is enabled, will be reported by the transmitting feedthrough to the baseboard logic once every 256 μs. We read the four signal values and the four enable values from the Digital Inputs location (38) in the control address space. To read the byte we use LWDAQ_byte_read, which in turn uses the LWDAQ byte read instruction. The top antenna index byte of every clock message in the telemetry data stream reports the state of the inputs. The bits of this byte are, from most significant to least significant: EN4, EN3, EN2, EN1, X4, X3, X2, X1. The EN1-EN4 tell us if the digital output drivers is enabled. The X1-X4 tell us the logic level on the digital input. The LWDAQ software's Diagnostic Instrument provides immediate access to the TCB digital outputs for diagnostic purposes. In the Info Panel, set daq_device_element to 3. Enter your TCB's IP address in daq_ip_addr. Enter "0F88" in the command box and press "Transmit". The digital outputs are now enabled. Enter "0F89" and press "Transmit" to set them all HI. The HI voltage will be +5 V when open-circuit and +2.5 V when terminated with 50 Ω. Enter "0089" to set them all LO again, and they will all be 0 V. Now enter "0F89 0089" in the command box, "1000000" in the Repeat box and press "Transmit". You will see the outputs toggling. In practice, when we want to use the digital outputs to control something in our experiment, we will use routines like LWDAQ_transmit_command. We might set the outputs using a Neuroplayer Event Handler in response to events we detect in our telemetry signals, or we might connect to the TCB and set the outputs with some process independent of the Neuroplayer.

Power Consumption

[30-MAY-24] The TCB-A16 consumes a maximum of 8 W. The TCB-B16 peak power consumption during command transmission is 22 W. The extra 14 W is consumed by its sixteen quarter-watt radio-frequency power sources. This additional 14 W is drawn from the TCB-B16's on-board LiPo battery, which supplies 4.0 A during power transmission. This 14 W remains internal to the TCB-B16 because it must be drawn from the battery. The only power the battery draws from the TCB main power supplies is its re-charge current, which is at most 100 mA from 5 V, or 0.5 W. The logic and lamps on the TCB-B16's transmitting feedthrough consume no more than 0.5 W, so the average current consumption of the TCB-B16 cannot exceed 9 W. Command transmission is rare, so the TCB-B16's battery has plenty of time to recharge between transmissions.

Design and Development

[09-JUN-25] For design files and development logbook, see the A3042 design and development page at D3042.