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
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
Quick Solutions to Questions related to EnvStick:
- 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.
Related projects
Automotive Voltage Monitor using PIC12F683
Description Recently I got a new motorbike and on my second trip out, with only 50 miles on the clock the rectifier/regulator...
Sensors & Temperature · PIC12F683Metal detector robot using pic microcontroller
This project describes hardware and software I have developed which allows a small 8 bit PIC microprocessor to function as a single...
Clocks & Timers · PIC12F6830-9999 seconds count down timer using PIC12F683 microcontroller
The goal of this project is to construct a simple 0-9999 seconds count down timer with an alarm and a display. The...
Communication & Interfacing · PIC18F4520CAN FD Node based on a PIC18 Microcontroller
The introduction sets the stage for an embedded systems project that involves developing a Embedded C CAN FD project using the MCP2517FD...
Communication & InterfacingLAN9662 Gigabit Switch: Optimized for Industrial Ethernet
Introduction It should come as little surprise therefore that one element of what is now more commonly referred to in some circles...
Communication & InterfacingPIC Microcontroller: Fundamentals & Applications for Students
Introduction Microcontrollers are the key components in the embedded systems market. A variety of embedded systems was formed and developed after the...

