If you have purchased a home automation device recently, there is a high probability that it has a MIPS-based chip inside. For example, a recent teardown of the Belkin WeMo and Ubiquiti mFi Home platforms by Ganesh T S at AnandTech revealed a Qualcomm Atheros AR9331 SoC using a very capable and area-efficient MIPS CPU.

Last week, a team of scientists from Disney Research and the ETH Zurich University in Switzerland took the concept of connected devices to a whole new level. In a whitepaper published here, the four IoT pioneers described the architecture of an innovative LED-to-LED communication system that can be implemented inside toys, wearables, mobile devices, and other Wi-Fi connected devices.

Disney - Linux light bulb - MIPS (2)VLC is a data communications medium which uses visible light between 400 and 800 THz (780–375 nm)

The new demonstration kit – tentatively called the Linux Light Bulb – uses visible light to send data at a rate of up to 1 kbps. The DIY bulbs are designed to interact with other gadgets that may not have full Wi-Fi connectivity and instead will read data using a technology called Visible Light Communication (VLC).

Disney - Linux light bulb - MIPS (3)Light bulb bottom casing hosting the power supply (1c), the light sensors (2b), the VLC controller board (1a) and the Qualcomm SoC board; (2) the top casing housing the LED heat sink (2b) and LEDs (2a), further providing additional air flow (2c); (3) original light bulb socket with integrated power supply for the LEDs.

The paper explores how the IP stack and other networking protocols can be implemented on Linux-based VLC devices. To achieve this, the researchers reused existing software like OpenWrt and implemented some additional firmware to implement the new functionality; overall, the project counts around 1000 lines of code.

In the figure below, we notice how the Disney engineers equipped a regular light bulb with additional custom-built parts, circuitry and casing to create the final hardware design.

Disney - Linux light bulb - MIPS (1)The hardware architecture of the Linux Light Bulb

The MIPS-based SoC is running the high-level wireless network protocol from a Linux distribution, while a microcontroller handles the real-time operation of the VLC firmware; the two embedded processors are then connected via a UART interface. It is important to highlight that the main objective was to build a mesh of devices that communicate only using the VLC protocol; the Wi-Fi protocol was simply used for remote control and data collection.

We found programming the MIPS CPU very easy and straightforward. We will use the MIPS architecture for other future prototypes as well. – Stefan Mangold, Disney Research

Since the MCU is abstracted as a regular Ethernet interface, most applications using TCP or UDP protocols can re-use the VLC driver.

The main computing module integrates a MIPS-based Qualcomm Atheros SoC with built-in 802.11g/n Wi-Fi, 20 GPIO pins and a UART port. This SoC has been used in many hobbyist projects and robotics applications that run OpenWrt – and this smart light bulb is no exception. OpenWrt is an embedded Linux distribution optimized for networking devices and ships with a full Wi-Fi stack, providing a complete transport layer for VLC.

We selected [the Qualcomm Atheros SoC] because of availability, good reviews on internet forums, and form factor. – Stefan Mangold, Disney Research

Furthermore, embedding a Wi-Fi chip inside the bulb establishes a perfect route for remote communication and control. Developers can use the wireless radio channel to deliver and install over-the-air firmware updates, add new functionality or reprogram the device remotely. Also, the Wi-Fi interface can be utilized to collect real-time measurements and other statistics without having to disassemble the bulbs.

The Disney team does not plan to stop here. Future plans include improving the transmission speed and distance, and adding multi-color support.

For more exciting projects and cool devices using MIPS, follow us on Twitter (@ImaginationPR, @MIPSGuru, @MIPSdev) and come back to the blog.