Skip to content

Luxnode V0 Prototype Hardware

Luxnode V0 is a practical bench-to-handheld prototype, not a productized medical/food-safety instrument. The build goal is stable, repeatable spectra from liquids, leaves, and surfaces using swappable optical modules before committing to custom PCBs.

Architecture

The V0 hardware stack is:

  1. Adafruit ESP32-S3 Reverse TFT Feather as the handheld core.
  2. GroupGets Hamamatsu spectrometer breakout mounted inside each optical module.
  3. Temporary LuxPort harness using 0.1 inch jumper/header wiring plus STEMMA/Qwiic for module ID/sensors.
  4. TLC5947 board for many low-current LED channels.
  5. AL8805 constant-current LED boards for high-power XP-E2 and starboard emitters.
  6. 3D-printed matte-black optical modules, with TPU/foam gaskets and calibration caps.

Use C12880MA as the default V0 spectrometer. Hamamatsu lists the C12880MA at 340-850 nm, 288 pixels, and 15 nm max spectral resolution. Use the C16767MA only for enclosed UV experiments; Hamamatsu lists it at 190-440 nm and 8 nm max spectral resolution. The same handheld core can support both, but the safety and optical assumptions differ.

V0 Module Set

Liquid Cuvette Module

Purpose: kombucha, beer, tea, water, dyes, and calibration liquids.

Optical layout:

  • 10 mm disposable cuvette in a black, light-tight slot.
  • White LED or high-CRI LED on one side.
  • Spectrometer input aligned with the cuvette centerline on the opposite side.
  • Optional narrow-band LEDs at 405/430-ish, 455, 660, 730, and 850 nm.
  • Sliding dark cap for dark readings.

Measurement sequence:

  1. Dark: cap closed, all LEDs off.
  2. Blank: water or matching blank medium.
  3. Sample: liquid sample.
  4. Compute absorbance as A(lambda) = -log10((sample - dark) / (blank - dark)).

Food/liquid note: printed plastics should not touch drink samples. Keep liquids inside disposable cuvettes or glass vials.

Leaf Clamp Module

Purpose: relative chlorophyll/stress indices and repeatable plant tracking.

Optical layout:

  • Matte-black upper/lower clamp with soft TPU pads.
  • White LED reflectance illumination.
  • 660 nm red LED and 730/850 nm far-red/NIR-ish LEDs for plant features.
  • Optional 405/455 nm excitation only in an interlocked fluorescence sub-mode.
  • White reference insert and dark cap.

Extract first-pass features such as R700, R730, R750, R800-ish, R750/R700, and red-edge slope. Treat results as relative until calibrated against SPAD/chlorophyll references.

Surface Reflectance Probe

Purpose: materials, powders, plastics, fruit skin, leaves without clamping.

Optical layout:

  • 0 degree detector bore aimed normal to the target.
  • Side illumination channels angled roughly 45 degrees.
  • Replaceable white reference and dark caps.
  • Shroud lip or foam ring to reject ambient light.

UV/Fluorescence Module

Purpose: dyes, chlorophyll fluorescence experiments, and C16767MA UV work.

Minimum V0 requirements:

  • Normally-closed lid switch or magnetic reed switch in series with firmware interlock.
  • Default firmware state keeps UV channels off after boot, reset, crash, or module disconnect.
  • Visible "UV armed" indicator driven independently from the UV channel.
  • Mechanical baffles so there is no direct line of sight to 310/365/385/405 nm emitters.
  • Long-pass or excitation-blocking filters before the spectrometer for visible fluorescence work.

Do not use the C16767MA/UV LEDs in an open bench fixture. 310 nm and other UVC/UVB sources need the strictest handling.

Wiring Strategy

The CSV files under hardware/wiring/ are the source of truth for prototype wiring. The important split is:

  • Spectrometer timing and video stay on short wires between Feather and GroupGets breakout.
  • TLC5947 handles many low-current LEDs and should use common ground with the Feather.
  • AL8805 boards power high-current LEDs from a separate LED rail while sharing control ground.
  • Module ID and optional temperature sensors use I2C over STEMMA/Qwiic.

For the GroupGets sample firmware lineage, the original Arduino example maps TRG, ST, CLK, VIDEO, WHITE_LED, and LASER_404 to Arduino analog header labels A0-A5. On the ESP32-S3 Feather, use the proposed GPIO mapping in luxnode-v0-core-wiring.csv and verify actual breakout silkscreen labels before applying power.

Power Notes

  • Feather logic is 3.3 V.
  • GroupGets breakout expects 5 V input and provides the needed local rails on-board.
  • The Feather 3.3 V regulator is not the LED power supply. Use USB/BAT for logic and a separately fused LED rail for high-power LEDs.
  • Add a shared ground between Feather, GroupGets, TLC5947, and AL8805 boards.
  • Add inline current limiting/fusing on LED rails during bench work.
  • Keep spectrometer video wiring short and away from AL8805 switching loops.

