Skip to the content
PCBKitNew board
2 layers90 × 90 mmHackerDAQ Digital IO Card, the printed circuit board in 3D

HackerDAQ Digital IO Card

multiplemonomials/HackerDAQ2

A Data Acquisition System for Hackers

Size
90 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
252
Nets
234
Pads
977
Tracks, vias
100, 7
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Mar 2026
Updated
6 Nov 2026

Overview

HackerDAQ Digital IO Card is an open-source printed circuit board by multiplemonomials, from the multiplemonomials/HackerDAQ repository on GitHub. It is a 2-layer board of 90 × 90 mm with 252 parts on 234 nets, routed with 100 tracks and 7 vias.

It is built around the SN74ACT17PWRQ1, SN74AHC1G125DBV and LM358, with the LM311DRG, M95320-RMN6TP and RVQ040N05TR among its other parts. Its parts include 107 resistors, 52 capacitors, 40 transistors, 37 ICs and 11 diodes.

Main components

8

README

README.md

HackerDAQ: A Data Acquisition System for Hackers

HackerDAQ is a work-in-progress project to create an open-source data acquisition system. The project is currently in its early stages, but the goal is to create something that can be used in place of industrial DAQ systems to record high-quality data.

Background and Motivation

The tech industry is in kind of a weird place when it comes to data acquisition (DAQ) systems. Suppose you have some sort of mechanical system you want to work with -- maybe a science experiment, maybe an industrial process, maybe an automation system, who knows. You have some sensors that you need to read and record the data from, and maybe you want to control some outputs as well, like turning the power on to some valves/solenoids/motors in response to a sensor reading. To do this, you need a DAQ system. However, an odd divide exists in the DAQ industry right now, between the incredibly professional and the almost insultingly hobbyist.

At one end of the spectrum, there are industrial-grade offerings from companies like National Instruments, Beckhoff, and Dewesoft. These systems are capable, flexible, and reliable -- but also extremely expensive. Even an entry-level NI system will run you well into the mid 4 figures, and other manufacturers are similar or worse. What if you can't afford that? Well, in many cases, your only option is getting an Arduino or Raspberry Pi and some basic dev boards for the sensors you need, and then hacking together enough software to log the data over serial. I've seen this many times, and while it does sometimes work, by doing it, you give up a lot of niceties like defined accuracy, noise resistance, a constant sample rate, etc.

Meanwhile, technology has moved on, and we're now in an era where highly accurate, multi-input Analog-Digital Converter (ADC) chips can be purchased very cheaply. This project has selected the AD7770 from Analog Devices, a 21-bit, 32kHz, 8-input ADC which can be purchased for about $15 each at quantity. Using this chip enables DAQ devices to be made quite simply and cheaply, as one basically just needs to attach different front-ends to this chip to convert the signals based on the sensor being sampled. With the existence of this chip and others like it, there is really no justification for DAQ devices to cost thousands of dollars unless you need better accuracy or sampling rate than these types of ADCs can provide.

Basic Overview

Main unit render

Voltage card render

The HackerDAQ consists of a main board with a microcontroller on it and basic circuitry such as power supplies, an Ethernet port, and a MicroSD slot. The main board would have a number of connectors for cards to plug in, each of which carries power, GPIOs, and SPI bus signals.

Cards can be designed for many different applications, including digital I/O and many different types of analog sensors. The user can select only the cards they need for the application they have in mind, keeping the base cost of the system down and allowing the user to get exactly the I/O they need. The SPI bus was selected for communications with these cards as it is fast, there are a wide range of chips available that speak it, and it supports bussing together multiple chips on the card over one set of bus lines. In a lot of ways, these cards are similar to existing sensor interconnect systems like SparkFun Qwiic / Adafruit Stemma / Digilent Pmod, where you can buy various task-specific modules and connect them to a motherboard. This would just be focused more on DAQ stuff and be more industrial-grade.

