RPi Chronicles

Fix SDCard not booting

Edit your /boot/config.txt file and add this to your kernel line:

sdhci-bcm2708.emmc_clock_freq=100000000

Fix WiFi: Realtek RTL8188CUS

I bought this micro WLAN adapter. Unfortunately, the power management is active on this particular adapter on the kernel drivers and it will turn off and disable itself from time to time.

Lets start by creating a script to check if we have internet connectivity:

sudo nano wifi.sh

Add this to this file:

#!/bin/bash
ping -c 1 www.google.com &> /dev/null
if [ $? != 0 ]; then
echo "Network down..."
ifdown --force wlan0
ifup --force wlan0
else
echo "Network ok!"
fi

Set the right permissions:

sudo chmod 755 wifi.sh

And now add a crontab job as root to check the network status every minute:

sudo crontab -e

And add this line:

* * * * * /home/pi/wifi.sh

Last step is to make sure to restart wpa_supplicant daemon when the network is lost, by replacing the default ifupdown script with wpa_supplicant’s version:

sudo cp /etc/wpa_supplicant/ifupdown.sh /etc/ifplugd/action.d/ifupdown
sudo reboot

Raspberry Pi support for Mac stuff + printing

Install all the required packages like this:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install netatalk cups

You should be able to see your Raspberry Pi on Finder on your Mac when it finishes installing (takes about 10 seconds or so). Now you need to edit a couple of files to add the folders and services you want to have access to:

sudo service netatalk stop
sudo nano /etc/netatalk/AppleVolumes.default

At the end of the file (use Ctrl+v to go faster down), edit to add your external hard drives:

:DEFAULT: options:upriv,usedots,tm
/media/yourhdd  "Your HDD label"

That should enable you to mount your hard drive in Finder.

DSC02024-leveled

OneTouch – person-centric communication

shapeimage_3 onetouch_black

 

 

OneTouch represents a revolution in unified communications. OneTouch empowers the mobile workforce by providing a user-centric mobile experience that puts you in control, whether your at work or at home.

OneTouch’s design went beyond current solutions to address the needs of the mobile workforce. Whether your on a call or checking emails, OneTouch’s mobile experience puts everything you need, OneTouch away. OneTouch connects you to the people and places that matter to you – whether it is business or personal. OneTouch’s design was inspired by the demands of a workforce on the go. With OneTouch, your always in control of your mobile communications.

Report [ here it’s quite big! ] Presentation [ here ]

Teamlogo-transparent

Born out of the need for a dynamic team to design a unique unified experience for the corporate environment, the Collective team offers a solution that encompasses the most innovative Human Computer Interaction and Service design principles/practices.

We branded ourselves as Collective. The logo combines 4 different perspectives on one project. Each color represents our different experiences and origins: Portugal, Brazil, USA and India. Together, we created OneTouch, a person-centric communication solution.

Denzil Ferreira

Denzil Ferreira

With a research interest in context-awareness, mobile computing and complex systems, Denzil tries to solve the frustrations users endure when they can’t understand what is happening on an increasingly complex world. Experienced in Computer Science, Software Engineering and Human-Computer Interaction, he pursues his dream of helping other’s enjoy technology.

 

Ana Menezes

Ana Menezes

Before joining the MHCI program Ana worked as a Software Engineer for 5 years in Brazil. She decided to be closer to users and design products that could really impact people’s life. She is passionate about technology and cultures. Her main goal is bring these two together whenever possible.

 

Frank Noz

Frank Noz

Frank has a passion for people, creative collaboration and technology. He believes that successful solutions begin organically with their end user, creating an experience that is intuitive and efficient. His goal is to create solutions that respond to their community’s needs – managing relationships as well as data.

 

Antons Akkarakaran

Antons Davis

Armed with a degree in Information Technology, Antons worked as a Software Engineer before joining HCI Masters. He intends to work closer to end users, turning observations into design solutions that create a deep and profound impact.

Scope

Today, the user is held slave to a number of communication medium and interfaces. Some of the most common scenarios are listed here:

  • Land line is almost not used at all.
  • User has to to attend an important meeting and should turn all his modes of communication to silent mode. This includes mobile phone, Skype, Google Talk, landline etc. This is a painful task and can also lead to missing out on important calls.
  • User is at home/ vacation/ business trip/ meeting and wishes to attend only some important calls that is very important.
  • User has no clue of the calls that came to his official land line.
  • User cannot route/ transfer his calls between mobile and land line.

Our mission is:

“Research the current trends and habits in communications between road- warriors and companies headquarters in order to develop a mobile application that facilitates optimal professional/personal work balance.”

Customer

logo_Collab_HiRes

The Collective team is designing a flexible, easy to use interface
for Collab. With features like call forwarding, priority lists, contacts
and centralized control of all means of communication the user is
less dependent on the myriad means of communication.

The biggest advantage that the team enjoys in this project is that all infrastructural elements that make up the whole network are already in place:
•IP Centrex implemented on top of IMS architecture
•Microsoft exchange server
•Office Communications Server

Collective team builds the new service on top of this existing architecture that makes use of all the functionalities in an effective manner.

Service Design meets HCI

The client engagement experience cycle consists of several distinct touch points that focus on building the client relationship, informing the client of the Human-Computer Interaction/service design process, and mentorship.

Collective has adopted several service design methodologies into our project and client engagement process. Collective used the experience cycle to successfully engage, build trust, and understand the clients needs. Echoing the exploratory phase, Collective has modeled the engagement process to foster a sense of shared exploration. With each successive touchpoint, the project has developed its own inertia, helping to make tangible the research and exploration to date. The client has responded enthusiastically and is beginning to understand the value of the design process.

Brainstorming with the client

Using post-it’s from the client presentation, the group worked together to create a shared vision of the problem.

DSC02024-leveled

The client quickly became an expert in the process, which provided the team with another opportunity to collectively share an understanding of the problem domain. The Affinity Diagram also provided an opportunity to help shape the vision for the project.

Together with the client, the team created a collage, where all the concerns, perceptions and desires where placed. Using hardware components, the team built with the client a prototype of the product, focusing on motivation, rather than features. The experience rewarded the client and the team with valuable information and insight into what the client wants in a very short period of time.

Implementation

The mobile phone runs OneTouch client. The client is the gateway between the device and OnePBX services. All the information such as email, SMS and calls is stored locally on the device. The status is also stored primarily on the phone, being broadcasted to the service using the WebServices available. Other’s status are also updated using the WebServices. The WebServices acts as a convergence point, allowing users to establish a call with a subject, even though it is a regular mobile call, broadcast status updates and push contact information between the OneTouch clients.

architectureOnePBX services manage and handle all the call’s routing, bringing the OnePBX calls status and forwarding to the platform. OneTouch client will allow the user to know when his landline is ringing, transfer a call from the landline to the mobile device and vice-versa.

As an Android application, the OneTouch client is divided into two sections: background services (Services) and user interfaces (Activities). The activities are where the user interacts with the user interface and his actions change the way how services behave.

mobile_clientThe OneTouch contact list allows the user to call with and without a subject, check everyone’s status and organize his VIP and Favorite lists. The Missed Pokes allows the user to see what happened for people that are important, sorted by the chosen criteria of importance. The Poke History provides the user with an unified communication inbox, where he can see all the communication between himself and others. The Status allows the user to set his status and configure the sound profiles for each. The Call Information allows the user to set a subject when making a call. The Account Manager handles the configuration of the user’s OneTouch account. The Notification Manager handles the missed pokes notifications, SMS Manager the incoming and outgoing sms, the Call Manager the incoming and outgoing calls and the Email Manager monitors the inbox for important emails from VIP contacts.

Video

 

Ambient Notifier state machine

Overcharged – saving your battery

Overcharged notification bar

Overcharged notification bar

Most smartphones alert the user for charging when the battery reaches critical levels, but do not notify the user when it has finished charging. This application does it, personalised by the user using notification sound, vibration, LED light and voice (with the Text-to-Speech) functionality on Android devices.

Motivation

Every year, $22 million dollars are spent in electric utility costs with overcharging [1]. where the country could save 300 millions kWh in electricity per year, or 216.000 short tons of CO2 emissions from power plants.

Application

Overcharged settings

Overcharged settings

The application runs as a background service, where I monitor for battery events fired by the operating system. Besides the battery events, I also monitor USB connectivity, so that I can offer the possibility for the application to only run when the phone is actually charging. This makes it also power efficient!

Settings are automatically saved and applied as you leave the application by pressing the Home/Back button on your device.

 

 

 

 

Next you’ll find here what all the settings do and what to expect:

  • Start at bootup: this will set Overcharged to start automatically when you turn on your device for the first time or restart your phone.
  • Run on plugged: run Overcharged only when you plug the phone to charge. It is only active the next time you plug the phone to charge. If this option is active, Overcharged will shutdown automatically when you unplug.
  • Dock mode: Android 2.2 introduced the dock mode with the official Android 2.2 (Froyo) update. Unfortunately, some manufacturers, despite having upgraded to Android 2.2, have replaced the DeskClock application with their proprietary application, meaning that this function will not work on those devices. The dock mode allows you to listen to music, view your photos, use your phone as a night stand and check the weather.
  • Start/Stop manually: if you wish to start the service manually. Please note that starting manually, before you have saved your settings, will start Overcharged with default settings.
  • Vibrate: will make your phone vibrate once when the battery has finished charging.
  • Sound: will use your notification sound to notify you that the battery has finished charging.
  • LED + color: if your phone screen is off, the LED trackball will light up on compatible devices. Recent devices have an RGB LED, which allows you to specify which color you wish the trackball to use. For older devices (i.e, HTC Magic, HTC Hero, T-Mobile G1), the trackball might flash white, depending on the operative system version you have and availability of HTC drivers built-in.
  • Voice: using Text-to-Speech, you can make your phone talk whatever you want when it is finished charging. You can preview and adjust the Text-To-Speech settings directly from Overcharged.
  • Uptime: this allows you to know how long has your phone been running on battery. It gets reset back to 0 every time the user restarts the phone or charges the phone.
  • Cº Celsius: gives you the temperature in degrees Celsius, instead of Fahrenheit.
  • Show percentage: this will add a notification counter with the percentage level number. It allows you to know the value without pushing down the notification bar. Some users like it, some don’t, it’s your choice if you use it or not.
Ambient Notifier prototype

Ambient Notifier – peripheral attention

Ambient Notifier prototype

Ambient Notifier prototype

The Ambient Notifier is a standalone device designed to reduce the frequency of explicit interaction between users and their mobile devices which are due to users wishing to remain updated about the status of their phone.

Motivation

Mobile phones are becoming an increasingly ubiquitous technology due to their widespread penetration in the public, their growing functionality, and the wide spectrum of activities they support and facilitate.  Despite their mobility, empirical evidence on mobile phone practices shows that only 58% of users keep their phone within arm’s reach, while 20% keep phones a bit farther away but still in the same room. This evidence suggests that users need to periodically interact with their mobile device to check if there was a missed call or SMS. This can be time-consuming, especially since the phone may be in a different room, and can introduce interruptions to users’ activities.

Ambient Notifier

Designing ambient displays is challenging. They need to provide adequate feedforward and feedback such that users can assess what they can do with them, what information the ambient display shows, and how well the display fades into the background.

Ambient displays aim to provide users with relevant information, in the right form, at the time and place it is needed. Another crucial factor in their success is comprehension: how well do users understand the purpose of an ambient display and how to use it.

The Ambient Notifier, uses light to get users’ attention and present information about incoming calls, missed calls, and received SMSs. Publicly exposing the state of a user’s mobile phone is a challenging task, especially since users do not tend to reveal personal information contained in the phone to others. However, previous work has explored mobile phones in the context of ambient displays and publicly revealing information, arguing that interaction with the phone and through the phone reveals and reflects the user’s behavior.

Hardware

RGB LED attached to Arduino Duemilanove

RGB LED attached to Arduino Duemilanove

The main component of the system is an RGB LED. This is a light emitting diode that can change between red, green, blue and any combination of the three colors. When all three colors are activated the LED turns white.

The LED is connected to an Arduino Duemilanove via a 220 Ohm resistor which was isolated using heat shrinkable tubbing. The Arduino board was extended with a WiShield component to provide internet access, and was attached to a battery for power.  Finally, using a laser cutter an acrylic casing was built to house the electronic components. The LED shines through the acrylic case onto the lamp, thereby making the lamp light up.

Software

To enable the Ambient Notifier to respond to events on the phone, a server was developed to run over the WiShield’s TCP/IP stack on the Arduino board. The server listens for pre-defined messages sent from the mobile phone (or indeed from any internet-capable device):

  • off: idle state.
  • ringing: there is an incoming call.
  • answered: the call was taken.
  • dismiss: cancel the notification.
  • sms: received sms.

