Skip to the content
PCBKitNew board
2 layers191.8 × 140.3 mmAnalog submodule, the printed circuit board in 3D

A simple low-speed Bluetooth enabled DAQ

Size
191.8 × 140.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
214
Nets
159
Pads
629
Tracks, vias
1,722, 251
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
31 Jan 2026
Updated
2 May 2026

Overview

Analog submodule is an open-source printed circuit board by PatrickAJoseph, from the PatrickAJoseph/bluetooth-daq repository on GitHub. It is a 2-layer board of 191.8 × 140.3 mm with 214 parts on 159 nets, routed with 1,722 tracks and 251 vias.

It is built around the TL084, DAC101C081CIMK and TLV9002IDR-MS, with the TLV9004IDR-MS, CD4051BE and AMS1117-5.0 among its other parts. Its parts include 132 resistors, 51 capacitors, 14 ICs, 11 connectors and 4 transistors.

Main components

7

README

README.md

bluetooth-daq

A simple low-speed Bluetooth enabled DAQ consisting of HV/LV voltage, current measurement, LV analog I/O, resistance measurement, UART, I2C & SPI communication interfaces and a high speed ADC combining multiple functionalities within one device. The device can be operated through a mobile/PC application via Bluetooth or through RS-485 interface. 16 devices can be connected to the RS-485 interface.

Goal of the product

  1. Reduce the number of induvidual electronic test equipment required for electronic hardware/software development.

  2. Combine commonly used electronic test functions within a single device

  3. Enable versatile interface to the device (RS485, Bluetooth, Web) and test automation support to reduce effort of manual testing.

Features of the product

Hardware features

  1. 16 low-speed logic level digital inputs (+/ 3.3V) (maximum sampling rate of 100 SPS)
  2. 16 low-speed logic level digital outputs (0-3V) with maximum current limit of 5mA / channel (maximum sampling rate of 100 SPS).
  3. 2 channel bi-polar differential high-resolution analog inputs (+/-, 50V, 6 digits) with maximum sampling rate of 2 kSPS/channel in single channel sampling mode.
  4. 2 channel high speed bipolar differential analog acquisition channels (maximum input signal frequency of 10kHz)
  5. 1 UART communication instance (UART_TX, UART_RX) with maximum baud rate of 115200.
  6. 1 I2C communication instance (I2C_SDA, I2C_SCL) with maximum clock speed of 400 kHz.
  7. 1 SPI communication instance (SPI_MOSI, SPI_MISO, SPI_nCS, SPI_SCLK) with maximum clock speed of 4 MHz.
  8. 8 channel differental bi-polar low voltage analog inputs +/- 15V range.
  9. 2 current measurement inputs (+/- 50V common mode voltage, and maximum current of 3A).
  10. 2 resistance measurement inputs ( 1 ohm to 1 MOhm ).
  11. 2 thermistor temperature measurement channels.
  12. 8 low speed DC analog outputs.
  13. RS-485 interface for remote control.

Software features

  1. RS-485 control of device through PC.
  2. Bluetooth control of device from PC/Mobile application.
  3. Firmware upgrade through Bluetooth using TI Simplelink Connect app.
  4. Simple Web GUI interface for control of device.
  5. Python scripting support for remote control of device from PC.
  6. LabVIEW support for the device.

Hardware block diagram

alt text

High voltage analog inputs

The device provides 2 high voltage analog inputs with a range of +/- 50V and maximum input frequency of 200 Hz. The high voltage analog input front end attenuates the input voltage signal and adds bias to meet voltage level requirements of the sigma-delta ADC inputs.

Current inputs

The device provides 2 current inputs with common mode voltage upto +/- 50V and a range of +/- 3A. The voltage drop across the current measurement terminal is 0.1V/A.

Low voltage analog inputs

The device provides 8 channel +/- 15V low voltage analog inputs. Maximum input frequency per channel is set to 200 Hz.

Resistance measurement

The device provides 2 channel resistance measurement feature. The supported resistance measurement range is 1 ohm to 1 MOhm.

High speed acquisition channels

The device provides 2 single ended high speed analog signal acquisition channels with sampling frequency of 200 kSPS per channel, limiting the combined input signal frequency to 10kHz.

Thermistor temperature measurement channels

The device provides 2 thermistor temperature measurement channels. The reference voltage for the thermistor interface is 3.3V and reference resistance is 10k. The device comes with a calibration table for a 10K NTC. If user uses any other NTC, then, the calibration table for thermistor has to be manually entered by the user via software.

Sigma-Delta ADC

