Detroit Become Human Cosplay with Flexible PCBs and CircuitPython

Eli Hughes
|  February 17, 2021
Detroit Become Human Cosplay with Flexible PCBs and CircuitPython

One of the challenges in serving the roles of father, engineer, and entrepreneur at my startup TZero, is balancing daily life while offering my children exposure to engineering and science. Combining science, engineering, and the entrepreneurial spirit is something that has always made my internal gears spin, and I love the idea of getting others, especially under-represented people, a fair shot. My own internal deliberation generally funnels down to how to best introduce the "spark". It is easy to get mired in technical details and overlook the underlying substance of getting someone "hooked". In my 2020 AltiumLive presentation, I told a personal story of my path to becoming a “Full Stack” hardware engineer. My path came through 80’s video games, guitars, and keyboard. I have worked very hard not to impose my own bias on my children. I feel that in order for them to truly love themselves and their work, my job is to help them find *their own* path.   

When it comes to helping other genders get involved in STEAM (Science, Technology, Engineering, Art, Mathematics), I believe the solution is generally simple, just not always easy to do. Understanding the distinction between "simple" and "easy" can be very helpful in navigating problems. For example, developing a strength training and exercise regime is simple. Showing up daily for the execution of the training is not easy!  For engineering, I claim it is not easy to introduce other genders as it involves us engineers (who are a majority male) to empathize with the different components that drive someone else’s curiosity. That often means that we need to stop the “mansplaining” and face the fact that in many cases we can turn others off from the joys of science and engineering. In many cases, the turn-off begins with making it about “us” and not “them”.

What I have been personally striving for is to always be on the lookout for the small opportunities to introduce the spark. As parents, we spend most of our time addressing the mundane, so it is easy to overlook "openings" to interject experience on their potential career path. I am an imperfect being and an imperfect parent who often makes mistakes. I am not always patient; I do not always listen carefully, and I do not always understand my children. I am a solid “Gen X” trying to parent a “Gen Z”. Our worlds are completely different. I do however feel that there is a commonality that has persisted through the generations. Creativity, design, and execution of neat projects that has always existed and can be a bridge between different genders and generations.

I will freely admit my shortcomings, as I was once taught that ordinary, imperfect people can achieve extraordinary things. This story is one of a struggle to seize an opportunity and try to balance all of the challenges of life to still allow some room for the development of the "spark". I do want to stress that while I am presenting a project that appears to be well planned, this story did not take place in “linear time”. I want my children to forge their own path for the things that they are passionate about. It doesn't have to be the same work like me, I just hope that it is something they are "on fire" for.

There is nothing more exciting than creating new things. The excitement of a "new build" is something I wish everyone could experience. For me, the feeling of anticipation and enthusiasm for the new creation is one of the aspects of STEAM that makes it an excellent career path. I always include the "art" portion as it moves the discussion of engineering from making life survivable to a joyful life worth living. The art component takes many forms and should never be left from the discussion. Struggle is also an important component as well. There seems to be some magic when you combine creativity with struggle. What often emerges is a new product that is greater than the sum of its parts.

The Path of Blake

Our culture tends to put the different genders in easy-to-understand buckets. One aspect of my younger child "Blake" (who used to go by 'Rin'; and admittedly it can be tough for a parent to keep up) is that she has never fit into a “bucket”. As a parent, it is simultaneously interesting and frustrating! From an early age, she demonstrated she was a “creator” and there was little boundary to her medium. She always dressed the way she wanted, did artwork on her own terms (I am still finding hidden art on obscure walls in the house from days gone by), and otherwise marched to a different beat. From a very early age, she loved the idea of creating her own costumes and doing art. It allowed her to transform into a completely different person and she was always working on something. Now as a teenager, she faces all the mental and physical challenges that accompany a being that is under constant change. It is difficult to watch, especially during the teenage years! Growing up in the ’80s was much different than in the 2020s but it is my hope that through the excitement of new projects and new "builds", we can navigate the difficult waters together.

Blake’s stepmom taught English in Japan after college and as a result, Blake ended up being exposed to Japanese culture. Japanese anime characters were appealing to Blake and it was not long before she was making her own outfits. Sewing was traditionally taught to females as a practical matter for daily life but I saw it as another path into design and engineering. The fact that she was starting this on her own was a big deal to me.

Blake - First home made outfit

The 1st homemade outfit

The outfit shown above was one of her first big projects. I remember her spending hours in the bedroom cutting, sewing, gluing, and otherwise creating a mess that any parent would be horrified by. It was not long before I found private sewing lessons so that she could develop some of her "making" skills. To me, this was a great introduction to engineering. The simple act of conceptualizing a physical product, selecting materials, and executing physical assembly are core components of engineering. Those skills quickly improved and the outfits would get more complicated. I was even able to help with the 3D printed "props".

Blake Card Captor Sakura

1st outfit 3d printed components.

Over the years I would try to get her exposed to different ways of making "things". One of my memories pictures was at a Makerspace in Pittsburgh.

