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