In terms of software, the HackerDAQ would include firmware that would run on the board and interface with all the cards, send data to connected user interface(s), and receive and execute commands. On the PC side, there would be a basic program that can display and record data. For users who don't want to program, they can see the live data in the GUI, record it to a file, and manually control outputs. For users who are a little more comfortable with programming, they could write scripts (likely python) that would run on the host machine and be able to control the DAQ. And for users who have embedded software experience, they could write their own code that extends or replaces the firmware on the actual DAQ!

Key Decisions

AreaDecisionWhy
Physical architectureMain board + swappable cards
  • Avoids need to create multi-function inputs which would increase complexity
  • Makes system cheaper if you only need a few types of inputs
  • Avoids need to mess around with external amplifiers or other circuitry for sensors that need them -- they can be built directly into the card
  • Allows for much wider range of off-the-shelf supported functionality
CPUNXP MCX Alpha Microcontroller running Mbed OS
  • Using a microcontroller, rather than a linux CPU + supporting circuitry, keeps the cost down
  • Using an RTOS rather than a full OS makes microsecond-level timestamping and SPI transaction scheduling possible
  • This MCU has two CPU cores at 150 MHz, plus a powerful DMA controller, a fast internal bus, and lots of SPI connectivity
SPI bus topology2 card connectors per SPI bus, one leader card and one follower. All cards on a given bus must share the same polling rate.
  • MCU does not have enough pins for each of the 8 slots to have its own dedicated SPI bus, so there needs to be some way for cards to share a bus.
  • In most real systems, you generally have a lot of sensors at the same data rate, so I do not expect this to be too crippling of a limitation
Connection to hostEthernet, potential upgrade later to add USB
  • Ethernet provides high quality electrical isolation and is highly noise-immune, so it's great for industrial applications
  • Ethernet peripherals in microcontrollers are well-optimized for high data rate applications
  • Allows the DAQ to connect to a larger network and interact with multiple machines, plus receive time via NTP
Local recordingMicroSD (SPI based)
  • Important to have a method of locally recording data for standalone applications
  • Mbed has a preexisting driver for MicroSD cards in SPI mode
  • SDIO mode is faster but driver support is less present (though not totally hopeless either)
Card identification4kiB SPI EEPROM on the card (thinking M95320-RMN6)
  • Allows SW to largely autoconfigure itself based on the cards that are physically installed
  • Provides a convenient place to store calibration data!
Card to sensor connectorsMolex Mini-Fit
  • I have used these connectors in the past and they are really balanced all-around:
    • Retention clip ensures they can't vibrate loose
    • Rated for ~8A continuous per pin
    • Good size: not so small that they are hard to work with, but not so big that they make your entire system bigger
  • Big downside is that the crimp tool costs $400. Could mitigate by supplying one wire harness with each card that users can splice their own sensor wires to
Card to main board connector15-pin, 2 row D-Sub (DA-15)
  • Very cheap
  • Screws provide relatively beefy mechanical retention
  • Not a size used in consumer hardware so unlikely to be plugged in to, say, a monitor accidentally
  • Still uses standard D-sub hardware so it should be possible to get premade cables, crimpers, etc without too much trouble

The Main Unit

The main unit contains a high performance MCX Alpha microcontroller with Ethernet, multiple SPI busses, a MicroSD slot, and a number of extra GPIO pins.

Data Recording

Both the Ethernet and the MicroSD card are available for recording data. The Ethernet is for livestreaming when you want to view, record, and process data on a PC, while the MicroSD card would be used for simple applications where you just want to record locally, and could also be configured as a backup so that data isn’t lost if the ethernet connection drops out.

Power

The main unit takes in and regulates power for the HackerDAQ system. It has a DC input which can handle up to 8A at a variable voltage (9-24V). This voltage, referred to as Vsupply, is sent through the connectors into the cards for use as a higher voltage excitation supply when needed. High-current logic rails are provided for cards and attached devices to use -- currently 5V@8A and 3.3V@8A.

Card Ports

The main unit has four SPI busses. Each SPI bus provides two card ports, a "leader" port and a "follower" port. The leader and follower ports on a given bus can have different cards connected, but must operate at the same speed as SPI transactions for all cards will happen at a fixed cycle rate for the bus.