Blake at the Makerspace

At the time she was very excited about the lathe! She could tell everyone all about it. For her generation, learning about tools could start with YouTube. Long before starting training on a real machine, you can have nearly an infinite amount of prep via freely available instruction videos. It turns out that once Blake was in middle school, she really liked woodshop, and there was no shortage of cool projects to use as references on the internet.

When it was still active, our family would make a yearly trip to World Maker Faire in New York City. World Maker Faire was the ultimate place where kids could get exposed to all things STEAM. In 2016, we had our own exhibit that the family participated in. My wife was able to get a picture of one very special interaction. To this day, I can point to it as a distinct point in time when Blake found a role model:

World Maker Faire

Evette (on the left) came to our booth to discuss electronics and sound. Our booth was focused on audio and acoustics and she was interested in working some audio tech into her props. Blake was absolutely mesmerized by this cosplayer. I want to point out something very important here. Not only was Evette involved in cosplay and art, but she also now holds a degree in Computer Science. 

Evette Niche

 

Paths into engineering and science today may look very different to those of us from a "classical" engineering background. Just because the way you did it worked does not mean it will work for someone else.

I honestly felt that I got to see a version of my child, only 10 to 15 years older. It was such an interesting experience and I really believe it helped to steer Blake in a direction that can tie together engineering, software, and art. For Blake, she was in a space where there were other people with similar interests and passion. She could be with *her* people. As a Dad, I thought it was one of the few things I could offer to bring in a truly diverse set of people and experiences. These are the types of experiences that can lay a foundation of interest that will drive a passion for science and engineering. The current pandemic makes opportunities difficult to come by, but I am hoping for better times in the not-too-distant future.

There are so many other anecdotes I would like to share but I think you get the idea…   

Detroit Become Human – Flex PCBs and CircuitPython

Last year, Blake discovered a video game called "Detroit Become Human". It is a "choose your own adventure" style experience where the outcomes can drastically change based upon the choices you make. These decisions often involve serious moral and ethical dilemmas. Uncovering all the "paths" leading to very different endings is a key component of Detroit Become Human. In the game, humanity employs sophisticated androids to help with daily life. Like most android fiction, some of the androids develop sentience and begin exhibiting human qualities. This generates conflict similar to what humans have faced for millennia. The androids have many fans in the "real world" and Blake wanted to cosplay as one of the model RK800 androids. One interesting feature of the RK800 is a small LED ring which is an “external feedback biocomponent”.

External Feedback BioComponent

She had asked me for help constructing a prototype that met the size requirements, was conformal to the skin, and could be "programmable". I thought this would be an excellent case to introduce some core principles of engineering:

  • Learning how to set clear goals (Requirements)
  • Learning that it is OK to make mistakes. Make your mistakes early on and quickly learn about your problem. Engineering is incremental. (Iteration)
  • Knowing when to call a project "done" (Deliverables).

Since Blake had a clear idea of what she wanted, my job was to facilitate without being in the way of her self-discovery. One thing I am particularly good at is remembering all the electronic parts that cross my path. There were 3 components in my mental database that I thought would help bring the 1st prototype to life.

APA102-2020  "Smart LEDs"

These devices were perfect for creating a ring with enough segments to implement cool visual effects. The APA102-2020 is controlled via a serial daisy chain making the circuit design simpler.

Smart LEDsSmall Smart LEDs

APA2020-LEDs

OSH Park Low-Cost Flex Circuits

Not long ago, the low-cost hobby PCB service OSH Park started offering a flex PCB service on a Kapton substrate. This project was a perfect excuse to give it a try!

Adafruit CircuitPython

Circuit Python

 

As much as I would love to teach embedded C, the reality is that we had lots of other issues to tackle. The goal here was to get a prototype running. Several years ago, the Python Language was ported to run on embedded microcontroller platforms by Damien George. Adafruit has extended his uPython project with a host of libraries and documentation to service projects like this under the name CircuitPython. There is a large selection of microcontroller boards supported by CircuitPython so it was a great way to get started.

The Build

I mentioned before that males such as myself can overcomplicate engineering tasks quickly. I did not want to spend a lot of time engineering the world's best flex circuit with Blake. Getting something running quickly is important. Seeing progress at the outset really helps with lighting the spark. The "Mark 1" prototype was an 825mil diameter ring with 12 of the APA102-2020 LEDs. We elected to simply have solder pads on the bottom side for the wire-wrap wire to run to our controller with would be hidden in a pocket. The goal here was to get the ring operating without getting bogged down in a specific connection strategy (which is often the bane of electrical engineers).   

An important part of this exercise was to not teach her Altium Designer (or any other CAD package). The first step is to develop the connection that these tools and processes simply exist.

Even though I carried out the actual eCAD work, Blake drove the process. I wanted her to first understand at a high level what some of the possibilities could be. I felt that if I could help bootstrap the 1st effort, the future projects and toolset development would happen on their own.

Ring BoardFlex Ring

The "Mark 1"  Flex Ring Prototype

