Jump to: navigation, search

Trèscorder (very corder) -- an implementation of a Tricorder.

host computer

  • protocol API
    • Think functional interface - avoid state
    • Think asynchronous messages/events - avoid blocking
    • simple flat message/event byte structure for communications (think JSON).
    • Simple base-class API wraps message structures.
    • Utility classes wrap async communications to provide blocking style command/response interfaces (with timeouts).
  • Robust logging of data
    • separate process/daemon to pump data to FIFO, file, memmapped, kqueue?
      • circular queue/fixed size FIFO
    • separate process to stream FIFO to separate archive logger
      • local flat file log
      • local database
      • remote data sink

Host interface

  • USB (as ADC)
  • Serial
  • WiFi
  • BlueTooth
  • Ethernet


  • base voltage from 2S LiPoly gives 7.4 VDC regulated to 5V
  • monitor capability to source requested current.
  • power from USB
  • External DC power input
  • charge LiPoly cells
    • boost converter from 5 V up to 24 volts
      • If taken only from USB current then this will take forever.
    • charge LiPoly on host so it can operate disconnected.
    • pass-through power AND charging control so host can charge batteries in modules.

Host Protocol

  • user selects protocol
  • default protocol should be no-brainer
  • configuration should not require high-level protocol
  • always fall-back to simple serial configuration protocol
  • should be easy to bit bang
  • should be easy to read as ASCII or hex (which? both?)
  • fallback should be ASCII

client interface

  • provide DMA-like mechanism for bulk import of data
    • cache streamed input data until host can catch up.
    • record to removable flash.

client modules

  • AD
    • 8 bit, 12 bit, 16 bit, etc.
    • fake, RC time measure
    • R measurement
      • temperature modules fall out of this, but need their own category
  • Abstract categories for sensors that are really instances of AD, but need extra options or logic to condition measurements (for example, thermocouple probes)
  • amplifiers -- opamp prefilter to AD
    • differential, dual input (need ground reference?), calibrated for sensors like strain gauges.
    • differential, single input vs. internal voltage reference
    • integrating
  • voltage references
  • IR reflectivity user provides GND, Vcc. Vout is output. Prefilter for AD or provide onboard RC time measure?
  • Ethernet
  • CAN
  • I2C
  • Serial TTL
  • Serial True RS-232
  • counters
    • integrating counter
    • counter with precision time base (frequency counter)
  • Pressure
  • Ph
  • audio
  • magnetic compass
  • voltage
  • current
  • digital logic (5v, 3.3v, 2v, etc. autorange)
  • digital signal generator
  • analog signal generator