creating index page ChaosKey/images
[web/altusmetrum] / ChaosKey / index.mdwn
index 5b40316e65a0ed98a006bfd6c7b506ad5b7aa43e..19840ba2fad0c86811f731fc9856b69896539f16 100644 (file)
@@ -2,8 +2,76 @@
 
 This is a hardware True Random Number Generator that attaches via USB.
 
+The Linux Kernel, starting with version 4.1, includes source for this
+driver. It should be built by default in your distribution. If your
+using Linux + KVM to host other Linux instances, read the
+VirtualMachine page to see how you can configure the guests to share
+the host entropy source.
+
+## Version 1.0 ##
+
+1.0 is the first production version of ChaosKey. The first run of 1000
+units is expected sometime around August, 2016.
+
+<a href="v1.0/chaoskey-bare.jpg"><img src="v1.0/chaoskey-bare-thumb.jpg"></a>
+
+<a href="v1.0/chaoskey-boxed.jpg"><img src="v1.0/chaoskey-boxed-thumb.jpg"></a>
+
+### Version 1.0 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
+
+Here's a circuit diagram of the noise source:
+
+<img src="v1.0/noise-source.svg">
+
+### Version 1.0 Bits ###
+
+Source code for the firmware, flash loader and a utility to pull raw
+bits from the noise source are available here:
+
+[AltOS Git Repository](http://git.gag.com/?p=fw/altos;a=summary)
+
+Hardware designs using [gEDA](http://www.geda-project.org/) are
+available here:
+
+[ChaosKey Hardware Design Files](http://git.gag.com/?p=hw/chaoskey;a=summary)
+
+## 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:
+
+<a href="v0.3/chaoskey-v0.3.jpg"> <img src="v0.3/chaoskey-v0.3-thumb.jpg"></a>
+
+Here's a circuit diagram of the noise source:
+
+<img src="v0.3/noise-source.svg">
+
+Version 0.3 uses the same hardware design as version 1.0, except that
+it uses a QFP package version of the processor instead of the QFN used
+in 1.0, and hence needs a larger circuit board.
+
 ## 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:
 
 <a href="v0.2/chaoskey-v0.2.jpg"> <img src="v0.2/chaoskey-v0.2-thumb.jpg"></a>
@@ -16,7 +84,6 @@ Here's a photo of prototype version 0.2:
     * 6k RAM
     * USB 2.0
     * Crystal-less operation
- * ZXRE1004 zener-diode noise source
  * 20V noise source
     * AP3015A boost regulator
     * back-to-back 3904 transistor noise
@@ -51,9 +118,3 @@ These are photos of prototype version 0.1:
 * 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).  
-