3 This is a hardware True Random Number Generator that attaches via USB.
5 The Linux Kernel, starting with version 4.1, includes source for this
6 driver. It should be built by default in your distribution. If your
7 using Linux + KVM to host other Linux instances, read the
8 [VirtualMachine](VirtualMachine.html) page to see how you can configure the guests to share
9 the host entropy source.
13 1.0 is the first production version of ChaosKey, now available for sale
14 in single units and packs of 10 and 25 units in at
15 [Garbee and Garbee](http://shop.gag.com/random.html).
17 <a href="v1.0/chaoskey-bare.jpg"><img src="v1.0/chaoskey-bare-thumb.jpg"></a>
19 <a href="v1.0/chaoskey-boxed.jpg"><img src="v1.0/chaoskey-boxed-thumb.jpg"></a>
21 ### Version 1.0 Hardware ###
23 * [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
28 * Crystal-less operation
30 * AP3015A boost regulator
31 * back-to-back 3904 transistor noise
32 * [OPA356](http://www.ti.com/product/opa356) op amp
35 Here's a circuit diagram of the noise source:
37 <img src="v1.0/noise-source.svg">
39 ### Version 1.0 Bits ###
41 Source code for the firmware, flash loader and a utility to pull raw
42 bits from the noise source are available here:
44 [AltOS Git Repository](http://git.gag.com/?p=fw/altos;a=summary)
46 Hardware designs using [gEDA](http://www.geda-project.org/) are
49 [ChaosKey Hardware Design Files](http://git.gag.com/?p=hw/chaoskey;a=summary)
53 This one uses the better noise source coupled with an op amp that
54 provides 2MHz of bandwidth at a gain of 100, offering linear frequency
55 response at a million samples per second.
57 A photo of prototype version 0.3:
59 <a href="v0.3/chaoskey-v0.3.jpg"> <img src="v0.3/chaoskey-v0.3-thumb.jpg"></a>
61 Here's a circuit diagram of the noise source:
63 <img src="v0.3/noise-source.svg">
65 Version 0.3 uses the same hardware design as version 1.0, except that
66 it uses a QFP package version of the processor instead of the QFN used
67 in 1.0, and hence needs a larger circuit board.
71 This version uses a better noise source, but the single transistor amp
72 designed to get from the 20mV noise source to a digital value doesn't
73 provide enough bandwidth, so the resulting signal seen by the CPU has
74 poor frequency response.
76 Here's a photo of prototype version 0.2:
78 <a href="v0.2/chaoskey-v0.2.jpg"> <img src="v0.2/chaoskey-v0.2-thumb.jpg"></a>
80 ### Version 0.2 Hardware ###
82 * [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
87 * Crystal-less operation
89 * AP3015A boost regulator
90 * back-to-back 3904 transistor noise
94 These are photos of prototype version 0.1:
96 <a href="v0.1/chaoskey-v0.1-top.jpg"> <img src="v0.1/chaoskey-v0.1-top-thumb.jpg"></a>
97 <a href="v0.1/chaoskey-v0.1-bottom.jpg"> <img src="v0.1/chaoskey-v0.1-bottom-thumb.jpg"></a>
99 ### Version 0.1 Hardware ###
101 * [NXP LPC11U14](http://www.nxp.com/products/microcontrollers/cortex_m0_m0/LPC11U14FHI33.html) System-on-Chip
106 * 8 12-bit analog inputs
107 * I2C, SPI, async serial
109 * ZXRE1004 zener diode noise source
110 * MCP6L92 dual op-amp
115 * [AltOS](../AltOS/) is written mostly in C with some ARM assembler
117 * [gEDA](http://www.gpleda.org/) for schematic capture and PCB layout
118 * [GCC](http://gcc.gnu.org/) compiler and source debugger
120 * The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
121 * The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)