trescorder
From Noah.org
Revision as of 11:39, 25 May 2011 by Root (talk | contribs) (Created page with 'Category:Engineering '''Trèscorder''' (''very corder'') -- an implementation of a Tricorder. == host computer == * protocol API ** Think '''functional''' interface - avoid…')
Trèscorder (very corder) -- an implementation of a Tricorder.
Contents
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
- separate process/daemon to pump data to FIFO, file, memmapped, kqueue?
Host interface
- USB (as ADC)
- Serial
- WiFi
- BlueTooth
- Ethernet
power
- 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.
- boost converter from 5 V up to 24 volts
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