SIMtrace Hardware » History » Version 25
Anonymous, 02/19/2016 10:49 PM
1 | 1 | laforge | [[PageOutline]] |
---|---|---|---|
2 | = Osmocom SIMtrace Hardware = |
||
3 | |||
4 | 7 | laforge | This page is dedicated to the Hardware for Osmocom [wiki:SIMtrace], which looks like this: |
5 | |||
6 | 3 | laforge | [[Image(simtrace_10_front.jpg, 33%)]] |
7 | 17 | laforge | [[Image(simtrace_connectors_scaled.png, 39%, align=right)]] |
8 | 1 | laforge | |
9 | 21 | tsaitgaist | STATUS: We have received the second batch of 100 units from the SMT factory, ready for the 28C3 (Version v1.1p) |
10 | 1 | laforge | |
11 | 9 | tsaitgaist | == Connectors == |
12 | |||
13 | * USB: USB mini-B connector. The main connector. The host software communicates (sniffing,...) through USB with the board. It can also be used to flash the micro-controller (using DFU). |
||
14 | * serial: 2.5 mm jack serial cable, as used by osmocomBB. port used to debug the device (printf goes there). |
||
15 | 18 | laforge | * debug (P3): same as serial, but using the FTDI serial cable. '''It is recommended to cut the voltage wire of the 6pin FTDI connector before plugging the cable into the simtrace.''' |
16 | 9 | tsaitgaist | * jtag (P1): JTAG 20 pin connector to do hardware assisted debugging. |
17 | * BT1: battery connector (4.5-6V DC). normally the USB provides power, but the battery port can be used for autonomous use of SIMtrace. The sniffing can be saved in the flash (U1). |
||
18 | * FFC_SIM (P3): to connect the flat flexible cable with SIM end for the phone. |
||
19 | * SIM (P4): put your SIM in there (instead of in the phone) |
||
20 | * reset (SW1): to reset the board (not erasing the firmware). If your are too lazy to unplug and re-plug the USB. |
||
21 | * bootloader (SW2): used to start the bootloader so to flash the device using DFU. press when plugging in the USB. |
||
22 | 19 | laforge | * test (JP1): short circuit using a jumper to flash using [wiki:SIMtrace/Firmware#EnteringtheSAM-BAmode SAM-BA]. |
23 | 9 | tsaitgaist | * erase (JP2): short circuit using a jumper to erase completely erase the firmware. |
24 | |||
25 | 4 | laforge | == Schematics, Gerber & Co == |
26 | |||
27 | 1 | laforge | The schematics, Gerber files, etc. can be found in the 'hardware' subdirectory of the simtrace.git repository: |
28 | * http://cgit.osmocom.org/cgit/simtrace/tree/hardware (web browsing |
||
29 | * git://git.osmocom.org/simtrace (git clone URL) |
||
30 | |||
31 | 2 | laforge | We're using Kicad as EDA tool. Most of the work on the schematics and Gerber files has been done by Kevin Redon, |
32 | 1 | laforge | based on the original design by Harald Welte. |
33 | 5 | laforge | |
34 | 1 | laforge | The latest schematics are also available as an attachment to this page. |
35 | |||
36 | 15 | laforge | == Interconnections == |
37 | |||
38 | The hardware schematics are very, very simple: |
||
39 | |||
40 | * Connect SIM-RST with PA7 |
||
41 | * Connect SIM-I/O with PA6(TXD0) and PA1(TIOB0) |
||
42 | * Connect SIM-CLK with PA2(SCK0) and PA4(TCLK0) |
||
43 | * Connect SIM-GND with GND |
||
44 | |||
45 | == Mode of operation == |
||
46 | |||
47 | The USART of the AT91SAM7S is capable of T=0. The documentation only mentions it in clock-master mode, like you |
||
48 | would run it in a smart card reader to actively talk to a smart card. However, by using the USART input clock multiplexer, |
||
49 | you can use an externally-generated CLK like the one from the SIM card socket of the phone. |
||
50 | |||
51 | Unfortunately, the Rx Timeout feature of the USART is not working in T=0 mode, so I had to re-implement Rx timeout (waiting time) |
||
52 | handling by means of the TC (timer/counter) block 0. Due to technical limitations, we will wait up to one byte (12 etu) more |
||
53 | than we should. |
||
54 | |||
55 | 25 | laforge | == Modi == |
56 | |||
57 | |||
58 | |||
59 | SIMtrace has the possibility to work as: |
||
60 | * sniffer |
||
61 | * card reader |
||
62 | * card emulator |
||
63 | * man-in-the-middle |
||
64 | |||
65 | The SAM7S offers 2 T=0 capable USART ports. |
||
66 | One is connected to the phone (PA21-PA27), the other to the SIM (PA1-PA7). |
||
67 | The lines goes from the phone to the SIM through a bus switch (IC4=[http://www.ti.com/lit/ds/symlink/sn74cb3q3244.pdf CB3Q3244]). |
||
68 | The bus switch offer 2 buses of 4 lines: |
||
69 | * The first is used to forward RST, CLK, and VPP (between the SIM and the phone). It is controlled by SC_SW (PA20) |
||
70 | * The second is used to forward I/O (between the SIM and the phone). It is controlled by SC_I/O (PA19) |
||
71 | |||
72 | The various modi require to interrupt different lines: |
||
73 | |||
74 | || SW_SC (PA20) || SC_I/O (PA19) || description || modus || |
||
75 | || L || L || phone and SIM directly connected || sniffer (use any USART port) || |
||
76 | || L || H || only I/O interrupted || MitM (use both USART port) || |
||
77 | || H || H || phone and SIM not connected || card read, emulator (use each USART port) || |
||
78 | |||
79 | As of 2012-01-12, only the sniffer is implemented |
||
80 | |||
81 | SIM cards support various classes (voltage levels): class A = 5.0V, class B = 3.0V, class C = 1.8V. |
||
82 | SIMtrace v1.x only supports class B (3.0V), which all actual SIM cards and phone also support. |
||
83 | To ensure class B is used, SIMtrace forces 3.3V (within the 3.0V±10% spec) by holding the VCC line at this voltage. |
||
84 | SIMtrace v2 will support all 3 classes. |
||
85 | |||
86 | |||
87 | 1 | laforge | == Revisions == |
88 | 24 | tsaitgaist | |
89 | === v2.0 === |
||
90 | |||
91 | This is on going work. |
||
92 | The changes compared to v1.x are: |
||
93 | * ID-1 and ID-000 smart card slots (with presence detection): so to be able to also sniff credit card sized smart cards |
||
94 | * through hole USB Mini-B and Serial/Jack 2.5 connector: to be more robust |
||
95 | * properly support all smart card classes (A,B,C): better compatibility |
||
96 | * switch from AT91SAM7S to AT91SAM3S: it has more USB endpoints |
||
97 | * be able to forward voltage from phone to SIM or provide voltage from the board: ideal sniffer and reader |
||
98 | * use an microSD slot instead of built-on flash: easier data transfer |
||
99 | * a SWP sniffer (maybe) |
||
100 | 1 | laforge | |
101 | 23 | tsaitgaist | === v1.1p (1.1 Production branch) === |
102 | |||
103 | This is a slightly corrected version of the v1.0p. |
||
104 | |||
105 | Changes: |
||
106 | * a critical capacitor is near the LDO |
||
107 | * some other capacitors are nearer to the CPU |
||
108 | * some power traces are wider |
||
109 | * the SIM C6/VPP contact is also routed through the bus switch (sometimes used for Single Wire Protocol) |
||
110 | * sysmocom is added in the copper for legal reasons |
||
111 | * the FTDI Vcc is cut |
||
112 | |||
113 | Downloads: |
||
114 | * [attachment:simtrace_v11p_schematic.pdf] |
||
115 | * [attachment:simtrace_v11p_gerber.zip] |
||
116 | |||
117 | 7 | laforge | === v1.0p (1.0 Production branch) === |
118 | |||
119 | 20 | tsaitgaist | |
120 | [[Image(simtrace_v10p_front_mid.jpg, 33%)]] |
||
121 | |||
122 | 7 | laforge | This is identical to v1.0 on the schematics side, we simply altered the footprints of some components to accommodate |
123 | whatever the SMT factory had in stock. Specifically the LED are 0805 instead of 0603, and the shottky diodes are |
||
124 | in a slightly awkward looking very large package. |
||
125 | |||
126 | Downloads: |
||
127 | 22 | tsaitgaist | * [attachment:simtrace_v10p_schematic.pdf] |
128 | * [attachment:simtrace_v10p_gerber.zip] |
||
129 | 7 | laforge | |
130 | === v1.0 === |
||
131 | |||
132 | 20 | tsaitgaist | |
133 | [[Image(simtrace_10_front.jpg, 33%)]] |
||
134 | |||
135 | 7 | laforge | This is the first stable release. We built some 5 prototypes from this version. |
136 | |||
137 | Downloads: |
||
138 | 13 | laforge | * [attachment:simtrace_schem_v10.pdf] |
139 | * [attachment:simtrace_10_gerber.zip] |
||
140 | 7 | laforge | |
141 | === v0.9 === |
||
142 | |||
143 | 20 | tsaitgaist | |
144 | [[Image(simtrace_v09_top_mid.jpg, 33%)]] |
||
145 | |||
146 | 7 | laforge | As of June 04, 2011 the components had all arrived and four PCBs were in production. We assemble the first |
147 | 1 | laforge | units around June 14, 2011. |
148 | |||
149 | 7 | laforge | As of June 21st, we had four re-worked prototypes that are fully functional. |
150 | 1 | laforge | |
151 | 7 | laforge | === v0.8 === |
152 | 20 | tsaitgaist | |
153 | |||
154 | [[Image(simtrace_08_front_mid.jpg, 33%)]] |
||
155 | 1 | laforge | |
156 | 7 | laforge | Never really was an official release. However, a friend took the unfinished Gerber files and built 5 units. |
157 | 1 | laforge | |
158 | 7 | laforge | Since the Gerber was not finished, we had to do lots and lots of re-work in order to make them work at all. |
159 | |||
160 | 1 | laforge | == License == |
161 | |||
162 | Schematics and Gerber files are released under the Creative Commons CC-BY-SA (Share Alike / Attribution) license. |
||
163 | |||
164 | == Sales == |
||
165 | |||
166 | 12 | laforge | Sales started at the 2011 CCC Camp and the hardware can be bought through the web-shop of sysmocom GmbH ([http://shop.sysmocom.de/]) |
167 | 7 | laforge | |
168 | == Credits == |
||
169 | |||
170 | 8 | laforge | * Harald Welte |
171 | * Original project idea, schematic design |
||
172 | * Olimex SAM7-P64 based prototypes |
||
173 | * Firmware and host software |
||
174 | * Kevin Redon |
||
175 | * KiCAD work on schematics, footprints and routing |
||
176 | * Soldering of some prototypes |
||
177 | * [http://sysmocom.de/ sysmocom - systems for mobile communications GmbH] |
||
178 | * funding for hardware prototyping (PCB, components, etc) |
||
179 | * Christian Daniel |
||
180 | * post-production flashing + debugging, design + test of v1.0p rework |