
Analog i
deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.
Analog i is an open-source printed circuit board by deimoscontrols, from the deimoscontrols/deimos repository on GitHub. It is a 4-layer board of 223 × 95 mm with 568 parts on 412 nets, routed with 5,044 tracks and 833 vias.
It is built around the STM32H743ZIT6, LAN8742A-CZ and INA826AIDRGR, with the TLV333IDBVR-MS, TPS560430XDBVR-MS and PTS060301B100RP100 among its other parts. Its parts include 208 resistors, 206 capacitors, 58 ICs, 35 diodes and 32 transistors. It belongs with the STM32 boards of this library.
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.
| Purpose | |
|---|---|
| support@deimoscontrols.com or https://deimoscontrols.com/contact/ | Questions about the hardware or software |
| Model | I/O Medium | Sample/Control Rate | Input Capabilities | Output Capabilities |
|---|---|---|---|---|
| Deimos DAQ 7.0.x | UDP/IP/Ethernet | 5Hz-8kHz measure & control 5Hz-500Hz Modbus Performance depends on network and host machine | 16x analog, 6x digital | 4x PWM 2x analog 4x GPIO |
| Deimos DAQ 8.0.x | UDP/IP and Modbus/TCP over Ethernet | 5Hz-8kHz measure & control 5Hz-500Hz Modbus Performance depends on network and host machine | 6x voltage, 2x thermocouple, 3x resistance, 4x 4-20mA 2x GPIO, 4x encoder Bus current, bus voltage, and board temperature diagnostics | 4x PWM 2x analog 4x GPIO |
Communication with peripherals is done via message passing on an arbitrary socket. New communication media can be used by implementing the Socket trait.
While the controller can accommodate multiple communication media, a peripheral will typically only implement one method for reliability reasons.
| I/O Medium | Notes |
|---|---|
| UDP/IPV4 | Nominal peripheral I/O; compared to TCP, eliminates packet storm network instability. The controller reasserts the full peripheral state on each cycle, so while UDP allows some packet loss (typically 1e-4 or less), a change in peripheral state is never missed permanently. |
| Unix socket | Inter-process communication option for software peripheral mockups |
| Thread channel | Inter-thread communication option for software peripheral mockups |
Several more socket implementations are planned, including TCP, UDP/IPV6, and thread channel message passing.
Data integration implementations perform I/O and database transactions on a separate core to avoid blocking the main control loop, unless no separate core is available.
| Target | I/O Medium | Notes |
|---|---|---|
| CSV | Disk | Fixed-width row format. Wrap, split, or terminate at end of pre-sized file. |
| DataFrame | RAM | Wrap or terminate at end of preallocated in-memory storage. |
| TimescaleDB (postgres) | TCP or unix socket | Create table & schema or reuse existing. Insert individual rows or write buffered batches for increased total ingestion rate. Set fixed retention duration. |
| Latest-value | RAM | Read the latest data manually from outside the control program. |
| Name | Description | Notes |
|---|---|---|
| Controllers | ||
| SequenceMachine | A flexible state-machine where each state is defined by a time-dependent lookup table sequence with user-defined transition criteria | Allows implementation of essentially arbitrary scheduling and operational logic |
| Pid | Proportion-integral-derivative controller with anti-windup | |
| Hysteretic | Bang-bang controller with persistence counter | |
| Interpolation & Filtering | ||
| Butter | Second-order Butterworth low-pass filter | |
| Polynomial | Fast evaluation of polynomials for calibrations | Includes Levenberg-Marquardt curve-fitting utility |
| Temperature | ||
| TcKtype | K-type thermocouple tables with cold-junction correction | Highly-optimized, low-latency, embedded-compatible implementation based on ITS-90 tables |
| RtdPt100 | 100-ohm platinum RTD temperature-resistance tables | Highly-optimized, low-latency, embedded-compatible implementation based on DIN-43-760 / ITS-90 and IEC 60751 / Callender-Van Dusen |
... in addition to a variety of unremarkable math functions.
The goals of this ecosystem are:
Notable anti-goals:
To prevent unexpected breaking changes, both software and hardware use semantic versioning and, whenever possible, use procedural semver linting to avoid unexpected or unintuitive breakage.
Semantic versioning of hardware is not yet a well-established practice. Here, it is taken to cover both hardware and accompanying firmware, and their interfaces:
Both major and minor hardware versions are accompanied by new hardware project files. Patch hardware versions are applied to the existing hardware project files.
Licensed under either of
at your option.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 90 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C13004, C13007, C13010, C15004, C15008, C15009, C16001, C17004, C17007, C17008, C17009, C17010, C18002, C19003, C19004, C21003 +74 |
| 32 | 10nF C0G 5% | Capacitor_SMD:C_0402_1005Metric | C15005, C15007, C17005, C17006, C19001, C19002, C21001, C21002, C24002, C24003, C27001, C27002, C29001, C29002, C31001, C31002 +16 |
| 32 | MMBFJ113 | Package_TO_SOT_SMD:SOT-23 | Q15001, Q15002, Q17001, Q17002, Q19001, Q19002, Q21001, Q21002, Q24001, Q24002, Q27001, Q27002, Q29001, Q29002, Q31001, Q31002 +16 |
| 26 | 1M | Resistor_SMD:R_0402_1005Metric | R15003, R28001, R30001, R32001, R34001, R36002, R38002, R44001, R46001, R48002, R49002, R50002, R51002, R52002, R55001, R56001 +10 |
| 25 | 3.3k 1% | Resistor_SMD:R_0402_1005Metric | R3005, R21001, R21002, R24001, R24002, R27001, R27002, R29001, R29002, R31001, R31002, R33001, R33002, R35001, R35002, R41001 +9 |
| 20 | OPA196xDBV | Package_TO_SOT_SMD:SOT-23-5 | U15001, U16001, U17002, U18001, U19001, U21001, U24001, U27001, U29001, U31001, U33001, U35001, U36001, U37001, U38001, U39001 +4 |
| 19 | 1uF 0402 | Capacitor_SMD:C_0402_1005Metric | C6001, C6002, C6003, C6004, C6005, C6006, C6007, C6008, C6009, C6010, C6011, C6012, C6013, C6016, C6017, C6018 +3 |
| 18 | 10R 0603 | Resistor_SMD:R_0603_1608Metric | R6001, R6002, R6003, R6004, R6005, R6006, R6007, R6008, R6009, R6010, R6011, R6012, R6013, R6016, R6017, R6018 +2 |
| 17 | BZT52C5V6S | Diode_SMD:D_SOD-323 | D48001, D49001, D50001, D51001, D52001, D53001, D54001, D55001, D56001, D57001, D58001, D59001, D60001, D61001, D62001, D63001 +1 |
| 16 | 10k | Resistor_SMD:R_0402_1005Metric | R6021, R6022, R6028, R6029, R6030, R7002, R7004, R7006, R7009, R7010, R7012, R7019, R8006, R8007, R12002, R12005 |
| 15 | 49.9 | Resistor_SMD:R_0805_2012Metric | R48001, R49001, R50001, R51001, R52001, R55002, R56002, R57002, R58002, R59002, R60002, R61002, R62001, R63001, R64002 |
| 14 | 10nF | Capacitor_SMD:C_0402_1005Metric | C4006, C4008, C6023, C6025, C9007, C9008, C11001, C14001, C18001, C22001, C23002, C23003, C26002, C26003 |
| 12 | 0.1uF 50V 0603 | Capacitor_SMD:C_0603_1608Metric | C3003, C10001, C10005, C11002, C11005, C14002, C14005, C14006, C28001, C30001, C32001, C34001 |
| 12 | 2.2uF | Capacitor_SMD:C_0402_1005Metric | C4001, C4003, C5001, C5003, C9001, C9003, C13001, C13003, C15001, C15003, C17001, C17003 |
| 11 | INA826AIDR | aaa:SOIC127P600X175-8N | IC4001, IC5001, IC8001, IC9001, IC13001, IC15001, IC17001, IC36001, IC38001, IC53001, IC54001 |
| 10 | Purple LED | LED_SMD:LED_0603_1608Metric | D6001, D6002, D6003, D6004, D7001, D7002, D12001, D12002, D12003, D12004 |
| 10 | RNCF0603TKW10K0 10k 0.01% 5ppm/C | Resistor_SMD:R_0603_1608Metric | R4006, R4009, R5006, R5009, R13006, R13009, R17006, R17009, R40001, R42001 |
| 10 | RNCF0603TKY2K00 2k 0.01% 5ppm/C | Resistor_SMD:R_0603_1608Metric | R4002, R5002, R9005, R13002, R15005, R17002, R36001, R38001, R40002, R42002 |
| 9 | 10k 1% | Resistor_SMD:R_0402_1005Metric | R3003, R17001, R17007, R19001, R19002, R37001, R37002, R39001, R39002 |
| 9 | 10uF 50V 0805 | Capacitor_SMD:C_0805_2012Metric | C10002, C10003, C10004, C11003, C11004, C11007, C14003, C14004, C14008 |
| 8 | 10 | Capacitor_SMD:C_0402_1005Metric | R4004, R4005, R5004, R5005, R13004, R13005, R17004, R17005 |
| 8 | 100R 0402 | Resistor_SMD:R_0402_1005Metric | R6024, R12008, R12009, R12010, R12011, R12012, R12013, R13007 |
| 8 | 10k 1% | Capacitor_SMD:C_0402_1005Metric | R4001, R4007, R9004, R9006, R23001, R23002, R26001, R26002 |
| 8 | TLV333IDBVR | Package_TO_SOT_SMD:SOT-23-5 | IC4002, IC4003, IC5002, IC5003, IC13002, IC13003, IC17002, IC17003 |
| 7 | 22.1k 0603 | Resistor_SMD:R_0603_1608Metric | R10001, R11005, R12003, R12004, R12006, R12007, R14004 |
| 6 | 10uF | Capacitor_SMD:C_0603_1608Metric | C5012, C6035, C6040, C6049, C6051, C7009 |
| 6 | 1uF | Capacitor_SMD:C_0402_1005Metric | C4002, C5002, C9002, C13002, C15002, C17002 |
| 6 | WJ15EDGRM-3.81-12P | aaa:WJ15EDGRM-3.81-12P | J3001, J3002, J3003, J3004, J3005, J3006 |
| 5 | BD42540FJ-CE2 | aaa:SOIC127P600X175-8N | IC3002, IC17004, IC20001, IC24001, IC28001 |
| 5 | NTJD4001NT1G | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U4001, U5001, U12001, U13001, U17001 |
| 4 | 10 | Resistor_SMD:R_0402_1005Metric | R9001, R9002, R15001, R15002 |
| 4 | 200R | Resistor_SMD:R_0402_1005Metric | R11001, R14001, R18001, R22001 |
| 4 | 243k 0603 | Resistor_SMD:R_0603_1608Metric | R3002, R11004, R12001, R14005 |
| 4 | 300 | Resistor_SMD:R_0805_2012Metric | R4003, R5003, R13003, R17003 |
| 4 | 33R | Resistor_SMD:R_0402_1005Metric | R7001, R7003, R7005, R7007 |
| 4 | 49.9 | Resistor_SMD:R_0402_1005Metric | R7011, R7013, R7016, R7018 |
| 4 | 75 | Resistor_SMD:R_0603_1608Metric | R7020, R7021, R7022, R7023 |
| 4 | D_Schottky | Diode_SMD:D_SMA | D4001, D5001, D13001, D17001 |
| 4 | MountingHole_for_10-32 | MountingHole:MountingHole_5mm | H2001, H2002, H3001, H3002 |
| 4 | RNCF0603TKY75R0 75R 0.01% 5ppm/C | Resistor_SMD:R_0603_1608Metric | R11002, R14002, R18002, R22002 |
| 3 | 1.5k | Resistor_SMD:R_0402_1005Metric | R7008, R7015, R8005 |
| 3 | 1R 0805 | Resistor_SMD:R_0805_2012Metric | R10003, R11003, R14003 |
| 3 | 2.2uF 50V 0805 | Capacitor_SMD:C_0805_2012Metric | C10006, C11006, C14007 |
| 3 | 220nH 0603 | Inductor_SMD:L_0603_1608Metric | L10002, L11002, L14002 |
| 3 | SMFLP10.0 | aaa:SMFLP100 | LED12001, LED12002, LED12003 |
| 3 | TPS560430XDBVR | Package_TO_SOT_SMD:SOT-23-6 | IC10001, IC11001, IC14001 |
| 2 | 100k 1% | Resistor_SMD:R_0402_1005Metric | R15004, R15006 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R6025, R6026 |
| 2 | 33uH FNR4020S330MT | aaa:INDPM4040X300N | L11001, L14001 |
| 2 | 51k 0603 | Resistor_SMD:R_0603_1608Metric | R3004, R10002 |
| 2 | AM-K-PCB | aaa:AM-K-PCB | J9001, J15001 |
| 1 | 0.1uF 0603 | Capacitor_SMD:C_0603_1608Metric | C8001 |
| 1 | 100R | Resistor_SMD:R_0402_1005Metric | R7017 |
| 1 | 12k | Resistor_SMD:R_0402_1005Metric | R7014 |
| 1 | 12uH FNR4030S120MT | aaa:INDPM4040X300N | L10001 |
| 1 | 4.7nF | Capacitor_SMD:C_0402_1005Metric | C7012 |
| 1 | 470pF 0402 | Capacitor_SMD:C_0402_1005Metric | C7003 |
| 1 | ADR4525 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U6002 |
| 1 | ATL431BQDBZR | Package_TO_SOT_SMD:SOT-23 | U3001 |
| 1 | Barrel_Jack PJ-202BH | Connector_BarrelJack:BarrelJack_Horizontal | J8001 |
| 1 | CDNBS08-SLVU2.8-4 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | D7003 |
| 1 | Conn_02x07_Odd_Even | Connector_PinHeader_1.27mm:PinHeader_2x07_P1.27mm_Vertical_SMD | J6001 |
| 1 | GZ2012D601TF | Inductor_SMD:L_0805_2012Metric | FB7001 |
| 1 | H1102NLT | aaa:SOIC127P940X622-16N | T7001 |
| 1 | INA181A2 | Package_TO_SOT_SMD:SOT-23-6 | U8001 |
| 1 | LAN8742A | Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.5x2.5mm_ThermalVias | U7001 |
| 1 | MRF6432(2512)LR006FTS 0.006 1% | Resistor_SMD:R_2512_6332Metric | R8004 |
| 1 | NX2016SA-25.000M-STD-CZS-1 | Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mm | Y7001 |
| 1 | PTS060301B100RP100 | Resistor_SMD:R_0603_1608Metric | R3001 |
| 1 | RCH_RC01133 | aaa:RCHRC01133 | J13001 |
| 1 | REF35102QDBVR | aaa:SOT95P280X145-6N | IC5004 |
| 1 | STM32H743ZIT6 | aaa:QFP50P2200X2200X160-144N | IC6001 |
| 1 | SiT1602BI-21-33S-48.000000 | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y6001 |
| 1 | TS-1187A-B-A-B | aaa:TS1187ABAB | S6001 |
| 1 | TestPoint_GND_1 | TestPoint:TestPoint_Pad_D1.0mm | TP8002 |
| 1 | XG4C-2631 | aaa:SHDR26W70P254_2X13_4030X820X900P | J3007 |
| 1 | logo_minimal_25p4_by_20p3_mm | logo_lib:logo_minimal_12p7_by_10p9_mm | -1001 |

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

