-
How I Created The Mr. Robot Badge
08/02/2017 at 03:53 • 5 commentsThis is it. It's over. It's done. I'm writing this on August 1st, right after getting home from Def Con. All badges were deployed, I'm not getting sued by the creators of Mr. Robot, and everyone loved my work. I'm going to use this project log entry as a single wrap-up post, and also go over the issues that cropped up in the final days.
But first, a badass pic:
The official Def Con badges have been electronic works of art for more than a decade now, but only in the past few years have independent hives of hackers built their own electronic badges. This is Badgelife, a lifestyle that revolves around developing custom hardware for an entire year and having a lot of fun for one weekend. This year is the biggest year yet for Badgelife. There are dozens of groups designing, building, and deploying completely custom electronic badges this year at Def Con.
For the last few months, I’ve been working on a very special project. I released this project this weekend at Defcon. Yes, I’m the guy behind the MrRobotBadge. If you’re reading this now, it means it’s finally time to end the MrRobotBadge ARG. I am MrRobotBadge. Right off the bat, I’m going to call this ‘gonzo trade journalism’. That’s not because this entire endeavor involved a trip to Vegas and electronic debauchery. It’s just that I can’t think of a better phrase to describe how I injected myself into a subculture built around electronic conference badges simply to write about electronic conference badges.
The question I’m sure is on everyone’s minds right now is why I spent thousands of dollars and hundreds of hours to create a custom, unofficial badge for Defcon. Was it to promote the TV show Mr. Robot? Certainly not. Was this project sponsored in any way? No; everything here — including my trip to Vegas, ostensibly as a Hackaday journo — was done on my own dime. Was it to use conference badges as an attack vector and make WiFi completely unusable on the Vegas strip? That was the initial plan, but no. This was simply an experiment in gonzo trade journalism; an investigation into the inner workings of what it takes to build custom hardware on a very tight timeline.
---------- more ----------
The Beginnings of an Idea
The inspiration for this idea came from last year’s Defcon, and AND!XOR’s incredible Bender Badge. This was an extremely popular badge, despite having absolutely nothing to do with official Defcon puzzles, parties, or challenges.
There’s only one way to describe how popular last year’s Bender Badge was. During last year’s Defcon, on Friday night, a few people I was hanging out with looked down at their phones and noticed a Tweet from the AND!XOR crew. Minutes later, I was on the 9th floor of Paris, in a queue one hundred people deep. Everyone had a fist full of twenties, and everyone wanted a Bender Badge. I had to get in on this.
The killer feature of this badge is the multicolor PCB, and the inspiration for this comes from the incredible advances in PCB art I’ve seen over the past few months. I have literally been turned into art using the standard solder mask and silkscreen colors from OSH Park. [Trammell Hudson] is making masterpieces in copper and gold. I can’t even wrap my head around what Boldport is doing. If you’d like an overview of PCB art, I would highly recommend checking out [Star Simpson]’s talk from last year’s Hackaday Superconference. Basically, the only place to go from here is with custom color solder masks and multiple colors of silkscreen. Fortunately, borrowing some Mr. Robot iconography affords me a relatively simple design: it only uses two colors of silk screen (white and black, which every board house can do) and a skin tone soldermask.
The idea of a skin tone soldermask was actually borrowed from last year’s Queercon badge. This squid/cuttlefish badge used black fiberglass, white silk, and a clear soldermask. Clean matte copper, as it turns out, is an excellent stand-in for skin tone.
I’m not one to believe in divine inspiration. I believe ascribing the creative process to a muse, chemical influence, or other totem leads people to disregard exactly how much actual work goes into doing anything creative. For this, though, I have to concede sudden flashes of inspiration indeed exist. Somewhere in my brain, a few neurons linked. Three ideas came together: a skin tone soldermask, the marketing for Mr. Robot at last year’s Def Con, and the idea of two silkscreens. The result was a multicolor Mr. Robot mask PCB. In a moment, I knew this badge could be built, and the only thing left was an unbelievable amount of work.
I guess an electronic badge needs electronics, right?
The electronic design for this badge began when I stumbled upon a very interesting LED driver. The ISSI IS31FL3731 is a LED driver that takes I2C commands in on one end, and spits out a charlieplexed 16×9 LED array on the other end. It’s a cheap part, and at the time I discovered it, there were already a few Adafruit libraries for this chip. This chip would be the core of the badge – it has all the blinky bling required of a Def Con badge, and the chip was cheap enough in quantity.
Wireless connectivity was a goal for the badge, although that, unfortunately, didn’t make it into the finished firmware. For most of the unofficial conference badges, wireless means either Bluetooth or WiFi, although I believe a few badges this year used weirder protocols such as LoRa. WiFi is good enough, and the ESP8266 is a fantastic module. I used the ESP-12F module for this badge. It’s a module with an ESP8266 core, and just enough GPIOs to get everything done.
In addition to the main chip and a LED driver, I needed a power supply. A switching regulator would be the best choice for a badge that had to run for three days on a set of batteries, and Microchip’s MCP1640 was up to the task. I will note that the inductor I used (and was recommended by the datasheet) was a bit too small, but PWMing the LEDs helped a bit.
With the schematic pretty much sorted, I whipped up a small prototype board in the middle of January:
With the prototype completed and sent off to the firmware dev, I was able to start work translating this prototype into what would become the finished MrRobotBadge. The design was done in KiCad and this was my first big project that wasn’t done in Eagle. The art for this board — not the electronics, this is just the soldermask and silkscreen layers — took about 20 hours in Illustrator, and another 20 hours turning that into KiCad cutouts, soldermasks, and silkscreens. Nevertheless, I figured out how to do exceptional art in KiCad.
For PCB fab, I went with Seeed Studio. I did this badge on a budget, after all, and this isn’t really a complex badge that requires 2 mil traces. Again, this badge wasn’t sponsored by anyone — everything you see is completely funded out of my own pocket. That said, I was very pleased with the work Seeed did with this project. This project wasn’t done through Seeed’s Fusion PCB service, though: I had to use a few contacts to get ahold of a real person at Seeed. However, one of the other badges I made for Def Con this year was done through the Fusion service and my experience for that badge was just as awesome.
An Augmented Reality Game
For the last few years, [L0sT has been in charge of badgecraft at Defcon, and with that comes amazing crypto puzzles. The lanyards for Defcon badges have codes on them, and not all the lanyards are the same. To solve these puzzles, you must collect images of badges from goons, press, speakers, and so forth, possibly look at the firmware, and dig into the gigantic decals on the floor of the conference. To get an idea of what goes into a Defcon crypto puzzle, take a look at this talk [L0sT] gave at one of hackaday's cons.
I can’t possibly create a puzzle that would compete with a [1057] puzzle, but I can make an attempt. This whole concept has a few things going for it: most of the IRL presence of this badge is on Twitter. Therefore, I can use Twitter to deliver clues. I have a small amount of available space left over on the badge, so I can hide some information there. I also have a website for this badge so I can make that another piece of the puzzle.
o deliver the first clue for the ARG, I scheduled over 100 tweets, each containing eight bytes in hexadecimal format. The first tweet simply read, ’50 4B 03 04 14 00 00 00′. Looking at that in a hex editor, that reads, ‘PK……”. Anyone with a vague familiarity of file formats should be able to tell you this is the first eight bytes of a Zip file. After about 100 tweets, someone trying to solve the problem will be able to assemble a small (~800 byte) Zip file. Enclosed in this archive is an image taken from Majora's Mask.
The ‘Dawn of the First Day’ image is saved as a bitmap, and thanks to the way bitmap and zip archive file formats are laid out, a zip archive can be appended to the end of a bitmap file. If someone trying to solve the badge were to look at the ‘dawn’ image in a hex editor, they would find a zip archive at the end with a text file that contains a link to this website. The only thing on this website is a memory address, and if you look at that memory address on the badge, you’ll find a bitmap of the ‘winning’ image that includes a link to this post.
While this puzzle is nowhere near the level of what [L0sT] created for this year’s badge (yes, that's accurate), it is a fun little experiment in user engagement. A lot of people at the con were looking for hints, and I’m told there were fevered discussions on IRC and the Discord server. This means I spent a significant amount of time trolling people on twitter with literal red herrings. In any event, the cost to implement this ARG was 1200 bytes of Flash space on the badge, and a few hours of my time. For any other independent badge creators, I would highly recommend creating an ARG to go along with the badge.
Lessons Learned:
- I vastly underestimated the ‘soft’ tasks of making a badge
For this badge, I was fortunate enough to know a guy with a really, really fast assembly line. The pick and place machines manufactured Blackberries in their former life, and the only way to find a bigger PCB assembly house it to visit Foxconn. This put me in a great position — I was able to place 100,000 components on the boards and send them through the oven in a single weekend. That gave me three weeks to depanelize the boards, populate and solder the battery holders, program the badges, and finally kit everything up in static bags.
I still can’t believe how long it took to depanelize, solder, and program all the badges. I was able to depanelize and solder battery holders at a rate of about one badge every two minutes. That’s sixteen hours of working with a pair of wire cutters. In the end, I had several blisters on my fingers and palms. Programming was equally tedious. I used nodemcu firmware flasher and a pogo pin FTDI adapter to program all the badges. Again, each badge took about two minutes on average, so that’s another sixteen hours.
This would have been easy if I had a team of people sitting around a table running a production line. In fact, that’s what the majority of the independent badges did this year. This was a solo effort, and I did not have this luxury.
- Holy crap, electronics are cheap in China
So you want to build hardware on the cheap. Mouser and Digikey are great for when you want some parts now, but if you’re going to do small-scale production, there are some fantastic deals to be had on AliBaba and AliExpress.
Case in point. To the left is a AA battery holder manufactured by Keystone and available on Mouser for $0.65 in quantity 1000. This was exactly what we needed: two double As, with through hole mounting. I found the exact same battery holder on AliBaba for $0.15 in quantity 1000. As a bonus, the AliBaba holders had four solder pins, allowing me to make this a 1.5 or 3V supply, depending on how I routed the board.
How about LEDs? This project used a lot of LEDs – around 80,000. LEDs come in reels of 4000, so that’s twenty reels. I struggled to find LEDs for under $100 a reel on Mouser, but AliExpress netted me all the LEDs I needed for under $300. That’s one-tenth the price. Buttons, too: the Panasonic buttons suggested by the KiCad library would cost about $600 from the usual suppliers. I found similar buttons, though not as fancy, for $90.
Now, if you’re building something designed to last for more than 100 hours, you’ll want good parts. You’ll want parts that have datasheets and not just dimensions. You’ll want buttons that are rated for a specific number of presses. A Def Con badge doesn’t need this. It’s effectively disposable hardware, it’s designed to last for three days, and no one is going to be using it when September rolls around. Low cost is the name of the game, and reliability is a luxury.
- LEDs are horribly inefficient on a price per pixel basis
This badge was designed to be ‘sticky’, and encourage user interaction. More people playing Tetris on a badge means more people see people playing with the badge, and the more popular the badge becomes. Something like that, at least.
The display for this badge is simply 144 SMD LEDs and a Charlieplexed LED driver. If you’re using an assembly house with a fast enough pick and place machine, the only hard part about this badge was getting the Charlieplexed layout right. It’s simple, but it’s also expensive. I bought enough parts for 520 badges, including $240 in LEDs and $640 in LED drivers. The displays, across all badges, cost $880, or $1.70 per badge.
Compare $1.70 per badge by what’s available on AliBaba. For $2, I can pick up a round AMOLED LCD designed for smartwatches. For a buck a piece, I can buy the ubiquitous SPI OLED displays found on other badges.
Community Reception
During the con, things only got better. The first public release of the MrRobotBadge was a small sale on Tuesday in the ‘Fun Dungeon’, the arcade in the basement of Excalibur. I announced a ‘Titanic’ sale would happen around 10 pm, which put enough people within walking distance of where I would be at that time. When 10 o’clock rolled around, I posted a few pictures. Everything went great, I was selling items in plastic bags out of a satchel under the nose of Excalibur security, and later that night I met up with [Kevin Mitnick]. Free Kevin badges, or something like that.
For the week of Black Hat and Def Con, the Badgelife crew continued to be absolutely fantastic. On Wednesday, I got a message from [Joe Fitz] telling me [Christian Slater], the titular character of Mr. Robot, would be at HP’s Black Hat booth. [Joe] was kind enough to donate a MrRobotBadge to the real Mr. Robot, ticking an item off the bucket list for this project.
It wouldn't be a Def Con without drama, and there was plenty of it. Sometime on the Wednesday before DefCon, I heard through the grapevine that Goons were looking for me. After about a day of trying to reach them, I eventually found my way to the SOC, and talked to the King Goon. Apparently NBCUniversal's lawyers had doxxed me.
It's very doubtful I could be served with a Cease and Desist if I'm not home (how, exactly would anyone find me), so for the remainder of the con, there was an open question: would NBCUniversal, Comcast, or the creators of Mr. Robot tell me to take down my work, stop selling badges, and effectively end this whole project? I had to wait until I got home to answer that question. Now, it doesn't look like that'll happen. In any event, I've ceased and desisted. It's over, it's done, and this project is complete.
The last nine months or so have included some of the most rewarding experiences of my life. While my work can’t compare to the AND!XOR crew, or the rest of the Badgelife hive, or even L0sT, Joe Grand, or any of the other famous badge makers, I was amazed by the positive reception my work received. This is also the largest project I’ve done to date. The relationship between building one thing and building hundreds of things does not scale linearly, and I learned a lot of what goes into designing and producing a hardware product.
Am I going to do this again? Probably. There are three goals I’d like to see Badgelife tackle in the next few years. The first is full-color PCBs, and I think I know of a way to do that. The second is custom silicon — an ASIC or something. I won’t be tackling that project, but if I had to make a bet, I’d say #Badgelife will make this happen in two or three years. The third challenge is injection molding or something that brings industrial fabrication processes into conference badges.
Should you take six to nine months out of your life to build an electronic conference badge? It’s not for everybody, and there’s an incredible investment in time and money. I’m sure I have a few more gray hairs from getting these badges together on time, and the MrRobotBadge didn’t live up to my expectations on the outset of the project. Nevertheless, this was simply one of the most rewarding experiences I’ve ever had, I’ve learned a lot, and I’ve met some really cool people. I’d highly recommend it to anybody.
Thanks
This project was not created in a vacuum, and I couldn't have done it without the inspiration and efforts of dozens of people. I'd like to make a special shoutout to Joe Grand, L0sT, and Def Con itself for years of awesome work for an awesome con and awesome badges. Special thanks go to the goon squad, with special mentions to CJ, Beamer, Chris, and Chris. Couldn't have done it without you.
Going further, I'd like to thank and!xor for the inspiration last year to create my own badge. I'd like to thank these five guys even though Hyr0n completely stole my precious intellectual property. The Queercon badge guys get a special shoutout for the the idea of a skin-tone soldermask with last year's squid badge.
The #badgelife crew -- all 80 or so of them -- deserve special mention. I'd like to thank Whitney specifically for being the #badgelife queen, Krux for that thing he did, and everyone else for being part of an awesome community. Next year is going to be fun. Big ups to @catmurd0ck for the awesome, badass pic at the top of this post and the header image for this project.
Finally, I'd like to thank the other members of the team. The guy who did the firmware, you know who you are, and you're awesome. The guy who helped with the assembly, thumbs way up. I completely understand why you would not want to be publicly associated with me. Ivy at Seeed, you are awesome, and I'll get that thing to you when I see you.
-
Assembly done, it took 18 hours
07/09/2017 at 07:20 • 0 commentsLast week I was assembling about 480 badges with the help of a pick and place machine. There are about 100,000 parts, and we completed everything in about five or six hours. After this, the only thing left to do was depanelize the boards and solder on the battery holders. There are two battery holders, so only 960 more parts to go.
Depanelizing and soldering on those battery holders took 18 hours. My hands hurt now.
What's left? Programming and putting all these badges in bags with lanyards and stickers. Then they're shipped off to Vegas. This means I need a programmer. Here's what I came up with:
It's a standard off-brand FTDI adapter, some pogo pins I found on Amazon, and a 3D printed adapter. Completely custom work, and it'll get the job done.
Oh, this is going to be on Engadget, so that's cool, I guess.
-
I Know A Guy
07/02/2017 at 20:59 • 0 commentsI have a lot of stories that begin with the phrase, 'I know a guy'. Needless to say, assembly is done:
How did I do it so quickly? I know a guy with a few machines:
We got about 230 panels -- or 460 'faces' -- done in about four hours. It would have probably gone faster if we weren't drinking beer and eating pizza.
So, why only 460 badges when I initially planned for 500? I'm an idiot. We ran out of buttons. To be fair, the AliExpress listing for the buttons I'm using said each reel would have 1500 buttons. There are seven buttons on each badge, so I needed 3500. Apparently there were only 1000 on each reel. I had some spare, fancy, Panasonic buttons that were amenable to hand-soldering, so I don't think we did that bad.
This was fun as hell, and now I have the badges ready to solder battery holders, program, and ship. This is fun.
-
Assembling, Prototyping, and Planning
06/26/2017 at 11:30 • 0 commentsBehold! The Finished Badge! In horrifically rendered GIF form!
This is the first functional hand-assembled prototype, running a demo from Adafruit's IS31FL3731 led driver library. It's not much, but it does show the entire badge is functional, and that this entire endeavor will be a success.
Assembly
This board has just under 200 components, and hand-assembly takes about 30-40 minutes. That's assembly, and the rework for the QFN LED driver takes an additional half hour. It's possible, though.
Of course, it's impractical to solder all of these by hand. That's at least 500 hours worth of work, and there are only 30 days left until defcon. I don't feel like pulling 17 hour days of soldering and reworking, so I called in a few favors. The entire assembly will be done by next week. After that, all I'll need to do is program the damn things and solder on the battery holders (the single through-hole component).
Planning
Speaking of batteries, I knew from the outset obtaining batteries would be a problem. Each badge requires four AA cells, that's 2000 batteries, and the best price I could find was about $0.25 per cell. That's $500 in batteries alone.
I was recently invited into the #badgelife slack, and one of the members pointed out an awesome deal on batteries, with free shipping:
That's a great deal, and after spending $227, I had 1440 AA cells (30 packs of 48 batteries) shipped to krux in Vegas. Is that all the batteries I need? No, but it's three quarters of the way there, and that'll be enough to last through Friday afternoon. A trip to Fry's will be in order after that. You can source a lot of batteries with a wad of hundreds.
So, all my sourcing is done, I have a plan for assembly, and all of this is going to happen. I need to spend a day or two working on the website (mrrobotbadge.tv) before the media blitz. Everything is coming together.
-
Oh yeah, an ARG or some shit
06/02/2017 at 13:12 • 0 commentsIt has just occurred to me that this badge needs an augmented reality game of some sort. I can't compete with 1057 on this one, so I'm just going to throw this together.
First, let's start with the winning condition. This image (all 1200 bytes of it, or something) will be stored in the firmware for the badge. Keep in mind the image below is a PNG, and I'll be using a BMP, but whatever:
What could be a better reward?
Now, the initial condition. Steganography - or hiding data in images - is popular for this sort of thing. That means I need an image. Here it is:
Now, how to deliver that first image? I'm using twitter a lot, so I'm just going to schedule a bunch of tweets from the @MrRobotBadge account to hexdump that jpg onto the Twitter. That should get some people riled up. The tweets will end on the thursday of DEFCON. We'll do one tweet every thirty minutes or something like that.
Right, so the steganography part. Inside the 'dawn of the first day' image will be a zip file. Inside that zip file will be a text file. On that text file will be the memory location of where to find the dickbutt pic.
That's the ARG.
No, wait, that's a terrible idea. The text file in the zip folder will be a web address ("mrrobotbadge.tv/ragingclue") or something. The contents of that web site will be the memory address.
There we go. Can't fail now. And I can set all of this up before the firmware is written.
EDIT: wait a second. I just realized I can use this ARG thing to reveal who's actually behind this whole badge thing. I was planning on doing a Hackaday post (publishing Sunday afternoon of the con), so I'm just going to add a wordpress shortcode to the dickbutt pic:
How did I come up with this? I was taking a shower, and my mind wandered over to the 1057 puzzles. Yes, I was thinking about 1057 in the shower. I realized I needed an ARG for this badge, hopefully one that would get me some followers on Twitter. That's it. Then it was just, 'oh yeah, zip files read in reverse, bmps read forward, blah blah blah'. This entire ARG took two hours to put together, and most of that was scheduling the tweets.
-
T Minus Sixty Days
05/25/2017 at 17:29 • 0 commentsIn two months, I'm going to be holed up in a hotel room in Vegas, overlooking the god damned Ferris wheel, frantically packing electrostatic bags with badges, lanyards, stickers, batteries, and fidget spinners. I should be concerned, but I'm not. I have this pretty much under control.
Failures from the last revision
There were two problems with the "final" hardware revision. First: the power supply sucked. The power supply for this badge is four AA batteries delivering 3V to a TI switching regulator. The spec for this regulator says it can deliver 1.2A, which it probably could, if you use an inductor that costs $3 in quantity one. Unfortunately, I used one of the 'recommended' inductors from the application notes. I can get maybe 300 mA out of this regulator before it shuts down. This is a problem, because we're blinking a lot of lights and sending WiFi packets everywhere. This requires power.
Luckily, the firmware engineer for this project turned down the brightness of the LEDs (a handy feature of the charlieplex driver) and spent a few days pinging the badge while displaying IPs on the LEDs. Everything works. The bug is now a feature: we chose a shitty inductor on purpose so the battery lasts a long time. Sure. That's the story we're going with.
Second problem: the badge shorted out when I pressed the right button. Guess why?
Yeah, that was stupid as hell, but it's fixed now.
CUSTOM COLOR SOLDER MASK
From the get go, this had to be an amazing looking badge. Generally, there are two ways you can go with this. You can either throw a ton of blinky LEDs on it, or you can put a lot of time into the art of the board. Take a look at last year's Queercon squid badge for an example of the latter.
One thing that hasn't been popularized is a custom color soldermask. Usually, boards are one of five colors: Green, Red, Blue, White, or Black. I wanted something different. The Mr. Robot Badge was designed around skin tone soldermask, with two colors of silk screen. It's simple, but effective.
Now, after some talks with Seeed (they're great, really), I have the first proof that custom color soldermask and weird silkscreens actually work
This is really, really fantastic. I couldn't have hoped for anything better.
And now I have to build five hundred of them...
Boards will be ordered from Seeed this week, and I have a Mouser cart with $1500 worth of stuff in it. Assembly? I have that taken care of. I know a guy. After that, it's a lot of programming badges, sticking them in bags, and shipping them off to somebody in Vegas.
Until this point, the reality of getting this project done was up in the air. This is a lot of fucking work, and a lot of fucking money to spend on something that might not happen. Until a week ago, I didn't even know if this custom soldermask / multiple silk process was possible.
Now, everything is lining up. I'm on time, under budget, and I even had a bit of money left over for some awesome (ly terrible) swag. This is it. This is the time when this project starts becoming real. It's only taken nine months and thousands of dollars so far, but here we are.
-
Final Proto, Hardware Lockdown, Buying Shit From China
03/17/2017 at 02:57 • 0 commentsFinal Prototype & Hardware Lockdown
This is it. The final revision. Changes from the prototype badge that wasn't shaped like the Mr. Robot mask include the addition of a switching regulator, the addition of battery holders, and a few changes to which GPIOs are used for the buttons. I should have planned for that button thing - it was a floorplanning issue, and should have been taken into account from the get go.
So, what does it look like now?
We're almost done. There are a few *slight* problems with the badge - mashing the buttons resets the ESP, but that's probably because I'm using an SPI port as a GPIO. Should be fixed in firmware. I've edited a lot of the silkscreen on the front of the badge just to make it look a little cleaner.
These completed badges will soon be in the hands of the firmware dev, and everything will be locked down by next week. After that, I need to panelize this board and shop around for a fab. Right now, it looks like I'm about a month ahead of schedule.
Buying Shit From China
Let's use the battery holders as an example of how much you can save by buying shit from China. This is what I need:
It's a two AA battery holder with through-hole solder pins. Here it is on Mouser. It's $1.65 in quantity one, or $0.64 in quantity one thousand. Since I'm making five hundred badges and each badge will have four batteries, I need a thousand. What's $0.64 times one thousand? Ouch, that's $640 just for the things that *hold* the batteries.
Lets see what AliBaba has to offer:
Huh, that's exactly what I need. How much? Fifteen cents apiece in quantity one thousand. Add in $66 for express shipping, and I have a ton of battery holders for a third of the price as sourcing them from Mouser.
Here's a neat bonus: the Mouser variety only have solder pins on one side. The Chinese versions have solder pins on both sides. This does require putting a trace from one positive lead to one negative lead, but it also means a more secure connection to the PCB. I don't have to epoxy this thing down now. Awesome.
Other items of note from China: the LEDs. Each badge has 144 LEDs, and I'm making 500 badges. Do the math. LEDs come in reels of 4000, and the fancy expensive LEDs cost $144 a reel. I need twenty reels of LEDs. A reel of LEDs on AliExpress costs $10.05, a total of $240 for all the LEDs. That's literally a tenth the price.
Buttons, too: I was prepared to spend about $1500 for the proper name brand Panasonic buttons. $90 on Aliexpress got me all the buttons I need, and they're good enough.
Remember, this badge is only designed to last for three days. I can afford to cheap out, especially since I don't need to worry about anything complicated like 'technical support' or 'a good product'.
LESSON: Holy crap electronics are cheap in China.
Where we go from here
Panelizing boards, sending them off to the fab, buying a whole lot of components, and getting them assembled. I'm ahead of schedule and right now under budget.
-
The Second To Last Board Spin
03/15/2017 at 04:09 • 0 commentsThis is it. Hopefully the second to last board spin. OSHPark Super Swift Service to the rescue.
There are a few things going on here. First off, this is the first board that's 'mr robot mask' shaped. We've already worked the kinks out of the prototyping boards (and firmware development is going swimmingly). We're doing one last go to make sure everything works before dumping $$$ on the custom soldermask process.
Secondly, we're moving to a better power regulator. The old version was a dumb linear piece of shit. This isn't going to fly with a battery powered badge that is supposed to last several days. This badge is using the MCP1640 boost regulator. It's simple, and it'll put out 3.3v for a while.
Power
The most difficult challenge for this badge is keeping it alive for an entire weekend.
Using measurements from the prototype badge, the four AA cells should last about 16 hours. That's with the lights constantly blinking on full brighness (the chip can do 8-bit PWM, so that's great), and constantly transmitting. I'm thinking this will be fine. If we cut the duty cycle of the LEDs in half, we're getting more than a day. If we don't transmit WiFi all the time, the draw from the ESP goes from 140 mA to 15mA. This thing will make it through the weekend.
By April, I should have an order in for the finished PCBs. Hopefully. By August, they'll all be sold.
-
LEDs and Stickers
03/01/2017 at 00:45 • 0 commentsThe LED matrix works...
thanks to the amazing firmware developer. This was the entire reason to build prototype badges - to get hardware into the hands of the firmware dev quickly. This is more or less finalized hardware (with the exception of different buttons, and swapping out the SOIC led driver for a QFN), so development can continue up until DEFCON.
Stickers
This is not a 'technological' hack by any means. A few people have already built ESP8266-based game machines, and the 16x9 LED matrix chip I'm using can be found in an Adafruit product. As far as the tech goes, there's nothing new here.
This is a social hack. Or marketing, if you want to be a little more accurate. I need to build a badge that people want. I need to make people want these badges first, so I need marketing materials:
That's only $200 for five hundred of these stickers. The art is taken directly from the illustrator crap I came up with, with the webpage and twitter handle of this whole endeavor added on the side.
I'll be distributing a few packs of these stickers to people who I know will redistribute them. I'll be saving a stockpile to add into the packaging for each individual badge.
-
This is how you do art in KiCad
02/25/2017 at 17:45 • 3 commentsThe entire point of building this badge is to build a desirable badge for DEFCON. There's an oppurtunity for guerrilla marketing and pop-up hardware startups here.
Therefore, the killer feature for this badge is soldermask and silk screen. The soldermask will be beige, and there will be two processes of silk on the back of the badge. The back of the badge will look like this:
This will be popular.
I could easily do this in Eagle. It would take me about two hours. However, on a whim, I'm giving KiCad a try. This is a project far outside what I normally see coming from the KiCad camp. Usually, all the 'artistic' boards I see are made in Eagle or PCBmodE (and rarely Altium). KiCad is mostly functional, and artistic boards are nearly unheard of. That doesn't mean you can't do artistic boards in KiCad - it just takes about ten times longer than it does in Eagle. Here's how you do it.
Vector Art to DXF Export
Step one: have vector art. This is left as an exercise to the reader. I'm using Illustrator instead of Inkscape. I'm also doing this example/tutorial with a single eye/brow, because it's simpler.
Step two: Convert your paths to straight lines. Do this by selecting your paths, then going through the Object -> Path -> Add Anchor Points. Do this many, many times. This adds an anchor point between all the other anchor points on your path. You're effectively doubling the number of anchor points every time you 'add anchor points'
DXF files can't handle Bezier curves, so you need to convert your shape to straight lines. Click on Object -> Path -> Simplify. Check the 'straight lines' button. Click okay.
Now your object is only straight lines. Export this do a DXF file with File -> Export -> Export As... and save it as a DXF. There are options, pay attention to them:
DXF Import to KiCad
Now that we have a DXF file KiCad will understand, we can import it directly into Pcbnew. From Pcbnew, select File -> Import -> DXF File. You can import a DXF file onto any layer, but I suggest selecting a single layer for importing images that you don't use for anything else.
Here's what we get when we import:
If your 'artistic board' consists only of an edge.cuts layer, you're done. If, however, you want artistic silk screen, there's one more thing to do. We need to trace over this import with a filled zone. Select the filled zone tool, and start making fills:
There we go, "art" in KiCad. The process of turning this art into soldermask, silk screen, mask resist, or just plain copper is left as an exercise to Chris Gammell.
A few tips and tricks:
- Import the DXF onto a layer that is not used for anything else
- Use Eco.1 and Eco.2 for your fills. KiCad doesn't really care what these are used for, and they're user-definable.
That's it. This how you do art in KiCad.