The heart of most of the analog to digital conversions is carried out by a 24-bit sigma-delta ADC (ADS131M02: https://www.ti.com/lit/ds/symlink/ads131m02.pdf?ts=1769953054375&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FADS131M02).

The input to each channel of the ADC is multiplexed with the help of analog multiplexer (CD4051: https://www.ti.com/lit/ds/symlink/cd4051b.pdf)

Low speed analog outputs

The device provides 8 analog outputs with range +/- 10V. Since a sample and hold circuit is used at the output stage, the output current limit is 1mA and so an external buffer must be used. The DAC used in the solution is DAC101C081 (https://www.ti.com/product/DAC101C081)

SPI SRAM

The device uses a 1 MBit SRAM to store samples acquired from various modules such as high speed ADC, digital inputs, digital output patterns etc. The SRAM used is 23LCV1024 (https://ww1.microchip.com/downloads/en/DeviceDoc/25156A.pdf)

Digital inputs and outputs

The device provides 16 digital inputs and digital outputs. The digital inputs are read by the MCU through a 74HC165 shift register (https://www.ti.com/lit/ds/symlink/sn74hc165.pdf) and the digital outputs are transferred through 74HC595 shift register (https://www.ti.com/lit/ds/symlink/sn74hc595.pdf).

The digital inputs have a range of +/- 3.3V in order to provided reverse voltage protection. The digital outputs have a current limit of 5mA per channel.

Indicator LEDs

There are three indicator LEDs, 1 green, 1 red and 1 yellow. The green LED indicates status of any ongoing communication between host and the device. The red LED indicates any error which has occured in the device. The yello LED indicates that a firmware upgrade is going on the device.

MCU

The microcontroller used in the device is CC2340R52 (https://www.ti.com/product/CC2340R5/part-details/CC2340R52E0RGER) which is an ARM Cortex-M0+ MCU with 512 KB FLASH and 36 KB RAM.

UART, I2C and SPI interfaces

The device provides an SPI, I2C and a UART interface which can be used by the user to transfer bytes to external devices under test.

Software block diagram

alt text

RTOS

The software uses FreeRTOS operating system. This is required by the TI Bluetooth Stack and also for multithreading purposes.

Soc Peripheral Drivers

The following SoC peripheral drivers are required by the product.

DriverDescription
ADCRequired by the high speed analog input module
SPIRequired for accessing the shift registers
and the external SRAM memory
I2CRequired to control DAC IC on the board
UARTRequired for interaction with host PC through RS-485 interface
GPIORequired by all other drivers

Board Peripheral Drivers

DriverPurpose
ADS131M02Controls the 24-bit Sigma-Delta ADC. Performs common operations such as setting ADC PGA gain, calibration, sample acquisition etc.
SN75HC595Write data to the digital outputs through shift registers
SN75HC165Read data from the SOPI shift registers
DAC101C081Required for controlling the external 10-bit for setting the desired output voltage. Also, supports calibration.
23LCV1024Controls the external SRAM IC. Provides read and write APIs for the external memory

Bootloader and Firmware upgrade

The device supports over the air firmware upgrade through the TI Simplelink Connect application for Mobile (https://www.bing.com/search?q=TI+Simplelink+connect&cvid=ed73fef019854968bf1f31853ef2398b&gs_lcrp=EgRlZGdlKgYIABBFGDkyBggAEEUYOTIGCAEQABhAMgYIAhAAGEAyBggDEAAYQDIGCAQQABhAMgYIBRAAGEAyBggGEAAYQNIBCDMyNjZqMGo5qAIIsAIB&FORM=ANAB01&PC=U531). Firmware upgrade over Bluetooth is only supported for mobile phones and not for laptop.

Bluetooth stack

The device uses the Texas Instruments Bluetooth stack. This stack is required for Bluetooth over the air firmware upgrade and also serves as an interface between the mobile/PC and the device.

SSCP stack (serial) & SSCP stack (bluetooth)

The SSCP (Simple System Control Protocol) is the transport protocol which is used by the device to interact with the host via serial interface or Bluetooth. Each interface requires a seperate SSCP responder stack instance. For more details about the SSCP protocol refer to the following Git repository: https://github.com/PatrickAJoseph/simple-system-control-protocol.

SSCP application interface

This software component defines the register callback functions, register definitions related to the application for the SSCP stack.

SSCP responder stack processing task (serial & Bluetooth)

This software components receives bytes from the interface (serial/Bluetooth) and sends the received byets to the SSCP stack for processing.

Device configuration manager

Validates the configuration provided by the user. Also, stores and loads device settings in non-volatile storage.

High speed ADC data acquisition handler

Acquires samples from the high speed acquisition ADC channels and stores conversion results in the external SRAM. Users can then read back the samples stored in the SRAM.

Digital I/O handler

Used to control the digital inputs and the digital outputs of the device through the shift registers as described in the hardware section. Supports setting, clearing, toggling each DO pin and reading state of DI pins.

Analog I/O handler

Controls calibration of each high voltage analog input channel, current channel, resistance measurement channel, thermistor temperature measurement channel and analog output channel. Acquires samples from the analog input channels, performs filtering and then adds calibration parameters to provide processed results. Manages the multiplexing of different analog inputs to the input channels of the sigma-delta converter through the multiplexer.

External SRAM handler

The external SRAM handler is an abstraction component for the external SRAM driver. Responsible for reading and writing data application defined memory regions in the external SRAM memory via the SPI interface.

Digital interfaces handler (UART, SPI, I2C)

Used to handle received communication interface commands (such as transmit, receive commands) for UART, I2C and SPI protocols. Can handle multiple byte transfer for all interfaces and stores received bytes in the external SRAM for post processing.

Parts

214
QtyValueFootprintReferences
3210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4, R10, R16, R17, R22, R23, R42, R103, R104, R107, R108, R109, R110, R130, R131 +16
302.2kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R11, R12, R18, R19, R24, R25, R50, R51, R52, R101, R102, R126, R127, R128, R129 +14
221uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4, C10, C13, C16, C21, C26, C28, C29, C31, C33, C34, C35, C36, C37, C38, C39 +6
1633kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR26, R27, R28, R29, R30, R31, R32, R33, R58, R59, R60, R61, R62, R63, R64, R65
1639kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR34, R35, R36, R37, R38, R39, R40, R41, R66, R67, R68, R69, R70, R71, R72, R73
15100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5, C8, C11, C14, C17, C22, C24, C25, C30, C32, C42, C44, C49, C50, C51
12220kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R7, R8, R14, R15, R20, R21, R90, R91, R124, R125
8100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR116, R117, R118, R119, R120, R121, R122, R123
810uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C3, C6, C9, C12, C15, C20, C27
81kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR94, R95, R96, R97, R112, R113, R114, R115
5CD4051BCD4051BM96:D16U2, U3, U4, U5, U10
4BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
322Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR98, R99, R100
20.1Resistor_SMD:R_2512_6332Metric_Pad1.40x3.35mm_HandSolderR13, R200
210nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC18, C19
23.3nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC46, C47
247kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR92, R93
2HSADC inConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10, J11
2LM6171DPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU9, U100
2TL084Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU11, U12
11.2kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR105
110kPotentiometer_THT:Potentiometer_Bourns_3266Y_VerticalRV1
1220nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC23
122uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
1330Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR111
16.8kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR106
1ADS131M02IPWRPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU7
1AMS1117-5.0Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1AOUTConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ8
1ASV-xxxMHzOscillator:Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mmX1
1CIN1Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_VerticalJ3
1CIN2Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_VerticalJ4
1DAC101C081CIMKPackage_TO_SOT_SMD:SOT-23-6U8
1HVIN1Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_VerticalJ1
1HVIN2Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_VerticalJ2
1LVIN+Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ5
1LVIN-Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ6
1MCU I/FConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ9
1RES_THERMConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ7
1TLV9002IDRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU13
1TLV9004IDRPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU6

Questions

How big is the Analog submodule PCB?

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

What parts does the Analog submodule use?

214 parts, built around the TL084, DAC101C081CIMK, TLV9002IDR-MS and TLV9004IDR-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.

Where can I download the Analog submodule KiCad files?

From the PatrickAJoseph/bluetooth-daq repository on GitHub, at the commit this page was made from: the board is hardware/analog_submodule/analog_submodule/analog_submodule.kicad_pcb and its schematic hardware/analog_submodule/analog_submodule/analog_submodule.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Analog submodule design in my own project?

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

More from PatrickAJoseph/bluetooth-daq

1

Similar boards

  • 6 layers300 × 220 mmAIPE Buck 1kW, the printed circuit board in 3D

    AIPE Buck 1kW

    FulongLi/AIPE-PCB-Agent

    AIPE-PCB-Agent is the PCB design automation of the AIPE power-electronics ecosystem. Python generators turn a requirement file set (specification, insulation table, components, interfaces, floorplan and routing inputs)…

    240 parts
  • 2 layers16.8 × 40.3 mmLightbarriersyncopamp, the printed circuit board in 3D

    Lightbarriersyncopamp

    TheTesla/lightbarriersync

    Robust light barrier with snychronized carrierer wave receiver

    44 parts
  • 2 layers68 × 46 mmArdor IO, the printed circuit board in 3D

    Ardor IO

    balazsbencs/ardor

    This is a DIY multieffects project with a Raspberry Pi and and Codec Zero and a Raspberry Pi Display 2. With Full NAM A2 support.

    81 parts18MIT
  • 2 layers57.5 × 40.5 mmTi MSP v2, the printed circuit board in 3D

    Ti MSP v2

    akshat-kumar10/MSMP0_PCB

    A PCB for an MSMP0 board that features a Modbus Transceiver & Analog Front-End (AFE) for Sensors

    42 parts
  • 2 layers164 × 35 mmResistive Sensor PCB, the printed circuit board in 3D

    Resistive Sensor PCB

    broskifoo/resistive-sensor-signal-conditioning-pcb

    PCB Design Project 1

    23 partsMIT
  • 2 layers43 × 64.5 mmBlinky, the printed circuit board in 3D

    Blinky

    hdsjulian/sparkles

    This repo theoretically contains everything to build, assemble and run the sparkling forests light installation.

    72 parts
  • 2 layers91 × 65 mmHot Plate, the printed circuit board in 3D

    Hot Plate

    lekangji/PCB-Hot-Plate

    A 140W universal USB-C powered PCB Hot Plate!

    61 partsMIT