-
Notifications
You must be signed in to change notification settings - Fork 3
/
README.qmd
162 lines (88 loc) · 3.66 KB
/
README.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
---
format:
html:
embed-resources: true
toc: true
pdf:
fig-pos: H
theme:
light: darkly
dark: darkly
---
![](logo/lebowbski-tiny.png){fig-align="center"}
# Riscufefe #5 badge repo
Some howto's below.
# The GLITCHIFIER9000 in a nutshell
![What is voltage glitching?](figs/g9k1.png){width=80% fig-align="center" #fig-1}
![Normal operation](figs/g9k2.png){width=80% fig-align="center" #fig-2}
![While glitching](figs/g9k3.png){width=80% fig-align="center" #fig-3}
Check out the schematics [in this repo](https://github.com/inconspicuous-username/Glitchifier9000/blob/main/hardware/pdf/Glitchifier9000-sch.pdf) for more information!
NOTE: The trigger input is currently set to the button for demo purposes, the use a different pin you have to modify [this line](https://github.com/inconspicuous-username/Glitchifier9000/blob/main/firmware/upython/badge/glitchifier9000.py#L32).
# Hardware DIY instructions
## Minimal badge functionality
To get minimal badge functionality:
1. Solder C3, C4
![](figs/c3c4.png){width=49% fig-align="center"}
2. To protect your PICO from having battery and USB power at the same time, solder Q1:
![](figs/q1.png){width=49% fig-align="center"}
3. To be able to switch off the batteries, solder SW1:
::: {layout-ncol=2 layout-valign="bottom" fig-align="center"}
![](figs/sw2-1.png){}
![](figs/sw2-2.png){}
:::
4. Attach the screen to the front:
::: {layout-ncol=2 layout-valign="bottom" fig-align="center"}
![](figs/screen1.png){}
![](figs/screen2.png){}
:::
5. Attach the AAA battery holder to the back:
::: {layout-ncol=2 layout-valign="bottom" fig-align="center"}
![](figs/battery1.png){}
![](figs/battery2.png){}
:::
6. Insert 2xAAA batteries:
![](figs/battery3.png){width=49% fig-align="center"}
You should now be able to see stuff on the screen, and you can interact over USB / serial.
## Button controls
To control the badge with the button:
1. Solder the 10 (3, 2, 3, 2) points of the button at SW1:
![](figs/sw1.png){width=49% fig-align="center"}
You should now be able to use the botton.
## GLITCHIFIER9000
To add GLITCHIFIER9000 functionality:
1. Solder R2
![](figs/r2.png){width=49% fig-align="center"}
2. Solder unlabeled SOT8 MOSFET:
![](figs/sot8.png){width=49% fig-align="center"}
Ready to glitch!
# Talk to the badge over USB
1. Plug in micro-usb cable.
Ready to talk!
## On Windows
1. Install a program to talk serial, like [putty](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
![](figs/putty1.png){width=49% fig-align="center"}
2. Find the COM port that pops up when you plug in the USB cable in device manager
![](figs/putty2.png){width=49% fig-align="center"}
3. Set up that COM port with speed 115200
![](figs/putty3.png){fig-align="center"}
4. Type some buttons, see what happens (also try CTRL+C and CTRL+D)
![](figs/putty4.png){fig-align="center"}
Ready to talk!
## On Linux
1. You probably know yourself
# Set up badge firmware on a plain Raspberry Pi Pico
Set up PICO for badge
1. Set up micropython firmware
- Boot RPI into bootloader mode (hold BOOTSEL button and plug in USB)
- Copy micropython `uf2` file to storage device (download yourself or located in `firmware/upython/rp2-firmware/rp2-pico-latest.uf2`)
2. Copy firmware folder to device, for example with [`mpytool`](https://github.com/pavelrevak/mpytool)
- `mpytool -p SERIALPORT put firmware/upython/badge/`
To do stuff over serial, connect with `SERIALPORT`, baudrate 115200.
# Misc
To build this document in to various formats:
```
quarto render README.qmd --to pdf && \
quarto render README.qmd --to html && \
quarto render README.qmd --to docx && \
quarto render README.qmd --to gfm
```