Once the flex circuits were acquired, Blake got to spend some time under a microscope applying solder paste. These LEDs were very small (2mm x 2mm) and this was excellent practice.

After dabbing pads with solder paste, she used the hot air gun to reflow the parts. I thought it would best to do things manually to get a feel for the process before introducing automation (stencils, etc.)

Working Under the Microscope


Working Under The Microscope 

The first version turned out pretty good. Blake did most of the work and I was available for inspection and rework where necessary.

Rings First Versions


The APA102 LEDs use a clocked serial protocol that shifts data through the daisy chain. Blake wanted to implement some basic colors and effects. This is where CircuitPython and the Adafruit "Trinket M0" came into play. It is a low-cost microcontroller board programmable with CircuitPython:

Adafruit Trinket-M0 Microcontroller

Adafruit Trinket-M0 Microcontroller

In order to have some control over the ring, we decided to make a "hat" to breakout power, data, clock, and some buttons to control the ring.

Adafruit Trinket-M0 Microcontroller


Adafruit Trinket-M0 Microcontroller

The final assembly of the Trinket M0 with the button "hat" could sit in a pocket so the "modes" of the ring can be easily changed.    

The beautiful part about CircuitPython is that getting started is as simple as using a text editor. There are no toolchains to install or USB debuggers to fuss with. You simply edit the file and download it via a virtual mass storage class drive. The value proposition of CircuitPython is that there are many libraries and examples to bootstrap your creation without being bogged down in details. I cannot stress how important it is when introducing someone to engineering and technology to *not* overwhelm a newcomer with too many details. From my experience, the best approach is to provide a sandbox with clear boundaries that allows one to discover functionality. Those who get interested will find their way to the intricate details. My programming path started with Apple BASIC. This environment was perfect for discovering what a computer could do without destroying my enthusiasm. As my confidence grew, I learned about the underlying hardware and more advanced programming methodologies (6502 assembly).   

For the RK800 biofeedback ring,  it did not take long to get things going!

Blake working on the  RK800 biofeedback ringBlake busy working on RK800 biofeedback ring RK800 biofeedback ring

One point that I wanted to convey to Blake was the joy that one feels as an engineer when you finally get the "thing" to function. In our case, seeing the ring light up was a magical moment. It is the point that distinct “connections” are made between concept, design, physical assembly, and programming. Remember when getting someone involved, your goal is to not teach one all the details. Your job is to help form connections that “prime the pump”.

Ring Demo

Not bad for "Rev A"! I am a big believer in iteration and not trying to solve all your problems at once. There was a lot that we learned in the first prototype that will inform our next version. Now that things are basically working; we can address topics such as improving connection to the ring, ruggedness, and ease of assembly.

Where Blake goes from here is completely up to her. She has always had a strong urge to create and is currently diving into software engineering via learning how to "mod" the game Friday Night Funken. She is using her art and design skills to modify the artwork and experimenting with source code to change the behavior of the game logic. What a great way to discover a new world of software development! My hope is that I can help facilitate experiences and then *get out of the way* when it is time for her to use her talents. Lately, Blake has expressed interest in Space Science and Astronomy. She even made her own NASA suit. (I am still unsure of the significance of the toilet paper….)

NASA Girl

I believe this approach to attracting other genders to STEM is no different than attracting any other under-represented person. We can choose to use the position, privilege, and tools we possess, to help introduce them to a world of endless discovery. It can be as simple as listening and observing. Consider asking questions like “What did you learn when you did your first project” or “What are your plans for the next version?” We do not need to explain how we would “do it better” or how “I would have done it differently”. This is very much a male problem and we need to own it! The conversation should be about them, not you. From there offering advice on incremental improvements can be effective but also be open to learning from your student. That is often an overlooked source of personal growth.

I want to leave you with one of my favorite motivational blurbs from the Pixar Film Ratatouille where Gusteau is explaining that "anyone can cook", I think the same can be applied to introducing anyone to engineering:

You must be imaginative, strong-hearted. You must try things that may not work, and you must not let anyone define your limits because of where you come from. Your only limit is your soul. What I say is true - anyone can DESIGN (sic)... but only the fearless can be great.

With these values applied to science and engineering, we can welcome new engineers with a spirit of respect and excitement for what their unique life paths contribute to the community.

About Author

About Author

Eli is the CTO of TZero Research and Development which develops ultrasonic acoustic sensors and software for the craft beer brewing industry.  In addition to his current role at TZero, he also does work for NXP semiconductors and helps develop software and electronics for the pyrotechnics industry.    His technical background is in electronics, embedded systems, software and acoustics.  In a previous life he worked at the Penn State Applied Research Lab where he was  doing research in the areas of sensors, conditioned based maintenance,  robotics, undersea vehicles and  space science. Eli also taught courses in embedded Systems, FPGAs and Circuit theory at the Penn State University EE Department.  In his spare time, he plays the guitar and keyboard in addition to enjoying woodworking.

most recent articles

Back to Home