Xiaomi Modchip open source!

Easier way to replenish your filters : Click

The following will be released:

  • Schematic
  • B.O.M (Bill Of Materials)
  • Geber Files
  • Software binaries

(see below)

I will write the following tutorials:

  • How to flash your Modchip
  • How to order your Modchip see below
  • Explanation of how the software works.


Xiaomi Modchip schematic

Downloadable PDF:


This is quite a simple schematic, the hardest part was finding exactly what connector they used. I waned it to be plug and play so it needed to be exactly the same one.

Overview of used parts

Gerber Files:

Xiaomi Modchip

Download : https://github.com/Flamingo-tech/Xiaomi_air_purifier_modchip/raw/main/MODCHIP.zip

After uploading the files to for example: https://jlcpcb.com

JLCPCB Xiaomi Modchip upload

You can see that for around 11 Euro you can have 5 Modchips (PCBS).
There is no need to have a black pcb (This just looks nice, I like my PCBA’s to look nice) Also the original PCB is 1mm thick, there is no need to match that (Xiaomi does that for their antenna impedance, We don’t have an antenna anymore)

Buy a solder paste stencil and some solder paste with it! all components are too small for hand soldering. (It’s doable but you need to have some soldering experience)

Software Binaries

Xiaomi_MOD_V1.0: Is a binary for the modchip. (how to upload tutorial will follow later) Supports : Xiaomi air purifier 3H and 3C

Xiaomi_MOD_PRO-1: Is a binary for the modchip. (how to upload tutorial will follow later) Supports : Xiaomi air purifier PRO

WARNING: these .ELF files are for the MODCHIP don’t upload them to the air purifier itself.

For latest version check github: https://github.com/FLamingo-tech/Xiaomi_air_purifier_modchip

PS. If you make or use these files it would appreciate it if you leave a comment.

I sell on Tindie


  1. Hi, great job! It’s possible to make a bin file- not the code, i got this- for an esp8266 or esp32 module? Are easier to find and to work with.

    1. Thanks ^^

      Not easily, I’m depending heavily on interrupts and how the STM MCU handle their interrupts. I don’t know if Arduino code is efficient in doing this. I know of one guy who was trying to make my code work on Arduino/ESP/ESP32 and he did not make it 🙁 In the end he used a STMicro. Feel free to give it a try though!

  2. Awesome! I put this together and it works perfect. Shows 100% all the time. Would it be possible to make another version of the firmware that goes down 1% every time its queried and then goes back to 100% when it reaches 0? It would help give me a rough idea of how long I have been using the filter for! A time based one would be the best but seems like more work.

Leave a comment

Your email address will not be published. Required fields are marked *