
3D Model of PCB Design
Background
The problem with random number generators found in code is that they are not truly random, they take a seed value and place it in an algorithm to generate random values. To have true randomness, a source of entropy is required.
Design
By using a ring oscillator circuit as a source of entropy works as this circuit it known to experience jitter. By sampling this with an ADC the randomness can be measured. An STM32 can also be used to communicate over USB with PCs
Spice Simulation
The circuit & simulation results are attached below, the transistors being used are models provided by the LTSPICE library.


As seen in the transient simulation, the ring oscillator has an inconsistent sinusoid shape which causes unpredictability
PCB Design
For this PCB, I opted to design a 4 Layer PCB with a Signal-GND-GND-Signal Stack to experiment with larger layer counts.
Schematic & PCB design




Firmware
In progress
Python Library
In progress
Validation
In progress