Prototype Assumptions To Verify

  • The V0 pin names are logical net names. Before powering, match them to the actual GroupGets breakout silkscreen and schematic revision in hand.
  • The C16767MA breakout is treated as electrically similar to the C12880MA breakout at the LuxPort level, but the optical module must be UV-rated and enclosed.
  • The Feather ADC input must never see more than the ESP32-S3-safe analog range. Measure VIDEO with a scope or DMM during a low-light test before direct connection.
  • The OpenSCAD dimensions are first-print geometry, not production CAD. Measure the exact Feather, breakout, cuvettes, LED boards, screws, magnets, and heat-set inserts before printing final parts.
  • The V0 harness uses jumper/header wiring for speed. A carrier PCB should replace it once spectra are stable.

Preorder Pricing

The website should advertise the single-machine V0 preorder as the Luxnode VIS DevKit, not the literal cost of every extra part in the lab inventory. Using the current receipts and a 2026-05-31 CAD to USD rate of 0.724867, the estimated per-unit VIS cost is 472.89 USD. Applying the requested rule, ceil(cost * 1.30 / 100) * 100, gives a preorder price of 700 USD.

For transparency, the UV+VIS prototype bundle prices to 2100 USD, while a literal bundle of all visible orders in Plan/ prices to 4400 USD. The machine-readable calculation lives in hardware/bom/luxnode-v0-pricing.json.

UV LED Safety

UV LEDs are not "just LEDs" in this build. CDC notes that UV radiation can come from artificial sources and that overexposure can harm skin and eyes. FDA specifically warns that UVC radiation can cause severe skin burns and eye injuries and says not to look directly into a UVC source, even briefly.

V0 rules:

  • No UV channel may energize unless the module lid is closed and the firmware sees the interlock.
  • No bare-eye viewing of 310/365/385/405 nm emitters or reflected spots.
  • Wear UV-rated wraparound eye protection during debugging.
  • Use matte-black enclosed fixtures and avoid reflective metal interiors.
  • Add a physical disconnect or jumper for UV LED power while developing non-UV firmware.
  • Put a warning label on any module with UV emitters.
  • Prefer 405/455 nm visible/violet excitation first; reserve 310/385 nm for sealed experiments.

3D Printing Notes

Recommended materials:

  • Matte black PETG for optical internals.
  • Black PLA+ for early fit checks.
  • TPU 95A for gaskets, leaf pads, and probe lips.
  • White/gray PETG for exterior shell parts.
  • M2/M3 heat-set inserts for repeated assembly.

Print orientation:

  • Shell: back down, support only for connector/display cutouts if needed.
  • Cuvette module: cuvette slot vertical if your printer bridges poorly; otherwise flat for clean optical bore alignment.
  • Leaf clamp: jaws flat, TPU pads separate.
  • Reflectance probe: face down for a flat target shroud; drill/ream LED bores after printing if required.

All CAD files are starter geometry. Fit-check against the actual Feather, GroupGets breakout, cuvette brand, LED boards, and inserts before relying on dimensions.

Sources

  • Local plan source: /Users/luismantilla/Desktop/LuxNode/Plan/DRAFT PLAN (to be modified).pdf and DigiKey order acknowledgements SALESORDER_EMAIL99489453.pdf, SALESORDER_EMAIL99494425.pdf.
  • Hamamatsu C12880MA product page: https://www.hamamatsu.com/us/en/product/photometry-systems/spectrometer/mini-spectrometer/C12880MA.html
  • Hamamatsu C16767MA product page: https://www.hamamatsu.com/us/en/product/photometry-systems/spectrometer/mini-spectrometer/C16767MA.html
  • GroupGets C12880MA Breakout Board v2 datasheet via DigiKey: https://www.digikey.com/htmldatasheets/production/8370265/0/0/1/bo-hama-c12880-v2.pdf
  • GroupGets C12880MA example repository: https://github.com/groupgets/c12880ma
  • Adafruit ESP32-S3 Reverse TFT Feather pinouts: https://learn.adafruit.com/esp32-s3-reverse-tft-feather/pinouts
  • Adafruit TLC5947/TLC59711 wiring guide: https://learn.adafruit.com/tlc5947-tlc59711-pwm-led-driver-breakout/connecting-to-the-arduino
  • SparkFun/Diodes AL8805 datasheet via DigiKey: https://www.digikey.com/en/htmldatasheets/production/764490/0/0/1/al8805
  • CDC ultraviolet radiation facts: https://www.cdc.gov/radiation-health/data-research/facts-stats/ultraviolet-radiation.html
  • FDA ultraviolet radiation guidance: https://www.fda.gov/radiation-emitting-products/tanning/ultraviolet-uv-radiation