In plain English: Four small experiments you can build on a desk for about $800 to $1,650 in parts. Each is a miniature of one part of the Station, so you learn how the measurements behave before spending real money.
Read this first.
- Research use only, your own blood only. Testing that does not report patient-specific results for diagnosis or treatment is exempt from CLIA (42 CFR 493.3(b)(2)). Testing anyone else's blood and telling them a result is not exempt and needs a CLIA certificate, and studying other people needs an IRB.
- No medical decisions from these numbers. If something looks abnormal, get a real laboratory test.
- Treat blood as infectious even when it is yours: gloves, eye protection, bleach (1 part household bleach to 9 parts water) for spills, a proper sharps container, local disposal rules.
- Chemical hazards: acridine orange is a mutagen; sodium hydroxide is caustic; never mix ferricyanide with strong acids; read the safety data sheet for every reagent kit (some contain sodium azide, which must not go down metal drains). Two classic methods are deliberately excluded: the Jaffe creatinine method (dry picric acid is shock-sensitive and explosive) and Drabkin's hemoglobin reagent (it contains cyanide).
- Spinning parts (module D) run only inside a closed polycarbonate box with a lid switch.
Module A: electrochemistry (the EC Card engine in miniature)
What you build: an open-source potentiostat and a mediated glucose sensor on commercial screen-printed electrodes.
Hardware
- HunStat2 (Analytical Methods, 2025; open hardware and Windows software on GitHub): an Analog Devices AD5941 analog front end with a Seeeduino XIAO RP2040; cyclic voltammetry, open-circuit potential and impedance spectroscopy; about $30 in parts. For chronoamperometry, use the FreiStat code (AD5940/AD5941 with an Adafruit Feather) or Analog Devices' public AD5940 example code.
- Zimmer and Peacock 501 carbon screen-printed electrodes (carbon working and counter electrodes, silver/silver chloride reference): $35 per 10 from IO Rodeo.
- An edge connector or cable for the electrodes.
Experiments
- Check the potentiostat with a known redox couple. 5 mM potassium ferricyanide in 0.1 M KCl; cyclic voltammetry from -0.3 to +0.6 V at 25, 50, 100 and 200 mV/s. Expect a reversible pair of peaks; peak current should rise linearly with the square root of scan rate (Randles-Sevcik). If it does not, fix the electronics before going further.
- Build a mediated glucose sensor. Mix 50 µL of a glucose standard with 50 µL of reagent (0.1 M phosphate buffer pH 7.0, 0.1 M KCl, 10 mM potassium ferricyanide, glucose oxidase); wait 60 seconds; drop it on the electrode; hold +0.4 V and read the current at 10 seconds. Glucose oxidase turns ferricyanide into ferrocyanide in proportion to glucose; the electrode re-oxidizes it. This is how most glucometer strips work.
- Calibrate. Standards of 0, 2.5, 5, 10, 15 and 20 mmol/L (0 to 360 mg/dL), three replicates each. Fit a line, report slope, intercept, R², and the detection limit (3.3 times the blank standard deviation divided by the slope).
- Compare. Measure a meter control solution on your sensor and on an FDA-cleared glucometer. Stretch goal: your own fingerstick against the glucometer, noting how hematocrit and oxygen change the answer.
What it teaches: calibration, drift, temperature dependence, why single-use sensors carry their own calibrant (the i-STAT trick), and why whole-blood electrochemistry needs hemolysis rules.
Module B: imaging cell counter and hemoglobin (the Heme Card engine in miniature)
What you build: a motorized open-source microscope that counts blood cells automatically, plus a one-wavelength photometer for hemoglobin.
Hardware
- OpenFlexure Microscope (3D-printed, motorized, Raspberry Pi based; about $200 in parts according to its authors), high-resolution version with an RMS objective: 40x/0.65 for white-cell morphology, 10x or 20x for counting. The Mini-hematology-lab project on GitHub builds an autonomous blood-cell counter on the same microscope for under $350.
- A Neubauer improved hemocytometer and coverslips (or disposable counting chambers).
- A 470 nm LED and a 500 nm long-pass filter for acridine orange fluorescence (optional).
- Hemoglobin photometer: a 570 to 575 nm LED, a BPW34 photodiode, an op-amp transimpedance stage, an ADS1115 16-bit ADC on the Pi's I2C bus, and a 3D-printed holder for standard 10 mm semi-micro cuvettes.
Software
- OpenFlexure server and Python client for stage control and autofocus.
- Cellpose for segmentation (the OpenFlexure_Cell_Counter project wraps it for non-programmers).
Experiments
- Red cells. Dilute 1:200 in phosphate-buffered saline, load the chamber, image the five small center squares (0.2 mm² at 0.1 mm depth, which is 0.02 µL). RBC per µL = count x 10,000.
- White cells. Dilute 1:20 in Türk's solution (acetic acid lyses red cells, gentian violet stains nuclei), image the four corner squares (4 mm² at 0.1 mm, 0.4 µL). WBC per µL = count x 50.
- Automate it. Let the stage scan many more fields than a person would. Counting error falls as 1 divided by the square root of the number of cells counted, so 10,000 red cells gives about 1 percent; this is exactly why imaging analyzers beat the manual chamber.
- Differential (stretch). Acridine orange at about 10 µg/mL: nuclei glow green, granules and RNA glow orange-red. Collect labeled examples against a manual 100-cell differential on a Romanowsky-stained smear, then train a small classifier. Treat it as a lesson in how hard the 5-part differential is.
- Hemoglobin. The alkaline haematin detergent method (Zander and colleagues, 1984): 20 µL of blood in 3 mL of 0.1 mol/L sodium hydroxide with 25 g/L Triton X-100, read at 574 nm against a reagent blank. Calibrate against your own laboratory CBC hemoglobin (or a commercial hemoglobin control) rather than a textbook absorptivity, and check the original paper before mixing.
- Compare with a real CBC. Run your sample the same day you get a laboratory CBC (any routine physical or a consumer lab panel).
What it teaches: dilution and counting statistics, settling and focus, why platelets are hard (small, clump, slow to settle), and how much labeled data a differential classifier needs.
Module C: plasma separation and colorimetric chemistry (the Chem Disc engine in miniature)
What you build: a membrane that pulls plasma from a fingerstick drop onto paper for a color test, and a cuvette photometer for a cholesterol assay.
Hardware and reagents
- Plasma separation membrane: Pall Vivid Plasma Separation, GX grade (rated for 20 to 30 µL fingerstick samples; ask Pall for a sample sheet), or a glass-fiber plasma separation grade.
- Whatman Grade 1 paper for the reaction zone, patterned with a label printer as in the 2024 Sensors paper or simply cut and laminated.
- Liquid enzymatic reagents from a clinical reagent supplier: GOD-PAP glucose and CHOD-PAP cholesterol (both Trinder chemistry, read near 500 to 505 nm).
- A mini centrifuge to spin heparin microtubes for plasma.
- A 505 nm LED for the module B photometer, and a 3D-printed light box with a white LED and a printed color reference card.
Experiments
- Paper glucose. Spot 2 µL of GOD-PAP reagent on each paper zone and let it dry. Clamp a membrane disc over the zone in a 3D-printed cassette, add one drop of blood, wait for color, photograph in the light box, and convert mean green-channel intensity to an absorbance-like value: A = -log10(G / G_white). Calibrate with dextrose standards in saline, then with your blood against a glucometer, because aqueous standards and blood wick differently.
- Cuvette cholesterol. Spin a heparin microtube, take 10 µL of plasma into 1 mL of CHOD-PAP reagent, incubate as the kit insert says, and read at 505 nm against the kit standard.
- Measure hemolysis yourself. Read the plasma at 415 and 575 nm. Squeeze the finger hard on purpose once and watch the hemolysis signal climb. This is the single most important lesson about fingerstick chemistry.
What it teaches: plasma yield versus hematocrit, why membranes and centrifuges differ, Trinder chemistry, and the hemolysis problem that sank capillary potassium.
Module D (optional): a spinning disc
What you build: a laser-cut or resin-printed microfluidic disc that separates plasma by spinning, with an optical tachometer and strobe.
- Laser-cut PMMA layers bonded with double-sided adhesive (order the cutting online if you have no laser), or a resin-printed disc sealed with tape.
- A small brushless motor with an electronic speed controller driven by an Arduino; an infrared reflective sensor for revolutions per minute; a strobe LED synchronized to the rotation so the camera sees a still disc.
- A closed polycarbonate enclosure with a lid switch that cuts motor power.
- Design references: the electrified lab-on-a-disc with low-cost light sensors (Microsystems and Nanoengineering, 2025) and the open-source 3D-printed centrifuge adaptor (PLOS ONE, 2022).
Experiments: measure plasma yield and hemolysis versus speed and time, try a siphon valve, and measure how imbalance shakes the bench (which is why the Station isolates its imaging bay).
Budget
| Item | Low | High |
|---|---|---|
| Module A potentiostat parts, 20 electrodes, connector, chemicals, glucometer for comparison | $225 | $360 |
| Module B Raspberry Pi 5 with power and storage, printed parts, camera, objectives, motors and controller, LEDs and filter, hemocytometer, stains, used micropipettes and tips, hemoglobin photometer | $330 | $600 |
| Module C membrane, paper, glucose and cholesterol reagents, mini centrifuge, LED, light box | $125 | $310 |
| Safety and collection safety lancets, EDTA and heparin capillary microtubes, sharps container, gloves, wipes, gauze, glasses, bleach | $110 | $200 |
| Subtotal, modules A to C | $790 | $1,470 |
| Module D (optional) disc materials, motor, controller, sensor, enclosure, strobe | $105 | $185 |
| Total with module D | $895 | $1,655 |
If the budget is tight, start with module A plus the safety supplies (about $335 to $560) and add module B next.
Software outline
All of it runs in Python on the Raspberry Pi.
| Script | Job |
|---|---|
potentiostat.py |
Talk to the potentiostat over USB serial; run CV and chronoamperometry; save CSV |
calibrate.py |
Linear and four-parameter fits; detection limit; residual plots |
count_cells.py |
Cellpose segmentation; counts per field; cells per µL with confidence intervals |
photometer.py |
Read the ADS1115; absorbance against blank and dark readings |
compare.py |
Bland-Altman bias and limits, sigma metric against CLIA limits |
The core arithmetic:
import math
import numpy as np
def cells_per_uL(count, area_mm2, depth_mm, dilution):
"""Concentration with a 95% Poisson interval. 1 mm^3 equals 1 microliter."""
vol_uL = area_mm2 * depth_mm
half = 1.96 * math.sqrt(count)
return tuple(x / vol_uL * dilution for x in (count, count - half, count + half))
def absorbance(i_sample, i_blank, i_dark=0.0):
return -math.log10((i_sample - i_dark) / (i_blank - i_dark))
def bland_altman(test, ref):
d = np.asarray(test, float) - np.asarray(ref, float)
bias, sd = d.mean(), d.std(ddof=1)
return bias, bias - 1.96 * sd, bias + 1.96 * sd
def sigma_metric(allowable_error_pct, bias_pct, cv_pct):
"""3 is usable, 6 is world class."""
return (allowable_error_pct - abs(bias_pct)) / cv_pct
Validation protocol (bench version)
| Study | How | Target |
|---|---|---|
| Precision | 20 replicates of one control or pooled sample | CV small enough for a sigma metric of 3 or more |
| Linearity | 5 levels across the range, 2 replicates each | Straight line, R² of 0.99 or better, no curvature at the ends |
| Comparison | At least 20 paired results against a reference (a laboratory result from the same day, or a cleared meter) | Bias and limits inside the CLIA limit |
| Interference | Deliberately hemolyzed or lipemic samples | Know which results move and by how much |
CLIA acceptance limits that took effect in 2025, for the analytes these modules touch: glucose ±6 mg/dL or 8%; cholesterol ±10%; hemoglobin ±4%; RBC ±4%; WBC ±10%; platelets ±25%.
Keep a dated notebook: reagent lots, temperatures, timings, every failed run. A real device's design history file is the same habit at scale.
From bench to Station
| Bench module | Station engine | What carries over |
|---|---|---|
| A: potentiostat and glucose sensor | EC Card | Calibrant-before-sample design, temperature compensation, hemolysis rule |
| B: imaging counter and hemoglobin photometer | Heme Card | Counting statistics, settling time, autofocus, classifier training data |
| C: membrane and Trinder chemistry | Chem Disc and Immuno strips | Plasma yield, interference indices, photometer electronics |
| D: spinning disc | Chem Disc | Separation speed and time, valves, vibration isolation |
When module B counts within 10 percent of a laboratory CBC on five separate samples of your blood, and module A's glucose stays inside ±8 percent of the meter across a week, the bench has done its job: the next money goes to molded consumables and an engineering team, not to more hobby parts.