I just uploaded a YouTube video showing off the Weather Cape drivers I developed along with the weatherstation application I ported from bonescript. The video is embedded below and also viewable at the following URL: http://youtu.be/QJEtuusBPak
Monday, 26 August 2013
Sunday, 25 August 2013
Report 10 (August 19 - August 25)
This is Report #10. I plan to post these every Sunday. They will give a
rundown of what I've done during the week, list any problems I had, and
what I plan to do the following week. I'll be posting the reports both
to the beagle-gsoc Google Group and to my blog.
Completed this week:
Completed this week:
- Rebased against mainline Minix
- Tested the TSL2550 (ambient light sensor) driver.
- Finished the SHT21 (relative humidity and temperature sensor) driver.
- Developed a BMP085 (pressure and temperature sensor) driver.
- Code merged into mainline Minix this week:
- 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
- Modified the bonescript weatherstation demo to use JSON instead of node.js / socket.io and display pressure in hPa. Here's a screenshot using a static JSON file.
- None this week :)
- Develop a script to read from the sensors and output JSON.
- Integrate the weather station demo and make it trivial to setup and use.
- Write more documentation.
- How to use the Minix I2C /dev interface.
- How to develop support for additional capes.
- How to use the BeagleBone Weather Cape in Minix.
Friday, 23 August 2013
BeagleBone Weather Cape Drivers Merged into Mainline Minix
I received a BeagleBone Weather Cape earlier this week. A cape is an expansion board for the BeagleBone and BeagleBone Black. The weather cape provides sensors for temperature, ambient light, humidity, and pressure. Combined with a BeagleBone, it allows anyone to create an Internet connected weather station.
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:
# 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.
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.
Sunday, 18 August 2013
Report 9 (August 12 - August 18)
This is Report #9. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the beagle-gsoc Google Group and to my blog.
Completed this week:
Issues / Concerns / Challenges:
Plan for next week:
Completed this week:
- Rebased against mainline Minix
- Cleaned up the I2C bus driver based on comments from one of my mentors, Kees. The changes have been merged (commit).
- Documented EDID Reading and the RTC device protocol on the Minix wiki (here and here).
- Developed a driver for the TSL2550 Ambient Light Sensor that comes on the WeatherCape. The code is written, and I will test it when I pick up the hardware (either tomorrow or the following day).
- Began developing a driver for the SHT21 Humidity and Temperature Sensor IC for the WeatherCape.
Issues / Concerns / Challenges:
- None this week :)
Plan for next week:
- Test the TSL2550 driver.
- Finish the SHT21 driver.
- Develop a BMP085 driver.
Sunday, 11 August 2013
Report 8 (August 5 - August 11)
This is Report #8. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the beagle-gsoc Google Group and to my blog.
Completed this week:
Issues / Concerns / Challenges:
Plan for next week:
Completed this week:
- Rebased against mainline Minix
- Developed a driver for the power management chip on the BeagleBoard-xM (TPS65950) with support for the real-time clock peripheral.
- Code merged into mainline Minix this week:
- readclock: add support for am335x RTC
- libminc: add reboot()
- tps65217: driver for the TPS65217 PMIC
- kernel: add support for am335x PMIC-based power-off
- pm: notify readclock of reboot(RBT_POWEROFF)
- kernel: implement reboot for am335x/dm37xx
- tps65950: driver for the TPS65950 PMIC
- readclock: code clean-up, add -q, manpage updates
- readclock.drv: add support for the TPS65950 RTC
- Produced a video demo of the real-time clock driver I developed for the BeagleBone Black. Link: http://youtu.be/rBakaxAGRS0
- Got a positive test report for frame buffer auto-configuration using EDID. I submitted the changes for inclusion in mainline Minix.
- Developed a design for adding support for the WeatherCape.
Issues / Concerns / Challenges:
- None this week :)
Plan for next week:
- Write documentation for the Minix wiki about how EDID reading and the real time clock work.
- Begin developing drivers for the devices on the WeatherCape: TSL2550, SHT21, and BMP085.
Friday, 9 August 2013
TPS65950 driver Merged
This week I developed a driver for the TPS65950 Power Management and System Companion Device commonly found on the BeagleBoard-xM. I implemented a basic I2C driver for the chip with support for the real-time clock peripheral. The code was merged today. Here are the commits:
Thursday, 8 August 2013
Real-time Clock Demo Video Posted
I just uploaded a YouTube video showing off the code I developed last week to control the real-time clock on the BeagleBone Black. The video is embedded below and also viewable at the following URL: http://youtu.be/rBakaxAGRS0
Monday, 5 August 2013
Merge Monday
Lots of code got merged into the main Minix git repository today, including 6 patches from my Google Summer of Code project for BeagleBoard.org. Included in the commits are support for the real-time clock on the AM335X, a driver for the TPS65217 Power Management IC, support for powering off the BeagleBone / BeagleBone Black, and support for rebooting the AM335X and DM37XX. Here's the full list of commits:
- kernel: implement reboot for am335x/dm37xx
- pm: notify readclock of reboot(RBT_POWEROFF)
- kernel: add support for am335x PMIC-based power-off
- tps65217: driver for the TPS65217 PMIC
- libminc: add reboot()
- readclock: add support for am335x RTC
Sunday, 4 August 2013
Report 7 (July 29 - August 4)
This is Report #7. I plan to post these every Sunday. They will give a rundown of what I've done during the week, list any problems I had, and what I plan to do the following week. I'll be posting the reports both to the beagle-gsoc Google Group and to my blog.
Completed this week:
Issues / Concerns / Challenges:
Plan for next week:
Completed this week:
- Rebased against mainline Minix.
- Code merged into mainline Minix:
- Finished the frame buffer driver enhancements. Put out a call for testers on my blog and in the Minix3 and BeagleBoard Google Groups.
- Enhanced the readclock driver to support the RTC in the AM335X.
- Developed a driver for the TPS65217 Power Management IC (PMIC) with support for safe power-off via the power button as well as `shutdown -p`.
- Filmed a short demo video
- Wrote a blog post about how it works.
- Implemented rebooting for the BeagleBone, BeagleBone Black, and BeagleBoard-xM.
Issues / Concerns / Challenges:
- None this week :)
Plan for next week:
- Submit changes for merging into mainline Minix:
- frame buffer driver enhancements.
- am335x rtc driver.
- tps65217 driver.
- other changes related to power-off.
- reboot support for am335x/dm37xx.
- Begin working on a driver for the power management chip on the BeagleBoard-xM (TPS65950).
Friday, 2 August 2013
PMIC Power-Off Demo Video Posted
I just uploaded a YouTube video showing off the code I developed this week to safely power-off the BeagleBone Black when the power button is pressed. It also works on the original BeagleBone when you run `shutdown -p`. The video is embedded below and also viewable at the following URL: http://youtu.be/x51NWpnesqQ
Subscribe to:
Posts (Atom)