A small software service was developed for the Android platform that takes care of detecting different events on the phone and sending the appropriate signals to the Ambient Notifier. The state machine design pattern was used to map the LED’s color to states, and to model the transitions between states.

Ambient Notifier state machine

Ambient Notifier state machine

By default the Ambient Notifier is in the Idle state. When a SMS is received on the user’s phone, the Ambient Notifier changes from Idle to SMS state (blue). An incoming call changes the state to Ringing (green). If the user does not answer the phone, Ambient Notifier changes to Missed call state (red). These states and transitions were informed by the Peripheral Display Toolkit, a toolkit that empowers designers of ambient displays to manage users’ attention.

The toolkit provides support for three aspects of ambient displays: abstraction, notification levels and transitions. Abstraction involves simplifying the information to be displayed, so that it is easy to interpret at a glance. The Ambient Notifier simplifies information by changing phone events into colors. Notification levels refer to differences in information importance, which in the Ambient Notifier map between the no light and light conditions. Transitions are how users’ attention is captured. In the Ambient Notifier, the RGB LED toggles between colors as events occur.

The Ambient Notifier requires a background process to run the users’ mobile phones. A background service was developed for the Android platform, which enables the user to specify the networking address of the Ambient Notifier. In addition, the application indicates to the user whether the phone is actively connected to an Ambient Notifier. This software monitors the phone activity in the background, and detects events of interest. Specifically, the application monitors for incoming calls, missing calls and received SMS.

Evaluation

Three evaluation studies were conducted. Study 1 was a heuristic evaluation adapted for ambient displays from Nielsen’s heuristics. Study 2 was an in-situ informal evaluation carried out with the Ambient Notifier, involving ten users who had the opportunity to interact with the system, see it in action, and provide feedback on its operation. Study 3 was a long-term evaluation involving two participants using the system for 3 weeks. In this study the participants were interviewed both before and after using the system, and the objective was to assess the extent to which the system affected the way users handle and interact with their phone.

Results

The heuristic analysis used to evaluate the Ambient Notifier is an adaptation of Nielsen’s heuristics. From this technique, the following heuristics proved to be useful during evaluation of the system:

  • Useful and relevant information was a focus of the system by displaying phone status to users; 
  • Peripherality of display highlighted the importance of the Ambient Notifier waiting to be engaged and be non intrusive; 
  • Match between design of ambient display and environments was achieved by the Ambient Notifier’s portability and small size, but in its present form is far from being an object fading into the environment; 
  • Sufficient information design indicates that the features level should be kept at an “enough” level, as was the case with the Ambient Notifier; 
  • Consistent and intuitive mapping was achieved by mapping the colors to the events consistently; 
  • Easy transition to more in-depth information was taken into consideration, as the Ambient Notifier triggers the user to use the phone in case they need to know who called, who sent an SMS and what was written; 
  • Visibility of state was achieved since users can perceive that something is going on with their phone. 
  • Aesthetics and Pleasing Design are a useful direction for further improving the Ambient Notifier.

In Study 2 ten users had the opportunity to use the Ambient Notifier and play with it during an afternoon. Their feedback suggests that it was immediately apparent to them what the notifier did and how it worked. This was reinforced by the fact that participants were given a live demonstration of the Ambient Notifier being right next to a mobile phone. This setup made it straight-forward to map events on the mobile phone with the states of the Ambient Notifier, since the two were right next to each other and participants were able to observe both the phone and the Ambient Notifier simultaneously.
Study 3, the longitudinal evaluation of the system with 2 users, revealed a number of insights. Both participants commented that although it was pleasant to have an ambient notion of the events happening on their phone, they found it annoying that they needed to interact with the phone itself in order to “reset” the Ambient Notifier. The participants commented that it would be useful to be able to “shake” or “touch” the Ambient Notifier in order to acknowledge and dismiss the notification.
One of the participants mentioned that the Ambient Notifier was quite helpful to know when the phone rang, especially when the phone was not nearby or the environment was noisy.

“...I like it, it’s like having a lamp that controls my phone activities...”

Finally, the participants commented that the battery life of the Ambient Notifier (1 day) was not sufficient, as they had to recharge the battery every night. A possible improvement on the design of the Ambient Notifier is to enable it to recharge itself by plugging it to a wall socket, much like how mobile phones are recharged. This would avoid the inconvenience of removing the battery before every recharge cycle.

