DCZia 2020 Defcon 28 Badge - PiBadge Mini
____ _ ____ _ __ __ _ _
| _ \(_) __ ) __ _ __| | __ _ ___| \/ (_)_ __ (_)
| |_) | | _ \ / _` |/ _` |/ _` |/ _ \ |\/| | | '_ \| |
| __/| | |_) | (_| | (_| | (_| | __/ | | | | | | | |
|_| |_|____/ \__,_|\__,_|\__, |\___|_| |_|_|_| |_|_|
|___/
This year was crazy, so our origianl plan never happened. Howerever we wanted to do something so that people could have a badge for this year. Our idea was to have an open source design that you can buy parts online and put together at home. We did this with our first badge, and decided to revisit it now just in a smaller package! Think of it as a mini badge, or a small desk toy.
DCZia would like to present the PiBadge Mini: A Raspberry Pi Zero W with a Waveshare 1.44" LCD Display. We wrote a custom image for the Pi that will auto play some open source and in house made videos.
Coming soon, but here is the rough guide:
- Gather parts listed in the Hardware Overview.
- Get your pi and screen, and put them together. If your pi does not have headers already attached, solder them on now.
- Install the screen. Be gentle when putting the screen on, gently press on the sides of the boards to attach it. Avoid pressing down on the screen as it is delicate.
- Burn the official DCZia Raspbian image to your SD card using something like balenaEtcher or another SD card imaging tool. (dd, etc...)
- Optionally if you want to build your own image read about how to use our Build Script
- Power on your pi with a usb power adapter.
- Profit ?
The general hardware used for this is:
- Raspberry Pi Zero W
- Waveshare 1.44" Pi Zero LCD Screen
- SD Card - Speed Class 10 / U1 highly recommended
Optional unsupported hardware, but likely to work:
- Any Pi
- Any screen supported by https://github.com/juj/fbcp-ili9341
Cheap mode (aka i already have a pi but dont want to buy a screen)
- Any Pi
- Plug HDMI from the Pi into your TV. Presto, giant DCZia badge / screensaver / whatever
-
WaveShare 1.44" LCD Screen 128x128 Resolution
- Amazon Link
- Waveshare 1.44inch LCD HAT Wiki Page - Documentation
- Waveshare 1.44inch LCD HAT Product Page - Button mappings to Raspberry Pi pins are on this page.
-
Raspberry Pi Zero w/header presoldered
-
Or if you can solder
- Pi Zero W kit with accessories
- Amazon Link
-
SD card 8GB minimun
- Download the image and burn it using balenaEtcher or similar tool such as dd.
- https://dczia.s3-us-west-2.amazonaws.com/dczia2020.img.zip
- Download Raspbian Buster Lite (https://downloads.raspberrypi.org/raspios_lite_armhf_latest)
- Burn it to an sd card (using balenaEtcher, dd, etc...)
- enable networking
- Boot it, login with the default raspbian user: pi password: raspberry
- Change your password with passwd
- Install git: sudo apt-get install git
- Clone our git repo: git clone https://github.com/dczia/Defcon28-Badge.git
- Run the dczia_setup.sh script inside our repo
- Reboot and you should be good! Screen will be white while booting.
- New hostname will be: pibadgemini
- Log in with User: pi Pass: dczia2020
Currently it supports our PiBadge 1/2 screen the Adafruti PiTFT 3.5", and the WaveShare 1.44" LCD. Shoudl work on a Pi Zero, Pi Zero W, Pi A, and Pi B.
If you have any pi with a base Raspbian Buster image you should be able to run our setup script to build the badge environment. You will likely need to tune the fbcp-ili9341 build options for your screen.
Also if you have any PiScreen you should also be able to install the native drivers for your screen and then remove the fbcp-ili9341 driver section from the script to get up and running, but this is unsupported and other drivers may have performance issues.
What? I thought this year you were doing mini?! I know,.. I know... but if you want to go big we also present the PiBadge XL. Go buy a Hyperpixel 4" screen here: https://www.pishop.us/product/non-touch-hyperpixel-4-0-hi-res-display-for-raspberry-pi/
Pi Shop also carries the Pi Zero W with and without headers: https://www.pishop.us/product/raspberry-pi-zero-w/
Hyperpixel Cases: https://www.thingiverse.com/search?q=Hyperpixel&type=things&sort=relevant&page=2
Manual Install:
- Install base raspbian
- Install hyperpixel drivers: curl https://get.pimoroni.com/hyperpixel4 | bash
- Set rotation after drivers are installed and before reboot: hyperpixel-rotate right
- Reboot
- Clone the repo
- Run the hyperpixel_setup.sh scrip to pull down the videos and install software.
- Reboot!
See the cases folder. Syntax remixed a case design to allow your badge to be protected with an optional lid. babdor also made a Zia shaped desk stand for your PiBadge.
- For now you need to clone the repo into the pi users home directory as paths are hardcoded. I know, i know...
- If you see the worlds tiniest console on your pi you are likely missing the video. Check if dczia2020.m4v is in the videos folder.
- If your screen stays white check that fbcp-ili9341 is running, this is the LCD driver. (ps -ef | grep fbcp)
- If it is running and your screen is still white, check your soldering if you soldered on the headers.
If you want to configure your pi to have network access there are two way to do it:
If you do not have a keyboard & monitor Mount your /boot partition on the SDCard and add a file called wpa_supplicant.conf
Add the following information:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
ssid="<Name of your wireless LAN>"
psk="<Password for your wireless LAN>"
}
Finally add an empty file called SSH to the /boot folder to enable SSH.
More info at: https://www.raspberrypi.org/documentation/configuration/wireless/headless.md
If you have a keyboard and monitor
Log into your Pi using the default Raspbian username and password then use the tool raspi-config to setup WiFi and enable SSH.
Alternativly you can use the commandline to setup your wireless network.
Open the wpa-supplicant config file in nano or vi:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Add the following lines to the bottom:
network={
ssid="your network"
psk="your password"
}
NOTE: for added security (who doesn’t appreciate that?), omit the quotes and input your password as a 32 byte hexadecimal!
Save the file by pressing Ctrl+x, then y, then Enter
If it doesn’t work, check your inputs
More config deets available at https://www.raspberrypi.org/documentation/configuration/wireless