# ChaosKey
This is a hardware True Random Number Generator that attaches via USB.
## Version 0.3 ##
This one uses the better noise source coupled with an op amp that
provides 2MHz of bandwidth at a gain of 100, offering linear frequency
response at a million samples per second.
A photo of prototype version 0.3:
Here's a circuit diagram of the noise source:
### Version 0.2 Hardware ###
* [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
* ARM Cortex-M0 MCU
* 32k Flash
* 6k RAM
* USB 2.0 Full Speed
* Crystal-less operation
* 20V noise source
* AP3015A boost regulator
* back-to-back 3904 transistor noise
* [OPA356](http://www.ti.com/product/opa356) op amp
* 200MHz GBP
## Version 0.2 ##
This version uses a better noise source, but the single transistor amp
designed to get from the 20mV noise source to a digital value doesn't
provide enough bandwidth, so the resulting signal seen by the CPU has
poor frequency response.
Here's a photo of prototype version 0.2:
### Version 0.2 Hardware ###
* [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip
* ARM Cortex-M0 MCU
* 32k Flash
* 6k RAM
* USB 2.0
* Crystal-less operation
* 20V noise source
* AP3015A boost regulator
* back-to-back 3904 transistor noise
## Version 0.1 ##
These are photos of prototype version 0.1:
### Version 0.1 Hardware ###
* [NXP LPC11U14](http://www.nxp.com/products/microcontrollers/cortex_m0_m0/LPC11U14FHI33.html) System-on-Chip
* ARM Cortex-M0 MCU
* 32k Flash
* 6k RAM
* USB 2.0
* 8 12-bit analog inputs
* I2C, SPI, async serial
* digital I/O
* ZXRE1004 zener diode noise source
* MCP6L92 dual op-amp
## Software ##
* Firmware Features
* [AltOS](../AltOS/) is written mostly in C with some ARM assembler
* Tools Used
* [gEDA](http://www.gpleda.org/) for schematic capture and PCB layout
* [GCC](http://gcc.gnu.org/) compiler and source debugger
* Licenses
* The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
* The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
## Artifacts ##
The hardware design files can be found on [git.gag.com](http://git.gag.com)
in the project [hw/usbtrng](http://git.gag.com/?p=hw/usbtrng;a=summary).