The MicroRNG is a hardware true random number generator module for embedded systems. It connects to microcontrollers, microprocessors, and single-board computers through a mikroBUS socket using an SPI or 2-wire UART interface, and needs no host operating system. The MicroRNG is designed to comply with NIST SP 800-90B, “Recommendation for the Entropy Sources Used for Random Bit Generation”, and generates random numbers at up to 1 Mbps in SPI mode and up to 1.5 Mbps in UART mode.
Getting started
Quick start guides are available for the most common host platforms:
- Quick start with a Raspberry Pi
- Quick start in UART mode on Linux
- Quick start in UART mode on Windows
How it works
The MicroRNG operates in either SPI or 2-wire UART mode, selected with the JP Mode switch on the board. When the device is powered on or restarted, the JP Mode switch setting determines which interface is used.
Typical connection in SPI mode:

Typical connection in 2-wire UART mode:

The MicroRNG generates random numbers from the electrical noise produced by the avalanche breakdown effect in Zener diodes, using two independent noise sources. The noise from each source is separately amplified, filtered, and converted into digital values. The random bytes from both sources are combined and processed on the device with a Linear Corrector using a 0.5 compression rate, a technique proposed by P. Lacharme (“Post-Processing Functions for a Biased Physical Random Number Generator”, FSE 2008, LNCS vol. 5086, pp. 334-342, Springer-Verlag, 2008). Alternatively, in 2-wire UART mode, the raw random bytes can be processed on the device with one of the following hashing methods: SHA1, SHA2, SHA512, or HMAC160.
As soon as the MicroRNG is powered on or the RST signal is asserted, it runs start-up health tests and becomes ready in less than 700 milliseconds. If the start-up health tests detect an error, the LED Status indicator blinks several times and the Status byte is updated with an error code.
Quality checking
The MicroRNG embeds diagnostics and monitoring features that validate its internal noise sources and components in real time. It maintains an internal status, referred to as the Status byte in the technical specification, which can be retrieved through the device API to check the health of the generator. The Repetition Count and Adaptive Proportion tests (NIST SP 800-90B) are also implemented.
Tech specs
| True random byte download speed | 1 Mbps in SPI mode, up to 1.5 Mbps in UART mode |
| Power supply | 3.3 V |
| Maximum input high-level voltage | 3.3 V |
| Power consumption | Maximum 340 mW in normal operation and 125 mW in sleep mode |
| Weight | 5 grams (0.1 oz) |
| Data connectivity and control interface | SPI or 2-wire UART through a mikroBUS socket |
| Random noise source | Two independent circuits based on the avalanche breakdown effect in reverse-biased Zener diodes |
| Post-processing algorithms available | Linear Corrector (P. Lacharme), SHA1, SHA2, SHA512, and HMAC160 |
| Embedded health check test (HCT) | Frequency table inspection at device start-up |
| Implemented statistical tests | Continuous Repetition Count and Adaptive Proportion tests |
| RoHS compliance | All parts and materials are lead-free and RoHS compliant |
| Country of origin | Designed and assembled in the USA |
Use cases
The MicroRNG is suited to:
- Entropy source for microcontroller and embedded projects, connected over SPI or 2-wire UART through a mikroBUS socket
- Entropy source for a Raspberry Pi or other Linux-based single-board computer (see the quick start guides above)
Statistical tests
The MicroRNG passes the following statistical test suites: Diehard, NIST, Rngtest, Ent, and EA IID.
You can download sample test reports using the links below:
- NIST test report
- Ent test report for 229 MB of random binary data stream
rngtesttest report for 229 MB of generated random bytesea_iidtest report for 1000000 raw bytes
Warranty and returns
TectroLabs offers a one-year limited warranty within the United States covering defects in materials and workmanship; we will repair or replace, at our discretion, any device that fails because of such a defect.
A MicroRNG may be returned within 30 days of purchase for a full refund minus the credit card processing fee. The buyer pays for return shipping.