IKEA Vindriktning Air Quality Sensor

Very nice. Can you share your work (photo’s, pcb-hacks etc?)

1 Like

I asked my wife and sadly it didn’t pass the “wife approval factor” to open a hole grrrrrrrrr… so it is still inside getting comfy and warm

1 Like

Yes! no problem… i need to better design with the board photo as a background with added wires and cuts on the PCB… then i’ll share here :slight_smile:

4 Likes

Hi, i wrote an article explaining my hack process and how mod the pcb to control LEDs.

Tell me if i missed something

11 Likes

I am reading your guide. You mentioned this.

You need to cut between R3 and R4 to separate RED and ORANGE LED control

Do you mean we need to use a x-acto knife or some sort and cut on the pcb where you have included in red line?

yes. i cut the trace with no mercy. They are connected together and you need to separate to control them individually.
Also don’t forget to restore the 5v line (the green line) due to it passes in the middle of resistors so you will cut for sure (it’s very very thin)

1 Like

If you want use ESPhome to update the firmware wirelessly maybe it’s better to use ESP32 instead ESP8266 due to very big PM1006 library size, so it’s hard upload updates via OTA

Hello,

I have recently acquired a couple of these IKEA sensors. I think it’s a good alternative for the “AirRohr” sensor that Luftdaten (sensor.community) recommends.

I have a question regarding the modification of this thing. I have read previously, that the output from the PM sensor, when connected from the internal IKEA LED board and then to the ESP module (Wemos D1, whatever), is inaccurate and has some difference versus directly read from the UART TX from the PM1006 sensor. Is this correct?

If so, is it possible to like split the wire from the PM1006 TX pin, and wire it in parallel to the ESP board, as well as to the stock LED control board? Would this work better. I’m not sure about the characteristics of an UART transmission, just wanted to confirm if this is the case?

I’ve read the artcicle of @fabiosoft but I don’t want to go to that lenght in doing the “full control hack” though it’s very much for my liking :slight_smile: .

I don’t know if it’s more precise… consider the PM1006 is inaccurate by datasheet! Like +/-20 about the real value.

If you don’t want full control you can connect the PM sensor to ESP module and leave averything as is. It will work same way.

1 Like

Sure enough, I also read about the tolerances of this sensor, and yes, agreed. For this price, and for the objective fact that this is actually more likely a ‘toy’, one should not expect laboratory-grade accuracies.

I guess the only way is to try out and see. As I mentoned, I have several of these, I’ll try to wire an “Y” from the sensor output. I don’t want to disable the front LEDs of this. As I mentioned, being mostly a toy, the colourful indicator pseudocrap are kind of the “selling point” of this thing. :slight_smile:

Just curious. I know your not using it in you current implementation, but I see you have the lux calculation as (x * 3.3 / 10000.0) * 2000000.0. How did you come up with that calculation? Is there a resource you can point to?

I have two of these side by side, both with a NodeMCUV2 attached to the Vindriktning’s main board, and one reads values regularly while the other reads 0 unless there is a spike:

Not what I was hoping for, exactly. :smile:

Curious to swap the sensors around and see whether it’s the board or the sensor causing the difference in behaviour. I would have assumed it was the sensor but you mentioning that you got different results by connecting the ESP directly to the sensor has me wondering.

I cannot remember who has wrote that, but that is a bold misconception.

As @fabiosoft wrote, the PM1006 is by default “inaccurate”. It fits the bill for the purpose what IKEA built the device for. It has 3 levels, good, bad and ugly… And that’s it. 3 colors, no more. No need for that any accuracy.

The misconception in the idea to connect it directly, is the fact, that the IKEA PCB just does a query to the sensor as the ESP would do it. Maybe the only difference is the string what you can use to query the sensor. But the result produced by the same sensor.

@Habbie can explain what string is used for the query and what the manual says, and what Cubic replied to him regarding the difference. But in fact, the result is coming from the same sensor. Just the format differs.

1 Like

Is the library that big? There’s no good reason for that, so if we can find out why, we should fix that.

It seems unlikely that they will accept this - Add support for IKEA Vindriktning · Issue #910 · opendata-stuttgart/sensors-software · GitHub

The mode where esphome triggers readings uses the same command and response format as the mode where the IKEA PCB triggers it. The only difference is that the IKEA PCB, if I recall correctly, sleeps for 20 seconds and then does five readings in ten(?) seconds, and ESPHome will usually be configured for one reading per fixed interval. Whether this affects the readings would, I think, mostly depend on how the fan is handled.

Wow a lot of questions… i try to answer all of you about my experiments:

@gmarlow

I got inspired by this LUX sensor on ESPHome documentation but as you can see i commented it out due to it doesn’t work very well… i think due to the LDR on the pcb has other resistor in series and reference to another voltage (5V i think) so i need more investigation.

@bjvanst

yes same test i made. for initial period of time it was alway very near to 0 (should be impossible in a crowded city) but now it’s usally between 10 and 25ug/m3 …so that’s confirm the datasheet and very unprecise mesurementes.
As @GSzabados figured out, IKEA it’s just interested on 3 checkpoint without showing the real value.

@Habbie

maybe, at least it’s what it look like because during ota update i can see always 48-50% memory filled and then it fails to upload rebooting the device

[Errno 104] Connection reset by peer 

As you can see my yaml i only use light and switches entities and they don’t look heavy as far as i know.

I used a window of 50, maybe maybe the sensor caches something?

  - platform: pm1006
    uart_id: uart_pm1006
    update_interval: 20s
    pm_2_5:
      id: pm1006_sensor
      name: "$friendly_name PM1006"
      accuracy_decimals: 2
      filters:
        - sliding_window_moving_average:
            window_size: 50
            send_every: 10
            send_first_at: 1

My real concern is, has IKEA installed the same sensor in the airpurifiers as well?

1 Like

i don’t think air purifier have sensors…at least the cheapest one just run all the time.
I have no air purifiers here to open… maybe someone can take a look inside :crazy_face:

They have a Zigbee enabled one, actually two. The table one like looks really cool.