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
|
= Tips for leaders
Print this off and have it available during the activity.
== Before starting
- Get the equipment ready:
- Deconstructible mobile phone (optional)
- Paper and pencils
- 2 Raspberry Pi computers
- 2 Raspberry Pi power supplies
- 2 monitors with HDMI cables and power supplies
- 2 keyboards
- 2 GSM-GPRS HATs
- 2 pre-paid SIM cards
- Cheat sheet for leaders
- Do a full setup for both computers and check everything is working. Send and
receive a text both ways.
- Delete all texts off both SIMs:
- `AT+CMGL="ALL"` to list all texts
- `AT+CMGD=<index>` to delete each text
- `AT+CMGL="ALL"` to double-check they're all gone
- Deconstruct everything you want to get the Scouts to set it up themselves
- The equipment should be split into separate rooms for each team, near
an adequate power supply
- Brief other leaders
== Introducing the Scouts
- Ideally: deconstruct a mobile phone
- Show them a computer, let them pass it around and have a closer look
- Get volunteers to construct a setup (without GSM-GPRS at first)
- Demonstrate some basic commands
- Get them to add the GSM-GPRS HAT with the SIM card
- Split into 2 teams
- Write `cat instructions.txt` on 2 separate pieces of paper and give one to
each team
- Distribute adequate paper and pencils to both teams
- Send each team to their equipment
== Facilitating
- Make sure pencil and paper is available
- Encourage the Scouts to take *careful* notes of everything they learn
- There will be considerable idle time. Be prepared to make good use of it:
- Get them to think through their thought process
- Prompt them towards what the next step in the puzzle is going to be
- If they have phones, get them to text themselves and send a reply
- If you're keen, feel free to have open discussions about computing:
- How do they interact with or depend upon computers? Where can they see
computers in their lives? Where might computers be at work in their lives
that they can't see?
- Have a look at the computer. Where is the processor? Where is the
storage?
- Consider how the technology we're using now is inside all of their
phones. It's just that the tricky bits are being done automatically by
computer programs. Consider how writing computer programs can make work
easier and open new possibilities.
- Maybe have a mini-game in your back pocket as a last resort
== Troubleshooting and FYIs
- If you type `cat` without a filename, you'll get stuck. Quit `cat` with Ctrl+C
- If minicom won't send messages to the SIM device, or it returns errors
unexpectedly, you may need to adjust the physical contacts for the SIM card.
All three contacts must be engaged.
- If AT commands are behaving strangely, consider if the Scouts have remembered
to enter Text Mode with `AT+CMGF=1`. They should have made a note of this!
- As far as I can tell, you can't read sent texts using the commands described
- In minicom, arrow keys do not work well. Backspace should work fine, though
- The Scouts are not finished until BOTH teams have told me the correct answer
== Puzzle walkthrough
- At first, they should use `cat instructions.txt` to read the basic
instructions. Make sure they understand the task
- They will probably then proceed with `cat reading-a-file.txt`
- They should now understand how to use `cat` to read files
- They should then refer to `instructions.txt` to read `looking-for-files.txt`
and `sim-commands.txt`
== Finding initial clues
- Team 1 should read `looking-for-files.txt` and learn how to use `ls` to list
files
- Doing so, Team 1 should find `cipher-to.txt`, but they may not know how to use
it yet
- Team 1 should also find `phone-number.txt` with a phone number in it, which
they should guess is the other team's phone number.
- They need to regard the instructions in `sim-commands.txt` to replace the "0"
with "+44", remove the space and enclose it in double quote marks.
- Team 2 will find `looking-for-files.txt` is garbled. They should infer that
they need to get Team 1 to tell them how to look for files
== Establishing communication
=== Team 1 should send a text
- Team 1 should find all the information they need in `sim-commands.txt` to
send and read texts
- Team 1 should also use `ls` to find `phone-number.txt` with Team 2's phone
number in it
- Team 1 should remember to turn `07XXX XXXXXX` into `"+44XXXXXXXXX"`. This is
specified in the instructions in `sim-commands.txt`
- Team 1 should use this information to send a text
=== Team 2 should from Team 1 how to send a text
- Meanwhile, Team 2 should find all the information they need in
`sim-commands.txt` to read texts, but will find the information they need to
send texts is garbled
- Team 2 should be able to read Team 1's texts, but not reply to them
- When Team 2 doesn't respond for a couple of minutes, Team 1 should guess that
Team 2 doesn't know how to send texts, and send them careful instructions
- If this is proving difficult, suggest that Team 1 send an exact example of
sending a text
- Team 2 should use this information to figure out how to send a reply
- Team 2 can find out Team 1's phone number from the texts they sent
- Both teams should now be in contact!
== Solving the cipher
=== Listing hidden files to find more clues
- Once Team 2 has learned from the other team how to list files, they should
use `ls` to find `cipher-from.txt` and `listing-hidden-files.txt`
- Again, Team 2 may read `cipher-from.txt` but not know how to use it yet
- Team 2 should also read `listing-hidden-files.txt` and learn how to list
hidden files
- Then Team 2 should use `ls --all` to find `.password-enciphered.txt`
- Team 2 should realise they need to use the ciphers to decipher the password,
but that they don't know how. They should eventually figure out they need to
tell Team 1 how to list hidden files
- Once Team 1 has learned from Team 2 how to list hidden files, they should
find `.cipher-example.txt`, and learn from that how to decipher a message
=== Deciphering the password
- Then Team 1 should ask Team 2 for the from cipher and the enciphered password
- Then Team 1 should decipher the password and get the correct answer, `enigma`
- Then Team 1 should tell it to Team 2
- Once both teams have told a leader the correct answer, the challenge is
complete!
If the Scouts get to the very end of the challenge, they should be very proud
of themselves. It is a difficult challenge, and designed to occupy more than
the full available time in one session.
|