Revision 3.2 - POTS Demonstration System (Prototype 1 Robustness Update)
- Course: EE 201 - Biomedical Instrumentation
- Application: POTS/Orthostatic Intolerance Demonstration
- Precision Target: +/- 2% (Relative Trend)
- Safety Criterion: <10mW time-avg emitted power per channel (bench-verified)
Design and build a biomedical device capable of detecting relative changes in cerebral oxygenation through the human forehead using near-infrared spectroscopy (NIRS). The device is specifically optimized for demonstrating Postural Orthostatic Tachycardia Syndrome (POTS) and orthostatic intolerance to students.
POTS is characterized by an excessive heart rate increase (30+ bpm) within 10 minutes of standing. Clinical studies show POTS patients experience cerebral oxygen saturation decreases of 5-15% during standing, compared to only 1-3% in healthy controls. This device enables visualization of these differences for education.
| Category | Time | Notes |
|---|---|---|
| Probe Assembly | 2-3 Hours | Including headband fabrication |
| Circuit Wiring | 3-4 Hours | Include shielding |
| Coding & Testing | 4-5 Hours | Enhanced signal processing |
| Total Build Time | 10-14 Hours | Allow extra for troubleshooting |
Component Cost: $55-92 USD per station (carrier boards removed per DCN-001)
DCN-001 (2026-03-02): 730nm emitter updated to Cree JE2835AFR and LED carrier boards removed; both LEDs now use wire-pigtail mounting.
DCN-002 (2026-03-03): TIA compensation capacitor updated from 4.7pF to 10pF (FG18C0G1H100CNT00) to improve robustness against breadboard stray capacitance; this is not a functional failure correction.
This device measures how much oxygen is in the blood flowing through your brain. It works by shining special near-infrared light through your forehead and measuring how much light comes back out. Here is the key principle:
The Basic Idea:
- Two LEDs shine near-infrared light (730nm and 850nm) into your forehead
- This light passes through skin, skull, and reaches brain tissue
- Oxygen-rich blood absorbs different amounts of light than oxygen-poor blood
- A photodiode detects the light that bounces back
- By comparing the two wavelengths, we can track oxygenation changes
Think of it like shining a flashlight through your hand in a dark room - you can see the red glow because red light passes through tissue. Near-infrared light works similarly but penetrates deeper, reaching the brain. Blood with more oxygen absorbs more infrared light at certain wavelengths, so by measuring how much light is absorbed, we can track whether brain oxygenation is going up or down.
We use two different colors of infrared light because oxygenated hemoglobin (HbO2) and deoxygenated hemoglobin (Hb) absorb light differently at each wavelength:
- 730nm (Far-Red): More sensitive to deoxygenated blood (Hb)
- 850nm (Infrared): More sensitive to oxygenated blood (HbO2)
By measuring both, we can track the balance between oxygen delivery and oxygen consumption in brain tissue.
This device measures relative changes from a baseline, not absolute values. It tells you whether oxygenation is increasing or decreasing compared to when you started measuring. For POTS demonstration:
- When a healthy person stands up, oxygenation may drop 1-3% and quickly recover
- When a POTS patient stands up, oxygenation may drop 5-15% and stay low
- This difference is large enough to clearly see on a real-time graph
+------------------+
| ARDUINO |
| Nano 33 IoT |
| | +------------------+ +------------------+
| D2,D3: LED Ctrl |---->| LED DRIVER |---->| 730nm LED |---+
| | | (TIP31C x2) | | 850nm LED |---|-+
| A4,A5: I2C |<----| | +------------------+ | |
| | +------------------+ | | |
| Serial Output | v | |
+------------------+ Light through | |
| forehead tissue | |
v | | |
+------------------+ | | |
| | +------------------+ | | |
| TO COMPUTER | | PHOTODIODE |<------------+ | |
| | | (BPW34) |<---------------------------+ |
+------------------+ +------------------+ |
| |
| Tiny electrical current (nano-amps) |
v |
+------------------+ |
| AMPLIFIER | |
| (MCP6022) | |
| 2-stage TIA | |
+------------------+ |
| |
| Voltage signal (0-3V) |
v |
+------------------+ |
| ADC | |
| (ADS1115) | |
| 16-bit, 64 SPS | |
+------------------+ |
================================================================================
COMPLETE WIRING DIAGRAM
================================================================================
USB Battery Pack (>=1A, always-on capable)
|
Arduino USB port (Nano 33 IoT)
|
Arduino 5V pin ----> [FUSE 500mA] ----+--> [68R] --> 730nm LED (wire-pigtail, anode->cathode) --> TIP31C Q1 collector
| | TIP31C Q1 emitter --> LED_GND_RETURN --> STAR_GND
| | D2 --> [470R] --> Q1 base
| |
| +--> [68R] --> 850nm LED (wire-pigtail, anode->cathode) --> TIP31C Q2 collector
| TIP31C Q2 emitter --> LED_GND_RETURN --> STAR_GND
| D3 --> [470R] --> Q2 base
|
+--> [150R] --> Green LED --> STAR_GND (power-on indicator, ~20mA hold load)
Arduino Nano 33 IoT (3.3V logic)
3.3V ----------------------------------------------+-------------------+
GND ---------------------------------------------------------------> STAR_GND
A4 (SDA) -------------------------------------------> ADS1115 SDA
A5 (SCL) -------------------------------------------> ADS1115 SCL
ADS1115 ADC
VDD <-----------------------------------------------+ (3.3V)
GND <---------------------------------------------------------------- STAR_GND (star node location)
ADDR ------------------------------------------------> STAR_GND (0x48)
A0 <----------------------------------------------- MCP6022 OUT2 (Pin 7)
Photodiode + Analog Front End (MCP6022)
BPW34 cathode --------------------------------------> MCP6022 IN1- (Pin 2)
BPW34 anode ----------------------------------------> STAR_GND
Stage 1 TIA:
Rf = 100k between OUT1 (Pin 1) and IN1- (Pin 2)
Cf = 10pF in parallel with Rf
IN1+ (Pin 3) -> STAR_GND
V+ (Pin 8) -> 3.3V
V- (Pin 4) -> STAR_GND
Stage 2 Gain (same MCP6022):
IN2+ (Pin 5) <- Stage1 OUT (Pin 1)
IN2- (Pin 6) <- node between Rg=1k to GND and Rf2=47k to OUT2
OUT2 (Pin 7) -> ADS1115 A0
Decoupling / layout notes:
- 0.1uF local decoupling at MCP6022 and ADS1115 power pins
- 100uF bulk cap at Arduino 5V entry node (same node as indicator LED and LED driver fuse)
- 10uF near analog 3.3V rail
- BPW34 lead to op-amp kept short (<5cm), shielded
- Star ground mandatory: LED return uses dedicated LED_GND_RETURN trace; analog grounds return directly to STAR_GND
================================================================================
Diagram note: Both emitters are shown as direct LED nodes. In DCN-001 builds, both the 730nm JE2835AFR and 850nm SFH4253B are wire-pigtail mounted (no carrier boards).
- DO NOT connect ADS1115 VDD to 5V - use 3.3V only (Arduino Nano 33 IoT is 3.3V logic)
- LED power rail comes from Arduino 5V pin through a 500mA fuse.
- Star ground is mandatory: all grounds meet only at STAR_GND near ADS1115 GND.
- LED return current must use a dedicated return trace to STAR_GND (never share analog return path).
- Photodiode to op-amp wire must be SHORT (< 5cm) and preferably shielded.
- Place 0.1uF decoupling capacitors near MCP6022 and ADS1115 power pins.
- Add bulk rail capacitors: 100uF at Arduino 5V entry and 10uF near analog 3.3V rail.
- Add power-on indicator: Arduino 5V -> 150 Ohm -> Green LED -> STAR_GND.
- The 10pF capacitor across 100k feedback is CRITICAL for stability.
RESISTOR VALUES:
- LED current limit (730nm): 68 Ohm, 0.5W
- LED current limit (850nm): 68 Ohm, 0.5W
- Base resistor: 470 Ohm (both transistors)
- TIA feedback: 100k Ohm, metal film 1%
- Stage 2 feedback: 47k Ohm
- Stage 2 ground: 1k Ohm
CAPACITOR VALUES:
- TIA stability: 10pF ceramic (NPO/COG type preferred)
- Power decoupling (local HF): 0.1uF ceramic (x2)
- Bulk decoupling (5V rail entry): 47-100uF electrolytic (x1)
- Bulk decoupling (analog 3.3V rail): 10uF electrolytic or ceramic (x1)
| Parameter | Specification | Notes |
|---|---|---|
| Measurement Type | Relative Trend | Changes from baseline, not absolute |
| Precision (Relative) | Target +/- 2% @ 95% conf | Requires bench closure per V&V Test 4.6 |
| Channels | 1 (Deep Tissue) | 30mm source-detector separation |
| Wavelengths | 730nm & 850nm | Industry-standard NIRS wavelengths |
| Sample Rate | ADS1115 64 SPS state rate | Conversion-only 4-state TDM gives 16 Hz raw/channel; design-target effective rate is ~15 Hz with required 1ms/state settling delay (bench timing closure required) |
| Safety | Time-avg emitted power < 10mW per channel | Bench-measured under final TDM timing and drive settings |
| Stage | Function | Key Components |
|---|---|---|
| 1. Emitter | High-power NIR LED drive | TIP31C, 68 Ohm (730nm) + 68 Ohm (850nm), Cree JE2835AFR / ams OSRAM |
| 2. Detector | Photocurrent amplification | BPW34, MCP6022 (2-stage TIA) |
| 3. Digital | High-resolution sampling | ADS1115 @ 64 SPS |
| 4. Processing | Signal filtering & output | Arduino Nano 33 IoT |
| 5. Optical Probe | Tissue interface | EVA foam, headband mount |
| Component | Part Number | Specifications |
|---|---|---|
| 730nm LED | Cree JE2835AFR-N-0001A0000-N0000001 | Bare SMD 2835 package, ~121 deg beam |
| 850nm LED | ams OSRAM SFH4253B | 850nm centroid (860nm peak), SMT PLCC-2, 120 deg beam |
| Alt 850nm | Epitex L850-05AU | Legacy option if SFH4253B unavailable |
Each LED is controlled by a TIP31C NPN transistor acting as a switch. The Arduino GPIO (3.3V logic) drives the transistor base through a 470 Ohm resistor (approximately 5.5mA base current), improving saturation margin without over-driving the MCU pin. LED current limits are intentionally asymmetric for robustness:
- 730nm channel uses 68 Ohm (~40mA nominal)
- 850nm channel uses 68 Ohm (~47mA nominal)
This keeps both channels in the target electrical range while adding optical-safety margin in the 850nm path.
- Stage 1 (TIA): 100k Ohm feedback resistor with 10pF stability capacitor. Converts photodiode current (nano-amps) to voltage. MCP6022 op-amp chosen for low input bias current and rail-to-rail output.
- Stage 2 (Gain): Non-inverting amplifier with 47k/1k = 48x voltage gain.
- Total Transimpedance: 100k x 48 = 4.8M Ohm equivalent.
| Parameter | Setting | Rationale |
|---|---|---|
| PGA Range | +/- 2.048V | Matches signal range |
| Sample Rate | 64 SPS | Lower noise than higher rates |
| Mode | Continuous | Smooth data stream |
⚠️ Warning: Connect ADS1115 VDD to 3.3V only (NOT 5V). Arduino Nano 33 IoT uses 3.3V logic levels.
| Component | Qty | Part Number | Cost |
|---|---|---|---|
| Arduino Nano 33 IoT | 1 | ABX00027 | $20-25 |
| ADS1115 ADC Module | 1 | Adafruit 1085 | $10-15 |
| MCP6022-I/P Op-Amp | 1 | DIP-8 | $1.50-2 |
| BPW34 Photodiode | 1 | Vishay | $2-4 |
| LED 730nm | 1 | JE2835AFR-N-0001A0000-N0000001 | ~$0.32-2 |
| LED 850nm | 1 | ams OSRAM SFH4253B | $1-4 |
| TIP31C Transistor | 2 | TO-220 | $1-2 |
| Power-On Indicator LED (Green) | 1 | 5mm through-hole | ~$0.10 |
| Power-On Indicator Resistor | 1 | 150 Ohm, 1/4W | ~$0.05 |
| Elastic Headband | 1 | 2cm wide | $3-5 |
| Black EVA Foam | 1 | 2x4x2cm | $3-5 |
| USB Battery Pack >=1A, always-on capable | 1 | Student-provided | Excluded from BOM cost |
| USB Cable for Nano 33 IoT | 1 | Student-provided | Excluded from BOM cost |
| Electrolytic Capacitor 100uF | 1 | 10V min | $0.20-0.50 |
| Capacitor 10uF | 1 | 6.3V min | $0.10-0.30 |
| Misc (resistors, caps, wire) | set | - | $5-10 |
Estimated Total (costed items only): $50-85 USD (student-provided USB power pack + USB cable excluded)
Note: BOM.csv is a procurement-focused list and assumes the following common lab/prototyping items are already available: USB battery pack (>=1A, always-on capable), USB data cable for Nano 33 IoT, breadboard/perfboard + hookup wire, and opaque electrical tape.
To achieve +/-2% precision for POTS demonstration:
- Exponential Moving Average (EMA) filter with alpha = 0.025 and explicit convention N_eff = 1/alpha = 40
- 30-second automatic baseline detection
- Percent change calculation from baseline
- 4-state TDM sequence (AmbientA -> Red -> AmbientB -> IR) for ambient rejection and optical-duty control
- 10 Hz output rate for Serial Plotter visualization (decoupled from TDM cycle timing)
- Enforce 1ms settling delay after each LED GPIO state change before ADC sample acquisition
Conversion-limited minimum for one full TDM cycle is 62.5ms at ADS1115 64 SPS. With required 1ms settling delay per state, design-target cycle minimum is 66.5ms:
- All LEDs OFF -> wait 1ms settling -> Read ADC -> Store as AmbientA
- Red LED ON -> wait 1ms settling -> Read ADC -> Subtract AmbientA -> Store as Red signal
- All LEDs OFF -> wait 1ms settling -> Read ADC -> Store as AmbientB
- IR LED ON -> wait 1ms settling -> Read ADC -> Subtract AmbientB -> Store as IR signal
- Apply EMA filter to both channels
- Calculate percent change from baseline
- Output to Serial every 100ms (10 Hz display rate)
Notes:
- 62.5ms is the conversion-only lower bound (4 conversions x 15.625ms).
- With 1ms settling delay per state, expected firmware lower bound is 66.5ms.
- Per-channel effective update rate with required settling delay is approximately 15.0 Hz (1 / 0.0665s).
- Actual runtime cycle remains bench-closure dependent and is measured in V&V Test 3.7.
// EMA Filter (alpha=0.025, convention N_eff = 1/alpha = 40)
const float ALPHA = 0.025;
emaRed = ALPHA * redSample + (1 - ALPHA) * emaRed;
emaIR = ALPHA * irSample + (1 - ALPHA) * emaIR;
// Percent Change from Baseline
float pctChangeRed = ((emaRed - baselineRed) / baselineRed) * 100.0;
float pctChangeIR = ((emaIR - baselineIR) / baselineIR) * 100.0;The optical probe is the most critical component of the system. Proper mechanical and optical isolation is required to prevent light from leaking directly from the LEDs to the photodiode.
- Black EVA foam block (approx. 2cm x 4cm x 2cm)
- Bare 730nm SMD LED (Cree JE2835AFR-N-0001A0000-N0000001)
- Bare 850nm SMD LED (ams OSRAM SFH4253B)
- BPW34 Photodiode
- Black rubber washers (1/8" / 3mm Inner Diameter) x 2-3
- Superglue and opaque adhesive (or opaque electrical tape)
- Shielded wire (< 5cm length)
- Elastic headband
-
LED Lead Preparation (wire-pigtail)
- Pre-tin two 30 AWG stranded wires (8-10cm, ~2mm stripped) for each LED channel.
- Flux and tin the LED pads, then solder one wire to anode and one wire to cathode for both 730nm and 850nm LEDs.
- Add short heat-shrink at each joint for strain relief and label polarity before mounting.
-
Prepare the Foam Base
- Cut the black EVA foam block to
2cm (height) x 4cm (length) x 2cm (width). - Punch a
7mmhole cleanly through one side for the BPW34 photodiode. - Measure exactly
30mm(center-to-center) from the photodiode hole. - Carve two small, adjacent LED pockets at the 30mm mark sized to the bare LED bodies and pigtail routing path.
- Cut the black EVA foam block to
-
Prepare the 730nm Baffle
- The 730nm LED beam must be restricted with a washer stack to improve optical isolation.
- Apply superglue to a stack of 2-3 black rubber washers (1/8" / 3mm Inner Diameter) and affix them directly over the dome of the 730nm SMD LED.
- Purpose: This acts as an essential optical baffle to guide the light forward into the tissue. The 850nm LED does not require this modification.
-
Mount the Emitters
- Insert the 730nm and 850nm pigtailed LEDs into their respective custom pockets.
- Ensure the emitting surfaces (top of washers / top of 850nm LED dome) are perfectly flush with the foam surface that will touch the skin.
- Secure with opaque adhesive and route pigtail leads out the rear. Keep polarity labels visible to avoid channel crossing.
-
Mount the Detector
- Insert the BPW34 photodiode into the 7mm hole.
- The convex lens must face outward toward the tissue. (The flat side is the cathode and faces the back).
- Solder the short, shielded wire to the photodiode leads. Keep this connection under 5cm to minimize electrical noise.
-
Optical Isolation (CRITICAL STEP)
- Wrap additional black foam or opaque electrical tape around the back and sides of the LED and photodiode housings.
- Ensure the rubber washer stack on the 730nm LED is perfectly seated with no gaps around its base.
⚠️ CRITICAL WARNING: Light MUST NOT pass directly from the LEDs to the photodiode through the foam body or across the surface gap. Direct LED-to-photodiode light paths will completely overwhelm the faint tissue signal. This is the #1 failure point in construction. Take extra time to ensure perfect light blocking. -
Headband Integration
- Attach the completed foam block to the center of the elastic headband.
- Add soft padding (like medical gauze or soft fabric) around the hard edges of the foam/probe body for patient comfort.
-
Verify Assembly (Dark Test)
- Point the probe into a dark space (or cover it completely with thick, opaque material).
- Power the circuit. The signal reading should be near zero.
- Any significant reading indicates a light leak that must be patched before proceeding.
Power Rails:
- 5V rail (from Arduino 5V pin, fed by USB battery pack): Powers the LED driver circuit (TIP31C collectors) and power-on indicator.
- 3.3V rail (from Arduino 3.3V pin): Powers the Op-amp (MCP6022 V+) and ADC (ADS1115 VDD).
- Star ground: Use one star node near ADS1115 GND. Arduino GND, ADS1115 GND, MCP6022 grounds, and dedicated LED return trace all terminate only at this node.
Wire Guidelines & Decoupling:
- Photodiode to op-amp: Keep this wire as short as possible (max 5cm) and use shielded cable to prevent picking up 60Hz mains noise.
- Keep analog signal lines (photodiode, op-amp output) physically separated from digital lines (I2C, LED PWM).
- Local Decoupling: Add 0.1uF ceramic capacitors directly at the power pins of the MCP6022 and ADS1115, connecting to ground.
- Bulk Decoupling: Add a 100uF electrolytic capacitor at the Arduino 5V entry node (same node as the fuse and indicator LED), and a 10uF capacitor near the analog 3.3V rail. Pay attention to capacitor polarity.
- Power-On Indicator: Add
150 Ohm + green LEDfrom Arduino 5V to star ground at the 5V entry node to provide visible power status and prevent battery auto-shutoff.
First Power-On Safety (Important):
- For initial hardware bring-up, use a current-limited bench power supply instead of a USB battery pack.
- Start with a low current limit (for example, 30-50mA) to safely detect shorts or major wiring faults.
- A USB battery pack can source high fault current into a wiring error and may damage the Arduino or analog ICs.
- After initial safe power-on is confirmed, switch to the USB battery pack for battery-specific validation tests (for example, V&V Test 3.12).
- Test 1 - Dark Reading: Cover probe completely with opaque material. Signal should be near zero (+/- 5%).
- Test 2 - Light Response: Point probe at room light. Signal should increase significantly.
- Test 3 - Finger Test: Place finger over probe. Should see strong signal (blood absorbs light).
- Test 4 - Baseline Stability: Subject supine for 30 sec. Signal should be stable within +/- 3%.
- Apply probe to subject forehead with consistent pressure.
- Subject lies supine for 2 minutes (stabilization).
- Wait for 'Baseline established' message.
- Verify signal stability over 30 seconds before starting test.
- Cerebral oximeter device (assembled and calibrated)
- Examination table or tilt table
- Pulse oximeter for simultaneous HR monitoring
- Computer with Arduino Serial Plotter
- Chair for subject safety during recovery
- Explain procedure and obtain informed consent.
- Subject avoids caffeine, large meals, exercise for 2 hours prior.
- Clean forehead with alcohol swab (remove oils for better contact).
- Apply headband with probe over left forehead (avoid hairline).
- Adjust for snug but comfortable fit.
| Phase | Duration | Activity | Expected Response |
|---|---|---|---|
| 1. Rest | 2 min | Subject supine | Signal stabilizes |
| 2. Baseline | 3 min | Continue supine | Stable SctO2, HR 60-80 |
| 3. Transition | 15 sec | Stand quickly | Brief dip, partial recovery |
| 4. Standing | 5-10 min | Stand still | See interpretation table |
| 5. Recovery | 3 min | Return supine | SctO2 returns to baseline |
| Parameter | Healthy Control | POTS Patient | Vasovagal |
|---|---|---|---|
| HR Change | +10-20 bpm | +30-50+ bpm | +20-40 bpm |
| Peak HR | <100 bpm | >120 bpm | Variable |
| SctO2 Change | -1 to -3% | -5 to -15% | -10 to -20% |
| Pattern | Quick adaptation | Sustained drop | Progressive decline |
| Recovery | <30 sec | 1-3 min | Variable |
Normal Response: Heart rate increases 10-20 bpm to compensate for gravity. Blood vessels in legs constrict to push blood upward. Cerebral oxygenation drops only 1-3% - the brain remains well-oxygenated. Body quickly adapts and maintains stable perfusion.
POTS Response: Excessive heart rate increase (30+ bpm) indicates inadequate vasoconstriction. Blood pools in lower extremities despite rapid heart rate. Cerebral oxygenation drops 5-15% - the brain is becoming hypoperfused. Patient experiences lightheadedness and palpitations. Recovery is slower because the autonomic system struggles to re-adapt.
Stop the test immediately if:
- Subject feels faint or vision blurs
- Subject appears pale, sweaty, or confused
- SctO2 drops more than 20% from baseline
- Heart rate exceeds 150 bpm
- Subject requests to stop
Recovery procedure: Help subject lie down immediately, elevate legs if possible, monitor until symptoms resolve.
IMPORTANT: This is for educational demonstration only. It is NOT a diagnostic test for POTS. Clinical POTS diagnosis requires comprehensive autonomic testing by qualified medical professionals.
| Signal Change | Physiological Meaning | Clinical Significance |
|---|---|---|
| 0 to -2% | Normal adaptation | Healthy response |
| -2 to -5% | Mild hypoperfusion | May be normal or mild OI |
| -5 to -10% | Moderate hypoperfusion | Suggests orthostatic intolerance |
| -10 to -15% | Significant hypoperfusion | Consistent with POTS/VVS |
| >-15% | Severe hypoperfusion | High syncope risk |
Teaching Points: This demonstration teaches autonomic physiology, baroreceptor reflex, cerebral autoregulation, POTS pathophysiology, NIRS technology, and signal processing principles.
| Category | Assumption | Rationale |
|---|---|---|
| Physiological | NIR penetrates skull to cortex | Optical window 650-950nm |
| Physiological | POTS causes 5-15% SctO2 drop | Clinical studies confirm |
| Technical | EMA convention fixed to N_eff = 1/alpha = 40 | Ensures consistent filter interpretation across docs/tests |
| Technical | Two-stage TIA optimal | Better noise performance |
| Safety | Criterion basis is explicit and bench-verifiable | Time-avg emitted power per channel < 10mW in final TDM mode |
- Device: Relative measurements only, single-channel, forehead only, subject variability.
- Confounding: Extracranial contamination, motion artifact, ambient light, probe contact variations.
- Safety: Not FDA evaluated, not for clinical diagnosis, educational use only.
- Novak P. 'Cerebral Blood Flow in Orthostatic Intolerance.' JAHA. 2025.
- Novak V et al. 'Cerebral oximetry in POTS patients.' Clin Auton Res. 2019.
- Schie H et al. 'Cerebral oxygenation responses to postural changes.' Eur J Appl Physiol. 2019.
- ISO 9919:2005. 'Pulse oximeter equipment.'
- IEC 60825-1:2014. 'Safety of laser products.'
- TI SBOA055. 'Compensate Transimpedance Amplifiers.'
- Vishay BPW34 Datasheet.