Happy 2015.  While I will be continuing last year’s project which evolved into the Ladybug Shield, I am starting a new project I’ve named “sling” that I am extremely passionate about.  

Thanks to Those That Went Before

I have been given so many presents.  A brand new year – still all wrapped up with the events this year will bring.  Tons of other stuff I won’t bore you with and…

  • Chris Gammell – the person that provides the excellent Contextual Electronics courses.  I highly recommend these courses.  From barely being able to use a breadboard, jumper wires, and breakout boards I have been able to design and build PCBs…choose components…and SORT OF 🙂 understand the electronics and math behind the circuits.  I could not do this project without Chris’s courses and mentoring.  THANK YOU.

What Is sling?

sling is a wearable device and smartphone software that gives it’s owner a “fighting chance” to disengage from a physical attack.  The focus is on:

  • React – The owner activates the sling wearable when in danger.
  • Respond – Buddy Guards* at the same location get an alert on their smartphone that an attack is under way and provides proximity information so that a Buddy Guard can quickly go to the location where the attack is happening.  More distant Buddy Guards will get an alert with a map location where the attack is happening.
  • Record – takes an voice recording of what is being said and sends the recording to the smartphones of Buddy Guards.

Buddy Guards are people whose smartphones are running the sling app – either in foreground or in background.  Buddy Guards may also be protectors like Campus Police or a safety team through SMS or other remote alerting technologies.  Once aware of an attack, they may also respond in other ways to increase the safety of the person being attacked.

Why This Project?

I’m a mom.  One of my children was attacked.  These attacks must not happen (although I know attacks will continue).  I thought how I could best help minimize attacks.  I could bring more awareness through activism.  I could become a counsellor.  These activities – and others – are needed but do not leverage my skill set.  I decided to build an experience that uses hardware, software, and communications technologies to design and build a wearable + smart phone app that can be quickly activated when a person is being attacked.  Combining with others whose skill sets align with activism, counseling, etc. we can team up in a united front to eliminate physical attacks from happening to our daughters, sons, sisters, brothers, parents, grandparents, friends.

Why the Name sling?

A sling was the tool David used to slay Goliath.  The story of David against Goliath is a constant reminder that there are ways for the physically less strong to defeat big, strong monsters.  

A Scenario

I thought I’d start by walking through a scenario.  The goal is to gain a common context on an experience when sling is involved. 

A group of kids go to a party.  The kids have configured the sling app so that they are all Buddy Guards of each other.  Remote Buddy Guards may include family members, people on alert to help the kids, campus police, etc.  One of the kids gets into a situation that has spun out of control to one in which they are being physically attacked.  The kid under attack activates the sling wearable (activation of the sling wearable will be one of the many things to get feedback on.  We can all think of many ways – a button, a voice command, a heart beat rate, pulse rate, a movement…).

Upon activation, the sling sends out a BTLE alert and starts loudly beeping (~ 100dB) for a few seconds. The beeping stops.  sling starts recording voices for a few minutes.  Meanwhile, the Buddy Guards whose smart phones are within range of the alert pick up the alert and send remote alerts (for example, an SMS) to other smart phones that have been set up to receive remote sling alerts.  Most likely this will mean a Buddy Guard gets multiple alerts.  The design could change.  My initial thought if there are more alerts, there is a better chance at least one gets through.  Like all aspects of the sling experience, the alert reception design will change as people start participating in the sling experience.  The alert has GPS location information.

When an alert is detected, the Buddy Guards that are within a BTLE range will start viewing the sling app UI which will be moved to the foreground if it isn’t currently running in the foreground.  The sling app will give them proximity information as an aid to getting to the person under attack as soon as possible.

In the background, the voice recording finishes processing.  Once finished, sling sends the voice recording to a sling smartphone app which then sends the recording to Buddy Guard’s phones.

The details of this scenario will evolve as I learn more and others provide feedback to get the experience to be maximally useful given the available technologies.

Proof of Concepts Prototype

I will start with building prototypes.  I find prototyping to be the best way for me to get my best thinking on the design of hardware and software.  

The Goal

The goal of the prototypes is to rapidly build the sling sub experiences using existing hardware.  The end result will be a deeper understanding of how each sub experience can best be implemented in hardware and software.  They will also inform the sub experiences, evolving them to more effectively address the goals of sling – help in deterring physical attacks.

sling Sub Experiences

sling sub experiences include:

  • local alerts:  sling hardware sends out a BTLE alert that is picked up by iPhones within range that are running the sling iPhone app.  Through sound and UI, the sling app notifies the iPhone that an alert has been received.  At this point, the sling app is running in foreground mode.  The sling app starts updating near/far proximity information so that the person with the iPhone has a chance to come quickly to the aid of the person that set of a sling alert.
  • loud beeping: sling hardware turns on a loud beeping sound for a few seconds and then turns the sound off.
  • voice recording: sling hardware starts voice recording and storage of the voice file.  Once the recording is complete, the voice file is sent to the iPhones running the sling app.
  • storage of voice recording: the sling app will use a storage mechanism (e.g.: sending over sms, dropbox…TBD) so the voice file is available when the process has begun to recount the attack.
  • remote alerts:  once the iPhones that are within the BTLE range of the sling alert have been notified, the sling app sends data to iPhones outside of the BTLE range that are on the Buddy Guard list.  The data includes information that “this person” is being attacked as well as the GPS coordinates where the attack is taking place.


Given what I know how to do, I am constraining the prototype to:

  • iPhone devices.  In the past I have developed iOS apps and have an iOS developer’s account.  Given this knowledge, I will design and build the smartphone prototype on iOS.  
  • BTLE.  There are many locality based wireless protocols that could be used.  BTLE has grown in use.  iOS devices have excellent support for BTLE.  I’m starting to see great support for BTLE for Arduinos.
  • Arduino for sling wearable programming requirements.  I have become very familiar with the Arduino environment.  Also, there are many breakout boards, information, as well useful sketches and libraries readily available for sharp folks.
  • not consider chip selection and PCB design.  The higher priority is to understand how the hardware and software can be best used to solve each sub experience.  Once understood, more detailed analyses will need to be done to design the hardware and software for use.

That’s It For Now

Please let me know if you see ways to improve the hardware/software/scenarios.  In the ideal, we build this experience together.


Thanks for reading this far.  A VERY HAPPY New Year.  Please find many things to smile about.