TDS (Total Dissolved Solid’s) sensor measures the conductivity of the dissolved solids such as salt and minerals in the solution. This helps us in finding the purity of the water. The sensor consists of a pin head that goes inside the water, the pin head reads the information in the form of voltage. Through the Arduino code, this voltage is converted into TDS value (the scale ranges from 0 to 500, where values till 350 is good water and more than that is contaminated water). The TDS value later triggers one of the motors that are fitted inside two lava lamps- red and green. The installation shows us that by using coding, we can use domestic objects to visualize different type of data.

TDS Chart


Diagrammatic representation of the process: TDS Sensor (on left) is dipped in the water to give voltage and this voltage is later converted into TDS value and sent through MQTT server to the M5Stack which later triggers one of the motors fitted to the lava lamp

Arduino Code Setup

Sending Code

Sending codes contain the definitions for the TDS Sensor and the minimum and maximum values.


Formula of the conversion of voltage to TDS Value must be specified in the void loop

Receiving Code

Receiving codes give the definition for the two motors that are being used in the lava lamp


Codes to turn on the motor is written with the range of the TDS values


The video gives a clear representation of how the motor gets triggered upon the change of water.


TDS-Lava Installation is a project of IAAC, Institute for Advanced Architecture of Catalonia developed at the Master in Advanced Architecture in 2020-2021 by students: Shubham Dahedar, Chirag Shah, Kajal Unahariya and Faculty: Angel Munoz, Cristian Rizzuti