Most helpful documentation:
- ⭐ Pico Python SDK Docs PDF
- ⭐ Def Con 32 Badge Headers - Useful for understanding pin layout
Additional Links:
- Base Badge Firmware Repo: https://github.com/jaku/DEFCON-32-BadgeFirmware
- Flashy Rom Repo: https://github.com/Calvin-LL/defcon-32-badge-flashy-rom
- Conversion site for converting GameBoy games: https://defrom.lol/
- Google Doc with details about the
GB interface
- Google Doc with notes from hacking challenge - useful info about device specs
- Blog Post from Dmitry about the RP2350
- Pi docs about RP2350
- Pi Docs about MicroPython
You can flash the MicroPython ROM to the badge just like flashing the other .uf2
files via mounting the device as a drive and copying the .uf2
over. Once it reboots, you should be able to connect to the MicroPython session.
- Install
minicom
:sudo apt install minicom
- Make sure you are a member of the
dialout
group so that you have access to the serial device
# Find device
ls /dev/ttyACM*
# Open repl with minicom
minicom -o -D /dev/ttyACM0
Note that it seems like you can only have one session connected at a time. This includes minicom
, mpremote
, and the VS Code plugin
To exit minicom:
hit enter. then cntl-A then q then enter to exit minicom.
To contol the lights, it is useful to use the neopixal library. To install this library to the badge you will need to do the following:
- Install mpremote to be able to push stuff to the device
# Install the neopixel library on the device
mpremote mip install neopixel
More info about neopixel can be found in this tutorial.
import neopixel
pin = machine.Pin.board.GP4
ledStrip = neopixel.NeoPixel(pin, 10)
# Draw a red gradient.
# for i in range(10):
# n[i] = (i * 8, 0, 0)
# Set eye red
ledStrip[5] = (255, 0, 0)
ledStrip.write()
print("Make it glow")
You can connect VS Code to your badge for a nice IDE instead of doing everything in a minicom
repl. Check out this tutorial for more info.
(Do not forget that you can only have one session at a time, so if you are connected via minicom
you will not be able to connect VS Code. If you are connected in VS Code you will not be able to run mpremote
.)