ODMR quantum experiment development with UC2 system for QuantumMiniLabs
We intend that this repo has CERN OHL-W 2.0 license. To do it properly, we probably have to follow this guide: Guide to the CERN-OHL-W v2
We are developing a low-cost, easy-to-manufacture experiment setup to do quantum experiments. The bigger project is QuantumMiniLabs.
This repo is for electronics development, supply chain/manufacture documentation, software/firmware documentation, mechanical ressources (like 3D-print-files) and experiment design (+documentation).
This repo is for the development of the experiment optically detected magnetic resonance (ODMR). It uses diamonds with nitogen-vacancy centers (NV-centers), in an RF field with variable frequency, and observes a change in fluorescence when a (static) magnetic field is applied. When the static magnetic field is increased or decreased, the diamond fluoresces more or less, depending on the (static) magnetic field strength.
ODMR is a technique to measure a quantum phenomenon and is suitable for teaching. Some of our partners in the project have made low-cost versions of the experiment setup, but they require too much manual assembly to scale production. openUC2's assignment is to use its cube-based UC2 optical system, its supply-chain and design-for-manufacturability experience to make a ODMR experiment setup that can scale in production.
The different XIAO models connect to different ESP GPIOs, and strapping pins, pins with glitches or pins with default pullups/pulldowns may be different between ESP models in the XIAO format. There should be libaries or macros to set the mapping between XIAO model and GPIO in the code. If you still want to find out the ESP pin, you can search for the XIAO schematic, and then see how the headers connect to the ESP chip.
To use the unused pins of the microcontroller, or to use the board in a different setup, you can solder to the Test Points on the bottom of the board.
XIAO pin | XIAO ESP32S3 pin | Board Function | Test Point |
---|---|---|---|
D0 | GPIO_01 | Not used | TP310 |
D1 | GPIO_02 | Not used | TP311 |
D2 | GPIO_03 | ADF4350 MuxOut (optional) | TP312 |
D3 | GPIO_04 | ADF4350 PLL lock (optional) | TP313 |
D4 | GPIO_05 | I2C SDA to connectors | TP314 |
D5 | GPIO_06 | I2C SCL to connectors | TP315 |
D6 | U0TXD/GPIO_43 | Neopixel data input | TP316 |
D7 | U0RXD/GPIO_44 | SPI_CS to ADF4350 | TP309 |
D8 | GPIO_07 | SPI_SCK | TP308 |
D9 | GPIO_08 | SPI_POCI (unused) | TP307 |
D10 | GPIO_09 | SPI_PICO | TP306 |
The schematic for this board is kicad/ADF Board/OUTPUTS/for-humans/ADF_Board.pdf.
The board's schematic is a document showing all the components (and holes, jumpers, test points) and how they are connected.
All connections on the board show up as lines or named labels. When lines intersect with a dot, or when labels have an outline around the label text, they are connected together.
There are also reference designators for all the parts (like J101) which are used to represent a real component on the board. To find a component of the board in the datasheet, you can click on the component in the interactive bill-of-materials (ibom, explained in the next section) to learn its designator. Then you can search for the designator in the schematic.
On the first page of the schematic, there are a couple of boxes with names and .kicad_sch
written around them. They reference to other sheets, or pages in the PDF. If there are labels inside the boxes, then this is a hierarchical label, which connects only with the (non-outlined) label found in the respective sheet. The sheet name is listed in the bottom right legend box on every page. In the schematic PDF, you can click on a box to go to the page in the PDF corresponding to this box.
To find the datasheet for the exact component used on the board, you can look for the LCSC component number (for example C191000
) in the ibom. Then, look for the datasheet ending in that number in the datasheets
folder, or enter the LCSC number in the search field on lcsc.com to see its shop site.
The ibom for this board is kicad/ADF Board/OUTPUTS/for-humans/ibom.html.
The interactive bill-of-materials is an HTML document showing the board (front and back) and the list of components on the board. You can click on a component's location (footprint) to see its entry in the list, with its reference designator (like U301
), value (part numbers, resistance values, names), LCSC number (like C191000
) and footprint (size and shape of the solder pads).
The ibom also helps exploring nets by hovering, clicking, or in the Netlist tab. Every piece of copper that is electrically connected together on the board is a net. With this, you can see where the tracks are routed and what they are connected to.
The datasheets can be found in the folder datasheets.
In datasheets, the individual components are documented with their pinout, functions/capabilities, physical size and sample circuits. All the used components should have a corresponding datasheet in the datasheets
folder.
To find the correct datasheet for a component, you can locate the component in the ibom, find its LCSC part number in the list (like C191000
), and then search in the datasheets
folder for a PDF with this number in the filename. If the datasheet lists multiple part numbers (for things like different form factors/footprints of a chip), then you can find the manufacturer's part number in the file name of the datasheet, before the component number.
You can also enter the LCSC number on lcsc.com for the store page of the part. There, you can also download the datasheet.
The PCB shall be ordered with assembly (PCBA) by JLCPCB.
Base material: FR-4 Layers: 4 Mask color: Green (not important, just for best process price) Impedance control: Yes, Stackup: JLC04161H-7628 Finished PCB thickness: 1.6 mm Outer copper weight: 1 oz Inner cooper weight: 0.5 oz Surface finish: LeadFree HASL Assembly: Economic PCBA, top side only
On the side of the RF output SMA jack, there are also jacks for STEMMA and STEMMA QT. With a double-ended STEMMA QT cable, the Adafruit TSL2591 light sensor can be connected easily as sensor for the ODMR measurement.
It works! The oscilloscope input has to be set to 50 Ohm impedance, and the oscilloscope has to be fast enough.
Let me know if something is missing or doesn't work right! Open an issue or email me directly: christian.kuttke@openuc2.com