This data acuisition (DAQ) unit kit is designed to be robust and configuable but relatively simple. It is based upon the Arduino platform (using the Uno bootloader). It stores data to an SD card and uses a real time clock for accurate timestamping. The fastest resolution is 1 second sampling.

Data acquisition is always useful to monitor a wide range of projects. Knowledge is power. With data, you can monitor your system, make changes and record how well they do and generally improve the things you are working on. Also having real data and real facts is vital if we are trying to prove an effect.

Data is stored onto an SD card. A real time clock is used to timestamp the data and the output is a .csv file.

Sample Arduino code for a datalogger unit is provided and can be built upon.

This unit is available as a kit for £25 (plus £3 p&p) via our shop.

Design Overview

This desiign is based upon an ATmega328 programmed with the Arduino bootloader. This makes it easy to configure and change and there are a huge amount of open libraries to use. This board (with an ATmega328) does not include the USB to serial converter (which would be on a standard Arduino), but I used an external USB to serial FTDI cable to program these boards. These cable are available at low cost and easily and are very useful.

The ATmega328 is interefaced to an SD card holder, along with very simple voltage level conversion. The ATmega IC works at 5V and the SD card works at 3V3, hence a 3V3 regulator and some potential divider resistor networs are required.

A real time clock is also used to timestamp the data. This is a standard IC (PCF8563) which has a battery backup. It is a fully configurable PCB with an SD card holder and real time clock wth battery backup. It also works as a Arduino for any other project.

The completed board is shown here:

The completed circuit board with battery backup for the real time clock and SD card holder.

As a basic unit, there are 5 digital data lines and 4 analogue data lines. The analogue lines can be converted into digital, if required. There are 4 additional digital lines which can also be used for data logging, but which mean slight loss of functionality.

The pin allocation is listed here:

Pin Number Type of data Allocation
D0 Digital Serial Rx – Can be used if required
D1 Digital Serial Tx –  Can be used if required
D2 Digital Clock interrupt at 1 second – Cannot be used
D3 Digital Available
D4 Digital Available
D5 Digital LED indicator – Can be used if required
D6 Digital  SD card – Card detect – Can be used if required
D7 Digital Available
D8 Digital Available
D9 Digital Available
D10 Digital  SD card – Chip select – Cannot be used
D11 Digital  SD card – MOSI – Cannot be used
D12 Digital  SD card – MISO – Cannot be used
D13 Digital  SD card – Clock – Cannot be used
A0 Analogue  Available
A1 Analogue  Available
A2 Analogue  Available
A3 Analogue  Avaiable
A4 Analogue  RTC – SDA – Cannot be used
A5 Analogue  RTC – SCL – Cannot be used

Instructions

Here are the build instructions:

Download the PDF file .

Circuit Schematics

Here is the circuit schematic:

Download the PDF file .

Parts List

Reference Item Description
BT1 Battery holder
CR2032 3V BATT
C1 100uF
C2 100nF
C3 10uF
C4 22pF
C5 22pF
C6 10uF
C7 10uF
C8 Trimmer capacitor 8-30pF
C9 100nf
D1 LED power
D2 1N4148
D3 1N4148
D4 LED RTC (Not used)
D5 LED data
IC1 ATMEGA328P-P
28 pin DIL socket
J1 CON-SD-MMC-3
P1 2.1mm DC power socket
P2 3 x 2 ISP conenctor
P3 6 pin Programming header
P4 Not used
R1 1k
R2 10k
R3 10k
R4 10k
R5 1k (not used)
R6 2k2
R7 2k2
R8 2k2
R9 3k3
R10 3k3
R11 3k3
R12 100k
R13 4k7
R14 1k
R15 10k
SW1 SPST
U1 PCF8563
8 pin DIL socket
U2 MC1703 (3v3 regulator)
X1 32.27 kHz
X2 16MHz
PCB

PCB design

The circuit board is shown here. It is a two layer board.

Download the PDF file .

KiCAD files

This circuit schematic and PCB was designed using KiCAD, an open source PCB design package.

The full KiCad files are available to downlaod as a zipped folder here. These are open source under the creative commons share-alike by attribution license.

Arduino Code

The code for this project was written using the Arduino bootloader and IDE. (Edit 10/3/14: This code was written for Arduino IDE version 1.0.5).

This project assumes some knowledge of the Arduino platform. If you do not have this then please start with the numerous examples available within the Arduino community.

There are two programs written, which you will need to download and add to your Arduino sketchbook:

The code has numerous comments and follows a flow structure as shown here:

Programming the unit

As mentioned previously, you will need an FTDI USB to 3v3 serial lead with a 6 pin socket to program this device. This is available here from FTDI and also electronics suppliers such as RS and Farnell. The part number is: TTL-232R-3V3. Plug your FTDI cable into the 6 pin header and you should be able to use the Arduino IDE to upload new code.

There is also an ISP (In series programming) 6 pin area (although pin connector is not included). This means you can program the chip while it is in-situ using an ATMEL ISP programmer.

Enclosure design

This kit does not come with an enclosure. I designed a small enclosure for the LEEDR DAQ project, which is available for downloading here. It is designed to be cut out of 3mm plywood using a laser cutter. It fits onto a piece of A4 sized wood.

This is the DAQ unit in a laser cut wooden box. (Note: this is NOT included in the kit)

 

Download the PDF file .

You can download the .dxf file for the enclosure design here. (Note: This is not large enough to hold the DAQ AND an Arduino shaped prorotyping board.

Note: We are working on an enclosure which fits the DAQ board plus an additional arduino shaped prototype board. If you would like one of these then please email to register your interest.

3 responses to “DataDuino – Arduino data acquisition unit

  1. Hello Matt, thank you for the order of Data Duino, I received the shipment and hoping to utilize it with my class project. That leads to my next question to you is, will it be possible to use the unit as part for the IV curve tracer? If so will you be able to provide me any information how to go about it. If this question sounds like totally dumb, do excuse me since I am totally new to this. I also don’t want to take too much of your time, so when you can please give me your input .
    Thank you for your time
    Shoab siddiquie

  2. Quoting shoab siddiquie:Hello Matt, thank you for the order of Data Duino, I received the shipment and hoping to utilize it with my class project. That leads to my next question to you is, will it be possible to use the unit as part for the IV curve tracer? If so will you be able to provide me any information how to go about it. If this question sounds like totally dumb, do excuse me since I am totally new to this. I also don’t want to take too much of your time, so when you can please give me your input .
    Thank you for your time
    Shoab siddiquie

    Hi Shoab,
    Please check out my blog post about this here: http://www.re-innovation.co.uk/web12/index.php/en/projects/solar-pv-iv-curve-tester

    Basically you need to control the load applied to the solar sell/module. This could be done using a MOSFET and some kind of dump load (or even short circuit, as the solar cell is current limited – just be careful it does not get too hot).

    You then need to record the current and the voltage.
    This can be done using a shunt resistor (for the current) and a potential divider (for the voltage).

    Info about doing both is available in the ‘info’ section of the website.

    If you adjust the load a number of times and get a number of I/V readings , you can then plot them or store the data points and analyse it later.

    Hope thats some help.
    I’d first try getting a controlled load to apply a vairable load onto your test cell. You also want to ensure you have a good idea of the maximum currnet/voltage you would like to measure, as this can affect the design.

    Regards,

    Matt

Leave a Reply

Your email address will not be published. Required fields are marked *