Summary of EnvStick USB Temperature Sensor using PIC12F683
The EnvStick is a low-cost, homemade USB temperature sensor that appears as a serial (COM) port and reports ambient temperature at user-set intervals. It supports Windows/Linux, polls up to 100 times per minute, uses in-circuit programming, includes an indicator LED, and is built with only 11 components around a PIC12F683.
Parts used in the EnvStick:
- PIC12F683 microcontroller
- Temperature sensor (analog temperature element)
- USB interface components (D+ and D- related parts)
- USB connector (USB A plug or USB jack as used)
- Indicator LED
- Current-limiting resistor for LED
- Decoupling capacitor(s)
- Pull-up or pull-down resistor(s) for USB/data or MCU pins
- Crystal or oscillator components if required by PIC12F683 setup
- PCB/connector wiring and supporting passive components to total 11 components
The EnvStick is cheap, homemade temperature sensor that plugs into a USB port. It provides a simple way to collect a room’s ambient temperature. I made it for fun.
EnvStick Features:
– Temp sensor (+/- .5 deg C)
– USB 2.0
– Windows/Linux software
– Poll up to 100 times/minute– In-circuit programming– Only 11 components– Indicator LED
The EnvStick shows up as a serial port – a COM port on Windows boxes. Here you can see the typical output (on a program like Hyperterminal) – it waits a specified number of seconds, spits out a temperature reading, and starts waiting again. If you press “p”, you can set the number of seconds in between each temperature reading.
On the right are some of the initial EnvStick attempts. It took me a couple tries to get a board that worked without lots of manual “fixes”.
Here’s the schematic. Click for a larger version.
For more detail: EnvStick USB Temperature Sensor using PIC12F683
- What does the EnvStick do?
It measures ambient temperature and sends readings over a USB virtual COM port at set intervals. - How accurate is the temperature sensor?
The article states accuracy is plus or minus 0.5 degrees Celsius. - How often can the EnvStick report temperature?
It can poll up to 100 times per minute. - What operating systems are supported?
Windows and Linux are supported by the provided software. - How does the EnvStick appear to the computer?
It shows up as a serial port (a COM port on Windows). - Can the reporting interval be changed?
Yes; pressing p in the terminal program lets you set the number of seconds between readings. - How many components are used in the EnvStick?
The design uses only 11 components. - Does the EnvStick have any visual indicators?
Yes; it includes an indicator LED. - Is the device programmable in-circuit?
Yes; it supports in-circuit programming. - What microcontroller is used?
The project uses a PIC12F683 microcontroller.