Expansion Port

Some of the microcontroller I/O pins that are not connected to one of the SPI busses are routed to the expansion port. This will include some digital pins (with I2C/PWM/UART) and some analog pins. Advanced users who are comfortable programming embedded C++ can add write their own software that uses these pins. This allows the HackerDAQ to be used as a jumping-off point for one's own projects!

Also, SWD debug pins and reset pin are broken out to an ARM SWD debug connector, for use with a debug tool like a J-Link or MCU-Link.

Open Questions

  • Is it worth adding a battery-backed RTC so that the time can be maintained if there is a power outage?
  • Does PoE support make sense?

Card Interface

The main unit would provide the following signals to each card:

  • SPI signals (MOSI, MISO, SCLK)
  • 3x CS lines
    • This allows having 2 addressable chips on the card side, plus the EEPROM
    • 8.192MHz clock signal for the ADC
    • +12V, +5V, and +3.3V digital rails
    • A data ready line from the card
    • A sync line to the card

Analog Card Basics

Each analog card would contain the same basic DNA:

  • Analog front-end, with ESD protection and passive filtering
  • Instrumentation amplifier, if needed
  • Voltage reference, LTC6658 on cards that need to supply precision excitation voltage, other cheaper option (or built-in ref) if only voltage input is needed
  • Multi-input ADC with SPI interface
  • SPI EEPROM that stores the card's identity information and calibration

Parts

252
QtyValueFootprintReferences
321µFCapacitor_SMD:C_0603_1608MetricC1, C2, C10, C11, C14, C15, C16, C17, C20, C21, C22, C23, C26, C27, C28, C29 +16
242N7002Package_TO_SOT_SMD:SOT-23Q3, Q10, Q11, Q14, Q15, Q16, Q19, Q20, Q21, Q24, Q25, Q26, Q29, Q30, Q31, Q34 +8
20100nFCapacitor_SMD:C_0603_1608MetricC4, C5, C12, C13, C18, C19, C24, C25, C30, C31, C32, C37, C38, C43, C44, C49 +4
1710kResistor_SMD:R_0603_1608MetricR6, R13, R23, R27, R29, R40, R42, R53, R55, R66, R68, R79, R81, R92, R105, R106 +1
161Resistor_SMD:R_0603_1608MetricR2, R15, R21, R22, R36, R37, R49, R50, R62, R63, R75, R76, R88, R89, R101, R102
16133kResistor_SMD:R_0603_1608MetricR8, R9, R19, R24, R34, R38, R47, R51, R60, R64, R73, R77, R86, R90, R99, R103
162.2Resistor_SMD:R_0603_1608MetricR1, R3, R16, R17, R31, R32, R44, R45, R57, R58, R70, R71, R83, R84, R96, R97
16RT9624CGQWAProject Library:DFN-8-1EP_2x2mm_P0.5mm_EP0.6x1.2mm_LeadsExtendedU1, U2, U7, U8, U11, U12, U15, U16, U19, U20, U23, U24, U27, U28, U31, U32
16RVQ040N05Package_TO_SOT_SMD:SOT-23-6Q1, Q2, Q7, Q8, Q12, Q13, Q17, Q18, Q22, Q23, Q27, Q28, Q32, Q33, Q37, Q38
814.7kResistor_SMD:R_0603_1608MetricR10, R20, R35, R48, R61, R74, R87, R100
8150Resistor_SMD:R_1206_3216MetricR11, R12, R28, R41, R54, R67, R80, R93
830kResistor_SMD:R_0603_1608MetricR5, R18, R33, R46, R59, R72, R85, R98
833.2kResistor_SMD:R_0603_1608MetricR7, R25, R39, R52, R65, R78, R91, R104
875kResistor_SMD:R_0603_1608MetricR4, R14, R30, R43, R56, R69, R82, R95
8AA3528SURSKColorLEDs:AA3528D1, D2, D3, D4, D5, D6, D7, D8
8LM311DRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3, U5, U10, U14, U18, U22, U26, U30
8LM358Package_SO:TSSOP-8_3x3mm_P0.65mmU6, U9, U13, U17, U21, U25, U29, U33
3BAT54WPackage_TO_SOT_SMD:SOT-323_SC-70D9, D10, D11
3MiniFit_Jr_5569_08A2Project Library:Molex_Mini-Fit_Jr_5569-08A2_2x04_P4.20mm_HorizontalJ1, J2, J3
233Resistor_SMD:R_0603_1608MetricR26, R107
2MCP23S17_SSPackage_SO:SSOP-28_5.3x10.2mm_P0.65mmU34, U35
1LD15S33E4GX00LFProject Library:Amphenol_LD15S33E4GX00LFJ9
1M95320-RMN6Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1SN74ACT17PWRPackage_SO:TSSOP-14_4.4x5mm_P0.65mmU36
1SN74AHC1G125Package_TO_SOT_SMD:SOT-23-5U38
1~Project Library:HackerDAQ LogoLG1

