DEFCON 22 Badge: Code, Schematics and Information Here!
Ken Gracey
Posts: 7,395
Parallax P8X32A Multicore Microcontroller and DEFCON 22 Badge
DEFCON 22 Attendees: files you might need for the badge contest are right here!
Youve arrived at Parallax's DEFCON 22 badge resource page. If youre in Las Vegas and participating in the DEFCON 22 badge contest to win one of the coveted Uber badges, this page offers a starting point for resources and source code. You'll learn a bit about the contest at the DEFCON 22 Opening Ceremonies on Friday at 10:00 am.
If this is your first time to Parallax forums we welcome you! Feel free to use this forum for anything you need - our local Propeller experts will be happy to answer any questions!
The DEFCON 22 Badge was designed and manufactured for the largest continuously running hacker and computer security convention in the world www.defcon.org. This year's DEFCON is a four-day technical session held at the Rio Hotel in Las Vegas, founded and run by Jeff Moss (DarkTangent). Ryan Clarke (@LostboY), JonnyMac (@J0nnyM@c), and Parallax designed this years badge as a core part of the hacking contest. Jon Williams authored the badge firmware and you will be familiar with his coding style if you've seen it before. Parallax was invited to do this project on June 1st, providing only 60 days from concept through production yet our team pulled it together and manufactured almost 14,000 units in our Rocklin, California facility in July!
DEFCON 22 Badge Overview
The badge is based around the Propeller P8X32A 32-bit Multicore Microcontroller. The circuit consists of a Propeller (microcontroller, EEPROM, clock), an infrared LED and receiver for badge-to-badge communication, a bank of eight LEDs for visual feedback, four button touch pads and a USB circuit for data access and programming. Most importantly, this badge is useful well beyond DEFCON because it's a complete Propeller development board. All I/Os, Vss, Gnd connections are clearly ported to the side of the badge so you can solder directly to the I/O pins or jump them off to a breadboard. Stop by DEFCONs Hardware Hacking Village to work with others on badge hacking. Youll need a micro USB cable which you can source from one of the hardware vendors if you need to reprogram. I suggest asking Garrett Gee at Godai Group - I asked him to bring 300+ micro USB cables.
The contest code is available as a zip archive, below. The contest code initially excludes the infrared communication method required for the contest, yet the infrared objects are included. Therefore, you're only missing a small portion of the firmware. When the contest is over, you get every piece of code including the methods that communicate with the infrared objects.
The badge types were produced in eight color schemes for different types of attendees: ARTIST, CONTEST, GOON, HUMAN, PRESS, VENDOR, UBER, and SPEAKER. The HUMAN badge was produced in eight different variants for 13 unique badge styles.
At the DEFCON 22 opening ceremony attendees will receive key information about how the badge is used to solve the challenge. We really dont know much about the Badge Challenge, but its really clear that people need to mingle to unlock some cryptology clues. Take a walk around, connect your badge to Parallax Serial Terminal to see whove you encountered. Everybody has access to the Propeller objects used in the top-level firmware. They're available for download below.
Propeller P8X32A Verilog Hardware Design Files Released!
Timed with DEFCON 22, Parallax has also announced that the entire Propeller Multicore Microcontroller hardware design is now released open source under the GNU General Public License v3.0. You can now access the Propeller 1 Verilog files and run them on an $89 DE0-Nano FPGA board, changing the code as you wish.
Helpful Resources and Downloads
DEFCON 22 Badge Resources (Creative Commons 3.0), at the bottom of this post:
- Badge Schematic Page 1 (PDF)
- Badge Schematic Page 2 (PDF)
- Badge Schematic (DipTrace)
- DipTrace Layout (DipTrace)
- dc22_badge_human - Archive [Date 2014.07.12 Time 14.32].zip - for contest, as provided on DEFCON 22 CD - absent the methods used to talk to to the infrared objects
- DCBadgeMaster.zip - full badge source code now posted, in entirety, Sunday evening at 9:41 pm Pacific Time
- DEFCON-22-Badge-C-Code.zip - thanks to David Betz we now have the Spin/ASM code ported to C for running in SimpleIDE. Added on October 2, 2014 and available for download below.
- P8X32A Multicore Microcontroller Open-Source Page. Verilog design files.
- PropellerIDE, an open source editor for Spin/ASM for Mac, Windows and Linux
- Propeller Tool, the Parallax editor for Spin/ASM Windows only
- SimpleIDE, an open source C editor for Mac, Windows and Linux
- Propeller Manual
Ken Gracey
Parallax Inc.
zip
211K
Comments
BTW, the videos you have been pushing out lately have been stellar! Are you doing them in-house?
Jim
Robert, a relatively new (and very talented) employee, takes care of all of our photography and video needs. We love his work too!
:-)
I'm guessin' your in Vegas now. Best of luck with the badges.They should be a hit like last year.
Ebay after the show, or wait for the DEFCON store to materialize???
They are using the same pins for the LEDs as two years ago; my code from then works with the new badge!
Try one of these PropellerIDE packages while you have internet access.
http://forums.parallax.com/showthread.php/153921-Open-Propeller-Project-3-Propeller-IDE-V0.1-Package-Available?p=1283880&viewfull=1#post1283880
It shouldn't.
I'm also here, though i'm not really much of a hardware hacker, i got it up and running on my mac. Not sure how to dump the list of the folks i've encountered via IR. I suppose that's the part of the source which has not been included.
btw - i am using PropellerIDE. The serial console displays fine in debug mode when running a .spin file. But i'm not sure how to use it as a console for the embedded firmware.
Any advice?
is this a typo? Doesn't make sense.. i think you mean to say 'When the contest is over, you get every piece of code including the methods that communicate with the infrared objects'?
That's right, benh57! Thanks for pointing that out - I shall promptly fix it. I posted that message this morning I was very tired (so tired!) from all of the DEFCON preparations.
- Ken Gracey
What's in that 64KB? Normal program in the lower 32KB? What's in the upper? Maybe a second program to burn the upper 32KB?
I'll be there. Really big guy with gray curly hair.
Instructions:
1) Download goon firmware: https://pwn.me/dc22/goon.eeprom32.bin
2) Follow the links above to install PropellerIDE
3) Detatch USB and power-cycle.
Execute propeller-load -e goon.eeprom32.bin
Enjoy!
That's the one that doesn't have a serial monitor unless you send code to the Propellor. Or maybe there is an undocumented feature in there?
Upper is all 0xFF padded (IE, never flashed) BUT I still had to dump the 64k image to make sure there were no canaries hiding up there. I had to learn about the eeprom format in order to determine where the code image ended so I could re-calculate the checksum. The area above between the end of image marker and 32k contains some persistently stored data so had to be excluded.
I'm having fun! Not what I'd planned to be doing (The airline broke my reflow station) but I'm having fun and, most importantly - learning.
You could use some serial terminal that you know and like, but if you don't look at the code you'll be missing things.
In PropellerIDE, choose a COM port that shows when the badge is plugged in and open the serial terminal with the green + button. Sset the baud-rate to 57600. The code posted here in #1 shows the baud-rate is 57600. Reset the badge and see what happens. I don't have a badge this year, so I don't know how it all works.
If you want a "generic" serial interface on macosx then use screen /dev/cu.usb-etc...