Introduction: FLOAT Beijing Smart Air Quality Kites

Learn how to make an air quality sensing module that you can attach securely to a kite! The module has an LED indicator light to tell you how bad the air quality is.

These modules were developed for FLOAT_Beijing, a project by Deren Guler and Xiaowei Wang. Through the playful act of kite flying FLOAT_Beijing has empowered hundreds of citizens to take action and protest current air quality standards, leading to people-driven improved policies for healthier lives. FLOAT is a tool to collect air quality data and circumvent state controlled channels of information.

At community workshops participants learn about the health hazards of air pollutants and their detection through DIY sensors, which they learn to build and attach to kites. FLOAT modules are designed to be transparent and reconfigured by users. Residents challenge the invisibility of official data by flying their air quality sensing kites in highly visible public spaces.

Kites have a strong cultural history in China which draws in diverse participants connecting them to new technologies. Participants are empowered by the ability to sense air quality. More importantly, through FLOAT_Beijing, citizens become active agents in monitoring, and eventually transforming their own environments.

We were originally inspired by a lot of work on air quality including this instructable:

Take a look at one of our maps here, using data from August 12 2015!

Step 1: Gathering Materials

For the basic FLOAT module, you will need:


• AtTiny45/85 chip and socket - We're using this because once soldered together you really don't need an entire Arduino for the air quality sensing module. It would get expensive, heavy, and most of all, would add weight to your kite!

• Protoboard - Any ol' protoboard to solder your parts onto

• Lithium polymer battery +holder -- We got a bunch of 3.7 lithium batteries from a cheapo electronics place in Beijing. We used 1000mAh ones but 850mAh are fine too.

• Preheated sensor + breakout board -- There's a variety of sensors you can use, and their model numbers begin with MQ. See this page for more information: Essentially each different model detects a different gas. We used a range of MQs, from MQ135 to MQ4

• 220 ohm resistors

• Jumper wires


• Breadboard to program your ATTINY

• Arduino to program your ATTINY (more about programming an ATTINY here: and here

Step 2: All Parts in Place!

Step 1: Prepare the basic layout of the board by soldering the socket in a central location on your board and the battery connector near the edge in a stable location

Step 2: Insert three 220-ohm resistors from the bottom 3 pins on the right side of the socket on one end and a few holes further (in a row) on the other end.

Step 3: Insert your LED such that the common cathode (longest) pin is bent out and the other three pins align with the other side of the resistors such that the bottom pin is the side with one pin after the cathode. Insert the cathode in a row further down from the socket

Step 3: Solder Up!

Step 4: Turn over your board and solder the connections such that one side of each resistors is joined to the pin on the DIP socket and the other side is joined the LED

Step 4: Soldering Done? Programming the Arduino...

Step 5: Prepare 3 short pieces of jumper wire and attach them as follows:

One from the left side of the battery socket to the bottom left pin on the DIP socket

One from the right side of the battery socket to the top right pin on the DIP socket

And lastly, one from the bottom left pin of the DIP socket to the cathode pin of the LED

Step 6: attach the sensor and breakout board with 3 pieces of jumper wire as follows:

A wire from the GND pin or hole on the board to the bottom left pin on the DIP socket

A wire from the +5V pin or hole on the board to the top right ping on the DIP socket

A wire from the OUT or Aout pin/hole on the board to the 3rd pin on the left side of the DIP socket

Step 5: And We're Off!

Step 7: Insert the programmed ATTiny chip such that the dot on the chip aligns with the top left pin on the socket

There is a tutorial for programming an AtTiny chip with Arduino as ISP here ( and here ( The code is here below.

Step 8: plug in the battery and wait a few minutes for the sensor to calibrate, you should be ready to go!

Things to check if it does not work: power connections, chip

orientation, battery level


/ +-\/-+

// PB5 1| |8 VCC

// (AI 3) PB3 2| |7 PB2 (AI 1)

// (AI 2) PB4 3| |6 PB1 PWM

// GND 4| |5 PB0 PWM


/to load connect VCC to 5V and GND to GND

int REDPin = 2; // RED pin of the LED to PWM pin 4

int GREENPin = 1; // GREEN pin of the LED to PWM pin 5

int BLUEPin = 0; // BLUE pin of the LED to PWM pin 6

int sensor= 0;

void setup()


//rgb led pins

pinMode(REDPin, OUTPUT);

pinMode(GREENPin, OUTPUT);

pinMode(BLUEPin, OUTPUT);


void loop()


//sensor values

sensor= analogRead(2);

//the threshold values will vary based on your sensor, it is best to

//calibrate them and compare to other data. This is a

//helpful study: //

if (sensor < 100){ //turn LED green VOC

digitalWrite(REDPin, LOW);

digitalWrite(GREENPin, HIGH);

digitalWrite(BLUEPin, LOW);


if (500< sensor< 530){ // yellow VOC

digitalWrite(REDPin, HIGH);

digitalWrite(GREENPin, LOW);

digitalWrite(BLUEPin, HIGH);


if (100< sensor< 120){ //red VOC

digitalWrite(REDPin, HIGH);

digitalWrite(GREENPin, LOW);

digitalWrite(BLUEPin, LOW);


if (sensor> 120){ // pink VOC

digitalWrite(REDPin, LOW);

digitalWrite(GREENPin, LOW);

digitalWrite(BLUEPin, HIGH);



Step 6: Designing a Kite....

We won't go into the intricacies of kite design here, but for FLOAT we used a traditional delta.

We found that a 3m wingspan could carry 3+ modules weight, or 1 module with extra lights along the tail.

There's even an instructable on making your own kite in 20 minutes or less . Either way, make sure your kite has a wide enough wingspan to carry more load.

Step 7: Fly a Kite!

Head out to fly a kite!

And don't forget -- what's as important, if not more important is a quality kite reel.