Home - cnourshargh/Bham-ARTIQ-examples GitHub Wiki
This Wiki, along with the associated repository, was produced in August 2019 by Camron Nourshargh and Rustin Nourshargh while working in the Atom Interferometry Group at Birmingham University. It was produced as a summer project, the main goals of which were to gain a better understanding of how to use ARTIQ, and to produce example code and documentation to introduce beginners to the Sinara Device. Most of the Hardware details have been extracted from the Official Sinara Hardware Wiki. We had hoped to merge this documentation with the Official ARTIQ Docs, however this was not possible due to the timescale over which this project occurred. The code in this repository has not been Flake8 formatted. It has only been tested on a single Sinara device, the device db for which can be found in the repository.
Advice for Beginners
Proficiency with git and python are both required. Software carpentries provide an introduction to these. (https://bham-carpentries.github.io/shell-novice/), (https://bham-carpentries.github.io/git-novice/), (https://bham-carpentries.github.io/python-novice-inflammation/)
This Wiki has no information about installing ARTIQ. If you still need to do this I would recommend reading this section of the ARTIQ documentation.
Prior to trying to use the ARTIQ device I would recommend reading the Real Time Concepts Page of the ARTIQ docs as these give a detailed explanation of some of the problems you'll potentially run into when starting to write and run ARTIQ code.
When you're ready to start looking at code, the LED_On_Off_Pulse.py and LED_Parallel.py code are the simplest pieces of code to try running. They use the LEDs on the Kasli board. The introduction to the core language section of the ARTIQ docs is more of a tutorial format to help get up and running.
Once you've started turning the LEDs on and off, I recommend starting to look at the other boards. I suggest trying the following code as they can be run from the bash terminal and it is easy to check if they are working.
- TTLout_OnOffPulse.py
- TTLin_SingleRead.py
- TTLin_Trigger.py
- Sampler_SingleSample.py
- Zotino_SingleWrite.py
- Zotino_RampOutput.py
- Urukul_SingleOutput.py
- Urukul_RAM_Amplitude.py (this code is less straightforward than the rest)
After you're happy that you know what's going on with this code, it would be sensible to read the introduction to using the management system in the ARTIQ docs as the rest of the code needs to be run from there. If the repository you're working from has already been set up with Git, the tutorial above here will not work so read through it but don't try to complete it.
Once you've figured out the management system, try running the following code from the management system:
Boards
Kasli
An FPGA carrier that controls all other boards in the Sinara device.
TTL Boards
A board with 8 digital input/output channels, either with BNC or SMA connectors.
Zotino
A 32 channel DAC with a HD68 connector output.
Urukul
A 4 channel DDS with SMA connectors. It has an additional SMA connector for an optional external clock.
Sampler
An 8 channel ADC with BNC connectors.
Content to be Looked into
- SU-servo
- With the right configuration of firmware and bitstreams, along with two EEM cables connecting the sampler and urukul, you can use the Sinara device as an intensity servo. We unfortunately do not have the correct configuration of firmware and bitstreams.
- For more information regarding the SU-servo, see this forum