The Glowtie is a light up bowtie that’s controlled using Wifi! I started working on while I was in Japan for work, inspired by the cyberpunk aesthetic of Akibahara and the associated electronics markets.
But it really started when I made a 3D printed bowtie for my grandpa a few years back. It had a little slot in the back that let you slide it over your top button, and he got a huge kick out of it.
So I decided to kick it up a notch and do one that lights up! This was also my foray into PCB design, so I was using this project as an opportunity to gain a new skill. I figured adding a physical button or joystick interface for controlling the bowtie would be a bit clunky, so I decided to use the increasingly popular ESP8266 Wifi chip to provide the UI. I wanted the bowtie to put out its own Wifi hotspot, so you can connect with your phone and open a webpage hosted by the tie to control the patterns and colors of the lights. I wanted the tie to be rechargeable, so I used the gloriously open source designs of Adafruit’s Micro Lipo charger as reference for my charging circuit. This will recharge two 1S lipo batteries (in parallel) mounted to the back of the board, and encased in a 3D printed frame that also has the button slot integrated in it.
I’m using WS2812B individually addressable RGB LEDs, which Adafruit has branded as Neopixels. These are awesome little lights with actual tiny microcontrollers embedded in each LED! It’s a one-wire protocol, and pretty much anything can talk to them. However, they’re designed to work at 5v, but the ESP module I’m using is 3.3v only, and in order to provide 5v from the lipos I’m using, I would also need a boost converter (as opposed to just an LDO) which would significantly complicate the circuit, and make production more expensive. So I went poking through the datasheet, and the minimum supply voltage was actually 3.5v! Turns out they added a bit of buffer to the datasheet, because they lit right up at 3.3v.
I designed a test circuit in KiCad and milled it out on an Othermill.
The ESP8266 module that I used, the ESP-12F, requires a few pull-up and pull-down resistors on boot to put the module into the correct mode for executing the uploaded firmware. In order to upload new firmware, one of the pins needs to be pulled to ground on boot, so I broke out the 3.3v, ground, TX, RX, and the mode select pin to pogo pin pads so I could build a programmer using a USB to Serial FTDI converter. I 3D printed a little mount that went on an old stand for a USB microscope that let me drop the programmer onto the bowtie which was held in place by a little cradle. This was much easier than holding a PCB against the bowtie and hoping I don’t lose my grip during the ~30 second programming process. It’s also great for keeping an eye on the serial monitor.
Alright, so I had a design that works, I had a rough version of firmware for testing, it’s time to order some boards! I used Elecrow for my first batch, and they came out gorgeous.
My first circuit board, designed and made from a board shop. Unbelievably satisfying putting this sucker together for the first time. But, it had some issues. I powered the entire tie through the LDO which only had a 1000mA max current rating. The LEDs are not stingy with their current consumption, and the ESP module can pull up to a few hundred milliamps when it’s handling an HTTP request. I kept getting brown-outs and loading the webpage would continually fail. The hacky solution was to just limit the max brightness of the LEDs in software, so they weren’t consuming nearly as much power, and the LDO was able to keep up with the current requirements pretty easily, as long as the lipo voltage was healthily above the dropout voltage rating. This solve was sufficient for the wedding of a good friend of mine, who wanted some Glowties for the groomsman at her wedding!
Shortly thereafter, my mom was getting married and wanted the purple Glowties for the reception. Obviously OSH Park was the solution for getting a purple circuit board. I bought some dark purple Gizmo Dorks ABS for the back piece, and took advantage of ordering a new set of boards to fix my power consumption issue. This time, I just put the ESP behind the LDO and just ran the LEDs straight off of battery power. This is also beneficial because now the Neopixels are actually getting a supply voltage within the range specified on their datasheet. I originally didn’t want to power the LEDs directly from the battery because I was worried that the brightness would vary as the battery depleted, but I’ve found no change in brightness within the 3.5v-4.2v range of the lipos.
I also took the opportunity to test out a I2C lipo battery monitor chip to keep an eye on remaining power, and left the single ADC to connect to a small microphone circuit with an auto-gain adjusting amplifier, allowing the tie to react to sound. Still working on the firmware to integrate that feature, so for now it’s left unpopulated. Future versions might have this included!
Version 0.4 is in the works, and I think I’ll do a run of about 50 ties. I have about 30-40 orders as of this writing, so we’ll see where it goes!