Tuesday, July 23, 2024
Google search engine
HomeUncategorizedTrading cards with e-ink displays (2023)

Trading cards with e-ink displays (2023)

Jonah Stiennon

Jonah Stiennon | December 22, 2023

What is your project?

Wyldcards are plastic E-Ink tiles about the size of a credit card and
as thick as a phone. They are intended to be used for trading card games.
The pictures on the cards can change and a memory chip in the card can hold
game stats and other characteristics. The digital nature of the cards unlock
new game mechanics, impractical or impossible with just tokens and paper,
while keeping the physical feel of a tabletop game. I drew inspiration from
the fictional games I wished existed when I was in school, like Yu-gi-oh,
Card Captors, Angelic Layer, etc.

How did you come up with the idea?

In 2014, I had been working on mobile device UI testing. At one point,
I grabbed a stack of iPhones and splayed them out like a hand of cards. I
had the idea that, if each phone displayed the image of a card, you could
shuffle the deck just by pressing a button, no physical movement
necessary.

I am a software developer by trade. I worked at an IoT 3D printer
company running the software team. My experience is mostly in web backend,
DevOps, and mobile. While running the web app and cloud infrastructure side
of things at the 3D printer company, I also found myself running a team of
incredibly talented embedded firmware and electrical engineers. I’ve spent
my life building all kinds of things, but they showed me that electronics
today were more approachable than I had realized; by simply applying my
existing software skills and what I knew of mechanical design, I could build
physical products which had never existed in the world before! This gave me
the confidence to attempt a project I had dreamed of a decade earlier, but
seemed far beyond my abilities at the time.

Wyldcard is the result of taking the concept of digital/physical playing cards
and bringing down the price of materials as low as I could while still
maintaining the core functionality of the concept.

How did you design, prototype, and manufacture the cards?

I had a few design constraints: I wanted it to be affordable relative
to other children’s toys, be playable at camp or on the playground, and to
be alluring when found in an older sibling’s closet years later. LCD
displays would be the cheapest, but then each card would require a built-in
battery that would be a pain to keep charged; a card found in a closet years
later would be completely dead and probably inoperable. E-Ink displays have
the magic property of retaining the image on them without requiring any
energy at all. After deciding what display to use, I needed a way to send
new information to them during a game and detect the presence of other cards
in play. I thought about radio mesh networks, but that would require
batteries in each card and increase the complexity by an order of magnitude.
I decided on simple electrical contacts on the backs of the cards that would
connect to a supporting base. This is a familiar concept for card games, as
many come with play mats you lay cards on, and Yu-gi-oh used the same
concept, though sometimes mounted on the player’s arm. The base houses a
battery with a standard charger and a microcontroller to run the game
logic.

I planned out some game mechanics and ideas for how a game would
actually work, but it became clear that until people had the cards in their
hands it was hard to imagine what would be fun and what wouldn’t. I felt
like I knew all the capabilities the cards would need, and could build some
prototypes and start game design after they worked to my satisfaction.

Prototyping started with purchasing some E-Ink displays off Alibaba and
sending images to them using the development board built by the supplier. At
this point, I decided to use the Rust programming language because I had
been wanting to learn it and I wasn’t that great at C. I learned Rust for
embedded devices and decided I could run it from a Raspberry Pi while
prototyping and recompile the code to a microcontroller later when mass
production was needed. I fiddled around with the code until I could send
images to the displays, then I used a reference diagram contained in the
datasheets to design my own custom development board. I learned PCB design
and started to order PCBs from China. My coworkers gave me some tips on what
tools and suppliers to use and shook their heads at my disregard for all
electrical engineering conventions.

Now that I had a circuit board which could take signals from my
Raspberry Pi and display images on a screen, I needed to control multiple
screens and find the maximum number of pins I could share between screens,
in order to minimize the number of contacts each card would need. This
required a few iterations, some breadboarding, and a mess of jumper
cables.

After I had the code and circuitry working in order to address 4
separate screens each with their own circuit board, all wired together, I
had a functionally complete system. Now I needed to design the physical
card, and work in the physical interface between the cards and the base.
Using my self-taught CAD skills and the industrial 3D printers we built at
my day job, I started printing plastic enclosures which could house an E-Ink
display, my PCB, and four magnets to hold it to the base. I printed some
sample bases and started iterating on different designs for the contacts to
make the connections. This was the part of the design phase which required
the most iterations, though I’d say the longest step of the project was the
back-and-forth of ordering PCBs from China and reading datasheets, trying to
get the screens to work in the first place.

While the Rust code was certainly better than C or C++, my most
comfortable language is Javascript, and I decided that if I wanted to
iterate on game design quickly, it’d be easier to write the games in
Node.js. The same would go for anyone else online, Javascript being so much
more accessible than C. I wrapped my Rust driver as a native Node.js addon,
and wrote some sample code in Javascript.

