Project Log – Odd Man In & Consider Growth (Experiment 4)
Dave Foster, Chris Luginbuhl, Karo Castro-Wunsch
Creation & Computation DIGF-6037-001 (Kate Hartman & Nicholas Puckett)
Project Description (from course Assignments tab):
Digital messaging is a pervasive part of our daily lives that has taken on a variety of forms and formats. Working in small groups you will develop hardware and software systems that investigate methods of messaging and notifications. Some of the topics we will cover include: synchronous/asynchronous communication, ambient data, alerts, web API’s, and messaging services.
For this project you will design and create a custom device that allows the members of your group to communicate in new ways. Using the Wifi connection of the Feather M0, you will create standalone objects that communicate over the internet. Each group must consider how these devices create a specific language that allows the things, people, or places on the ends of the network to communicate.
Project Initial Ideas:
From Dave (Balsamiq sketch below):
The Problem Being Addressed:
We are all, at some point in our lives, deeply immersed in one project or another (essays, art projects, etc.) and have no wish to be interrupted by Facebook Messenger, Twitter, etc. (even if these services are part of another assigned project). What if there was a step back to the old-fashioned pager? A self-standing, project specific communication request alarm triggered by any content added to the project’s “group application” (Facebook, Twitter, etc.)?.
A project specific communication request notification device (similar in concept to early pagers) which bypasses or steps back from direct Facebook/Chat-room/Web pop-ups/etc. The idea is that the group’s 3 (or more) members would not have to be logged in to anything to receive notification that another group member was requesting communication. It would be implied that this would be specific to messages about the project assigned to the group.
A project specific Facebook group, Twitter account and E-mail account would be set up with membership restricted to the group members for a specific project. Each communication modality would be assigned a colour (red, green or blue) and would carry/wear a small device containing his Feather board wired to 2 differently coloured LED’s and (possibly) a vibration motor or similar noise maker. The LED of each modality’s assigned colours would blink (and possible noisemaker would buzz) whenever any member had posted to the group’s service.
Use would be as a “filter” so that, if you’re frantically working on an essay or other assignment, you would not have to have any other service or application active (no distractions from your work due to pop-ups etc.). All you would see is a blinking light if a group specific message was posted by another group member.
From Chris & Karo:
The problem & context:
People who are trying to establish a consistent rhythm in their life often struggle to be consistent. Typical examples include:
- self-employed people who wish to be at their desk and working by a certain time each day.
- People learning to play a musical instrument by practicing daily
- People wishing to establish a regular mindfulness meditation practice.
- Writers struggling to finish a book
Establishing a routine is an important part of maintaining helpful habits (Gardiner, 2012)
Accountability partners work in different ways, but one format is a quick, daily check in, along the lines of “It’s 9am and I’m at my desk”.
Accountability partners is an idea that has gained momentum since the 90s. There is ample testimony that accountability improves the chances of sticking with a program (Inc, Quiet Rev, Huffington Post ).
From Wikipedia: Not having an accountability partner to help a person accomplish their goal is one reason 92% of people did not accomplish their New Year’s resolution according to a University of Scranton study by Dan Diamond in Forbes and an article by Dale Tyson.
See also: Why an Accountability Buddy Is Your Secret Weapon for Faster Growth (Entrepreneur Magazine)
At the same time more and more people are working from home (3% of US workers work from home at least half time, according to CNN and Global Workplace Analytics and FlexJobs (link)). This means that remote accountability partners that on-site ones – typically smartphones and/or social media to connect. One problem with this arrangement is that smartphones and social media are perfect tools for procrastination (Meier, 2016).
One approach to accountability partnering that avoids these pitfalls follows the approach of calm technology (Weiser 2015) – that technology can help us best by existing at the periphery of awareness, rather than by demanding our attention.
Borrowing from Kate Hartman’s book “Make: Wearable Electronics: Design, prototype and wear your own interactive garments” pp 56-59, a sandwich switch could be used in a couch cushion, chair cushion or meditation cushion to send a wireless signal to an accountability partner that indicates the user is sitting at their work (practice, meditation, etc). This signal could result in a public post for accountability, or a private signal sent just to the accountability partner.
Numerous variations are possible… the partners could each have the same device and commit to both sitting down at 9am. Each partner receives a visible, tactile or auditory cue that the other has arrived. Progress and consistency could be tracked on an online dashboard.
This system could also be used (e.g. with exercise clothing having bend sensors integrated) for exercise accountability tracking, thereby overcoming some of the shortcomings of the much hyped but disappointing accountability ecosystem Gym Pact (www.pactapp.com/)
Gardner, B., Lally, P., & Wardle, J. (2012). Making health habitual: the psychology of “habit-formation” and general practice. The British Journal of General Practice, 62(605), 664–666. http://doi.org/10.3399/bjgp12X659466
Hartman, Kate “Make: Wearable Electronics: Design, prototype and wear your own interactive garments” O’Reilly Media (2014) pp 56-59
Adrian Meier, Leonard Reinecke, Christine E. Meltzer “Facebocrastination”? Predictors of using Facebook for procrastination and its effects on students’ well-being Computers in Human Behavior 64 (2016) 65-76
Weiser, Mark, and John Seely Brown. “Designing Calm Technology.” Designing Calm Technology. Http://www.ubiq.com/weiser/calmtech/calmtech.htm, 21 Dec. 1995. Web. 28 Oct. 2015.
Problem – we want to connect with loved ones, but screen time takes us away from each other.
A metallic pendant worn against the skin incorporating the feather, heating element and Li-poly battery. A squeeze sends a message to the partner’s matching pendant, causing it to glow, vibrate, and/or heat up briefly. Partners wear matching pendants and messaging is 2-way.
Artwork investigating networks – neural networks, ecosystem, societal networks.
Networks are familiar from their hundreds of examples in nature and underpin the structure of our own brain. Neural networks are at least partially responsible for brains.
Creating a wifi (or XBee) connected network of physical nodes (a node being e.g. an LED with a sensor or button in a housing), would it be possible to establish and demonstrate information being passed through the network?
Could human input or intervention alter, enhance or suppress the patterns of information?
If more people come to the party to interact, at what point does it enhance the complexity, connectivity or synchronicity or the network, and at what point does too much human interference make it collapse?
- Free-standing container with Feather controller (coded for wireless access), lithium ion battery & 3 LED’s (Red, Green, Blue). Container to be configured to “hook” over the screen of a laptop such that the LED’s are visible on a flat surface facing the user.
- Each LED coded to flash/blink (or at least turn on) indicating “communication request” through one of 3 pre-established group pages (Facebook, Twitter & E-mail).
- Allows for (semi)uninterrupted work on other projects while remaining potentially aware of communication regarding assigned group project.
Plain English Logic Flow (not code)
All LED’s to OFF
Link Feather to Pubnub account
Link Pubnub account to Facebook, Twitter and E-mail account
- Facebook group “Odd Man In”
- Twitter feed “Odd Man In”
- OCADU student E-mail account
IF – posting to Facebook group = YES
Go to RED LED
IF – posting to Twitter feed = YES
Go to GREEN LED
IF – posting to OCADU E-mail = YES
Go to BLUE LED
IF – Not logged into Facebook
RED LED at maximum
IF – logged into Facebook
IF – Not logged into Twitter
GREEN LED at maximum
IF – logged into Twitter
IF – Not logged into E-mail account
BLUE LED at maximum
IF – logged into E-mail account
Project Daily Log:
Tuesday, Nov. 14 – 12:00 to 13:30:
Chris & Dave met in the D/F lab at 12:00 for a design conference. Dave put his idea forward (see above Balsamiq sketch) noting the physical design simplicity and adherence to the assignment parameters. Chris mentioned some related notification input methods involving pressure sensors or switches installed in cushions.
While searching for applicable IFTTT links to Facebook Messenger, Dave received an E-mail from PubNub regarding a new service called ChatEngine that merits further examination. Chris and Dave to meet again (probably) late Thursday afternoon.
Thurs Nov 16 – 6-8pm
Experimenting with example code. Trying to understand some of the workings:
-how JSON objects are created & parsed
-how pointers (* and &) work in C++
-object-oriented programming principles (e.g. wifiClient object).
Fri Nov 17 – 13:00 and After Class
Chris & Dave met in DF lab and after C & C class. Further discussion as to which idea to implement and method of implementation. After brief discussion with Kate, Dave seems to be leaning strongly towards the pager application with Chris concentrating on “point of presence” or “accountability partner” application. At base, we’re trying to find a relatively simple “hey you” function specific to group members. Looked through IFTTT for applets that might work. We may be able to go through Adafruit I/O directly rather than over-complicating the exercise with Pubnub’s ChatEngine or similar. We might be able to push a notification with a colour code for each communication method required (blue for Facebook Messenger, red for Twitter, etc.). Chris has some coding examples which will be examined Tuesday.
Mon. Nov 20 (in class)
Further discussion amongst Dave, Chris & Karo re: final form for individual devices. Dave is concentrated on the simple pager. Chris is attracted to the “accountability partner” cushion idea. There will be some differences in the three products. Meeting in the D/F lab Tuesday.
We worked together to ensure everyone’s Feather worked and that we could publish and read from the same Pubnub channel. We also prototyped a version of the software which published a message (1, 2 or 3) depending on which one of three switches was pressed, then read that message back from pubnub and lit an LED corresponding to the message (see video: https://youtu.be/kjJLgw94Yiw)
Caption: pager circuit working on a breadboard
Tues. Nov 21
Dave working on container for over-screen paging system as well as wiring for the Feather controller in his version of the project. Final testing of code and Feather assembly (all LED’s working to spec. — code link and Fritzing diagram below).
Thursday Nov 23
Final form for Dave’s prototype cut from foamcore and glued together (photo below). To set and cure overnight. Hopefully all connections will remain intact after assembly and will work tomorrow.
Friday, November 24:
Both Chris’ and Karo’s applications functioned as planned. Dave’s appears to have suffered a disconnect during construction of the housing as it does not function (though it did Thursday night). Tried multiple reloads/resets of the controller with no luck. Believe I did at least explain the function adequately.
As mentioned above, “Consider Growth” branched off of our group project on Monday Nov 20, though we continued to meet as a group. We discussed the right kind of technology to bring to this problem – how to encourage users without distracting or irritating them.
We decided to build a sandwich switch which could be slid inside existing cushions (e.g. couch cushions or meditation cushions) or placed on top of a chair.
At the same time, we discussed different ways reflecting users’ data back to them on a website or app. A simple line bar graph showing daily and monthly sitting totals would be a conventional option, but we wanted to do something more imaginative to reflect the open-ended experience of taking up a new skill, discipline or hobby. More details on how the graphical representation evolved can be found below.
A typical use scenario works like this:
-At 9am, the server sends a message start the session.
-If the user’s accountability partner is sitting, the user’s cushion EL wire lights up to indicate the accountability partner is sitting. And vice-versa.
-When the user sits, the user’s EL wire turns off.
-When both users are sitting, the server sends a message that rings the users bells signalling the start of the session.
-When either user sits, a generative animation “grows” on the webpage. If both users sit, both animations grow. If either one gets up, their animation stops growing.
-When the timer reaches a set amount of time (e.g. 20 minutes), the bell rings signalling the end of the session.
-Note that once the users sit, they can choose to view the animation or not. They will not need to interact with or receive notifications from the system until the end bell rings. This is a deliberate measure to reduce distractions.
We needed to make a larger “sandwich switch” than the one illustrated in Kate’s book (Hartman, 2014 pp 56-59). We decided to include internal “springs” of felt. As luck would have it, our first guess about the design of insulator between layers of conductive fabric worked well in testing on a variety of cushions. The conductive fabric was cut into two identical shapes, ironed onto the felt, and along with the insulation layer, the 5 layer sandwich was stitched together with bar tacks in the corners.
Caption: Switch – black felt with silver conductive fabric
Caption: you can’t solder to this conductive fabric. We had to stitch with conductive thread.
Caption – the lower layer of conductive fabric is visible through the layer of insulating felt with holes cut into it. It was tempting to make the holes in a seasonal snowflake pattern.
Caption: Assembled switch. The garter clip provides strain relief for the barrel jack used as a connector. We wanted to use a two-prong plug that could not be accidentally connected to our battery back, which had a JST connector.
We chose EL wire for this application because of its soft, even light and inherent flexibility and adaptability to different cushions. We also wanted to use a solenoid to ring a meditation gong at to signal the beginning and end of the sitting session rather than a screen or mobile device-based notification.
Both the solenoid and EL wire required 5V, so we used NPN transistors to switch the 4.5V from our battery pack using the Feather’s 3.3V logic. We tested this assembly by having the sandwich switch operate the EL wire and solenoid using a simple Arduino sketch (see video: https://youtu.be/5M5sWKTFRKo)
Putting the whole assembly into the project box with strain relief was time consuming, but it was helpful to have connectors on everything so that it could be transported easily without yanking wires out of their connections accidentally.
Caption: The solenoid (top), feather and featherwing protoboard (upper middle) with EL wire inverter (bottom) in a project box.
Caption: The wiring diagram for the device. It was all connected to the featherwing protoboard shown at the top.
We didn’t have time to make a second copy of the switch and circuit, and decided to demonstrate the operation by using a second Feather (running the same code) with an SPST tactile switch attached.
Some design sketches are below:
Caption: System architecture v1. “Everything is going to fit easily and there will be no need for a box”
Caption: The two transistor-based switch circuits. The one for the solenoid has a diode to prevent a high reverse voltage from damaging the transistor when the solenoid is disconnected, since it is an inductive load.
Caption: Design notebook page showing final system architecture including connectors. The notes are a prioritized list of the issues to work on. We got to most of these…
Caption: Final assembly with sandwich switch removed from inside of cushion.
The code for the Arduino is here: https://github.com/ChrisLuginbuhl/consider_growth
Consider Growth Visualization
The original consider growth visualization concept was to employ vis that grows organically, ie morphogenic structures that imitate the growth and system interactions of biological forms. In pursuit of this, I implemented a JS port of the differential line algorithm hoping to use the underlying growth pattern to inform the display. The implementation worked but due to runtime considerations, it’s current version isn’t useable for real-time use. Moving on from this we employed trigonometric waves, perlin deformations and simple modular rhythms in combinations to produce a series of parametric randomized forms that have a large amount of variation but are consistently visually engaging. The waves’ specifics can be investigated in the repo.
The waveforms were hooked into pubnub via pubnub’s JS API so that a waveform is turned on whenever someone sits on their pillow and announces their presence into the virtual space. The intention of using a line as an avatar is to produce an environment which is non-competitive and really stripped down, the limitations allowing users to be present without having to make any choices about their virtual actions and representation.