“...I would leave the device near me on the desk, while I had the phone charging... it would light up the desk every time someone was trying to reach me...”

Video

OuluRest – location-aware restaurant finder

Oulu public and pervasive displays!

Oulu public and pervasive displays!

Finding an open restaurant after 7pm at Oulu is mission almost impossible. OuluRest was a public display application geared to show where to eat, and how to get there based on where you are.

Workshop

The 1st International UBI Summer School was held in Oulu, Finland, on May 31 – June 4, 2010. The purpose of the summer school was to provide young researchers with an opportunity to gain deeper insight to the multidisciplinary fields of ubiquitous and urban computing, to stimulate international R&D networking and to promote the UBI Challenge. 75 students from 20 countries participated in the summer school.

The Real World Context-Aware Applications workshop discussed the design and development of context-aware systems. It engaged participants in building their own context-aware systems with a variety of mobile phone and fixed environment sensors.

Participants were exposed to behavioral/anthropological methods in selecting systems to build, to a variety of software tools for building applications and to a variety of methods for evaluating these systems.

In the workshop, we discussed the details for building context-aware systems in domains such as healthcare, mobile computing, and transportation. We also investigate a number of aspects of context-aware systems related to the usability and experiences in using these systems: intelligibility, the role of machine learning, end user control, end user feedback, etc.

Team

Cheng Zhi, from NTNU
Denzil Ferreira, from CMU | M-ITI
Ting-Ray, from VTT | MIT
Xiao Hui, from SHU

Process

The design process involved observing and interviewing the locals and tourist, a brainstorming session, fast prototyping, validating the prototype, iterate based on the feedback, prototype again.

Functionalities

Displays current location of the public display, multiple language support, shortest route to the restaurant on foot, current status of the restaurant (green is open, red is closed), surrounding restaurants and street-view on the location.

SmartMail – digital physical mail

Prototype of SmartMail

Prototype of SmartMail

SmartMail is a sensor augmented mailbox that notifies you on your email when you have mail. No more checking for mail unnecessarily!

Motivation

Don’t you just hate it when you go and check your mailbox to find it empty? What if you already knew when you actually have something inside it beforehand? SmartMail was a budget solution for this problem. Know when your physical mail arrives digitally.

Hardware

We used an Arduino Duemilanove, a Sharp 2Y0A02 F 98 IR range sensor, a photosensitive sensor and a WiShield v1. The IR range sensor detects when something is dropped inside the box. The photosensitive sensor detects when the box is opened, to remove the mail. The WiShield allows us to connect the Smart Mail to an internet enabled WiFi, used for broadcasting to our email when we receive mail.

Assembly video, prior to testing detection and performance

Software

Smart Mail is connected to the internet, using the WiShield’s TCP/IP stack on the Arduino board. Reading the photosensitive sensor values and IR values, three different states were controlled:

•mail_received: when the IR detects movement and photosensor detects dark.
•mail_taken: when the photosensor detects light.
•mail_reset: when the photosensor toggles from light to dark.

The WiShield allows us to perform an HTTP POST to a WebService we created using CodeIgniter PHP framework. Calling the WebService with the different states, triggers sending an email notification to your inbox, alerting you when you receive mail.

Flow of actions from SmartMail

Flow of actions from SmartMail

If there is no mail detected (IR did not detect any movement), if the user opens the door, nothing happens. On the other hand, as soon as the IR detects movement, an email is sent to the owner of the Smart Mail to notify him/her that there is new mail. When the door is opened, the Smart Mail status is reset, notifying the user that the mail was collected with another email. This case is useful if you have someone else at home that can check the email for you.

Evaluation

When we first built the prototype, we were interested in detecting when new mail arrived. As we tested the first prototype, we noticed that although we could detect new mail, we could not detect if someone took it away. Adding a photosensor to the prototype, allowed us to detect when someone opened the door. Although it fails to actually detect if the mail was taken, it is safe to assume so.

After a week using the prototype, we realized a problem. We did not notify the user if the mail had been taken. This lead to sometimes the user opening the Smart Mail and not finding anything inside it. Hence, we had to notify the user when the mail had been collect, as in a family house the likelihood of finding an empty mail box would be recurrent.

While I used HTTP POST to test the prototype, I further tweaked it to use XMPP protocol with a PHP wrapper, allowing you to be notified using GTalk IM.