May 31

Radish: Google Engineer 20% time + environmental flare = indoor solar-powered calendar

Google, Tech with tags: , , , No Comments »

I got to meet Aaron Spangler, one of a two man team that decided to use their 20% time at Google to build a indoor solar-powered calendar display that hooked into Google Calendar and once ever hour updates the epaper.

In the video he details his experience, and we show it in action. Fun stuff indeed, and here is some of the technical goodness:

The goal of Radish is to replace this manual process with a portable device that can wirelessly retrieve and display scheduled events for conference rooms. For Google, this would translate to a savings of about six reams of paper a day, not to mention the printer resources and manual labor required to deliver the paper schedules to the conference room doors. Aaron has also determined that about 20-30% of all reservations are changed during the day, hence the Radish also overcomes the static nature of a paper display with real-time data.

The Radish is a working prototype that is built entirely from scratch and assembled using generic, off-the-shelf hardware components. Custom firmware was written in C and assembly language.

The CPU of the Radish board prototype is programmed to manage power usage and to transfer and display data. The display of the Radish is a special LCD screen that maintains the downloaded image without consuming power.

The Radish is equipped with radio transmitters that uses the IEEE 802.15.4 protocol to send and receive data wirelessly. IEEE 802.15.4 is ideal for ubiquitous communication between devices within a wireless personal area network because of its focus on delivering low-cost and low-speed communciation.
This is why IEEE 802.15.4 is far more energy efficient (about 1mW per radio) than traditional Wi-Fi.

Radish uses the radio transmitters to ping and receive display data from an external server. This custom server fetches the set of event data pertaining to a conference room via the Google Calendar Data API. Using the Google Calendar Data API, the server is able to sync event data with Google Calendar. The event data is then processed into an image that is specifically sized for the LCD display. The MAC address of a Radish’s wireless receiver is used as the unique identifier for the room it represents.

All electronic components were selected with one important criterion: that they must be compliant with the Restriction of Hazardous Substances (RoHS) Directive which restricts the use of hazardous materials (mainly lead) within electronic equipment. Another major area of environmental focus was the power supply of the Radish, particularly how to efficiently and cleanly power the Radish around the clock. The Radish team members (Aaron and fellow engineer Matthew Wilson) made a point of not using batteries to power the device. Instead, their desire was to utilize natural, carbon-free energy.

After investigating various energy sources, the team decided to use solar energy. Attached to the Radish board is a solar panel that collects and stores solar energy. The solar panel of the Radish is capable of collecting any source of light energy, including normal office lights, hence it might be more appropriate to say that Radish is powered by ambient energy.

The Radish is normally in an ultra-low power sleep mode. The Cholesteric LCD screen can maintain the final image state even in sleep mode, the state in which Radish spends most of its time only periodically waking up to ping its server for updates. The gap between sleeping and waking is determined algorithmically depending on how much energy it currently has in storage. With the ingenuity of the power management algorithm, the Radish is exceedingly efficient with power usage. A fully charged Radish can be running continuously for 3-4 days with a guarantee of at least one daily update, even in low light conditions.

Mar 05

Google Contacts API: Never give our your username and password again!

Google, Tech with tags: , , 1 Comment »

Neil on the Moon

How many applications ask for your Google username and password to get access to your contacts? A lot of new services offer the “feature” to map contacts on their service to your buddies. For example, you signup to Dopplr and want to map your contacts over.

Giving your username and password to your email is a Bad Thing ™, so we have wanted to put out an API that does what you really want (access to contacts) without opening up the entire farm (e.g. look at your email, or worse).

Sebastian Kanthak and his team have released the Google Contacts API:

It gives programmatic access to your contact list. The contact list is shared among Google applications like Gmail, Reader, Calendar, and more.

The Google Contacts Data API allows you to own your own contact data. We expect the API to be useful for a big range of applications. For example, developers can use it to:

  • Import a user’s Google contacts into their web or desktop application
  • Export their application’s contact list to Google
  • Write sync applications for mobile devices or popular, desktop-based contact management applications

The Contacts API allows developers to create, read, update, and delete contacts using the Google Data protocol, based on AtomPub. It also allows for incremental sync by supporting the “updated-min” and “showdeleted” parameters. Please take a look at our documentation to see all the options supported.

We know that this Google Data API is the most requested feed by our developer community, so we’re very excited about this release. We are committed to actively work with you to improve the Google Contacts Data API and we’d like to hear back from you in our Google Contacts API group.

I know many people have been waiting for this, and I am excited. What a day for tech!