Questions

How big is the HackerDAQ Digital IO Card PCB?

It measures 90 × 90 mm and has 2 copper layers, 1.6 mm thick.

What parts does the HackerDAQ Digital IO Card use?

252 parts, built around the SN74ACT17PWRQ1, SN74AHC1G125DBV, LM358 and LM311DRG. 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.

Where can I download the HackerDAQ Digital IO Card KiCad files?

From the multiplemonomials/HackerDAQ repository on GitHub, at the commit this page was made from: the board is hardware/High Current Output Card/HackerDAQ Digital IO Card.kicad_pcb and its schematic hardware/Common Sheets/5V_To_3.3V_LDO.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the HackerDAQ Digital IO Card design in my own project?

Its repository states no licence, so its author keeps all rights: ask multiplemonomials before reusing the design.

More from multiplemonomials/HackerDAQ

3
  • 4 layers244.5 × 91 mmHackerDAQ Main Unit, the printed circuit board in 3D

    HackerDAQ Main Unit

    multiplemonomials/HackerDAQ

    A Data Acquisition System for Hackers

    190 parts2
  • 2 layers90 × 90 mmHackerDAQ Voltage Card, the printed circuit board in 3D

    HackerDAQ Voltage Card

    multiplemonomials/HackerDAQ

    A Data Acquisition System for Hackers

    92 parts2

Similar boards

  • 4 layers104.5 × 91 mmMbed ce ci shield v2, the printed circuit board in 3D

    Mbed ce ci shield v2

    mbed-ce/mbed-ce-ci-shield-v2

    New version of the Mbed OS CE CI Shield -- a shield containing a logic analyzer and components to test features like I2C, SPI, and PWM.

    176 parts7CERN-OHL-P-2.0
  • 2 layers81.1 × 45.3 mmLC meter, the printed circuit board in 3D

    LC meter

    PA2ER/LC-meter

    induction and capacity meter with pic controller.

    43 parts3
  • 4 layers53.5 × 52 mmPWM, the printed circuit board in 3D

    PWM

    francibat/academic-projects-electronics

    Collection of materials, laboratory work, and projects developed during the bachelor's degree program.

    36 parts
  • 2 layers136 × 104.8 mmFcp control pcb, the printed circuit board in 3D

    Fcp control pcb

    supermileage/fcp-control-pcb

    98 parts
  • 4 layers79.2 × 152.4 mm401 VCO, the printed circuit board in 3D

    401 VCO

    sgreene30/Synthesis-Projects

    144 parts
  • 4 layers94 × 50.8 mmUlx3s, the printed circuit board in 3D

    Ulx3s

    drandyhaas/KiCadRoutingTools

    A set of Python/Rust tools to aid routing in KiCad

    235 parts744MIT
  • 4 layers120 × 100 mmBsc, the printed circuit board in 3D

    Bsc

    shining-man/bsc_hw

    Hardware battery safety controller (BSC)

    286 parts31MIT