1- A thermocouple delivers roughly 1mV every 25 degrees of delta-T, i.e. 40uV/deg. The internal ADC of the microcontroller is a 12 bit device, GND-to-Vcc: this means slighty better than 1mV per step, on a 3.3V power supply. Draw the circuit and write the code to be able to sample a thermocouple using the internal ADC (hint: we might use an LM324 amplifier). This was discussed during lesson 21. 2- Write the I2C driver for the microcontroller's logic block. Now that we have an I2C framework (with struct i2c_operations), it's easier than it earlier was. 3- Augment the shell with commands to read/write spi-nor and i2c-eeprom devices. This is also needed as a test environment for the driver code 4- Find a better way to support IAP memory than removing 32 bytes of RAM. Ideally, if the application is not using IAP, it doesn't need to reserve RAM for those routines. 5- Connect the three storage engines we already have (spi-nor, eeprom-i2c, eeprom-lpc) to the storage.h idea, adding an API (e.g. storage_register()/storage_unregister()). If more fields are needed in the storage structure, they should be added. 6- Augment the shell with test commands for the above generic storage. 7- Think about a filesystem API, that can support several back-ends 8- Implement a TLV-based filesystem based on the above