Hardware Hacking Workshop - HackConRD 2024
This repository contains the documentation for the official HackConRD 2024 badge.
What is a badge?
Badges are an artistic expression of hacker culture, they are driven by the community and within it they become memorable collector's items. This niche/dynamic is popularly known as “Badgelife”. For this first iteration of the official HackConRD badge we used the conference logo, thus marking the beginning of Badgelife in our home and beloved HackConRD community.
How ​​do you use a badge?
The badges are worn with a lanyard around the neck and worn during the conference, they usually contain challenges and hidden secrets that test your curiosity and hacking skills.
Video
BadgeLife - A Hackaday Documentary
HackConRD 2024 Badge Features
The badge uses the ATTiny85 microcontroller, manufactured by Microchip Technology (formerly Atmel), is a popular 8-bit AVR microcontroller known for its compact size and versatility. These are some general features of the ATTiny85:
- Flash Memory: 8 KB
- SRAM: 512 bytes
- I/O Pins: 6
- Operating voltage: 1.8V - 5.5V
- Clock speed: 8 MHz
These features make the ATTiny85 suitable for a wide range of embedded applications, including IoT devices, sensors, consumer electronics and more, where space, cost and power efficiency are critical factors.
At the following link you will find the ATTiny85 data sheet:
PINOUT
Manufacturing Files
The badge was made with the intention of being completely open to the community at large. In the HackConRD_Badge_Fab-main.zip zip we can find the KiCad file with the final design.
Firmware
At the conference the badge comes with firmware developed specifically for the event and includes challenges and hidden features, but it is 100% reprogrammable, including the bootloader.
Serial Interface
5V
GND
RX
TX
I/O PIN 7
RESET PIN <-> BUTTON
LEDs
The badge uses physical PIN 2 to control the aRGB LEDs.
We can also add external aRGB LEDs and program different animation patterns with the 3 pins that are exposed on the board (Next to D9).
Imagine all the LED animations ChatGPT can generate for you.
DO
5V
GND
Sound
The badge uses physical PIN 3 to control the buzzer.
The built-in buzzer can be used to generate melodies.
Install the bootloader to ATTiny85
We can use the Arduino IDE to burn the bootloader to our badge. For this, the first thing we must do is install the Arduino IDE as such and then go to File > Preferences > Additional Board Manager URLs and enter the following URL:
http://drazzy.com/package_drazzy.com_index.json
This JSON file contains the famous ATTinyCore project made by SpenceKonde, which allows us to use the Arduino libraries on the ATTiny.
After we specify the new URL we can go to Tools > Board > Board Manager and search for "ATTiny" in the search bar. We select the ATTinyCore project which should already be visible and finally click Install. After this, the ATTiny Boards appear in the Tools > Board > ATTinyCore section.
Our chip is ATTiny45/85 (Optiboot)
Optiboot refers to the bootloader that we will use, there are others but Optiboot is quite popular for our purpose, which is to make the ATTiny85 a playground where we can easily reprogram the chip. Now that the Arduino IDE has ATTinyCore installed we can proceed to make the necessary connections to install the bootloader. For this we use the serial interface of the badge and an auxiliary Arduino Nano WITH THE Arduino ISP SKETCH (recommended).
It will not be necessary to install the bootloader to the HackConRD 2024 badge since it comes with it installed. This section is only to document how to install the bootloader if necessary, for more information you can watch the following video, where the same process is explained:
How To Program An Attiny85 With An Arduino Nano
Connections to Burn Bootloader onto ATTiny85
5V <-> 5V Arduino Nano
GND <-> GND
RX <-> D11
TX <-> D12
I/O PIN 7 <-> D13
RESET PIN <-> D10
Finally, we proceed in the Arduino IDE with Tools > Burn Bootloader, with the same ATTiny45/85 (Optiboot) that we had selected previously.
Upload Arduino IDE code on the HackConRD Badge
For this we simply make the connections to the USB to Serial converter with the badge, connect to the machine and "Upload" the code in the Arduino IDE, when performing this action the code will compile and if successful (no syntax errors) it will proceed to load the program. When the IDE starts loading the program (When Arduino IDE says Uploading) we reset the badge by PRESSING the reset button so that the bootloader accepts writing the new firmware to memory.