[06-FEB-23] The Subcutaneous Transmitter (A3047) is an implantable telemetry sensor for rats. It provides amplification and filtering of up to four biopotential inputs plus temperature measurement with ±0.05°C absolute accuracy. The A3047 operates within our Subcutaneous Transmitter system. The A3047A displaces 3.0 ml, weighs 6.0 g, and is equipped with up to nine flexible leads.
The maximum number of leads loaded on the A3047 is nine. One of them is always GND, the low-impedance ground connection. The GND lead is always green. The ground lead anchors the potential of the transmitter circuit to the animal body. We must attach the ground lead to some part of the subject animal, preferably a part that is electrically inactive. Each amplifier may use GND as its reference potential, or its own high-impedance reference. The amplifier inputs are Xn+ and Xn−, for n = 1, 2, 3, and 4. The amplifier subtracts the potential of Xn− from the potential of Xn+. If we leave any input X+ or Xn− disconnected, it assumes the same potential as GND. An input uses GND as its reference if we connect one of Xn+ or Xn− to a point of interest and leave the other input disconnected. An inputs uses is own high-impedance reference potential by connecting both Xn+ and Xn− to a point of interest. For example, we could use an A3047BV1 to record two channels of EEG, one channel of ECG and one channel of EGG in the following way. We connect X1+ and X4+ to two depth electrodes in the hippocampus. We connect GND to the cerabellum. We connect X2+ and X2− to locations near the heart. We connect X3+ and X3− to locations near the gut. We have left X1− and X4− disconnected, so that they assume the ground potential. Our transmitter has seven leads.
The A3047's thermometer is on the bottom side of the circuit board, as shown in the photograph above. It's absolute accuracy is ±1.0°C and its stability and precision are better than ±0.1°C. With a one-point calibration at body temperature, the absolute accuracy improves to ±0.1°C. We record the masurement offset of each sensor at body temperature in Temp_Calib.txt. We use a processor like this in the Neuroplayer to translate the A3047's sixteen-bit output into a temperature, after which we subtract the offset to obtain the calibrated measurement.
[17-JAN-23] The following core versions of the A3047 exist. We define new versions upon request. The full part number is of the form "A3047vng-le", where capital letter v specifies the battery, number n specifies the sample rates of the four channels, capital letter g specifies the bandwidth and gain of each channel, capital letter l specifies the configuration of the leads, and capital letter e specifies the configuration of the electrodes. We use the table below to translate vng codes into transmitter characteristics. The l and e codes we present in the Leads and Electrodes sections of this manual. The A3047A1A-AA is similar to the A3047A1A-AB except in the configuration of the electrodes at the ends of the leads. All other details are the same.
|A3047A1A||Disabled||0.16-80 Hz, 256 SPS,
54 mV, CH=0
|0.0-40 Hz, 128 SPS,
27 mV, CH=1
|0.0-160 Hz, 512 SPS,
54 mV, CH=2
|2.6||24 × 24 × 8||6.8||76||30|
For each analog input we specify the bandwidth, sample rate, input dynamic range in millivolts, and channel number offset. The channel number offset is what we add to the base channel number of the device to obtain the channel number of the signal.
The dynamic range is always 0-65535 ADC counts (cnt), as produced by a sixteen-bit ADC. The zero-value of an input is the sample we obtain when we short the two inputs together. The nominal zero value for all inputs is 32768 counts. Offsets in the amplifiers cause variation in the zero-value sample of ±3000 counts from one channel to the next, and from one transmitter to the next. Once established, these offsets vary only slowly with time and only slightly with temperature.
For the thermometer, we specify the sample rate and the channel number offset. All thermometers provide the same accuracy and precision. We read out and digitize the temperature measurement with a fourteen-bit ADC. We add two zeros to the end of the fourteen-bit value to obtain a sixteen-bit value. So the quantization step four our temperature measurement is four sixteen-bit ADC counts. The resolution is four times the sensitivity, or 0.021°C.
The shelf life of a transmitter is how long it takes to exhaust the battery permanently when we leave it inactive on the shelf. See below for details of current consumption and how to calculate battery life of new versions of the A3047. By default, we set the top of the frequency range at one third the sample rate. The A2047's low-pass filters provide 20 dB of attenuation at one half the sample rate. Frequencies above one half the sample rate will be distorted by sampling, and so compromise the fidelity of the recording. Because the EEG signal contains less and less power as frequency increases, this attenuation is sufficient to ensure that distortion is insignificant.
[06-FEB-23] The following table relates lead configuration letters to choice of leads.
We define the lead names and provide links to photographs and drawings of the leads in the A3028 Manual's Leads section. We present the various antennas we have used for implants in the Antenna section. The best antenna for rat implantation is the 50-mm A-Antenna.
[06-FEB-23] The following table relates electrode configuration letters to choice of electrodes.
We define the electrode names and provide links to photographs and drawings of the electrodes in the A3028 Manual's Electrodes section.
[16-DEC-22] The A3047 has ten pads for wires. One is A, the transmit antenna. The other nine are low-frequency analog inputs. We can see how they are arranged on the circuit board in the darwing below. We solder the end of each lead to one of the pads on the top side of the board, before loading the battery over the leads, and later burying their solder joints in the epoxy between the battery and the circuit.
The antenna lead, connected to A, is always present, and it is always clear-insulated, stranded stainless steel wire tied in a loop, joined to the base of the GND lead on the opposide side. The GND lead is always present, and must always be connected to the subject animal. It is the low-impedance ground potential for the amplifier inputs. Any amplifier may use GND as a reference by leaving one of its inputs open-circuit. Each amplifier is equipped with its own three-pole low-pass filter whose cut-off frequency we adjust by changing the values of three capacitors.
[18-JAN-23] We measure the frequency response of an A3047A1A circuit. These are equipped with amplifiers X2 ×50 0.16-80 Hz, X3 ×100 0.0-40 Hz, and X4 ×50 0.0-160 Hz.
We connect a 0.2-Hz square wave of amplitude 50 mVpp with 10-MΩ source impedance. We expect a 25-mVpp signal on all three inputs. In the caption below we give the dynamic range of each input. Note that the X2 input relaxes after each square wave edge, while X3 and X4 do not, because their response extends to 0.0 Hz.
We apply a 100-mV triangle wave through 10 MΩ, so we expect 50-mV at the inputs. The triangle wave drives the X3 input into saturation on both sides of the dynamic range, and almost drives the other inputs to their limits as well. Note that the amplifiers are able to drive their outputs right to the positive and negative supply voltages. In X2 we see non-linearity in the ramp when emerging from saturation. This non-linearity arises only when the amplifier output is driven into saturation at the edges of the dynamic range.
Each of the amplifiers X1..X4 are equipped with non-inverting and inverting inputs so as to permit a differential voltage measurment. The low-impedance ground pad must be connected to some part of the subject body. If we make no connection to the inverting input of an amplifier, the amplifier will use GND as its inverting input. If we connect both inverting and non-inverting inputs to the same signal, their difference is zero, and the ideal amplifier output will be equal to the zero-value. Our amplifiers are not idea, as we demonstrate with the following experiment. We connect X4+ and GND of an A3047A1A to the ground of our signal generator. We connect X2+, X2−, X3+, and X3− to 20 mVpp sine wave to measure the common mode gain response. We connect X2− and X3− to GND to measure the differential gain. We divide the differential by the common mode amplitudes to obtain the common mode rejection ratio, which we plot in decibels.
The CMRR for frequencies below 7 Hz is >40 dB. A common-mode signal on the low-impedance ground will appear on differential amplifier outputs with amplitude more than one hundred times smaller for frequencies less than 7 Hz. Common mode signals will be ten times smaller for frequencies up to 70 Hz.
[09-FEB-23] The absolute accuracy of the A3047's thermometer is ±1°C. Its stability and precision are better than ±0.1°C. We measure the offset of each transmitter's thermometer near 37°C. We record the offset in Temp_Calib.txt. Each transmitter is listed in the file by its serial number. We subtract the offset from the raw temperature measurement to obtain a measurement with absolute accuracy ±0.1°C. When recording from an A3047, the NDF archive will contain the sixteen-bit temperature values in their own signal channel. We can translate these values into Centigrade using an interval processor. We can export the temperature signal to an EDF file, and in doing so perform the translation to Centigrade using the EDF header.
The thermometer on the A3047 is the LMT70, a 0.9-mm square component on the bottom side of the transmitter circuit. The battery is loaded on the top side. When implanted, the thermometer is separated from the animal's body by approximately one millimeter thickness of epoxy and silicone. The A3047A1 transmits 64 SPS of temperature measurements. Measurement noise 25 mK rms. The speed with which the thermometer responds to changes in ambient temperature is dominated by the heat capacity of the transmitter. For the A3037A, with its CR2330 battery, the time constant is one minute in water, as shown below.
The measurement value transmitted by the A3047 is a sixteen bit number with the lower two bits always zero. Response to temperature is −5.25 mK/cnt and noise is 5 cnt rms. The figure below gives sample value versus temperature, assuming nominal values for the temperature sensor itself and the power supply voltage to the analog to digital converter.
To transform the sample value into a temperature, we use the tabulated values above, which we obtain by combining the manufacturer's data sheet, our measurement of the on-board reference potential VC = 1.803 V, and the linearity of the converter. In Tcl code we can assign the tabulated values to a table string and use our lwdaq linear interpolation routine to obtain the temperature, like so:
set T_table "41767 -10 39910 0 38044 10 36168 20 34285 30 32393 40 30492 50 28583 60" lwdaq linear_interpolate 34970 $T_table 26.362188
If we find that the value obtained by the above calculation is offset from the correct value, we can add a calibration offset to our calculation be confident that deviations of ±5°C from our calibration temperature will be measured to within ±0.1°C.
When exporting from NDF to EDF in the Neuroplayer, we write into the EDF header a minimum and maximum value for temperature that directs our EDF viewer to provide an accurate translation of the raw measurements in the temperature range we are most interested in studying. In the case of animal body temperature, we set the temperature at the minimum measurement value to be 211.9°C and the temperature at the maximum measurement value to be −136°C.
The above plots are derived from our EDF_Demo.zip example recording. To view EDF files, we use the free software EDF Browser.
[17-JAN-23] The A3047 provides four analog inputs, each of which may be configured either to use the common ground potential VC, or to use its own reference potential. Each amplifier is equipped with a three-pole low-pass filter and a single-pole high-pass filter. The high-pass filter can be disable to permit recording down to 0.0 Hz. The A3047 also provides a temperature sensor accurate to ±0.1%deg;C at animal body temperature. Aside from its more numerous and versatile analog inputs and temperature sensor, the design of the A3047 is similar to the A3028: a micropower logic chip communicates with a sixteen-bit analog-to-digital converter (ADC), drives a five-bit digital-to-analog converter (DAC) to produce a frequency-modulation output, which we connect to a voltage controlled oscillator (VCO) to produce our telemetry tranmission. A magnetic sensor drives a flip-flop that turns on and off power to the circuit. The inactive power is the power delivered to the sensor and flip-flop. Sample rate is controlled by a 32.768 kHz precision clock. Transmission timing is controlled by a ring oscillator that we calibrate during assembly. Active current consumption is dominated by the ring oscillator, analog-to-digital conversion, and the voltage-controlled oscillator, which turn on and operate for approximately 10 μs in order to generate each sample.
The A3047's four amplifiers have identical component layout. By changing the values of their resistors and capacitors, we can configure each amplifier with its own gain and frequency response. In order to give the amplifiers a high-pass filter, we exchange resistors for capacitors, so that component R101 might, for example, be a 100-nF capacitor rather than a resistor. The circuits we receiver from our assembly house have their amplifiers configured in a particular way that we hope we can use with minimum further adjustment.
|AV1||×100, 0.0-160 Hz||×100, 0.0-160 Hz||×100, 0.0-160 Hz||×100, 0.0-160 Hz|
|BV1||×50, 0.0-160 Hz||×50, 0.16-80 Hz||×100, 0.0-40 Hz||×50, 0.0-160 Hz|
Details of the design are available in the following library of design files. Note that all our designs are protected by the GNU General Public Lisence.S3047A_1.gif: Schematic of A3047, Logic
[18-JAN-23] The A304701A PCB has the following problems. We must connect the ground pad to ground.
[19-DEC-22] When we want to mark in our SCT recordings the time at which some event took place, such as the start of a video recording, the moment that a light was flashed, or when an noise commenced, we can use an auxiliary SCT to record a synchronizing signal along with the signals received from implanted SCTs. See the Synchronization section of the A3028 manual for details.
[19-DEC-22] See Body Capacitance in the A3019 manual.
[17-JAN-23] We divide the battery capacity in μA-days by the maximum current consumption in μA given by the formula below to obtain the guaranteed battery life in days.
In the above relation, we have 30 μA base current consumption, which powers the logic chip (15 μA), amplifiers (6 μA), temperature sensor (6 μA), and miscellaneous circuits (8 μA). Additional current consumption by digitization and transmission is 0.12 μA per sample per second, or we could say that each sample requires 0.12 μC of charge drawn from the battery. The above formula predicts 275 μA for 2048 SPS. We measure 225 μA. At 960 SPS the formula predicts 145 μA, we measure 126 μA, 136 μ, and 137 μA in our first three devices.
In the table above, we use our formula for maximum current consumption and combine it with the nominal capacity of the batteries we might use with the A3047. The CR1620 is the smallest battery we believe we can load onto the 20-mm diameter circuit. The CR2477 is the largest battery we believe a rat can tolerate.
[19-DEC-22] All versions of the A3047 are encapsulated in black epoxy with a coating of silicone. The silicone is "unrestricted medical grade", meaning it is approved for implants of unlimited duration in any animal, humans included.
[19-OCT-22] Order for first twenty A3047A received.
[16-DEC-22] Layout of A304701A completed. Ordered 100 of the six-layer boards panelized 2 × 5 on a 5-day turn.
[19-DEC-22] Fabrication of A304701A is underway. Panel drawing here.
[30-DEC-22] Have ten panels of ten A302701A in hand.
[04-JAN-23] Kit for QTY 10 of A3047BV1 shipped, assembly is underway, scheduled ship date 13-JAN-23.
[17-JAN-23] We receive 10 of A3047BV1. Load 10-μF capacitors that we failed to send to assembly house. Connect ground pad to P1-7. Work on firmware. All four inputs are being digitized and transmitted, each at 512 SPS. Frequency responses and gains all appear to be correct. Check all inputs for missing codes or other glitches in ADC readout with ramps. See no problems. We have 0.0 Hz response on X1, X3, and X4, 0.3-Hz high-pass on X2. Current consumption 236 μA (our prediction was 275 μA). We have a start-up problem when we first connect a power supply to the circuit: current consumption is 1.2 mA and signals are all exactly zero. Turn off and on with a magnet and current returns to normal with samples being digitized correctly. We look at TMP, the output of the LMT70 temperature sensor. We measure 980 mV (23°C). We cool with freezer spray and see it rise to 1.32 V (−45°C). We enable the fourteen-bit ADC U7 that digitizes the temperature sensor and read it out as if it were U5, the sixteen-bit ADC. When TMP = 1.0 V we see 17930 counts and when 1.14 V we see 20434 counts.
[18-JAN-23] We now have a sixteen-state sample manager in the firmware. It runs off a 1024 Hz clock. In every even-numbered state, we read out and transmit X1. Its transmit frequency is 512 SPS. In one in four states we transmit X2, and in one in eight we transmit X3 so that their sample rates are 256 SPS and 128 SPS respectively. We do not transmit X4. We transmit temperature in one of the sixteen states, for 64 SPS. In one state we do nothing: neither power up the RF oscillator, nor read out the ADC, nor initiate a conversion. As the state machine proceeds, it must set up the multiplexer address for channel selection in the state before the channel sample is transmitted, because the converters convert after readout, not before readout. Our version A01 code does all this.
Adjust ADS7052 readout to account for bits emerging on rising edges of SCK, and first rising edge gets a zero. We have twenty-four SCK pulses in all. We need eighteen to perform a readout and initiate another conversion. Twenty-four has the same effect except on the first conversion after power-up, when the twenty-four pulses provokes an offset calibration. We have a glitch at the end of the readout on SCK, but this glitch does not appear to cause any trouble, and we would need to allocate another logic register to remove the glitch, so we leave it in place. Our logic takes up 62 outputs when the ring oscillator is 13 gates long.
The top bit appears on the second rising edge of SCK. The final two bits we read out of the ADS7052 are always zero, so we convert our fourteen-bit output into a sixteen-bit output by shifting left and filling with zeros. In both the ADS7052 and ADS8860 readout, we have shortened the conversion pulses (on !CSS and !CST), which makes the entire cycle more visible in our oscilloscope traces. The readout of the ADS8860 requires sixteen pulses on SCK. The top bit appears when we assert CSS. The next bit appears on the first falling edge of SCK.
When we connect 2.7 V to our board with a wire through a multimeter, current consumption is 1.2 mA and our signal samples are all zeros, while our temperature samples are normal. If we turn off and on with a magnet, current consumption is only 128 μA. We connect probes to VL, VC, VD, and VA and watch the power-up sequence for a hard connection to VB and a magnetic turn-on.
Both VA and VC are supplied by R1 = R2 = 1.0 kΩ charging C6 = C4 = 10 μF. When we turn on with the magnetic switch we see the time constant of 10 ms clearly on VC, but on VA something more complicated is happening: a startup current of around 300 μA holds VA down, then switches off, allowing VA to rise to VD. When we turn on VB with a connector, the power supply flip-flop U2 power up with its VD output HI. The circuit attempts to power up but fails.
We cycle the power on our circuit with a magnet twenty times and every time it powers up correctly. But when we short the battery voltage for a moment, it powers up incorrectly. During encapsulation, if we were to press the negative tab against the edge of our battery, the device would power up incorrectly. Even when powered up incorrectly, however, the device still transmits. We already make sure devices are turned off at all stages of encapsulation, so we will avoid leaving the device in its 1.2-mA state. We try R1 = R2 = 500 Ω. Now we see the same power-up failure, but with 1.6 mA. We try R1 = R2 = 2.0 kΩ and see the same problem, but 800 μA. With 2.0 kΩ, however, the device does not power up correctly with the magnet either. With R1 = R2 = 0 Ω, the circuit always powers up correctly, magnet or connector. We restore R1 = R2 = 1.0 kΩ. If we put the circuit to sleep before disconnecting VB, then re-connect VB, the circuit powers up asleep. If we turn on, disconnect, and reconnect, power-up fails. If we wait one minute before re-connecting, power-up fails. If we short VB to 0V before re-connecting, the circuit powers up asleep.
Our antenna and battery connector extension breaks off. We load a battery. Our tab arrangement is easy to solder to and the tabs welding proceeds without difficulty. We reprogram to use X4 instead of X1 so that the red and blue leads can be near one another. We attach leads as shown below. We are using X4− as the low-impedance ground. Clip the programming extension and measure frequency response, dynamic range, and observe saturation of the inputs, as we report in Analog Inputs.
We measure noise in the thermometer signel 5 cnt rms, which is around 25 mK rms. Absolute value of the sample corresponds to 26.7°C. Our alcohol thermometers say the temperature here is 25.5°C. The main source of error we expect in our temperature measurement is the value of VC, which we assume is 1.80 V. We measure VC to be 1.803 V. Accounting for this slight increase in VC, our measurement drops to 26.4°C.
Apply 20 mVpp 10 Hz sine wave through 100 kΩ to X2 and X3. Connect X3+ and GND to 0 V. We see 18 mVpp on X2 and 17 mVpp on X3. Now connect both X2 and both X3 terminals to the 20 mVpp signal. We see 0.23 mV on X2 and 0.22 mV on X3. Our common mode rejection ratio for 10 Hz is 77, or 38 dB. Make plot of CMRR versus frequency, see here.
[25-JAN-23] We have our first encapsulated A3047A1A-AA. We place in hot water with four 1000-Ω ±0.3°C epoxy-encapsulated RTDs connected to an Resistive Sensor Head (A3053A). We use Acquisifier script Temp_Calib.tcl to read out the RTDs and the SCT, and to convert the SCT temperature measurement into centigrade with interpolation table "41767 -10 39910 0 38044 10 36168 20 34285 30 32393 40 30492 50 28583 60". We place the SCT and all four RTDs in hot water. We record temperature every ten seconds.
We stir the water at time 1 minute, 31 minutes, and every five minutes or so afterwards. Each jump up in the RTD temperature is the result of stirring. The plot above shows the difference between the SCT thermometer and two of the RTDs. We repeat, but this time with room temperature water. We plot the four RTD sensors and the SCT sensor. We place an alcohol thermometer in the same beaker.
At time 20 min our alcohol thermometer measures 23.0°C, the RTDs show 23.49°C, 23.60°C, 23.46°C, and 23.42°C, and the SCT says 24.24°C. The SCT uses the LMT70 temperature sensor, which the manufacturer claims is usually accurate to ±0.05°C at room temperature. We digitize its output with an ADC that uses VC as its reference voltage. We measure VC to be 1.803 V, and we used this value in our calculation of temperature. The voltage VC is generated by the NCP170, and will lie in the range 1.800±0.018 V at 25°C. If we do not measure VC, but instead assume it is 1.800 V, the ±18 mV uncertainty translates into a 1.8°C uncertainty in temperature. If we measure VC with accuracy ±2 mV, our uncertainty at 25°C drops to 0.18°C. The NCP170 output varies with temperature as shown below.
A single-point calibration of the sensor at 37°C with precision 0.1°C will guarantee ±0.1°C from 32-42°C, and we will obtain precision of ±0.01°C. Measure mass of our encapsulated A3047A to be 6.8 g.
[30-JAN-23] We put ice in a beaker of water. We record from our four RTDs and our A3047A1A.
We place a block of ice in the bottom of a coffee mug. We place the A3047A on top of the block, along with our four RTDs. We place another block of ice on top, cover with water, stuff bubble wrap into the mug as insulation and stopper, wrap mug in three layers of bubble wrap and secure with tape. We record and shake a few times.
We remove insulation and stir our transmitter in ice water vigorously. We watch its measurement drop to 2.3°C but no lower. We stir with RTDs in ice water the move to warm water to look at response time.
The A3047 includes an auto-calibration of its thermometer ADC at power-up. We have our A3047A1A up against the glass of our beaker, immersed in warm water. We record temperature every ten seconds, turning off and on the sensor between measurements.
The water is cooling. We fit a straight line to the above measurements. The standard deviation of the residual is 0.008°C. We obtain the radio-frequency spectrum of our A3047A1A output in cold water (4°C) and in warm water (30°C). We see peak at 921 MHz and 916 MHz respectively, suggesting a slope of −0.2 MHz/K, similar to the −0.24 MHz/K suggested by the MAX2623 data sheet.
[06-FEB-23] We have two more A3047A1A encapsulated. We measure frequency response of our three encapsulated circuits, see A222_65. We place the transmitters in water and record temperature. We look at the average value of the signals in water.
Our ideal average value is mid-way up the plot. Our actual average values are lower, on account of the battery voltage being 3.24 V rather than 2.7 V.
After thirty minutes, we have the following plot of the three sensors cooling in water.
We have a "Perfect Prime 100-Ω RTD" digital thermometer, which is supposed to be accurate to ±0.3°C. We place its probe in our water. Our sensors measure 26.3°C, 25.0°C, and 26.1°C, while the RTD measures 25.2°C. We place four digital body-temperature thermometers, our 100-Ω RTD, our four 100-Ω RTDs, and our three A3047A1As in the same beaker of warm water and stir.
The four body temperature thermometers and the 100-Ω RTD all agree that the water is at 36.2°C. Our 1000-Ω RTDs are within 0.2°C of 26.2°C. The A3047A1As are off by up to 0.8°C. We will write their offset on their bags and record in Temp_Calib.txt.
[14-FEB-23] We have fifty new A3047BV1 circuit boards back from Advanced Assembly. We program and test three. All are perfect. We apply 30 mVpp 18 Hz to X3. We see amplitude 24 kcnt on X3. In the spectrum of X1 we see a peak of 18 cnt at 18 Hz, and on X2 a peak of 10 cnt at 18 Hz. Crosstalk appears to be less than −60 dB.
[30-MAR-23] Our first A3047A has been running continuously since the end of January, roughly sixty days. Still running well. Expected lifetime is 76 days.