My First Pass at Using AI to Check a Specification
Welcome to the second article in a series on the use of AI (Artificial Intelligence) in PCB-level design and hardware product development. In this article, I’ll talk about my experience with using two AI tools to help develop a simple Analog device, a transimpedance amplifier front-end for a basic Microcontroller card such as an Arduino or Raspberry Pi. This involved using AI to improve the quality and readability of the specification already written for this device. To start, I used one of the specs already written, using a stock template I have used for years.
To begin with the evaluation, I decided to use two basic AI tools: Gemini from Google and Claude from Anthropic, using the free version of each.
I am making the results of each phase in the study and the conversations available on my website, first with Gemini, then with Claude.
To begin with, others warned me that the free versions of these were essentially useless. On the contrary, I found both of these quite useful. What I did find was that after using either application for part of a day, they stop functioning and prompt for payment to continue with further analysis. So, both are free for a while, to give a taste of what they offer, but for in-depth use, they request payment. This spec was so simple and straightforward that I got a lot out of the initial trial runs.
Results
So, the general results were:
- For simple things, it appears that one gets good answers using the full model in both cases. Then, one must pay to use them further.
- I had a problem understanding what Gemini said about inconsistencies in the spec since the help was unclear itself.
I also spent considerable time working with the app to refine the test requirements and address inconsistencies with the main spec.
I tuned the spec with Gemini for as long as it made sense to me. The results of this conversation can be reviewed at www.zzz.com.
- After this, I spent much more time with Claude. I found this app to be much more conversational. It also did a much better job of clarifying the inconsistencies. It gave me a lot to think about and led to a massive set of changes across a few Sections of the spec.
In the process, I had to change the Board Block Diagram to conform more to the intended design.
- After this, I tackled the recommended Test Specification inconsistencies. These led me to make more changes. Finally, I changed the document title to match the request and make it an engineering review spec.
The resulting spec is the final version. I have posted the initial spec version and the final edited one with AI assistance. It can be found along with supporting documents at the links below:
Check out Original Specification
Check out Final Edited Specification
Jump to Results of the Run on Anthropic Free
Results of the Run on Gemini Free
This is a solid foundational specification document. It follows a clear, professional structure, and the logic regarding your target audience (users of microcontrollers like Arduino/Raspberry Pi) is well-justified.
To help you refine this into a production-ready document, I have performed a technical review and identified areas where you can improve clarity, consistency, and completeness.
Technical Review & Suggestions
1. Terminology & Logic
- “Transimpedance” definition: In Section 4, ensure you distinguish clearly between the front-end (the TIA stage that converts current to voltage) and the total system gain. Users might confuse the input transimpedance gain (V/A) with the subsequent voltage gain (V/V).
- Gain Range Discrepancy: In Section 5, you mention a “40 nA full-scale base conversion,” but Section 6f lists “0 to 10 nA.” Ensure these ranges align mathematically. If the base TIA is 40 nA, ensure your gain stages can actually resolve down to the 1 nA range mentioned in the use case.
- “Bits” terminology: You mention adding “2 bits of dynamic range” via gain steps. Be careful with this phrasing—while you are indeed improving the effective resolution by utilizing more of the ADC’s input range, you aren’t changing the inherent bits of the ADC itself. Using the term “Effective Number of Bits (ENOB)” or “Improved ADC Utilization” is more technically precise.
2. Completeness Check
- Supply Rails: You specified $\pm 9\text{V}$ to $\pm 24\text{V}$. Ensure you define the Power Supply Rejection Ratio (PSRR) expectations or provide a recommended voltage (e.g., $\pm 15\text{V}$ is common for low noise).
- Input Protection: Since this is for general-purpose use, will there be clamping diodes at the input to protect the op-amp from large transients (e.g., accidental high-current injection)? This should be noted in Section 6.
- Bias Current: For picoamp-class measurements, the Input Bias Current ($I_b$) of the chosen op-amp is critical. If $I_b$ is higher than your minimum signal (1 nA), your accuracy will be compromised. I recommend adding “Maximum Input Bias Current” as a parameter in Section 6.
Understanding the Signal Chain
Since you are designing a high-precision front-end, it is helpful to visualize how the current from your sensor flows through these stages to reach your ADC.
Suggested Refinements for your Draft
| Section | Suggested Improvement |
|---|---|
| Section 5 | Add a Signal-to-Noise Ratio (SNR) requirement. Since you target 12-bit ADCs, your TIA noise floor must be significantly lower than the LSB of that ADC. |
| Section 6 (e) | Clarify that “Zero Adjust” is essentially Offset Nulling to compensate for the op-amp’s offset voltage and leakage currents. |
| Section 6 (k) | Phase Margin/Stability: When switching high-gain resistors, you may run into stability issues (ringing). Consider adding a “Capacitive Load Stability” or “Phase Margin” spec if you expect long cables at the input. |
| Section 7 | Since you are using jumpers, define the default jumper configuration (e.g., “Shipped with 100 nA range and X1 gain”). |
Next Steps
- Refine the TBDs: Section 8, 9, 10, and 11 have several “TBDs.” Prioritizing the “Operating Environment” (Shock/Vibration) and “Functional Testing” is essential before you move to prototype assembly.
- Define your Op-Amp: Have you selected the primary Transimpedance Op-Amp? Its datasheet will dictate almost all the “TBD” values in your Section 6 (like Bandwidth, Bias Current, and Offset).
Would you like me to draft a more detailed “Functional Test Specification” (Section 10) for you, or would you prefer to dive deeper into the component selection criteria to help finalize those TBD parameters?
detailed functional spec for Section 10
To ensure your module meets the performance targets outlined in your specification, Section 10 must bridge the gap between abstract requirements and concrete, repeatable measurements.
Below is a proposed structure for Section 10.0: Functional and Verification Testing. This section assumes you will be testing for accuracy, linearity, and stability across your gain ranges.
Section 10.0 Functional and Verification Testing
The objective of this testing is to verify that the TIA module meets all performance parameters under controlled conditions. All tests shall be performed using a calibrated precision current source and a 6½-digit digital multimeter (DMM) as the primary measurement reference.
10.1 Test Setup Configuration
- Environmental Control: Testing must be performed in an ambient temperature of $25^\circ\text{C} \pm 2^\circ\text{C}$.
- Calibration Standards: All test equipment must be within its current calibration cycle.
- Power Supply: Use a clean, low-noise dual-tracking laboratory power supply set to $\pm 15\text{V}$ (unless otherwise specified by the DUT configuration).
10.2 Functional Test Procedures
| Test ID | Parameter | Procedure | Success Criteria |
|---|---|---|---|
| FT-01 | Offset/Zero | Set input to open circuit. Adjust onboard potentiometers for $0\text{V}$ output. | Output $\leq \pm 0.5\text{mV}$ |
| FT-02 | Gain Accuracy | Inject $10\text{nA}$, $100\text{nA}$, and $1\mu\text{A}$ using a precision current source. | Within $\pm 0.1\%$ of expected FS |
| FT-03 | Linearity | Measure output at $10\%$, $50\%$, and $100\%$ of FS for each gain range. | Integral Non-Linearity (INL) $\leq 0.05\%$ |
| FT-04 | Bandwidth | Use a modulated current source (sine wave) and oscilloscope to find the $-3\text{dB}$ point. | $\geq 10\text{kHz}$ at all gains |
| FT-05 | Noise Floor | Measure peak-to-peak output voltage with the input terminated (shorted). | $\leq 3\text{mV}_{p-p}$ at max gain |
| FT-06 | Transient Response | Apply a square-wave current pulse; measure $10\%–90\%$ rise time. | $\leq 100\mu\text{s}$ |
10.3 Verification Summary
A “Verification Report” must be generated for each unit produced, documenting the following:
- Serial Number of the unit.
- Pass/Fail status for each Test ID (FT-01 through FT-06).
- Actual measured values for Offset and Gain Error.
- Date of testing and identity of the test technician.
Understanding the Signal Path
To aid in your testing setup, it is helpful to visualize the typical signal path you are verifying, from the current source through the multi-stage amplification to your measurement device.
Would you like to refine the “Success Criteria” for these tests, or perhaps discuss the specific test equipment (such as a Keithley Sourcemeter) that would be best suited for verifying picoamp-level currents?
====
That is a reasonable adjustment. Relaxing the accuracy requirement to 0.5% for the Offset (Zero) and Gain Accuracy tests significantly reduces the calibration overhead and allows for a wider range of high-precision (but not ultra-precision) components, which is often more appropriate for a general-purpose TIA module.
Here is the updated Section 10.0 incorporating your feedback.
Section 10.0 Functional and Verification Testing
The objective of this testing is to verify that the TIA module meets performance parameters under controlled conditions. All tests shall be performed using a calibrated precision current source and a 6½-digit digital multimeter (DMM) as the primary measurement reference.
10.1 Test Setup Configuration
- Environmental Control: Testing must be performed in an ambient temperature of $25^\circ\text{C} \pm 2^\circ\text{C}$.
- Calibration Standards: All test equipment must be within its current calibration cycle.
- Power Supply: Use a clean, low-noise dual-tracking laboratory power supply set to $\pm 15\text{V}$ (or nominal operating voltage).
10.2 Functional Test Procedures
| Test ID | Parameter | Procedure | Success Criteria |
|---|---|---|---|
| FT-01 | Offset/Zero | Set input to open circuit. Adjust onboard potentiometers for $0\text{V}$ output. | Output $\leq \pm 2.5\text{mV}$ ($\approx 0.5\%$ of 5V FS) |
| FT-02 | Gain Accuracy | Inject $10\text{nA}$, $100\text{nA}$, and $1\mu\text{A}$ using a precision current source. | Within $\pm 0.5\%$ of expected FS |
| FT-03 | Linearity | Measure output at $10\%$, $50\%$, and $100\%$ of FS for each gain range. | Integral Non-Linearity (INL) $\leq 0.1\%$ |
| FT-04 | Bandwidth | Use a modulated current source (sine wave) and oscilloscope to find the $-3\text{dB}$ point. | $\geq 10\text{kHz}$ at all gains |
| FT-05 | Noise Floor | Measure peak-to-peak output voltage with the input terminated (shorted). | $\leq 3\text{mV}_{p-p}$ at max gain |
| FT-06 | Transient Response | Apply a square-wave current pulse; measure $10\%–90\%$ rise time. | $\leq 100\mu\text{s}$ |
Understanding the Signal Chain
To help visualize the system, this diagram outlines the signal path from your sensor interface through the selectable gain stages to the final ADC output, which is the path you are validating with these tests.
Would you like to refine the “Success Criteria” for the noise floor (FT-05), or are you ready to proceed with defining the “Compliance Testing” (Section 11.0) requirements, such as FCC or IEC standards?
Define the noise floor
The noise floor is the measure of the total unwanted electronic signals—or “background noise”—present in a measurement system when no input signal is being applied. In the context of your Transimpedance Amplifier (TIA), it represents the absolute limit of your device’s sensitivity.
If a signal is smaller than the noise floor, it becomes indistinguishable from the random electrical fluctuations, making it impossible to measure accurately.
Why the Noise Floor Matters
Sensitivity Limit: Your TIA cannot accurately measure current smaller than its noise floor. If your noise floor is 3mVp-p? and your signal creates an output of 1mV, that signal is effectively "lost" in the background noise.
Resolution: In your 12-bit system, the noise floor defines the effective resolution. If the noise floor spans multiple Least Significant Bits (LSBs) of your ADC, you are limited by noise rather than your ADC's bit-depth.
Signal-to-Noise Ratio (SNR): The noise floor determines the upper limit of your dynamic range. A lower noise floor allows you to measure finer details in your input current.
Sources of Noise in a TIA
Understanding where this noise comes from helps in optimizing your design:
Thermal (Johnson) Noise: Generated by your feedback resistors. Higher gain resistors generally produce more thermal noise.
Op-Amp Noise: The internal voltage and current noise inherent to the operational amplifier itself.
External Interference: Electromagnetic interference (EMI) or radio frequency interference (RFI) picked up by input cables or PCB traces (acting like antennas).
Tips for Minimizing the Noise Floor
Shielding: Use a Faraday cage or shielded enclosures to block external EMI from reaching the sensitive input stage.
Component Selection: Choose an op-amp with low input voltage and current noise specifications.
Layout: Keep input traces as short as possible to reduce capacitance and noise pickup.
Filtering: Use low-pass filtering to cut off high-frequency noise that is outside your measurement bandwidth (e.g., your 10kHz target).
Would you like me to provide a guide on how to calculate the theoretical noise contribution of your feedback resistors to see if they meet your 3mVp-p? target?
Results of the Run on Anthropic Claude Run – Free version
Claude finished the response
Improve the following Transimpedance Specification:
2:58 PM
To give you the most useful feedback, I need to see the actual specification you’re talking about — it looks like the text didn’t come through with your message.
Could you paste in the transimpedance amplifier (TIA) spec? If you share details like these, I can give targeted suggestions:
Target parameters: bandwidth, transimpedance gain, input capacitance, noise requirements
Photodiode characteristics: capacitance, dark current, responsivity
Application context: optical communications, sensing, LIDAR, etc.
Current spec format: is this a datasheet-style spec, a design requirements doc, or something else?
Once I can see what you’ve got, I can help tighten up the numbers, flag inconsistencies, suggest missing parameters, or improve the clarity and structure.
Analyze this spec for improvements
3:00 PM
Let me check this carefully — there’s a fair amount to work through, including some internal inconsistencies that need flagging before anything else.
Critical Errors to Fix First
- Date inconsistencies (Revision History) “6/17/2028” should presumably be 2026 (matches the cover page date, and 2028 hasn’t happened yet)
Cover page says Revision 0.2, but revision history only shows two entries with no version numbers attached — tie these together explicitly - Gain numbers don’t add up (Section 5.0 / 6.0)
This is the biggest substantive problem in the document. You have two different, conflicting descriptions of the gain scheme: Section 5.0 says: “gain selections of 1×, 10×, or 100×, with a 40 nA full-scale base conversion… This creates a full-scale range of 10, 20, or 40 nA”
Section 6.0(f) says: “Large Gain Range… 0 to 10 nA, 100 nA, 1 µA”
Section 6.0(b) says input range is “1 nA to 10 µA”
Section 7.0(a) repeats “0 to 10 nA, 100 nA, or 1 µA”
These can’t all be true simultaneously:
Is the base full-scale 10 nA, 40 nA, or 1 µA?
Is the coarse gain 1×/10×/100× or is it three fixed full-scale points (10 nA / 100 nA / 1 µA)? Those are different architectures (a multiplying gain stage vs. three independent ranges).
The X1/X2/X4 fine-step multiplier — applied to which base? 10 nA × 4 = 40 nA, but 1 µA × 4 = 4 µA, which exceeds the stated 10 µA max input range only if you're on the 1 µA range already near top of scale.
You need one self-consistent gain table. Something like:
Coarse Range Base Full Scale Fine Step Resulting Full Scale
1× 10 nA X1/X2/X4 10/20/40 nA
10× 100 nA X1/X2/X4 100/200/400 nA
100× 1 µA X1/X2/X4 1/2/4 µA
If that’s the intent, say so explicitly and make every section reference the same table. Right now a reader can’t build the circuit from this spec without guessing.
- “2 bits of dynamic range” claim is asserted, not derived
X1/X2/X4 is a factor of 4, which is genuinely 2 bits — that part is internally correct — but the explanation in 6.0(g) (“if the output signal is not greater than ½ scale… one bit of resolution is lost”) is explaining headroom loss, not deriving the 2-bit gain expansion. The logic connecting the example to the conclusion is missing a step. Worth rewriting as: “X2 and X4 settings recover the 1–2 ADC bits that would otherwise be lost when the input signal undershoots a fixed full-scale range.” - Output voltage value mismatch Section 5.0 / 6.0(c): output full scale is “3.3 or 5.0 volts”
Section 7.0(c): “Max. Output Voltage Selection – +3.5 or +5 volts”
3.3 vs. 3.5 — pick one and use it everywhere. Given the stated Arduino/Raspberry Pi/MCU ADC use case, 3.3 V is almost certainly correct and 3.5 is the typo.
- Zero adjustment range stated twice, differently Section 6.0(e): “+/- 5% of full scale”
Section 7.0(1): “Zero Adjust – TBD +/-% of full scale”
If 6.0(e) is the real number, Section 7.0 should reference it, not re-mark it TBD. Same issue likely applies to Gain Adjust — Section 6.0(h) says ±20%, Section 7.0(2) says TBD.
- Bandwidth vs. step response — check for consistency
A 10 kHz @ -3dB bandwidth implies a ~35 µs rise time (0.35/BW rule of thumb for a single-pole system). Your step response spec calls for <100 µs (10–90%), which is compatible but worth a sentence confirming it’s intentional headroom rather than two independently-guessed numbers.
Structural / Completeness Issues
Too many open TBDs for a Rev 0.2 document with signature lines. Signing off implies the spec is approvable, but as written you have unresolved TBDs in:
Input signal range upper bound ("10 uA (TBD)")
Mechanical characteristics (entire section)
Storage temperature, shock/vibration
Functional test spec
Compliance testing, reliability testing
All five reference documents
Both calibration pot ranges (Zero Adjust, Gain Adjust)
Recommendation: either (a) hold signatures until these are resolved, or (b) explicitly mark this as “Rev 0.2 — Engineering Review Draft, not for signature” so it’s clear what stage of approval this represents.
Temperature spec contradiction between sections 9 and 11
Section 9(a): Operating Temperature 25°C ± 5°C (i.e., 20–30°C operating range — quite narrow for a "general-purpose" lab/embedded module)
Section 11(a): Temperature Testing 25°C ± 10°C (15–35°C)
You’re proposing to test the unit over a wider range than its rated operating range. That’s backwards — qualification testing should cover the full rated range plus margin, not exceed an undersized rated range. Either the operating spec is too narrow (most likely — ±5°C around room temp is unusually tight for bench/embedded test equipment) or the test plan needs to bound itself to the rated range. Worth deciding what real-world environments this targets (lab bench vs. field-deployed embedded prototype) and setting the operating range from that, then making the test range a superset.
Section 6.0(i), temperature stability units are ambiguous
“< 10 µV per degree C” — stability of what, exactly? Output offset drift? Make explicit: “Output zero-offset drift over temperature: < 10 µV/°C, referred to output, at fixed gain setting” (or whichever is intended). As written, a reviewer can’t tell if this is input-referred or output-referred, which matters by orders of magnitude given the pA–µA input currents.
Noise spec needs a bandwidth/range qualifier
6.0(l): “Output Noise Level Peak to Peak – 3 mV at Full Gain” — peak-to-peak noise is meaningless without a stated measurement bandwidth and averaging/crest-factor convention (e.g., “3 mV pk-pk, measured over 0.1–10 kHz, 6s”). Also “Full Gain” is ambiguous now given the gain-table issue above — full gain at which coarse range, which fine step?
Power supply section lacks current/power requirements. You specify voltage rails (+9 to +24 V, -9 to -24 V) but no maximum current draw, which a power-supply-selecting customer will need.
No EMI/ESD or input protection spec. For a board-level module meant to interface “engineers and researchers” connecting arbitrary photodiodes/sensors, consider adding input overvoltage/ESD protection requirements — a floating photodiode lead or static discharge into a pA-sensitive front end is a realistic failure mode worth specifying against.
Missing accuracy/linearity distinction. 6.0(d) gives “Absolute Accuracy … 0.1% of full scale” but doesn’t separate this from linearity error, gain error, and offset error — three different things that are usually specified separately in a TIA datasheet since they trade off differently with calibration.
Minor / Editorial
Section 4.0 mixes "1 nA–1 µA" (use case example) with the Section 6.0 input range of "1 nA to 10 µA" — confirm these are meant to differ (use case vs. full capability) and say so if intentional.
"uA," "Khz," "Sec," "db," "na" — inconsistent capitalization/unit formatting throughout (µA, kHz, dB, sec, nA). A datasheet-style spec should standardize units once and use them consistently.
Section 2.0 "Table of Contents — Not Applicable" is unusual for a 12-section document; even a short ToC would help navigation once this is finalized.
"two alignment potentiometers" (Section 7.0) vs. earlier description — confirm count matches the two pots actually listed (Zero, Gain).
Block Diagram 1 is referenced but not included in the document content I can see — confirm it made it into the actual file.
Suggested Next Step
The single highest-priority fix is the gain/range table in Sections 5 and 6 — everything downstream (noise spec, accuracy spec, ADC bit-extension claim) depends on that table being unambiguous and consistent. I’d nail that down first, then propagate the corrected numbers through Sections 6 and 7.
Want me to draft a corrected, internally consistent version of Sections 5–7 with the gain table spelled out, or would you rather tackle the gain architecture decision first (since I’d be guessing at intent otherwise)?
I will fix the inconsistencies myself.
3:02 PM
Sounds good — that’s the part only you can resolve since it depends on the actual circuit intent.
If it’s helpful once you’ve settled on the real gain table, I’m happy to do a pass on formatting/units consistency, tighten the language in any section, or help draft the missing pieces (test spec, mechanical section, etc.) when you’re ready to fill those in. Just let me know what you need.
Claude Fable 5 is currently unavailable.
Learn more(opens in new tab)
Large Step Gain (input/coarse stage) — ×1/×10/×100 ? sets base full-scale input current: 10 nA / 100 nA / 1 µA
Small Step Gain (fine trim stage) — ×1/×2/×4 ? recovers 1–2 ADC bits when input undershoots the coarse range
Output Large Gain Range Selection (output stage) — its own ×1/×10/×100-style selection (same value set as #1, but physically a different jumper, later in the chain, scaling the already-amplified signal rather than the raw input current)
Output Voltage Range — 3.3 V / 5.0 V final full-scale select, matched to MCU ADC reference
That means the document’s job is to give each of these four a unique, consistent name and state clearly that #1 and #3 — despite sharing the same numeric value set — are physically and functionally distinct, cascaded selections, not duplicate descriptions of the same jumper.
Here’s proposed standardized wording using your chosen convention (Large Step / Small Step / Output Voltage Range, with #3 distinguished as its own named stage):
Section 5.0 (rewrite the Gain Range paragraph):
Gain Range: The signal chain includes four independent, cascaded gain/range selections:
Large Step Gain (input stage) — ×1, ×10, or ×100, setting a base full-scale input current of 10 nA, 100 nA, or 1 µA respectively.
Small Step Gain (fine trim stage, post-Large-Step) — ×1, ×2, or ×4 via jumper, adding 2 bits of resolution to recover ADC headroom otherwise lost when the input signal falls below the top of the selected Large Step range.
Output Gain Range (output stage, independent of Large Step Gain) — ×1, ×10, or ×100 via jumper, applied after the Gain-of-1 Inverting Amplifier to re-scale the signal ahead of the output selection switch.
Output Voltage Range — selectable 3.3 V or 5.0 V full scale, to match standard MCU ADC references (e.g., Arduino, Raspberry Pi).
Stages 1–3 are physically distinct jumper-selected gain elements at different points in the signal chain; Stage 3 shares the same ×1/×10/×100 value set as Stage 1 but operates independently and later in the chain.
Section 6.0 — rename and reorder so each letter maps to exactly one stage:
b. Large Step Gain (Input Stage) — Selectable ×1 / ×10 / ×100 (10 nA / 100 nA / 1 µA full scale)
c. Small Step Gain (Fine Trim Stage) — Selectable ×1 / ×2 / ×4
d. Output Gain Range (Output Stage) — Selectable ×1 / ×10 / ×100, independent of (b)
e. Output Voltage Range — 3.3 V or 5.0 V, selectable
Section 7.0 — same four names, same order, so a reader can map jumper-to-spec-item without guessing:
a. Large Step Gain (Input Stage) Selection — ×1 / ×10 / ×100
b. Small Step Gain (Fine Trim Stage) Selection — ×1 / ×2 / ×4
c. Output Gain Range (Output Stage) Selection — ×1 / ×10 / ×100
d. Output Voltage Range Selection — 3.3 V or 5.0 V
A couple of things this rewrite still leaves open, which you’ll want to settle so the math is checkable downstream:
Combined dynamic range claim — Section 5.0 currently says the small-step gain “adds 2 bits of dynamic range to the standard 12-bit A/D.” With three cascaded gain stages now (not two), is the total system dynamic range claim (input pA-to-µA span vs. 12-bit ADC) still meant to reference only the Small Step stage’s 2-bit contribution, or should the spec also characterize the combined range contributed by Large Step × Output Gain Range together? Worth a sentence stating the total achievable dynamic range across all three stages combined, since that’s the number a customer actually needs to evaluate the product against their sensor.
Output Gain Range interaction with Output Voltage Range — if Output Gain Range can multiply by up to ×100 after the inverting amp, and Output Voltage Range caps the ADC-facing swing at 3.3/5.0 V, the spec should state how clipping/overrange at the output is handled (or that it’s the user’s responsibility to choose a sane combination) — otherwise nothing prevents a user from selecting ×100 output gain into a 3.3 V rail and overdriving it.
Claude Second pass after edit
Want me to fold this rewrite directly into a clean Rev 0.4 of the full document, or do you want to handle the insertion yourself and just use this wording as the reference text???????
I’ll go through this carefully, section by section, checking for internal consistency, technical accuracy, and clarity issues.
Critical Issues
- Gain range arithmetic doesn’t work (Section 5.0)
“The TIA offers gain selections of 1×, 10×, or 100×, with a 40 nA full-scale base conversion… This creates a full-scale range of 10, 20, or 40 nA.”
This is internally contradictory. A 40 nA base with gain steps of 1×, 10×, 100× should give full-scale ranges of roughly 40 nA, 4 nA, 0.4 nA (or 40, 400, 4000 nA depending on direction) — not “10, 20, or 40 nA.” The numbers “10, 20, 40” actually look like they belong to the X1/X2/X4 small-step gain stage instead, which has gotten tangled up with the main range stage. Also note Section 6.0(b) gives yet another set of full-scale numbers (10 nA, 100 nA, 1 µA) for the same X1/X10/X100 selection — so you have three different descriptions of full-scale range (Sec 5.0, Sec 6.0b) that don’t agree with each other.
- Output voltage mismatch between sections
Section 5.0 / 6.0(d): output full scale is “3.3 or 5.0 volts”
Section 7.0(c): “Test for Max. Output Voltage Selection – +3.5 or +5 volts”
3.3 V vs. 3.5 V — likely a typo, but it’s the kind of inconsistency that causes real confusion at calibration/test time. Pick one and use it everywhere.
- Zero/Gain adjustment ranges conflict
Section 6.0(f): Zero Adjustment Range = ±5% of full scale
Section 6.0(g): Gain Adjustment = ±20% of full scale
Section 7.0 (User Controls), items 1–2: both are listed as “TBD”
If the values are already known and stated in Section 6.0, Section 7.0 shouldn’t say TBD — that’s a leftover from an earlier draft. Either fill them in to match 6.0, or if they’re genuinely still being finalized, mark Section 6.0 as TBD too rather than stating firm numbers there.
- Noise spec needs a recheck
“Output Noise Level Peak to Peak – 3 mV at Full Gain, resolves to approximately 1 bit at a 12-bit resolution and 5 Volts output”
5 V / 4096 (12-bit) ˜ 1.22 mV per LSB. 3 mV p-p noise is closer to 2.5 LSB, not “approximately 1 bit.” Worth double-checking this number — either the noise spec or the bit-equivalent claim needs correcting.
Moderate Issues
- “2 bits of dynamic range” claim (Section 5.0 / 6.0c)
X1/X2/X4 is a 4× span, which is 2 bits — that part is correct. But Section 5.0 says this is added “from the input to the output of gain range to the standard 12-bit A/D,” while Section 6.0(c) describes it as recovering resolution lost when the signal doesn’t use full scale. These are two different justifications for the same feature and should be reconciled into one consistent explanation (the 6.0(c) explanation, with the half-scale example, is the clearer one — Section 5.0’s version reads like a leftover summary).
- Section 9 vs. Section 11 temperature tolerance conflict
Section 9(a): Operating Temperature = 25°C ± 5°C
Section 11(a): Temperature Testing = 25°C ± 10°C
If qualification testing is meant to exceed the normal operating range (common practice), that’s fine — but it should say so explicitly, otherwise it just looks like a typo (5 vs 10).
- Power input range is unusually wide and asymmetric in naming
“+9V to +24V and -9V to -24V” — this is fine as written, but worth confirming this is truly the intended ±9 to ±24V rail range and not meant to be a tighter band (it’s a big range for a precision TIA front end, which might affect thermal/noise specs elsewhere).
- Section headers 10 and 11 overlap in purpose
Section 10 (“Tests Used to Define System Operation”) and Section 11 (“Other Tests to Assure Quality”) both point to TBD specs with similar content (functional/temperature testing). Worth clarifying the distinction (e.g., Section 10 = engineering verification, Section 11 = independent/compliance verification) so readers know why temperature testing appears in both with different tolerances.
Minor / Editorial
Section 4.0 footer note and use-case example (1 nA–1 µA photodiode, 12-bit MCU, 3.3 V) is good and consistent with the rest of the doc — no issue there.
Section 6.0(j): “Lower Bandwidth – 0 Hz or 1 Hz” — fine, but consider stating why (DC coupling ? 0 Hz; AC coupling ? 1 Hz high-pass corner) directly here rather than leaving it implicit.
Several sections still say “TBD” (Sections 8, 9b/c, 10, 11b/c, 12) — expected for a 0.4 rev, just flagging that this doc isn’t yet release-ready as a controlled spec.
Signature block has no names typed under the lines — minor, but worth filling in before circulation for signature.
Revision history table: rev 0.4 entry says “Update after Claude update” — you may want to phrase this more formally for a controlled document (e.g., “Reviewed and corrected gain/output specifications”) rather than referencing the tool used.
Summary
The most important fix is #1 (gain range arithmetic) — right now Section 5.0 describes a gain scheme that contradicts both itself and Section 6.0(b), and a calibration tech or downstream engineer reading this would not be able to derive consistent full-scale numbers. #2 and #3 are smaller but will cause real test-procedure mismatches if not caught now. I’d resolve those three before this goes out for signature.
Want me to draft corrected language for Sections 5.0 and 6.0 that reconciles the gain-range numbers, or would you rather work through the actual intended gain architecture first (e.g., what the true full-scale currents should be for each X1/X10/X100 × X1/X2/X4 combination)???????You said: draft corrected language for sections 5 and 6.draft corrected language for sections 5 and 6.11:33 AM????Claude responded: Before I draft this, I need to pin down the actual intended gain architecture, since the source document gives three conflicting versions.Before I draft this, I need to pin down the actual intended gain architecture, since the source document gives three conflicting versions. Let me lay out what I think is the most plausible intended design, based on reconciling Section 6.0(b) (which is the most explicit and self-consistent) with the rest of the doc:
Reconciling the numbers:
Section 6.0(b) explicitly states: X1 ? 0–10 nA full scale, X10 ? 0–100 nA full scale, X100 ? 0–1 µA full scale. This is internally consistent (1×/10×/100× of a 10 nA base) and matches the document’s own use-case example (1 nA–1 µA photodiode range).
Section 5.0’s “40 nA full-scale base conversion” and “10, 20, or 40 nA” don’t fit this pattern at all — these numbers don’t correspond to either the X1/X10/X100 stage or the X1/X2/X4 stage cleanly. This looks like leftover/garbled text from an editing pass, not a real spec.
The X1/X2/X4 “Small Step Gain” stage is a separate, second gain stage that fine-tunes within whichever X1/X10/X100 range is selected, recovering resolution as described in 6.0(c)’s half-scale example.
So I’ll write Section 5.0 and 6.0 using the 10 nA base with X1/X10/X100 = 10 nA/100 nA/1 µA full scale, with X1/X2/X4 as the secondary fine-gain stage — and drop the unsupported “40 nA / 10,20,40 nA” language entirely.
I want to flag this assumption clearly before you sign off, since I’m resolving a real ambiguity in the source, not just copyediting. Here’s the draft:
Section 5.0 — General Description of the Function of the System (revised)
The functional system for the simplest version of the Transimpedance Design is shown below. The TIA input current is converted into a voltage by the input transimpedance stage, passed through a selectable secondary gain stage, then through a Gain-of-1 Inverting Amplifier, and finally through an output selection switch. The selection switch allows the signal to be inverted to accommodate different photodiode and low-level current source/sink configurations.
Block Diagram 1 – Simplest Version of the TIA circuit.
Input Gain Range: The TIA offers a primary input range selection of X1, X10, or X100 (jumper-selectable), based on a 10 nA full-scale transimpedance conversion. This yields full-scale input current ranges of 0–10 nA, 0–100 nA, or 0–1 µA, respectively.
Small-Step Gain Range: Following the primary range stage, a secondary jumper-selectable gain of X1, X2, or X4 fine-tunes the output level within the selected primary range. This secondary stage recovers up to 2 bits of resolution at the output A/D converter when the input signal does not use the full primary range — see Section 6.0(c) for detail.
Output Voltage Range: The output has a selectable full-scale voltage range (via jumper) of 3.3 V or 5.0 V, compatible with common microcontroller ADCs (e.g., Arduino, Raspberry Pi).
Power Input Voltage Range: The device requires dual-polarity power input: +9 V to +24 V and -9 V to -24 V.
Section 6.0 — Definition of Critical System Parameters (revised)
a. AC or DC Coupling – Jumper-selectable.
b. Input Signal Range, Full Scale (Jumper Selectable) – X1, X10, X100, based on a 10 nA full-scale base conversion. This provides full-scale input ranges of 0–10 nA, 0–100 nA, and 0–1 µA, respectively.
c. Small Step Gain Range (Jumper Selectable) – X1, X2, X4 (fixed steps; not continuously adjustable).
Note: This secondary gain stage expands effective resolution by up to 2 bits between the primary input range and the MCU’s A/D input, recovering resolution when the input signal does not use the full extent of the selected primary range. Most MCUs provide 12-bit resolution at the analog front end. For example, if the output signal does not exceed ½ scale (1.65 V of 3.3 V, or 2.5 V of 5 V), one bit of resolution is lost at the ADC; the X2 or X4 setting restores 1 or 2 bits, respectively.
d. Output Signal at Full Scale – 3.3 V or 5 V (jumper-selectable).
e. Absolute Accuracy (with Adjustment) – 0.1% of full scale.
f. Zero Adjustment Range – ±5% of full scale.
g. Gain Adjustment Range – ±20% of full scale, to accommodate MCU ADC full-scale inputs of 3.3 V or 5 V.
h. Temperature Stability (at full scale and full gain) – < 10 µV/°C.
i. Step Transient Response (10%–90%) – < 100 µsec.
j. Target Bandwidth:
Upper bandwidth: minimum 10 kHz at the -3 dB point.
Lower bandwidth: 0 Hz (DC coupling) or 1 Hz (AC coupling).
k. Output Noise Level, Peak-to-Peak – TBD mV at full gain (see note below).
Flags on what I changed, beyond reconciling the gain numbers:
6.0(k) noise spec — I’ve marked this TBD rather than guess a corrected number. The original “3 mV p-p ˜ 1 bit at 12-bit/5V” doesn’t hold up (3 mV ˜ 2.5 LSB at 5V/12-bit, not 1 LSB), and I don’t have enough information to know whether the 3 mV figure or the “1 bit” framing is the error. You’ll want to either re-derive this from real noise measurements/simulation or decide which number is authoritative.
I removed the “+3.5 V” typo from Section 7.0 implicitly by standardizing on 3.3 V/5.0 V everywhere — you’ll want to fix Section 7.0(c) itself to match (“Test for Max. Output Voltage Selection – +3.3 or +5 volts”).
I left Section 6.0(f)/(g) values as-is (±5%, ±20%) since they seemed deliberate, but Section 7.0 still lists Zero/Gain Adjust as “TBD” — you should update Section 7.0 to reference these same values, or confirm they’re still actually unsettled.
Let me know if the 10 nA-base architecture matches your actual design intent — if the real base is something else (e.g., the 40 nA figure was right and I should rework around that instead), tell me the correct base value and I’ll redo the numbers throughout.??????Claude Fable 5 is currently unavailable.Learn more(opens in new tab)?
?Sonnet 4.6 Low???