I've been working hard on drivers to support the devices on the cape in Minix. I developed drivers for the SHT21, BMP085, and TSL2550. The other active device on the board, a CAT24C256 EEPROM, was already supported from my prior work. I also updated Minix's eepromread utility. It works sort of like Linux's i2cdump, but it is also aware of a few EEPROM formats. It has a mode where it can parse and display data fields as label:value pairs. Using the updated eepromread utility, I enhanced the rc script to detect attached capes and run cape specific start-up scripts at boot which load the proper drivers.
Here are the commits:
- tsl2550: driver for the TSL2550 light sensor
- sht21: driver for the SHT21 humidity & temp sensor
- bmp085: driver for the BMP085 temp&pressure sensor
- eepromread: add board info for BeagleBone Capes
- rc: start drivers for attached BeagleBone Capes
# cat /dev/sht21b3s40
TEMPERATURE : 29.126
HUMIDITY : 45.818
# cat /dev/bmp085b3s77
TEMPERATURE : 28.5
PRESSURE : 100432
# cat /dev/tsl2550b3s39
ILLUMINANCE : 830
Temperature is in Celsius (C), relative humidity is a percentage (%), pressure is in pascals (Pa), and ambient light is in lux (lx). There is a small difference in temperature between the two temperature sensors. I hypothesize the difference is due to some slight heating by the BeagleBone. I got the same results when I tried the board under Linux.
My next steps will be to get a demo application working and properly integrated. I'm hoping to modify the bonescript Weather Station demo (src) to work under Minix. I plan to make a small CGI application / script to expose the sensor values via JSON. Then, I will modify the web interface to make use of the data.