deimoscontrols/deimos
Realtime data acquisition and controls ecosystem, including hardware, firmware, and software.

LVladymyr/WAFEL-Evaluation-Board
Evaluation board for TI BQ76952 multi-chemistry BMS IC

inoa-io/satellite
Satellite Hardware Project and Documentation


MissouriMRDT/RoveNode
STM32 microcontroller daughterboard that supports Ethernet, CANbus, GPIO headers, status LEDs, and runs RoveOS.


ma-ale/usbc_soldering_iron
synched from https://git.alemauri.eu/alema/usbc_soldering_iron

Queens-Rocket-Engineering-Team/gse-control-node
The GSE control node is the control PCB for GSE systems to integrate with launch control. This includes actuator control, fan control, and a load cell reading.

neuroidss/FreeEEG32-beta
as FreeEEG32 plus alpha1.5 test passed, FreeEEG32 project changed to beta version
It measures 223 × 95 mm and has 4 copper layers, 1.6 mm thick.
568 parts, built around the STM32H743ZIT6, LAN8742A-CZ, INA826AIDRGR and TLV333IDBVR-MS. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the deimoscontrols/deimos repository on GitHub, at the commit this page was made from: the board is hardware/boards/deimos_daq_rev7/analog_i.kicad_pcb and its schematic hardware/boards/analog_i_rev4/analog/3wire_amp.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask deimoscontrols before reusing the design.