aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Chevalier <perso@denischevalier.fr>2026-08-07 23:34:44 +0200
committerDenis Chevalier <perso@denischevalier.fr>2026-08-07 23:34:44 +0200
commit1a0dad31d924cfeaa5f98100eff24f36623d5131 (patch)
tree7dd6a73d3745520c1a5ecea067dfc4b8cb59896f
downloadsame-1a0dad31d924cfeaa5f98100eff24f36623d5131.tar.gz
same-1a0dad31d924cfeaa5f98100eff24f36623d5131.tar.bz2
same-1a0dad31d924cfeaa5f98100eff24f36623d5131.zip
Start writing specification
-rw-r--r--electrical-specifications.typ587
-rw-r--r--introduction.typ281
-rw-r--r--main.pdf7297
-rw-r--r--main.typ79
-rw-r--r--mechanical-specifications.typ69
5 files changed, 8313 insertions, 0 deletions
diff --git a/electrical-specifications.typ b/electrical-specifications.typ
new file mode 100644
index 0000000..6d73b5e
--- /dev/null
+++ b/electrical-specifications.typ
@@ -0,0 +1,587 @@
+#import "@preview/unify:0.8.1": qty, qtyrange
+
+= Electrical specifications <electrical-specifications>
+
+== Signal standards <signal-standards>
+
+=== Voltage range <voltage-range>
+
+There are three types of signals used in the SAME format:
+
++ Bipolar signals, ranging from $qty(-10, "V")$ to $plus qty(10, "V")$.
++ Unipolar signals, ranging from $qty(0, "V")$ to $plus qty(10, "V")$.
++ Gate signals, which are either $qty(0, "V")$ (low) or $plus qty(10, "V")$
+ (high). Gates represent momentary states, such as a computation error (e.g.
+ input out of bound) or a logic result (a truthful value being represented as a
+ high gate). By convention, and to ensure compatibility with other formats,
+ gate inputs must have a threshold of $plus qty(2.5, "V")$, determined either
+ at the rising edge or at voltage level (the behavior must be specified in
+ individual module documentation).
+
+==== Banana format <banana-format>
+
+All IO, except when interfacing with other formats, is done on $qty(4, "mm")$
+banana jacks. Banana jacks are stackable and allow passive signal distribution
+without the need of dedicated modules. They also allow, when short protection is
+strictly enforced (which is the case of SAME format) passive averaging of
+outputs: When two short-protected outputs are stacked, the equal output
+impedances form a voltage divider, producing the arithmetic mean.
+
+They are standard on a lot of lab equipment such as digital multimeters.
+Their standard spacing ($qty(0.75, "inch")$ grid) allows the use of standard
+shorting bars. Furthermore, they are sturdy and reliable.
+
+However, being unshielded and ungrounded, banana jacks act as RF antennas. This
+effectively limits the SNR of the SAME format to $qty(95, "dB")$. This
+$qty(95, "dB")$ limit is above the Metrologic tier target of $qty(90, "dB")$, so
+banana jacks do not constrain the achievable SNR.
+
+Users should prefer high quality cables (Pomona or equivalent),
+silicone-wrapped, and use the shortest cable length necessary.
+
+Note that the noise floor of the system can be improved beyond the standard
+limitations of banana jacks by using shielded cables with single-ended
+grounding. However, to maintain compatibility and accessibility, modules must
+not require such cables for normal operation.
+
+==== Inputs requirements <inputs-requirements>
+
+All inputs utilize white jacks. They must accept bipolar voltages across the
+full $plus.minus qty(10, "V")$ range and the full DC to #qty(20, "kHz")
+bandwidth, with precision conforming to the module's declared tier. All inputs
+must have an impedance $gt.eq qty(1, "mega ohm")$ (Hi-Z). Inputs must be
+protected against RF-induced noise received via the patch cable. RF signals
+above 1MHz must be attenuated by at least 40dB at the input.
+
+===== Out-of-domain handling strategies <out-of-domain-handling-strategies>
+
+While all inputs must accept bipolar signals, some mathematical functions do not
+accept the full range (e.g. logarithm, division, etc.). In that case, the module
+must include an out-of-domain handling strategy, and document it:
+
+#figure(
+ table(
+ columns: (auto, auto, auto),
+ table.header([*Strategy*], [*Description*], [*Example use cases*]),
+ [Clamp], [Output held at boundary], [Logarithm],
+ [Hold], [Freeze last valid output], [Integrator],
+ [Fold], [Reflect at boundary], [Chaotic attractor],
+ [Wrap], [Wrap around range], [Phase accumulator],
+ [Oscillate], [Bounded, specified oscillation], [Implicit function solver],
+ [Zero], [Output $qty(0, "V")$], [Divider],
+ [Passthrough], [Input passes unchanged], [Signal conditioner],
+ ),
+ caption: [Out-of-domain handling stategies],
+) <table-out-of-domain-handling-strategies>
+
+When such a case occurs, an error gate must be fired on a dedicated error jack
+output. On multiple channels modules, there should be one such error gate per
+channel.
+
+==== Output requirements <output-requirements>
+
+Outputs can be either bipolar signals (light blue jack), unipolar signals (light
+yellow jack) or gate signals (red jack).
+
+All outputs must have an impedance $lt.eq qty(10, "ohm")$. This ensures that any
+output can be patched into any number of inputs without signal degradation or
+loss. Outputs must be short-circuit protected, with fault current limited to
+$lt.eq qty(10, "mA")$.
+
+===== Loading error <loading-error>
+
+With $Z_"out" lt.eq qty(10, "ohm")$ and $Z_"in" gt.eq qty(1, "mega ohm")$, the
+worst-case single-connection loading error is 10ppm, compatible with Metrologic
+tier precision. When stacking multiple inputs on a single output via banana
+jacks, the parallel input impedance must be considered:
+
+#figure(
+ table(
+ columns: (auto, auto, auto),
+ table.header([*Inputs stacked*], [*Parallel $Z_"in"$*], [*Loading error*]),
+ [1], [$qty(1, "mega ohm")$], [$qty(10, "ppm")$],
+ [4], [$qty(250, "kilo ohm")$], [$qty(40, "ppm")$],
+ [10], [$qty(100, "kilo ohm")$], [$qty(100, "ppm")$],
+ [40], [$qty(25, "kilo ohm")$], [$qty(400, "ppm")$],
+ ),
+ caption: [Loading error per inputs stacked],
+) <table-loading-error>
+
+Module designers should document expected fan-out in module specifications. For
+typical patches ($lt.eq 10$ connections per output), loading error remains a
+small fraction of the Industrial tier budget.
+
+===== Error gates <error-gates>
+
+Modules whose mathematical function can produce out-of-domain or internal error
+conditions must provide error gates. Modules that cannot produce such conditions
+(e.g., a simple attenuator) are exempt.
+
+Error gates are also considered valid signals and should use $qty(4, "mm")$ red
+banana jacks. Modules designers should strive to have one error gate output per
+error type per channel. Space constraints may force the module designer to
+aggregate multiple error gates (OR operator). In that case, out-of-domain and
+internal errors must never be aggregated.
+
+#figure(
+ table(
+ columns: (auto, auto),
+ table.header([*Source*], [*Category*]),
+ [Clipping], [Internal],
+ [PWAM Soft Saturation], [Internal],
+ [Domain Violation], [Out-of-Domain],
+ [Passthrough Active], [Out-of-Domain],
+ [Servo Unlock], [Internal],
+ ),
+ caption: [Examples of error gates],
+) <table-examples-of-error-gates>
+
+=== Bandwidth <bandwidth>
+
+All signal inputs on a SAME system must accept and give mathematically correct
+results for a rate of change ranging from DC ($qty(0, "Hz")$) to at least
+$qty(20, "kHz")$). Precision specifications apply within this bandwidth. Are
+excluded from this requirement only signals coming from the outside, through
+interface modules. In that case, the signal must respect the specifications of
+the incoming signal format.
+
+==== Signals interpretation <signals-interpretation>
+
+All signals are voltages. Any signal can be used in place of any other signal.
+Interpretation of the function of a signal is left to individual module
+implementation and computation context (a control voltage in one computation can
+be a logic result in another, or a function variable, etc.).
+
+== Precision tiers <precision-tiers>
+
+=== General specification <general-specification>
+
+We define three precision tiers, with varying precision requirements. Those
+three precision tiers must target the same signal range of DC to
+$qty(20, "kHz")$ as specified in the signal standards.
+
+A change of precision tier must not induce a change of PCB: if needed, the PCB
+designs should include multiple footprints (notably for various size capacitors)
+or jumpers (if a specific sub circuit can be disabled for a lower precision
+tier).
+
+All SAME-compliant designs must at least provide a BOM for the metrologic
+precision tier.
+
+==== Precision measurements conditions <precision-measurements-conditions>
+
+All precision metrics are measured after one hour of warm-up from a cold start
+at ambient temperature. This allows the oven-compensated components to warm-up,
+temperature gradients to stabilize, and servo loops to settle.
+
+===== Temperature <temperature>
+
+Measurements are made with an ambient temperature range of
+$qtyrange(15, 30, "dC", delimiter: "\"to\"")$, with an hourly variation of
+maximum $plus.minus qty(2, "dC")$. Temperature is the main source of drift for
+components. While designs should compensate for reasonable temperature
+variations, they should expect normal temperature operation conditions,
+achievable with a standard HVAC.
+
+===== Humidity <humidity>
+
+Measurements are made within a relative humidity range of
+$qtyrange(30, 70, "percent", delimiter: "\"to\"") "RH"$, with an hourly variation of
+maximum $plus.minus qty(5, "percent") "RH"$.
+
+High humidity can cause parasitic leakage paths (nanoamps matter at high-Z
+nodes), dielectric changes affecting precision capacitors, and long-term
+corrosion. Low humidity can cause electro-static discharges (ESD) risk during
+handling and static charge accumulation.
+
+These requirements ensure that those risks are mostly avoided. They should be
+met with easy access humidity control measures and tools.
+
+===== Atmospheric pressure <atmospheric-pressure>
+
+Measurements are made within an atmospheric pressure range from
+$qtyrange(800, 1100, "hPa", delimiter: "\"to\"")$, with a daily variation of
+maximum $plus.minus qty(50, "hPa")$.
+
+A low atmospheric pressure impacts convection and temperature regulation. It
+also reduces the dielectric strength of the air, inducing a higher risk of
+arcing and breakdown.
+
+Some types of capacitors, relays and switches are sensitive to atmospheric
+pressure. The recommended pressure range should allow operation from sea level
+to $qty(2000, "m")$ altitude, under normal atmospheric conditions.
+
+===== Electro-magnetic environment <electro-magnetic-environment>
+
+RF field immunity must follow EN 61000-4-3 specification (
+$qty(3, "volt per meter")$, $qtyrange(80, 1000, "MHz")$). The magnetic field
+should be below $qty(1, "ampere per meter") "DC"$, and below
+$qty(0.3, "ampere per meter") "AC"$ (power frequency). SAME equipment should be
+at least $qty(1, "m")$ away from switching equipment such as motors, welders
+etc.
+
+While SAME provides strong internal shielding, external electro-magnetic
+interference (EMI) beyond specification may degrade the SNR.
+
+===== Air quality <air-quality>
+
+SAME equipment should be operated indoors, with clean dust filters (recommended
+monthly cleaning). Corrosive gases such as $H_2 S$, $"Cl"_2$, $S O_2$, etc,
+conductive particles and salt spray (coastal environment) are not permitted.
+
+Dust reduces cooling efficiency and can introduce leakage paths. Corrosive gases
+degrade the components and contacts. Conductive particles can create short
+circuits and leakages. Salt spray is corrosive.
+
+Those requirements should be met with indoor operation in air-filtered rooms.
+
+===== Mechanical environment <mechanical-environment>
+
+SAME equipment should be operated on stable surfaces, free from significant
+vibration. Vibration can induce microphonic effects in capacitors and
+connectors, affecting precision at high-impedance nodes.
+
+Operating vibration should be below $qty(0.5, "g")$ ($qtyrange(5, 500, "Hz")$).
+Shock should be below $qty(5, "g")$ ($qty(11, "ms")$ pulse).
+
+These requirements should be met in normal laboratory or studio environments.
+
+===== Lighting <lighting>
+
+Direct sunlight on the chassis should be avoided during precision operation.
+Sunlight causes localized heating and thermal gradients. Some precision
+semiconductors are photosensitive.
+
+Normal indoor lighting is acceptable. Modules should not be operated with
+cassettes removed in bright light.
+
+===== Ionizing radiation <ionizing-radiation>
+
+SAME is designed for normal background radiation environments (below
+$qty(1, "micro sievert per hour")$).
+
+Operation near significant ionizing radiation sources such as medical imaging
+equipment, nuclear facilities, or particle accelerators is not recommended
+without appropriate shielding. Ionizing radiation can increase semiconductor
+leakage currents and cause single-event effects.
+
+At altitudes approaching $qty(2000, "m")$, cosmic ray flux increases
+approximately $3 times$ compared to sea level. This is however unlikely to
+significantly impact analog precision.
+
+SAME is not radiation-hardened. Applications requiring radiation tolerance
+should seek specialized equipment.
+
+====== Radioactive source modules <radioactive-source-modules>
+
+Some SAME modules (such as true random voltage generators based on radioactive
+decay) may contain low-activity sealed radioactive sources.
+
+These modules:
+- Must comply with local regulations regarding exempt-quantity radioactive
+ materials. The SAME specification does not mandate specific isotopes or
+ activities;
+- Must provide adequate shielding to not affect adjacent modules;
+- Must be clearly labeled with radiation symbol and source information;
+- Must include handling and disposal instructions.
+
+The presence of a radioactive source module does not affect the precision
+specifications of other modules in the system, provided shielding requirements
+are met.
+
+===== Summary <precision-measurements-conditions-summary>
+
+#figure(
+ table(
+ columns: (auto, auto, auto),
+ table.header([*Parameter*], [*Range*], [*Variation*]),
+ [Temperature], [$plus qty(15, "dC") "to" plus qty(30, "dC")$], [$plus.minus qty(2, "celsius per hour")$],
+
+ [Relative humidity],
+ [$qtyrange(30, 79, "percent", delimiter: "\"to\"") "RH"$],
+ [$plus.minus qty(5, "percent") "RH"$],
+
+ [Atmospheric pressure], [$qtyrange(800, 1100, "hPa")$], [$plus.minus qty(50, "hecto pascal per day")$],
+
+ [RF immunity], [$qty(3, "volt per meter"), qtyrange(80, 1000, "MHz")$], [N/A],
+
+ [Magnetic field (DC)], [$lt qty(1, "ampere per meter")$], [N/A],
+ [Magnetic field (AC)], [$lt qty(0.3, "ampere per meter")$], [N/A],
+ [Vibration], [$lt qty(0.5, "g"), qtyrange(5, 500, "Hz")$], [N/A],
+ [Shock], [$lt qty(5, "g"), qty(11, "ms")$], [N/A],
+ [Air quality], [Indoor, filtered], [N/A],
+ [Lighting], [No direct sunlight], [N/A],
+ [Background radiation], [$lt qty(1, "micro sievert per hour")$], [N/A],
+ ),
+ caption: [Summary of the precision measurements conditions],
+) <table-precision-measurements-conditions-summary>
+
+Note that electrical supply requirements will be discussed in
+#ref(<power-distribution>).
+
+=== Educational tier <educational-tier>
+
+This tier aims for a precision of $qty(0.1, "percent")$ ($qty(1000, "ppm")$), and a SNR of
+$qty(70, "dB")$. This tier is intended for lowering the barrier of entry by
+reducing the components costs and soldering difficulty. It is suitable for
+teaching on circuit topologies and general analog computer patching. At this
+level of precision, results are valid within $plus.minus qty(10, "mV")$.
+
+The maximum drift rate should be inferior or equal to $qty(60, "ppm per hour")$.
+We recommend calibration verification before each session.
+
+=== Industrial tier <industrial-tier>
+
+This tier aims for a precision of $qty(0.01, "percent")$ ($qty(100, "ppm")$), and a SNR of
+$qty(80, "dB")$. This tier is intended for research, serious experimentation,
+and applications requiring repeatable results. It is suitable for control
+systems modeling, audio-rate computation, and scientific data acquisition. At
+this level of precision, results are valid within $plus.minus qty(1, "mV")$.
+
+The maximum drift rate should be inferior or equal to
+$qty(0.6, "ppm per hour")$. We recommend daily calibration verification.
+
+=== Metrologic tier <metrologic-tier>
+
+This tier aims for a precision of $qty(0.001, "percent")$ ($qty(10, "ppm")$), and a SNR of
+$qty(90, "dB")$. This tier is intended for precision measurement, long-duration
+computation, and applications requiring traceable accuracy. It is suitable for
+metrology, reference instrumentation, and extended continuous operation. At this
+level of precision, results are valid within $plus.minus qty(0.1, "mV")$.
+
+The maximum drift rate should be inferior or equal to
+$qty(0.014, "ppm per hour")$. We recommend daily calibration verification.
+
+=== Summary <precision-tiers-summary>
+
+#figure(
+ table(
+ columns: (auto, auto, auto, auto),
+ table.header([*Parameter*], [*Educational*], [*Industrial*], [*Metrologic*]),
+ [*Precision*],
+ [$qty(0.1, "percent") (qty(1000, "ppm"))$],
+ [$qty(0.01, "percent") (qty(100, "ppm"))$],
+ [$qty(0.00, "percent")% (qty(10, "ppm"))$],
+
+ [*SNR*], [$qty(70, "dB")$], [$qty(80, "dB")$], [$qty(90, "dB")$],
+ [*Result validity*], [$plus.minus qty(0.1, "V")$], [$plus.minus qty(10, "mV")$], [$plus.minus qty(1, "mV")$],
+
+ [*Maximum drift rate*], [$qty(60, "ppm per hour")$], [$qty(0.6, "ppm per hour")$], [$qty(0.014, "ppm per hour")$],
+
+ [*Drift-free computation*], [$approx qty(16, "h")$], [$approx qty(7, "day")$], [$approx qty(30, "day")$],
+
+ [*Calibration verification*], [Before each session], [Daily], [Daily],
+ ),
+ caption: [Precision tiers summary],
+) <table-precision-tiers-summary>
+
+==== Drift rate derivation <drift-rate-derivation>
+
+The drift rates are calculated such that total accumulated drift over the
+drift-free computation period consumes approximately $qty(100, "percent")$ of the precision
+budget.
+
+#figure(
+ table(
+ columns: (auto, auto, auto, auto),
+ table.header([*Tier*], [*Precision*], [*Drift rate*], [*Time to drift $qty(100, "percent")$ of budget*]),
+ [*Educational*], [$qty(1000, "ppm")$], [$qty(60, "ppm per hour")$], [$approx qty(16, "h")$],
+
+ [*Industrial*], [$qty(100, "ppm")$], [$qty(0.6, "ppm per hour")$], [$approx qty(7, "day")$],
+
+ [*Metrologic*], [$qty(10, "ppm")$], [$qty(0.014, "ppm per hour")$], [$approx qty(30, "day")$],
+ ),
+ caption: [Drift rate derivations],
+) <table-drift-rate-derivation>
+
+== Power distribution <power-distribution>
+
+=== Precision tiers <power-distribution-precision-tiers>
+
+We believe that a single system should be able to aggregate modules from
+different precision tiers. Power distribution is not a soldering build
+accessible to the average builder, due to the integration with mains voltage
+(shock risk). For this reason, SAME only admits one set of constraints for the
+power distribution, targeting metrologic tier.
+
+=== Provided power <provided-power>
+
+==== Power rails <power-rails>
+
+Power distribution must provide the following voltages:
+- $plus.minus qty(15.00, "V")$: Used to power op-amps.
+- $plus.minus qty(10.0000, "V")$ Force + Sense (Kelvin Connection): Reference
+ Voltages used to ensure $qty(10, "ppm")$ precision.
+- $qty(10, "MHz")$ Master Oscillator: A high-stability, low-phase-noise sine
+ wave reference for time-domain computations.
+- Stagger ($0$ or $plus qty(15, "V")$, indicates port parity): Used for
+ time-domain computation cores frequency stagger relative to the master
+ oscillator’s frequency.
+- Analog Ground (AGND): Analog signals return path.
+- Digital Ground (DGND): Digital signals return path.
+- $plus.minus qty(5.0, "V")$ Digital ($"VD"$): Used to power CMOS and Timers.
+- Chassis Earth: For high voltage protection and EMF shielding.
+
+Note that in this list we use the significant figure convention systematically
+to indicate precision requirements.
+
+==== Power budget <power-budget>
+
+For 8 modules, the total power budget per $plus.minus qty(15.00, "V")$ rail is
+$qty(1.5, "A")$. This permits the use of easily available power supplies for
+rack chassis, while giving enough power for compute modules. The total power
+budget per $plus.minus qty(5, "VD")$ rail is $qty(800, "mA")$.
+
+For each module, this means: $approx qty(185, "mA")$ on the
+$plus.minus qty(15.00, "V")$, and $qty(100, "mA")$ on the
+$plus.minus qty(5, "VD")$ rails.
+
+==== PWAM frequency staggering <pwam-frequency-staggering>
+
+To limit drift and increase precision in multipliers and time-domain functions,
+the system utilizes a global timebase.
+
+/ Master Oscillator: All modules performing time-domain operations (PWAM,
+ integration timing, etc.) must accept a $qty(10, "MHz"), qty(1, "Vpp")$ (into
+ $qty(50, "ohm")$) sine wave via the rear BNC connector. Modules operating
+ purely in the continuous voltage domain (e.g., standard summers, log amps) may
+ ignore it.
+/ Staggering: Neighboring modules using PWAM should not operate at identical
+ switching phases/frequencies to prevent intermodulation. The Stagger rail on
+ the DB-25 connector determines the derivation of the local carrier from the
+ Master Oscillator.
+ - Modules receiving $qty(0, "V")$ from the Stagger rail must lock their
+ carrier frequency to exactly $qty(500, "kHz")$ ($"Master"/20$) with
+ $qty(0, "degree")$ phase shift.
+ - Modules receiving $plus qty(15, "V")$ from the Stagger rail must lock their
+ carrier frequency to $qty(500, "kHz")$ ($"Master"/20$) with a
+ $qty(90, "degree")$ phase shift, that should be derived via quadrature
+ division referenced to the $qty(10, "MHz")$ Master.
+
+==== Cleanliness requirements <cleanliness-requirements>
+
+===== $plus.minus qty(15.00, "V")$ analog supply requirements
+<analog-supply-requirements>
+
+At the module connector, the $plus.minus qty(15.00, "V")$ rails shall maintain
+an initial accuracy within $plus.minus qty(7.5, "mV")$ ($plus.minus qty(0.05, "percent")$) at
+$qty(25, "dC")$. Line regulation shall be better than $plus.minus qty(1.5, "mV")$
+($qty(0.01, "percent")$) for a $plus.minus qty(10, "percent")$ input voltage variation. Load regulation shall
+be better than $plus.minus qty(3.0, "mV")$ ($qty(0.02, "percent")$) over the
+full load range ($qtyrange(10, 100, "percent", delimiter: "\"to\"")$). Output
+voltage ripple and noise shall not exceed $qty(500, "uVpp")$ over a
+$qty(20, "MHz")$ bandwidth.
+
+===== $plus.minus qty(5.0, "VD")$ digital supply requirements
+<digital-supply-requirements>
+
+The $plus.minus qty(5.0, "VD")$ rails shall maintain an initial accuracy within
+$qty(25, "mV")$ ($plus.minus qty(0.5, "percent")$) at $qty(25, "dC")$. Line
+regulation shall be better than $plus.minus qty(5, "mV")$
+($qty(0.1, "percent")$) for a $plus.minus qty(10, "percent")$ input voltage
+variation. Load regulation shall be better than $plus.minus qty(10, "mV")$
+($qty(0.2, "percent")$) over the full load range. Output voltage ripple and
+noise shall not exceed $qty(5, "mVpp")$ over a $qty(20, "MHz")$ bandwidth.
+
+===== $plus.minus qty(10.0000, "V")$ reference requirements
+<reference-requirements>
+
+The $plus.minus qty(10.0000, "V")$ reference rails shall maintain an initial
+accuracy within $plus.minus qty(20, "uV")$ ($plus.minus qty(2, "ppm")$) at
+$qty(25, "dC")$. Line regulation shall be strictly less than
+$qty(2, "micro volt per volt")$ ($qty(0.2, "ppm per volt")$). Load regulation
+shall be strictly less than $qty(5, "micro volt per milli ampere")$
+($qty(0.5, "ppm per milli ampere")$). The temperature coefficient must be less
+than $qty(0.5, "ppm per celsius")$, and low-frequency noise
+($qtyrange(0.1, 10, "Hz", delimiter: "\"to\"")$) shall not exceed
+$qty(2, "uVpp")$.
+
+===== Master oscillator requirements <master-oscillator-requirements>
+
+The $qty(10, "MHz")$ Master Oscillator shall demonstrate frequency stability
+inferior or equal to $qty(10, "ppb")$ (parts per billion) over the full
+operating temperature range. Phase noise shall be inferior or equal to
+$qty(-140, "dBc per Hz")$ at a $qty(1, "kHz")$ offset.
+
+===== Grounding rules <grounding-rules>
+
+- Analog returns to AGND only.
+- Digital returns to DGND only.
+- Modules shall not bridge AGND and DGND. Modules containing both analog and
+ digital circuitry must maintain internal ground separation and connect each
+ to the appropriate backplane ground.
+- Chassis Earth is only used for chassis grounding, EMF shielding and high
+ voltage protection.
+- The power distribution board should provide state of the art ground management
+ (e.g. star point).
+
+=== Power distribution calibration <power-distribution-calibration>
+
+At power distribution board level, we do not have access to a source of truth
+for automatic calibration. We must accept manual, repeatable calibration
+methods. This method should be insensitive to drift (in opposition to trimmers
+that are notoriously unstable).
+
+To ensure high precision without drift as specified in the precision tiers
+section, the $plus.minus qty(10.0000, "V")$ must be calibrated. The only
+accepted method of calibration is Drift-Free, discrete steps, repeatable
+topologies, for instance: through two switches (coarse, fine) into a resistor
+ladder (R2R) digital-to-analog converter (DAC). The switches must be accessible
+on the chassis front panel, next to a $plus qty(10.0000, "V")$ reference, a
+$qty(-10.0000, "V")$ reference and an AGND jack (respectively yellow, blue and
+black).
+
+The other power rails may also be calibrated, through dip-switches and R2R DACs
+on the power distribution board PCB.
+
+==== Standby switch <standby-switch>
+
+Since the reference voltages depend on an oven stabilized buried zener diode and
+an ovenized crystal oscillator, the front panel must provide a standby switch,
+to shut down the unit while maintaining the diode at temperature. The standby
+mode power consumption should not exceed 200mA.
+
+#figure(
+ [```
+ Calibration Coarse: Position X
+ Calibration Fine: Position Y
+ +15.00V DIP: 0bXXXXXXXX
+ -15.00V DIP: 0bXXXXXXXX
+ Ambient Temperature: XX°C
+ Date: YYYY-MM-DD
+ Reference DMM: [model, cal date]
+ ```],
+ caption: "Example of calibration log",
+) <example-calibration-log>
+
+=== Backplane connector <backplane-connector>
+
+Power is distributed from the power distribution board to modules with a
+DB-25 cable: female port panel mounted on module cassette, and PCB mounted on
+power distribution board, a short DB-25 male to male cable is used to connect
+the cassette to the power distribution board. D-sub connectors are ubiquitous,
+sturdy and shielded.
+
+#figure(
+ table(
+ columns: (auto, auto, auto, auto),
+ table.header([*Pin*], [*Signal*], [*Pin*], [*Signal*]),
+ [1], [$plus qty(15.00, "V")$], [14], [AGND],
+ [2], [$plus qty(15.00, "V")$], [15], [AGND],
+ [3], [$qty(-15.00, "V")$], [16], [AGND],
+ [4], [$qty(-15.00, "V")$], [17], [DGND],
+ [5], [AGND], [18], [DGND],
+ [6], [AGND], [19], [$plus qty(5.0, "VD")$],
+ [7], [AGND], [20], [$qty(-5.0, "VD")$],
+ [8], [$plus qty(10.0000, "V")$ Force], [21], [Stagger],
+ [9], [$plus qty(10.0000, "V")$ Sense], [22], [_Reserved_],
+ [10], [$qty(-10.0000, "V")$ Force], [23], [_Reserved_],
+ [11], [$qty(-10.0000, "V")$ Sense], [24], [_Reserved_],
+ [12], [AGND], [25], [Chassis Earth],
+ [13], [AGND], [Shell], [Chassis Earth],
+ ),
+ caption: "DB-25 backplane connector pin allocation",
+) <table-backplane-connector>
+
+The $qty(10, "MHz")$ Master Oscillator is distributed via a dedicated rear-panel
+BNC connector, not through the DB-25 backplane connector.
diff --git a/introduction.typ b/introduction.typ
new file mode 100644
index 0000000..8631e46
--- /dev/null
+++ b/introduction.typ
@@ -0,0 +1,281 @@
+#import "@preview/unify:0.8.1": add-unit, qty
+
+// All units for the specification should be specified here
+#add-unit("ppm", "ppm", "upright(\"ppm\")")
+#add-unit("ppb", "ppb", "upright(\"ppb\")")
+#add-unit("inch", "\"", "upright(\"\\\"\")", space: false)
+#add-unit("digital voltage", "VD", "upright(\"VD\")")
+#add-unit("volt peak-to-peak", "Vpp", "upright(V_\"pp\")")
+#add-unit("milli volt peak-to-peak", "mVpp", "upright(\"mV\"_\"pp\")")
+#add-unit("micro volt peak-to-peak", "uVpp", "upright(mu V_\"pp\")")
+#add-unit("dBc", "dBc", "upright(\"dBc\")") // decibels relative to the carrier
+#add-unit("rack unit", "U", "upright(U)", space: false)
+
+= Introduction <introduction>
+
+== What is analog computing? <what-is-analog-computing>
+
+Analog computing is the action of leveraging the properties of physical
+phenomena to model mathematical principles. The actual phenomena can be as
+diverse as hydraulics, mechanics, or electrics. In an electronic analog
+computer, voltages represent variables and operational amplifier circuits
+perform mathematical operations on them.
+
+Modeling the mathematical principles being computed implies that the results are
+continuous in time and amplitude. This directly contrasts digital computing,
+where results are symbolic and discrete.
+
+== Short history of analog computing <short-history-of-analog-computing>
+
+=== Mechanical and hydraulic analog computers
+<mechanical-and-hydraulic-analog-computers>
+
+Analog computing traces its roots to ancient Greece, with the Antikythera
+mechanism. It re-emerged time and time again across the ages, notably with the
+invention of the Slide Rule for computation of multiplications and divisions in
+the 1620s, and Lord Kelvin's Tide-Predicting machine invented in 1872.
+Mechanical or hydraulic analog computers (sometimes electronically controlled)
+continued to be the standard until the late 1950s.
+
+=== First electronic analog computers <first-electronic-analog-computers>
+
+In 1941, Karl D. Swartzel Jr. of Bell Labs patented the first operational
+amplifier (op-amp). 1942 saw the birth of the first fully electronic analog
+computer for real-time computation by Helmut Hölzer, to calculate V-2 rocket
+trajectories. In 1950, Gilbert D. McCann, Charles H. Wilts, and Bart Locanthi
+developed the "Direct Analogy Electric Analog Compute" ("the largest and most
+impressive general-purpose analyzer facility for the solution of field
+problems" - James S. Small, "The Analogue Alternative: The Electronic Analogue
+Computer in Britain and the USA, 1930-1975" Routledge in 2001).
+
+In 1960, the first educational electronic analog computer, the Heathkit EC-1,
+was released. It was programmed with patch cords and featured nine operational
+amplifiers (op-amps).
+
+In the late 1960s, electronic analog computer designs were published in
+electronics magazines. This is notably the case for the PEAC (Practical
+Electronics Analog Computer), published in 1968 in Practical Electronics.
+
+=== Golden age of electronic analog computers
+<golden-age-of-eletronic-analog-computers>
+
+Starting with the EAI PACE TR-48, produced by Electronic Associates Inc. in
+1961, hybrid computers became the industry standard for high-performance tasks.
+These machines combined the speed of analog computation for solving differential
+equations with the logical control and storage of digital computers. They were
+heavily utilized in the aerospace and automotive industries for real-time
+simulation — such as modeling the Space Shuttle's flight dynamics or nuclear
+power plant operations — tasks where purely digital computers of the era were
+still too slow.
+
+=== Decline of analog computing <decline-of-analog-computing>
+
+The decline began in the late 1970s and accelerated swiftly throughout the
+1980s, driven by the "Digital Revolution." While analog computers were fast,
+they suffered from physical limitations like noise floors and component aging
+(drift), which limited their precision compared to the perfect repeatability of
+digital machines. Furthermore, programming an analog computer required
+physically rewiring "patch cords," a laborious process compared to the rapidly
+evolving software-based programming of digital systems.
+
+=== Current times <current-times>
+
+A new rise of analog computing is currently underway, often referred to as
+"Neuromorphic Computing" or "In-Memory Computing". This generation uses the
+physical properties of memory devices (like resistance) to perform calculations,
+mimicking the neural structure of the human brain to process information. In
+2021, startup Mythic introduced the M1076 Analog Matrix Processor, a chip that
+performs AI inference using the analog currents inside flash memory cells,
+delivering up to 25 TOPS (Trillion Operations Per Second) at incredibly low
+power. Mythic filed for bankruptcy in 2024, but managed to raise \$125 million
+in December 2025, showing that there is still turbulence in the neuromorphic
+startup space.
+
+The field is still very active, notably with the Innatera Pulsar or the Applied
+Brain Research TSP1, both released in 2025.
+
+== The case for modern general purpose analog computers
+<the-case-for-modern-general-purpose-analog-computers>
+
+We believe the time is ripe for a revival of the General Purpose Analog
+Computer. Reintroducing general-purpose analog computing is not an exercise in
+retro-computing; it is a solution to specific modern problems. By combining the
+transparency of "Golden Age" architectures with modern low-noise components, we
+can achieve a new standard of computing that is sustainable, secure, and
+strategically independent.
+
+=== Theoretical capabilities <theoretical-capabilities>
+
+Historically, the General Purpose Analog Computer (GPAC) was perceived as being
+limited to solving differential equations, distinct from the universal logic of
+Turing Machines. However, this distinction assumes a finite system. In a
+sufficiently large analog system (the same way a digital computer is a Turing
+Machine assuming sufficiently large memory), the combinatorial logic required
+for universal computation is inherent in the topology.
+
+We do not rely on discrete "extensions" like Sample & Hold to achieve Turing
+Completeness; we use them merely for convenience. The $I$$(I x = x)$, $K$$(K x y
+ = x)$ and $S$$(S x y z = x z(y z))$ Combinators (which are sufficient for
+Turing Completeness) are not a special digital mode; they are a description of
+signal distribution and modulation that exists in every analog patch. With
+enough modules, the "patch" becomes a computational engine of unbounded
+complexity, capable of recursive structures defined purely by feedback loops
+rather than iterative loops. This argument will be fully developed in further
+sections.
+
+=== Technological sovereignty <technological-sovereignty>
+
+In an era of chip shortages and trade restrictions, reliance on $qty(5, "nm")$
+or $qty(3, "nm")$ silicon creates critical vulnerabilities. A computer built
+from standard through-hole operational amplifiers and passive components does
+not require a multi-billion dollar foundry. It can be assembled in a standard
+electronics lab anywhere in the world.
+
+With a 100% open-source design and macro-scale components, the hardware is fully
+auditable. There are no hidden "black box" intellectual property cores or
+potential hardware backdoors, ensuring high confidence in the computing
+substrate for sensitive modeling.
+
+=== Cost and accessibility <cost-and-accessibility>
+
+High-performance simulation usually requires expensive workstations or licensing
+fees for proprietary software. By utilizing off-the-shelf components (common
+op-amps, resistors, standard capacitors), the Bill of Materials (BOM) is a
+fraction of the cost of a modern FPGA or GPU-based accelerator. The
+"Through-Hole First" design philosophy means these machines can be produced,
+modified, and repaired by students, hobbyists, or labs in developing nations,
+without the need for robotic surface-mount assembly lines.
+
+=== Energy efficiency <energy-efficiency>
+
+While digital computers must toggle millions of transistors at gigahertz speeds
+to approximate a differential equation, an analog computer simply is the
+equation. Solving a complex set of coupled differential equations on this
+standard requires only the static power to bias the amplifiers. It avoids the
+massive dynamic power consumption associated with the high-frequency clock
+cycles of digital processors. Using an analog architecture delivers results with
+significantly lower total energy consumption per solution, aligning with global
+goals for reduced carbon footprints in data processing. This will be fully
+developed in further sections.
+
+=== Sustainability through repairability <sustainability-through-repairability>
+
+A 100% through-hole and open-source design ensures that every component is
+human-accessible. There are no microscopic BGA chips; the machine can be
+maintained indefinitely, breaking the environmentally destructive cycle of
+planned obsolescence. It essentially enforces the right to repair while allowing
+a reduction of e-waste.
+
+== The SAME Analog Modular Ecosystem <the-same-analog-modular-ecosystem>
+
+With this specification, we introduce a new analog computing ecosystem. We
+believe that with the right infrastructure, modern components and the advances
+in electronics research, we can now build analog computers that address the
+three main points that caused the decline of analog computing in the 1980s:
+cost, precision and drift.
+
+=== Making analog computers reliable and sustainable
+<making-analog-computers-reliable-and-sustainable>
+
+Electronics components are cheaper than ever right now. Op-amps that once cost
+hundreds of euros now cost at most a few dozen euros. PCB manufacturing is
+democratized. The material conditions are here. New advances in electronics
+research have solved the two remaining issues: drift and precision: with a
+combination of laser-trimmed components and topological advancements (servo
+loops, automated gain control, pulse width amplitude modulation, etc.), it is
+now possible to design analog circuits that are able to reach 0.001% precision
+(10ppm), over a $qty(90, "dB")$ signal to noise ratio (SNR), in a bandwidth
+ranging from DC to more than $qty(20, "kHz")$.
+
+=== What SAME is not <what-same-is-not>
+
+SAME is not a modular synthesizer format. It is not Eurorack, Serge or Buchla.
+While those synthesizer formats are based on general purpose analog computers,
+they are not designed for precision computations or repeatability. While SAME
+can be used for sound design or experimental composition, it does not provide
+the abstractions and simplifications that make synthesizers powerful.
+
+SAME is not a digitally controlled or calibrated analog computer. It focuses on
+fully analog computer topologies. It advocates a "what you see is what you get"
+approach. It has no presets, no patch memory. But it is precise enough that a
+patch sheet and a pen and paper allow full patch repeatability. We believe this
+approach is needed as it is more educational, and eliminates black boxes in
+programming (patches) and design (topologies). It is also more sustainable, as
+a design doesn't depend on a microcontroller and code that might fail and be out
+of production in five years.
+
+SAME is not a system on a chip (SOC). The revival of analog computing in the
+2020s has been mainly driven by SOCs. We do recognize the importance of this
+approach, and its many benefits, notably in energy consumption. However, SOCs
+require digital control. With SAME, we aim at creating an infrastructure for
+sustainable electronics. A unit built in 2026 should still work in 2076. Some
+parts will have been changed, but by focusing on through-hole parts in
+production at the time of designing, we ensure that a human with a soldering
+iron will be able to repair them.
+
+=== The scope of this specification <the-scope-of-this-specification>
+
+In this specification, we will provide full details and rationale behind the
+SAME format. We will provide schematics, gerber files, CAD files, as well as
+ngspice simulations of