Digital PID TEC temperature controller for DPSSL+SHG experiment

This is a very simple and low cost TEC PID controller. Here is a simple schematic of it.


The controller is based on Arduino (AVR ATMega series 8bit MCU), so I haven’t spend a lot time programming it. The temperature sensor is a very cheap 10K thermistor and direct sampled by AVR’s internal ADC. The DAC part is actually a low-pass filtered PWM. The controller is connected to the computer through a USB-USART adapter.

A photo of the TEC controller is shown below. I use the power stage from my 3A CC driver in the same project as you can see from the photoTEC_controller_photo


I design a simple serial command line interface for system monitoring and parameter adjustment. You can simply type ‘P10’ and press enter to set parameter P to 10 for PID controller. It is same for other command such as ‘I0.5’ for setting I=0.5, ‘D1.24’ for setting D=1.24. The power stage can be turned off with command ‘OFF’ and be turned on again with ‘ON’. system states including output power, target temperature, PID parameters will be continuously updated on the serial interface.


Measurement of Electron Drift in Gas

This project aims at measuring the velocity of drifting electrons triggered by UV laser, which can be considered as a prototype of the TPC (Time Projection Chamber) laser calibration system. The introduction includes the following aspects: the design of the system, data collection, data analysis and preliminary results.

Whole System

High voltage is applied to the MPC (Multiwire Proportional Chamber) to generate a uniform electric field. Treated as a point-like particle, the laser-stimulated electrons in the field will reach a constant velocity in the working gas soon after their appearance. Since the accelerating time is short, we can assume the drifting time is approximately proportional to the drifting distance. Through a linear fit, we can get the drifting velocity of certain kind of working gas.

The Drift Chamber

The system is designed under the principle of automatic control. The motion of MPC is dominated by a stepper motor, which is controlled by computer. The theoretical precision of motion is approximately 1 μm. The amplified signals of Laser and MPC are sampled and shown on oscilloscope. The connection between computer and oscilloscope ensures the arbitrariness of data collection. We write a LabView program to manage both of these. Abundant data are collected on each position and then exports to a file.

Apparatus Sketch
Data Acquisition based on LabVIEW

In order to calculate the drifting velocity from amplitude varied data, special strategy should be applied. For each group, we find the average of maximum and minimum. Then we fit the data (either ascending or descending slope) to obtain its linear regression equation and solve for the time on that average level. The average of these time spots can be considered as the drifting time of the point. Linear fit these drifting time points to derive the drifting velocity.

Signal Analysis & Fitting

The working gas we adopted was 9.97% Methane in Argon. We sampled 20 times for each point, with total 10 sampling points in all. The drifting velocity we find is  u=(4.840±0.053)×10^4 m/s and is also supported by other researches.

Drift Time vs Drift Distance
Results from other sources


Tabletop weather station

This is a super wireless tabletop weather station.

It collects all weather information including temperature, barometric pressure, humidity from its remote stations thorough wireless connection. The wireless connection is provided by NRF24L01 2.4GHz IC along with a protocol written by myself.

This is the main station sitting on my desk. Cold outside in Beijing!


This main station is connected to ethernet through wired connection, and has a simple HTTP interface for user interaction.

The remote station, installed in our balcony. Solar cell powered so no extra wire is needed to work 24/7.


Data collected by main station (from several remote stations) will be uploaded to my server and saved into database. A php script is used to render some graph for analysis.


DIY 3D Printer in AOI

A self designed 3D printer in Association of Innovation THU (AOI)!

I write all the code needed to drive this printer. The program is running on an Arduino DUE board. The controller is equipped with a control pad and a LCD display. It can simultaneously drive 4 step motors and handle 3 channel of temperature PID. 3D data can be saved into SD card and read by the printer offline or directly sent by a computer.


The mechanical design is finished by another student in AOI.diy_3d_printer