0a1f69ee106d0c3a659a1bc717963d8656bc0900
[web/altusmetrum] / ChaosKey / index.mdwn
1 # ChaosKey
2
3 This is a hardware True Random Number Generator that attaches via USB.
4
5 ## Version 0.3 ##
6
7 This one uses the better noise source coupled with an op amp that
8 provides 2MHz of bandwidth at a gain of 100, offering linear frequency
9 response at a million samples per second.
10
11 A photo of prototype version 0.3:
12
13 <a href="v0.3/chaoskey-v0.3.jpg"> <img src="v0.3/chaoskey-v0.3-thumb.jpg"></a>
14
15 Here's a circuit diagram of the noise source:
16
17 <img src="v0.3/noise-source.svg">
18
19 ### Version 0.2 Hardware ###
20
21  * [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
22     * ARM Cortex-M0 MCU
23     * 32k Flash
24     * 6k RAM
25     * USB 2.0 Full Speed
26     * Crystal-less operation
27  * 20V noise source
28     * AP3015A boost regulator
29     * back-to-back 3904 transistor noise
30  * [OPA356](http://www.ti.com/product/opa356) op amp
31     * 200MHz GBP
32
33 ## Version 0.2 ##
34
35 This version uses a better noise source, but the single transistor amp
36 designed to get from the 20mV noise source to a digital value doesn't
37 provide enough bandwidth, so the resulting signal seen by the CPU has
38 poor frequency response.
39
40 Here's a photo of prototype version 0.2:
41
42 <a href="v0.2/chaoskey-v0.2.jpg"> <img src="v0.2/chaoskey-v0.2-thumb.jpg"></a>
43
44 ### Version 0.2 Hardware ###
45
46  * [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
47     * ARM Cortex-M0 MCU
48     * 32k Flash
49     * 6k RAM
50     * USB 2.0
51     * Crystal-less operation
52  * 20V noise source
53     * AP3015A boost regulator
54     * back-to-back 3904 transistor noise
55
56 ## Version 0.1 ##
57
58 These are photos of prototype version 0.1:
59
60 <a href="v0.1/chaoskey-v0.1-top.jpg"> <img src="v0.1/chaoskey-v0.1-top-thumb.jpg"></a>
61 <a href="v0.1/chaoskey-v0.1-bottom.jpg"> <img src="v0.1/chaoskey-v0.1-bottom-thumb.jpg"></a>
62
63 ### Version 0.1 Hardware ###
64
65  * [NXP LPC11U14](http://www.nxp.com/products/microcontrollers/cortex_m0_m0/LPC11U14FHI33.html) System-on-Chip
66         * ARM Cortex-M0 MCU
67         * 32k Flash
68         * 6k RAM
69         * USB 2.0
70         * 8 12-bit analog inputs
71         * I2C, SPI, async serial
72         * digital I/O
73  * ZXRE1004 zener diode noise source
74  * MCP6L92 dual op-amp
75
76 ## Software ##
77
78 * Firmware Features
79         * [AltOS](../AltOS/) is written mostly in C with some ARM assembler
80 * Tools Used
81         * [gEDA](http://www.gpleda.org/) for schematic capture and PCB layout
82         * [GCC](http://gcc.gnu.org/) compiler and source debugger
83 * Licenses
84         * The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
85         * The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
86
87 ## Artifacts ##
88
89 The hardware design files can be found on [git.gag.com](http://git.gag.com) 
90 in the project [hw/usbtrng](http://git.gag.com/?p=hw/usbtrng;a=summary).  
91