The Ball is in our court and control with the Sphero C# Controller (WP8, MonoDroid, MonoTouch and more)


I'm not sure if this is a awesome Hardware Friday most, a Mobile Monday post, a Modern Monday post or a Wild Wednesday post. Well, actually I think it's all four!

BallControl - an open source Sphero C# controller - WP7, MonoDroid and hopefully MonoTouch (and WinRT?)

Meet my latest open source project - meet BallControl for Sphero:


Here's a first video I made for the project - sorry about the low audio volume!

Xamarin the Native, Sphero the Ball and Lumia the Phone....

After a long week of coding, this experiment in sleep deprivation reaches its inevitable conclusion....

- Xamarin.Mobile Picture capture
- Native voice control
- Native accelerometer control
- Native UI with lots of touch
- Native BlueTooth
- Guest Starring Sphero the ball
- Cross platform Mvvm

Xamarin the Monkey....  because going Native matters



Some technical info
The project demonstrates Xamarin.Mobile by using Xamarin.Mobile media picker.... But, beyond that it also extends Xamarin.Mobile tackling some elements of several Xamarin.Mobile requests on uservoice:
The Source
The source is on:
Currently, we have:
  • a working WP8 app
  • a working (but ugly) MonoDroid app
  • a non-working Windows Store app - it seems that Windows Store does not yet support BlueTooth SPP devices - which is so bad Sad

I will get a MonoTouch app working soon....
I will also post to the WP8 app store soon.
And I will post some more videos soon....

If anyone is interested in how the app was built I did live blog the first 10 hours of coding... see PDF at (or email ...

Ball Control

A BlueTooth/Accelerometer/Camera/VoiceControl app for fun and for Developer Competition

Ball Control is an open source Sphero controller.

To use Ball Control, you first need a Ball - get your Sphero from - and in the UK from


Ball Control's first target platform is Windows Phone 8 where it makes use of Portable Class Libraries, Xamarin.Mobile library, and MvvmCross

The app allows you to control your ball - currently you can control:

  • heading
  • rolling
  • colo(u)r
  • tail light on/off

Using the WP8 APIs - abstracted inside PCL MvvmCross plugins, you can control these things using:

  • touch
  • tilt
  • voice

The current repo includes a first version of Ball Control for Xaramin Mono for Android. this is in draft at present - it works but is not styled yet. Ball Control will also soon provide WinRT and Xamarin MonoTouch for iOS version Smiley


The goal of this application was to show off C# Mobile coding, specifically showing off the use of C# native solutions including the use of Xamarin.Mobile products. It was also a chance for me to write some fun code after being on 'business logic' for a few months. This application uses MvvmCross and Portable Class Libraries throughout - there are no #if statements allowed - it's AmazeBalls.

This project includes:

  • Xamarin.Mobile
    • Media Picker
      • Really easy way to take a photo - took seconds to add to my app
  • MvvmCross
    • Mvvm Platform
      • Plugins via IoC and PCL for code sharing
  • Windows Phone 8 SDK
    • Voice Control
    • BlueTooth
    • Accelerometer
  • Android SDK with Xamarin's Mono for Android
    • BlueTooth
    • Accelerometer
    • more coming soon....

Other platforms and features will be added soon....

There are some NUnit unit tests included - I ran out of time a bit - so coverage is not huge. More will be added!


Now how awesome is that!

The Discussion

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.