book collections email follower instructable user
Picture of Web-connected Glow Pillows
DSC_0168 (1).JPG

Like many older people, my mom lives by herself. She likes her lifestyle but sometimes it gets a bit lonely. We talk on the phone a few times each week but it's the in-between times where she could use a little emotional boost. A simple "I'm thinking of you" would be enough to make her smile but text messages just don't cut it. This seemed like an interesting maker challenge with a feel-good finish line so I grabbed a few things I knew and learned a few things I didn't.

Primary goals:

  1. Create a non-computer-interface way of communicating
  2. Make the UX very simple (she's in her 80s, after all)
  3. Evoke the same visceral feeling as holding hands


To achieve goal #1, I looked around her living room for normal, everyday objects that she already has. Turns out that throw pillows were pretty ubiquitous so I settled on this as the thing to connect.

That decision led to many questions... so many that I had to step back and settle on a few principles so that I'd actually deliver something.

Project Principles:

  1. Keep it simple
  2. Keep it modular
  3. During prototyping, emphasize speed over optimization
  4. Balance learning with doing

Results:

The end product made her (and me) very happy! She simply touches her pillow and mine sparkles, indicating a "call". If I touch mine in response, both pillows will glow cyan which shows we're connected. When I press again both pillows glow red, indicating that I'm "hanging up". Obviously, we both need to be around our pillows at the same time but that's the point; this is meant to be like I'm in the room with her.

We'll use it in the evenings when she's reading and I'm watching TV or on weekends when I'm running around and don't have time to chat. My kids are always "calling" her and get a thrill when she "answers". It's kind of surprising what a small gesture can do for your spirits.

This Instructable:

This Instructable is involved and includes everything from soldering, to firmware engineering, to cloud computing to 3D printing. I've made all code and CAD files available but you'll need your own AWS account (free for the first year and the costs associated with this project are tiny after that).

Also, you'll need to make two of everything so keep that in mind before embarking!

Time required:

A weekend or two

Cost:

~$45 per electronic device. Add ~$10 per pillow if you don't have any laying around.

Difficulty:

Moderate if you have some experience with the different skills involved. Advanced if you're jumping in the deep end (mad props if you do!)

Step 1: Parts and Tools

Picture of Parts and Tools
DSC_0010.JPG
DSC_0032.jpg

You'll need a bunch of stuff to build these. I've included links to Adafruit's store where possible because they enable my making passions, have high-quality products and awesome learning materials (shout out to Becky Stern for her work there). Everything can be bought elsewhere but YMMV.

Electronic parts:

Pillow parts:

Tools:

Note - Tools can get expensive if you don't already have them but consider it an investment in your making-future! I've found that a well-stocked workbench with quality stuff is worth the extra money. I'm listing the tools that I used but you can easily swap in your favorites.

Physical tools:

  • Soldering iron - I use this Hakko station
  • Lead-free solder
  • Hot glue gun - I use a Stanley but any will do
  • Super glue (you'll only need a bit)
  • Flush snips
  • Wire strippers
  • Solder sucker
  • Third hand tool
  • PCB clamp tool
  • A micro USB cable
    • The Feather has a micro USB connector; the other end needs to go into your computer so pick whatever works. Beware that some cheap USB cables lack the data wire and are only designed for charging; you won't be able to see your Feather if you use one of these. If you run into this problem, change your cable. I used the cable that came with my RAVPower battery packs.
  • Multimeter - I use the Extech EX330
    • Testing your solder joints for continuity is optional but good practice. It can help you quickly diagnose problems that would cause you hours of headaches down the line.
  • A computer with a hard drive (I have a Mac Powerbook. A Windows or Linux system should work too but I don't know if Chromebooks will work)
  • Scotch tape
  • Foam mounting tape
  • Scissors

That blue thing in the photos is a silicone soldering pad. It saves my kitchen table from getting more burns but you don't need it.

Software tools:

  • Wifi (the ESP32 chip will talk to your WiFI router, which will then handle communication with AWS)
  • IDE - I used VSCODE with the Arduino extension but you can just use the Arduino IDE if you already have it
  • arduino-esp32
  • USB to UART driver - This gives you the virtual port needed in order to flash the firmware
  • Libraries (see the code for the full list)
    • WiFiManager development branch (supports ESP32 boards). I love the out-of-the-box access point; this makes it super easy to configure WiFi at run-time instead of hardcoding networks and passwords into the firmware. The upshot is I can walk my mom through setup over the phone :-)
    • WiFiClientSecure - Because security is cool
    • NeoPixelBus - Adafruit's awesome NeoPixel library doesn't work well on ESP32 boards. I won't get into the guts but NeoPixelBus works great.
      • Specific libraries are NeoPixelBrightnessBus and NeoPixelAnimator
    • AceButton - An easy-to-use library that let's me track different click types. My code monitors for single-click and long-pressed events.
    • Arduino-MQTT - MQTT is a very lightweight protocol over TCP. This is one of many libraries out there
    • ArduinoJSON - JSON is the format of choice for MQTT messages
  • AWS IoT Core
    • AWS is but one of many options for IoT services. Arguably, there are simpler ones I could have used for this project but I like all the extras AWS brings to the table. It's nice having logs and events built in and you can easily pipe things to alarms that send you a text message (this came in really handy when I was troubleshooting seemingly random disconnects).
jeanniel14 months ago
OMG - you ought to enter this into the Aging 2.0 contest (Search online)! This is SUCH a good way to "connect!" I'm forwarding this idea of your's to my professor at SFSU - we entered the Stanford Design Challenge which mostly deals with longevity and aging. Great project.
John Makes Stuff (author)  jeanniel14 months ago
That's so nice of you, thank you! I haven't heard of Aging 2.0 but will check it out.
Nice pillows
Does this warm up the pillow? I feel the glow would have some type of warmth. And pillows that are already warm would be pretty cool. Especially in the winter.
John Makes Stuff (author)  winneremerald125 months ago
No, the LEDs don't emit noticeable heat. The computer chip does (see my last section for details) but not enough to warm the pillow.
I'm with you that it could be a cool (uh...warm) feature and looked into some options but didn't try anything
audreyobscura5 months ago
What a cool build! What a nice way to stay connected!
John Makes Stuff (author)  audreyobscura5 months ago
Thanks Audrey!