Flashing the IKEA Vindriktning with Tasmota and ESPHome
Introduction
Quite some time ago, I came a cross a tutorial by Blakadder on integrating the IKEA Vindriktning air quality sensor into Home Assistant using Tasmota. Last week I finally got the time to make work of this. This blog post is my recap of how this went.
While going through this process, I also looked for a method to achieve the same using ESPHome and I found a tutorial on that as well. I did have to adapt it a little as I was using a different ESP board.
Requirements (shopping list)
Both methods can be done using the exact same hardware.
You will need:
- IKEA Vindriktning sensor
- ESP board. I followed Blakadder in getting the tiny ESP-M3
- 5V to 3.3V step down converter to power the ESP-M3
- Some wire. I used this 18AWG silicone wire but I would recommend going for a smaller gauge
- Soldering iron
- Solder
- Flux is recommended
- FTDI to flash the board
Optionally, you can add some extra sensors to your setup. I haven´t done so, so far.
Flashing
Before you start soldering things together, it’s best to flash the ESP board. I had to learn the hard way that this become a lot more involved once you have several wires attached to it (:
So this is also the moment you have to choose between Tasmota and ESPHome.
Tasmota
If you opt for Tasmota, you can flash the All Sensor firmware using the Web Flasher. This version includes support for the Vindriktning sensor.

After flashing, give the board a power cycle and a WiFi access point should appear. Connecting to this access point, will bring you to a setup page which will allow you to connect the chip to your WiFi. Once thatś done, you can browse to the chip from your local network to setup the sensor.
Under Configuration > Config Module set Module Type to Generic (18) and map GPIO4 to VINDRIKTNING (and optionally GPIO2 to LedLink).

You’ll also want to setup MQTT so Home Assistant can talk to the Tasmota board.
ESPHome
Flashing the board with ESPHome first requires us to setup a ESPHome config.
Add a new device in the ESPHome Dashboard, pick whatever device type you want as we’ll overwrite the config anyways. Copy/paste the config below and adapt to your needs.
substitutions:
device_name: ikea-vindriktning-01
device_friendly: IKEA Vindriktning
device_description: IKEA Vindriktning PM2.5 sensor
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
esphome:
name: "${device_name}"
friendly_name: "${device_friendly}"
comment: "${device_description}"
# Set to 'true' if you plan to flash multiple device using the same config
name_add_mac_suffix: false
esp8266:
board: esp8285
restore_from_flash: true
wifi:
ssid: "${wifi_ssid}"
password: "${wifi_password}"
api:
encryption:
key: !secret api_encryption_key
ota:
- platform: esphome
logger:
baud_rate: 0
uart:
id: component_uart
rx_pin: GPIO4
baud_rate: 9600
sensor:
- platform: pm1006
pm_2_5:
name: Particulate Matter 2.5µm Concentration
icon: mdi:molecule
device_class: pm25
unit_of_measurement: µg/m³
state_class: measurement
# Optional
status_led:
pin: GPIO2
If your ESPHome dashboard is accessible over HTTPS, you can flash the board right there. If not, you can use the Web Flasher to flash the compiled binary.
Flashing
To flash the board, you need to connect your FTDI adapter. Make sure it’s set to 3.3V and do not connect the USB-side before you have correctly connected the board.
- Connect VCC to VCC (3.3V!) on the adapter.
- Connect GND to GND.
- Connect RX to TX and TX to RX.
- Connect GPIO0 to GND to put the board into flashing mode.
You can solder some temporary leads to do this, but I managed by using Male Dupont cables and holding them in place.
If you go this route, make sure you prepped everything in the flashing tool so you only need to plugin the USB and press Enter.

Wiring
Now that the chip is flashed, we can commence with the actual wiring. Regardless of whether you flashed the chip with ESPHome or Tasmota, the wiring will be the same.
Unscrew the 4 screw holding the 2 pieces of the casing together. Carefully unplug the 2 cables connecting the air quality sensor to the PCB. Finally unscrew the PCB from the front panel so you can more easily access it.
Prepare your solder iron and make sure to use plenty of flux. Don’t rush, but don’t hold your iron against the pads for too long. The quicker you can finish soldering, the less chance you have of unsoldering the pads from the PCB.
- We need to grab 5V from the PCB of the Vindriktning and convert it to 3.3V using our step-down before connecting it to the VCC of the ESP (red wire).
- Both the step-down and the ESP will be connected to the GND from the PCB. So you will need to connect 2 wires together (black wire).
- Data will be read from the REST pad on the PCB, which will be connected to GPIO4 (white wire). If you pick a different pin, make sure to update your Tasmota/ESPHome config.
Make sure you make the wires long enough so you can tuck both the step-down and the ESP below the fan. That way, airflow to the air quality sensor is not being impeded.
!
Note to self: take better pictures of the wiring ;)
Before tucking everything away, it’s a good idea to cut away some plastic from the tab above the sensor, opossitve of the power wires. That way, you can create a channel to route the wires you’ve just soldered.
It’s also a good idea to first do a test-run. Connect the sensor to the PCB again and power the PCB over USB-C.


If everythings works as expected, put the PCB back in place, route the wires through the channel you just created and carefully close the case up again.