I designed the DevKits to be as easy to manufacture as I could. It
helped that I had already optimized on cost, so the number of components was
limited to the essentials. I make everything in my bedroom, and the workshop
space we have in the backyard. The work is mostly soldering, polyurethane
resin casting, woodworking, and painting. I’ve been posting videos of the process to YouTube.

You raised $7277. How did you do crowdfunding?

I got burnt out at my job and realized it was conflicting with my side
project. I quit my job, did some traveling, and finished the initial
prototypes. I took the prototypes with me when visiting my parents in
Michigan for the holidays, had a photoshoot, and posted a video to Hacker
News where I’ve been reading about cool stuff my entire adult life.
Something about the holiday season, combined with Hacker News’ obsession
with E-Ink and the whims of internet ‘virality’, lead to my post being voted to the #1 position, where it stayed for over 24 hours. This
was incredibly fun, exciting, rewarding, and a lifetime dream achieved. I
stayed up all night responding to comments.

I had intended on putting the project down after the blog post was published. I saw the post as taking the project to
completion, having created something and then put it out there into the
world. I figured I’d take some time off, pursue some smaller projects, then
do some game design and start playing with the cards. Fueled by all the
attention, I decided to keep going. Many people asked if I would be selling
them or doing a kickstarter, but the problem is, there was still no game to
sell. I floated the idea of a DevKit to let game designers attempt to build
their own games using Wyldcards and this was met with some interest. I had
built these prototypes as a way for me to iterate on game design after all,
so it wouldn’t be that much harder to allow others to use them that way as
well. I was approached by CrowdSupply, which suggested that my DevKits might be a good fit for their platform, and so I began that process.

I built new prototypes with a slightly better design and made an extra
fancy one with higher margins. I filmed videos, wrote content and ran a
crowdfunding campaign. Most of the orders are from friends and family, and
people who had emailed me with interest in the DevKits when they had seen
them on HN. When the HN post started to get traction, I modified my website
and added an email signup button. I sent my campaign to this mailing list
and CrowdSupply published my campaign to all their email subscribers.

Now it’s a year since the first prototypes were completed, and 2.5
years since I bought a Raspberry Pi and some e-ink displays. I’m nearing the
end of my production run, building the 25 DevKits I sold.

You have outlined plans for scaling up the project. How did you learn
about these larger scale manufacturing processes?

I’ve watched videos, read books, and taken factory tours my whole life.
I’ve spent my whole life as an engineer really. I watched How It’s Made,
Junkyard Wars, and all that. Nowadays we have all these great Youtube
makers, but it’s true that they all make one-offs and not large runs of
things. It’s really very different, the experience of making one thing
versus making a production line. For some reason it’s like 100x the work to
make something 10 times rather than once. Also it’s hard for it to be as
exciting/interesting. I’ve studied everything I saw, but, I always had this
mental barrier that the tools and processes used in a real factory were
masterfully created by craftspeople at the peak of their careers with a
perfected process. The thing I learned from all my coworkers at the 3D
printer startup is that these things are not magical and not designed
perfectly; it’s just smart people using the skills they have to solve
problems. I was already doing the same thing for software: building a
production line that reliably pumped out products at scale. This was just
the same thing, in a different medium. Humans usually go with a
straightforward solution to things, and you can often just muddle about
trying things and spending money until you figure out what works. It’s
interesting to look at different industries and see how they use their
skills to solve their own problems. So all the tooling for woodworking are
jigs made of wood. Automatic assembly lines for metal objects are
monstrosities made of metal. Software is built using software and AI
researchers use AI to solve all their problems. So you just use what’s at
hand and eventually you settle into a local maximum of an optimal process.

Also, I live in the Bay Area. I’m biased, but this place is full of
awesome engineers building things and you can just walk up to them and ask
them to explain everything about their project and they will.

After you’re done with fulfilling the orders what are your plans for the
future?

This past year I took some time off traveling, I had a brief detour
where I won a Hackathon with an AI Slackbot, there were a few forays into
startups, I made all the campaign content, and I did a bunch of paperwork. I
ran out my budgeted year of unemployment, so I completed a job search and am
now working full time again.

I must say, this project has gone on much longer than I intended, but
that was partly due to unexpected success. The crowdfunding campaign has
been a ton of effort to only get a few kits out into the wild, but I learned
a lot and it’s been fun overall. I’ve got a whole stack of smaller projects
which have piled up in the meantime and I can’t wait to deliver these
DevKits and table the project for a bit. I’ll do a few weekend projects to
rejuvenate myself and then start designing a game for Wyldcard.

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments