Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

PuffPacket alt-text

PuffPacket is a system for capturing electronic nicotine delivery systems (ENDS) usage. The system piggybacks the existing electrical signals (voltage and current) to determine when a puff happens and how long it is. The code in this repository works with the RFD22301 and has a iOS application that can be used to capture other useful data while analyzing ENDS use. This includes GPS, Activity, and Accelerometer data. Below are more details about how to implement the three different PuffPacket Systems (left to right):

  • PuffPacket-I: Current Monitoring, powered by the ENDS internall battery
  • PuffPacket-VD: Volatge monitoring with a dispposable battery
  • PuffPacket-VR: Volatge monitoring with a rechargable battery alt-text


Software needed

To running arduino files, you will need to install the RFDuino board library.

Other libraries needed can be found in the Arduino folder and installed as Zip libraries.

The board was designed using AutoDesk Eagle, which can be download for free here.

You will also need xCode to run the iOS app, be sure and change the "Team" to your developers account or personal account.

Parts needed

Putting it together


  • To install the probes, take the FFC and strip back the coating on both sides at one end. This can be done with a scalple or utility knife alt-text

  • The leads should then be placed in between the heating element and heating circuit if the ENDS alt-text

  • Secure the leads to the ENDS with Kapton, then place double sided tape to secure the PuffPacket-V Board to the ENDS alt-text

  • Strip and solder the other end of the Leads to the PuffPacket-V voltage input (+ and - on image below). Double check the polarity with a MultiMeter

  • Insulate and secure the Board with Kapton

  • For PuffPacket-VD

    • Solder the GND terminal of the modified coin cell Holder directy to the ground plane or the ground ternimal of the board. The coin cell holder should also be secured to the ENDS with double sided tape, using katop to keep the exposed part of the tape from sticking to the battery.
    • Connect the positive terminal of the coin cell holder the the VD + input (goes to the Transitor Power Protection line instead of the LDO regulator) alt-text alt-text
    • The entire circuit can then be covered in heat shrink, Leave a battery in while heat shriking (! be careful not to apply to much heat to the battery!!!)
    • Cut a slit by the open end of the modified coin cell holder so you can slide the battery in and out alt-text alt-text
  • For Puff Packet-VR

    • Secure the battery, then place the charger on top and secure. alt-text
    • Attach the Battery leads to the + and - ternimals where the JST connector used to be attached. Then run wires from ground and the 5V terminal on the modified LiPo charging circuit to female headers that will connect to the modified charger. alt-text
    • Connect Bat and GND to the LDO regulator pad on the PuffPacket-V Circuit.
    • Test connections and secure with Heat Shrink.

Modifying the Wall Charger

  • To modify the wall/usb charger for the ENDS, simply add conductive tape from the leads up to a surface you can mount male headers. Solder the headers to the conductive tape and glue everything in place. We used a piece of acrylic to reinforce everything as it will be used frequently. alt-text

Modyfing the LiPo Charger

  • To Modify the Micro-LiPo charge, just remove the JST connector and Micro usb connect, then sand or cut away the excess board without removing any of the traces as show below. alt-text alt-text

Modyfing the Coin Cell Holder

  • To allow the coin cell holder to slide batteries in and out, simply snip off the front clips as show below. alt-text alt-text

Using the Programmer

  • The programmer fits directly in the 1.25 mm pitch pin header on the PuffPacket device as shown below. Be sure and remove or do not connect the +3v pin on the rfDuino programmer. alt-tex alt-tex

Example Data

  • PuffPacket-V


  • PuffPacket-I



No description, website, or topics provided.







No releases published


No packages published