Activity Handouts
What this is
The capture and image files the classroom activities use. Each is a synthetic artifact built for its activity — none of them is a dump from the AL-2100 or from any device you will be assessed on, so working through them does not do your homework for you.
Download the ones you need before class. Nothing here is large; the whole set is under 2 MB.
⚠️ Treat these as untrusted data anyway. Two of the blobs contain compressed archives, and the habit of running extractors on them in a container rather than on your daily driver is the one Week 5 is trying to build. Practise it here, where it costs nothing.
Week 2 — UART
| File | Description |
|---|---|
week02-mystery.sr |
Logic capture, one channel named tx, sampled at 8 MHz. Open in PulseView. |
week02-mystery.vcd |
The same capture as VCD, if you would rather not install sigrok. |
The capture holds a single asynchronous serial signal. The sample rate is 8 MHz, so one sample is 125 ns — fine enough to measure a bit period directly. Everything else about the signal is yours to work out.
$ sigrok-cli -i week02-mystery.sr -P uart:baudrate=<yours>:tx=tx:format=ascii \
-A uart=tx-data
Week 3 — SPI
| File | Description |
|---|---|
week03-flash.sr |
Five-channel logic capture at 16 MHz: CS_A, CS_B, SCK, MOSI, MISO. |
week03-flash.vcd |
The same capture as VCD. |
Two chip selects share one set of data lines, which is the normal arrangement on a board with more than one SPI device. Only one of the two transactions is a flash part answering an identification command.
sigrok-cli takes one annotation class at a time, so decode each direction
separately:
$ sigrok-cli -i week03-flash.sr -P spi:clk=SCK:mosi=MOSI:miso=MISO:cs=CS_B \
-A spi=mosi-data
$ sigrok-cli -i week03-flash.sr -P spi:clk=SCK:mosi=MOSI:miso=MISO:cs=CS_B \
-A spi=miso-data
Week 5 — Firmware triage
| File | Size | Description |
|---|---|---|
blob-a.bin |
512 KiB | A firmware image. |
blob-b.bin |
256 KiB | A firmware image. |
blob-c.bin |
256 KiB | A firmware image. |
Three images from three different devices. Classify each, in the terms Week 5 Activity 1 lists, and say what you would do next with each.
There are four categories and three files. Do not assume one of each.
Week 7 — IQ captures
| File | Size | Description |
|---|---|---|
week07-signal-1.cs8 |
195 KiB | IQ capture. |
week07-signal-2.cs8 |
195 KiB | IQ capture. |
week07-signal-3.cs8 |
195 KiB | IQ capture. |
week07-signal-4.cs8 |
195 KiB | IQ capture. |
All four are complex signed 8-bit — one byte of I then one byte of Q, the native layout of an RTL-SDR or a HackRF — recorded at 1 Msps, 100 ms each.
$ inspectrum -r 1000000 -f cs8 week07-signal-1.cs8
Note that you had to be told the sample rate and the format. A raw IQ file carries no metadata whatsoever: not the rate, not the centre frequency, not the sample layout. Guess any of the three wrong and the capture looks like noise or like nothing at all. That is the Week 7 lesson arriving early, and it is why SigMF exists.
Week 9 — Cortex-M image
| File | Size | Description |
|---|---|---|
week09-cm.bin |
1,131 bytes | A raw flash image from an ARM Cortex-M4 device. |
No headers, no symbols, no ELF — a flat array of bytes, exactly as it came off the part. It is small on purpose, so Ghidra’s analysis finishes while you are still in the room.
$ xxd -e -g4 -l 8 week09-cm.bin
References
- sigrok / PulseView documentation — https://sigrok.org/wiki/Main_Page
- inspectrum, an offline radio signal analyser — https://github.com/miek/inspectrum
- SigMF, a metadata format for recorded IQ — https://sigmf.org/
- Ghidra — https://ghidra-sre.org/
Related course pages: Classroom Activities · Schedule · Tools of the Trade
🛠️ Maintenance note: these files are generated, not curated — the scripts that build them live outside the published site, and every artifact here can be rebuilt from scratch. If an activity changes, regenerate rather than editing a binary by hand. The
.cs8captures assume a tool that can be told a raw sample rate and format; if a future inspectrum drops raw-file support, ship them as SigMF pairs instead.