Upcoming Challenges

This semester will have a number of key tasks and challenges that I will need to overcome in order to complete the Thesis project to my satisfaction.

1 ~.Communication.

Due to the unforeseen issues withe RBL BLE modules described in a prior post I need to decide whether to continue pursuing this route or go with a different wireless solution. This is a primary issue, and needs to be solved within the next few days. I am beginning to lean to a solution I have already worked with in a prior proejct as it would both enable much simpler networking and a broader range of devices that I can use as the final receiver. With that said, the financial cost of the RBL modules is not insignificant and their advertised benefits would be a great asset to this project (provided I can get them to work within the next week).

2 `.Structure

This is another yet to be solved problem. Although 3D printing is an effective prototyping method, and I will continue with it, it is unable to duplicate the aesthetics established by my design process. It’s important to follow through form the designs in order to have a coherent final style guide. My current consideration is to create a simplified 3D printed electronics housing for each module and then attach other materials onto it via adhesives or mounting methods (Snap-in, bolts, etc). This will require a set of quick tests to decide what would be best for this process.

3 ).Write-out

The final outcome for this semester will be presented at the OCADU GradX, meaning that there are some considerations that need to be taken to make the invisible visible for the public. Data gathered by the sensors will have to be presented in a compelling and perhaps interactive manner. This will be a challenge after the codebase is complete, but must be considered throughout.

4 _.Functions

Communication is one thing, and although the code will not be challenging it will need to have a fairly high degree of stability. It will also need to be very general.

Each module can have a sensor or a part of a sensor (for example 1/2 of a 360deg ambient sound sensor is on one shoulder), the message that the module sends out to the collector will need to provide a very clear note of which sensor is which. The collector will have to process this data in order to unify the sensors that are split amongst modules.

Tag structure: Mod 1 thru 3 followed by sensor 1 thru 3 followed by sensor value i.e. 1|1|255 <- neck module, light sensor, full bright. If there are multiple sensor ‘pieces’ on different modules they are easily distinguishable. (1|1|255, 2|1|255) etc. This is a preliminary idea, and there might need to be more metadata passed through.

A lot of the data noise will need to be cleaned up on the software level as well (likely with basic thresholds).

The collector module (upper hip) will need to consolidate this data into a package that can be logged internally and synced as appropriate to an internet enabled device (Currently a mobile phone). Each package will be given a distinct time stamp and any message backlog will be pushed to the phone at the next best opportunity.

With the above code completed the project will have everything it needs to provide a clean interface for the gathered ambient data.

There are also a few parts that need to be ordered soon,

2x Colour light sensor. (And a focus lens that needs to be tested)
4x Wireless Charging coil and circuit.

Setting up the BLE Mini from Red Bear Lab

I picked up four of these bluetooth low energy (BLE) modules with the intention of setting up three wireless sensors and a receiver. After a long struggle I managed to get some basic functionality going and would like to document that to hopefully save some time for anyone else trying them out.

Main components:

  1. BLE Mini
  2. Arduino Pro Mini 3.3v
  3. Analog Sensors

Other:

Bluetooth 4.0 compatible device. Here are some of the devices that support this:

  • Android
    • Nexus 4
    • Nexus 7
    • Samsung Note 3
  • iOS
    • iPhone 5 (all models)
    • iPhone 4S
    • iPad Air
    • iPad (3rd gen or later)
    • iPad mini (all models)
    • iPod touch (5th gen or later)

RedBearLab outlines some basic instructions on how to set the BLE mini up with iOS and Android here. With that said the instructions really need to be expanded further. Here is a breakdown of the iOS path:

Connect pins from BLE Mini “J4” to Arduino board
VIN > 5V
GND > GND
TX > Default RX (Pin 0)
RX > Default TX (Pin 1)

The Green LED at D1 should light up, otherwise please check the Troubleshooting section below.

Notes: VIN doesn’t need to be five volts, 3.3 volts will work just fine. For me, the LED did not light up on one device. I was able to fix that by uploading the latest firmware to it with the instructions a little further down.

Download our latest RedBearLab Library.

Notes: The ZIP file provided is the latest but if you want to dig through the source and be a bit more selective with the download here is the RBL GitHub page.

Although the device firmware was changed quite a few months ago a much older version appears to come with all the modules I purchased. Make sure you grab the latest from here and follow these instructions carefully 

Unzip the file and copy the “RBL_BLEMini” subfolder in BLEMini/Arduino/libraries to Arduino’s libraries folder.
For more information about Arduino’s libraries folder, please visit http://arduino.cc/en/Guide/Libraries.

Open our BleFirmata sketch: “File” > “Examples” > “RBL_BLEMini” > “BLEFirmataSketch”.

Compile and upload the program to your Arduino board.

Notes: Big note: use Arduino 1.0.5 and not the 1.5 nightlies, else BLEFirmata doesn’t compile.  Although this setup is fairly common, we will get to some problems with BLEFirmata a little bit later.

Download our BLE Arduino App from Apple’s iTunes Store.

Turn on Bluetooth on your iOS device. (*Please note that BLE Mini or any Bluetooth Low Energy device will not show in the “Devices” list as pairing to BLE device is not required)

Start our BLE Arduino App and press “Connect”.

Note: The main issue here is that you only get three board so chose from when you connect via the iOS app. This is pretty backwards and I don’t have any decent solutions. While testing the A(n) pins tend to be the same across boards, I used UNO and LEONARDO modes to test the minis. The only issue is that the UNO setting is the only one that shows the ‘analog’ option for the A(n) pins, which lets you see the analog signal live in the app. When set to ‘input’ on the LEONARDO setting no data is ever displayed on the iOS app.

Once that’s done you can puppeteer your Arduino of choice via the BLE App.

Some notes on BLEFirmata: Currently only UNO, MEGA and LEONARDO are officially supported. You can get something like the pro mini to work but you can run into issues with mismatched I/O and software serial. I wish I had a fix for this right now but I don’t even know where to begin.

RBL released a library for using one BLE Mini as a master and connecting slave devices to it. Unfortunately any version of the HCI library they provide that I try to upload to the boards ends up turning off the green status LED immediately. I am checking with support about this issue now.

Overall the impressive part of this module is the stability once it’s connected. I have been using a retina iPad to test the app, and once connected I haven’t had any kind of signal loss. Hopefully this stability can be translated into more custom projects.

Resources:

This thread provided some very good insight.

Although light on content the RBL zendesk support is worth a further examination.

A good project on instructables.com

Wraithguard

20131201_195026_HDR

or what was supposed to be Wraithguard

This is my final project for the wearable technology class this semester. I really wanted to focus on something more frivolous than some of the other projects I made in the past three years. Thus the concept ended up being rooted in media that I enjoy.

At first I really wanted to create a version of Wraithguard from Morrowind. I am still struggling to finish up a post about Morrowind which would explain my desire to bother with this. After looking over the possibilities for duplicating or mimicking this design I came to the conclusion that there wasn’t a plausible way for me to make it look pleasing. Adjusting my influences I looked at some other fan projects I could undertake.

Once I tinkered a bit things starting to look very much like a Cyberpunk garment. I realized that this could be an object not built by professionals or for mass production but rather in an environment where people would scramble to create something out of the junk they had lying around. A tool that would be wasteful, suboptimal, dangerous to use but one that would complete the required task.

Here is the initial glove work:

Beyond aesthetics I wanted to tackle the technical challenge of running a large amount of EL material in a purely wearable project (aka no cord to the wall.) Here began some heavier challenges, at first I didn’t think a 12v inverter would be a good idea. So I decided to pick up some 2AA volt battery + inverter packs. After hooking one up to the wire I noticed that it was horribly dim. Realizing that the inverter is taking in 3 volts I decided to test it with a 3.7 volt lipo battery. That didn’t go over well, the inverter lit the wire for a second then promptly burned up.

After some testing I decided to just go for as much voltage as I could muster, hoping to counteract the inevitable bulkiness by driving more EL material and having a more stunning final effect.

I picked up two 7.4 volt LiPo batteries, hooked them up together and powered a Leonardo with an EL Escudo Duo shield. This let me run an EL panel, tape and wire at a much brighter than even a 12 volt wall power supply did during testing.

I was really happy with just how bright the EL materials got, but had a new issue to deal with. This was getting quite heavy quite fast, the solution was to separate all the circuitry from the hand and move it to the upper arm. I crated a sturdy cord, wrapped it a few times in leftover EL wire and the outcome didn’t look too bad. All the components were strapped to a very wide Velcro strap:

Once all that came together I wanted to add some interactivity. Going back to my inspirations I realized that the constantly on EL materials made it look very clean and too functional. To randomize and add believable electrical flicker I attached a 3 axis accelerometer to the hand. This gave me three distinct movement values to work with in my code. I used them to adjust the pattern and delay between flickers of each individual piece of EL.

Accelerometer WIP:

And here are some shots of the final result:

Also Kate and Michael wearing it at the critique today:

Overall I am very happy with the outcome, it isn’t the Wraithguard I hoped for but I think that it has a really cool effect to it. I am also attaching the short three slide PDF I used to present this earlier. [Wearables 1 2013 Final]

Technical Details

The code is available in this gist. I tried to make it readable, most of it was done by slightly adjusting the values. These few lines comprise the the chunk that ended up controlling flicker timings.

While this dealt with some randomization of the sensor data.

The circuit itself was fairly basic. The accelerometer is connected straight to the Arduino pins via a cable, and the only other modification was adding a connector for the batteries that also contained a switch to turn everything on and off.

End of semester thesis post

20131116_174050

This past week was probably the most interesting from this semester. After the initial 3D printing test from last week me and Rickee went all out and spent a few long evenings at the Komodo Lab. The results on my end are two well formed prototypes and models.

Here are some process images:

I also did a quick vine as I found some of the sounds that the printer’s stepper motors make awesome.

The neck module had to be scaled down in the current iteration, so it is more of a demo of the shape. The arm module is 1:1 scale, unless that changes in the future. It looks like there is enough room for all the components, but that will come early next semester. Expect the flood of part and circuit pictures to come back (thank god my soldering skills are slightly upgraded.)

I am still really enjoying using OpenSCAD, and the 3D models are developing nicely. You can take a look at both on my GitHub.

Here are the final pieces:

This slideshow requires JavaScript.

Thesis Update 3D printing

Did my first few test 3D prints this week. Very excited to keep iterating and testing out what is possible with the printers. Here are some pictures:

This slideshow requires JavaScript.

The printer has quite a few quirks, there is a chance of warping due to heat that only becomes noticeable about 20% into a model. Hairspray appears to be the industry standard solution to this issue. Another issue that makes building one piece models very difficult is the way the piece needs to be as flat as possible at the bottom (With the next test I will be testing some 45 degree bevels though.) There is also the obvious limitation of this particular method that doesn’t allow for a way to print without a direct support from the base. Meaning horizontal connections and sharp protrusions cannot have open air below them.

After struggling with various desktop and online 3D tools I realized that it would be longer for me to master them then to search for non GUI alternatives. I ended up stumbling onto OpenSCAD and after giving it a try I immediately felt right at home and was able to put together some more precise STL files for printing. OpenSCAD just has two panels, code and render. There are only a few language specific commands, allowing for a very low learning curve if you know some basic programming (Just check out how tiny this complete cheat sheet is.)

With this new tool in tow I was finally able to do some rapid prototyping and ideation with just a bit of code.

Screen Shot 2013-11-15 at 8.06.37 PM

I am applying some pointers from the prior model to this one, upping the scale and letting the printer take care of how to hollow out the solid areas. As well as providing a more solid base to combat warping.

I am also working on setting up a well structured Thesis project repository to keep track of all my STL and Design files. ( Already have a Github repository set up but haven’t done much there in a few months now.)

Here it is: DFI-Thesis

Big thanks to the Komodo Lab and Rickee Charbonneau for all the help this week.

Overview of microcontrollers useful for wearable projects.

This post is intended to accompany this presentation

Just want to take a second and mention that I am running a small chatroom for help and advice on wearable tech work. If you are trying any of these or have further questions I am around there to chat.

This post is mostly links as the presentation ended up being a tad text heavy. Give it a quick read through for a better overview of each product below.

By first hand experience

Potential based on properties

Low availability

Online Retailers to watch

Big thanks to the #arduino channel on freenode IRC for suggesting some missing controllers!

Thesis Update – Decisions

Ill start out by showing the latest art:

modules 2v2 WIP

Here Chenthooran is starting to detail some of the modules. He is still officially on hiatus thus the more detailed description of the materials beside each. Due to these slight delays I have decided to adjust my materials exploration stage to start with 3D printed versions of the prototypes.

The current goal now is to construct a rudimentary 3D model for each of the pieces, make sure it is up to the 3D printer’s standards, and arrange printing time. Once these models are complete I will begin to adjust their form and test various weights in order to achieve a comfortable fit.

Thats it for this week!