Mixed-signal temperature sensor board. MIT 6.301 Fall 2016 Final Project.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Altium Commit all files. Dec 6, 2016
Firmware Added firmware and updated schematic. Dec 13, 2016
Outputs Added final results. Dec 13, 2016
Python Added plotter screenshot. Dec 14, 2016
.gitattributes :neckbeard: Added .gitattributes Dec 6, 2016
README.md Image fix Mar 17, 2017

README.md

6301-lab3

Temperature sensor evaluation board for Arduino Nano. Custom PTAT cell and dual-slope ADC design. The PTAT cell features breakaway design of the temperature sense area for remote measurement. Final error after calibration was less than 5%.

Circuit and layout drawn in Altium 17.0.

BOM for this project as Digikey Cart Share


Revision 1 Errata

Updated Dec 13, 2016

Critical/Major

  1. R8 should pull up to VCC3V3 for stability, not VCC5V which is not well regulated and prone to noise.
  2. U1 pins 2, 4, and 6 (base) should be shorted together. The current design only connects pins 4 and 6, which results in half the expected PTAT current.
  3. A 100 ohm resistor should be put across J20 for stability of VREF.

Minor

  1. Pad size for C5 is too small for most 1uF film capacitors. Suggest to change to 1210 footprint.
  2. Jumpers have 0402 footprint, which have pads that do not short well with manual solder rework. Suggest to change to 0805 or 1206 footprint. Alternatively populate with 0402 0 ohm resistors.
  3. Add a 4k7 ohm pull up resistor to VCC5V on Arduino pin 12 for one-wire parasitic power.

3D Render

PCB render


Conversion Results

Linearity is very good. There is a constant offset error, which can be removed through calibration.

Conversion results. Ramp Time Ratio vs. Temperature.


Python Plotter Script

The included Python script plotter.py allows for a realtime graph of temperature values. It also logs all values to a txt file.

Screenshot of a graph produced by plotter.py