User Tools

Site Tools


projects:xiaomi-flora

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
projects:xiaomi-flora [2016/10/31 21:43] emerythprojects:xiaomi-flora [2016/11/02 19:35] emeryth
Line 1: Line 1:
-====== Xiaomi Flora Flower Monitor teardown and analysis ======+====== Xiaomi Flora Plant Monitor teardown and analysis ======
  
 by [[people:emeryth:start|emeryth]] (emeryth at hackerspace.pl) by [[people:emeryth:start|emeryth]] (emeryth at hackerspace.pl)
Line 29: Line 29:
 {{:projects:flora_back.jpg?direct&300|}} {{:projects:flora_back.jpg?direct&300|}}
  
 +==== Pin header ====
 +
 +|2 ???|4 SW_CLK|5 SWDIO|8 GND|
 +|1 VBATT|3 ???|6 ???|7 GND|
  
 ==== Chips on the PCB ==== ==== Chips on the PCB ====
Line 62: Line 66:
 **0x0033** - You need to write **0xA01F** to this handle to enable real-time data reading **0x0033** - You need to write **0xA01F** to this handle to enable real-time data reading
  
-**0x0035** - The actual data from the sensors, can be rad only after you enable real-time data, otherwise returns zeros+**0x0035** - The actual data from the sensors, can be read only after you enable real-time data, otherwise returns zeros
  
 Example data frame, values are little-endian Example data frame, values are little-endian
  
 ^f7^00^10^13^00^00^00^25^f5^04^02^1c^40^fb^34^9b^ ^f7^00^10^13^00^00^00^25^f5^04^02^1c^40^fb^34^9b^
-| Temperature (signed!)|| ?? | Light intensity |||| Moisture | Fertility ||  ?? | ?? | ?? | ?? | ?? | ?? |+| Temperature || ?? | Light intensity |||| Moisture | Fertility ||  ?? | ?? | ?? | ?? | ?? | ?? | 
 + 
 +Notes: 
 +  * Temperature is signed 16-bit value in tenths of degrees C, so 265 means 26.5 °C 
 +  * Light intensity in lux, not sure if 32-bit 
 +  * Moisture in percent 
 +  * Fertility in µS/cm 
 + 
 +**0x0036** - writing **0x0100** to this handle will subscribe you to sensor value notifications 
  
 Here is a short Python script to get all the interesting data from the device: Here is a short Python script to get all the interesting data from the device:
Line 94: Line 107:
 print "Soil fertility:",fertility,"uS/cm" print "Soil fertility:",fertility,"uS/cm"
 </code> </code>
 +
 +===== Firmware hacking =====
 +
 +I have no interest in changing the firmware, since you can already get all data you need from the original firmware.
 +
 +But if you really want to know, the device supports OTA firmware update and there is a header with SWD on the PCB, although I was unable to connect with the cpu using OpenOCD.
  
  
projects/xiaomi-flora.txt · Last modified: 2020/02/12 16:16 by emeryth

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki