Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/RaymondLab/Code
25 June 2024, 13:39:08 UTC
  • Code
  • Branches (12)
  • Releases (0)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/Calibration
    • refs/heads/Calibration2
    • refs/heads/Master
    • refs/heads/VerticalTracking
    • refs/heads/code_generalization
    • refs/heads/consolidation_project_241B
    • refs/heads/local_configuration_241B
    • refs/heads/revert-2-consolidation_project_241B
    • refs/heads/rig241b_driftfix_sign
    • refs/heads/smr_to_smrx
    • refs/heads/tracking_dev
    • refs/tags/v1.0.0
    No releases to show
  • c602b73
  • /
  • Experiment Protocols
  • /
  • Sequencer_Universal_Ella.pls
Raw File Download
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
origin badgecontent badge Iframe embedding
swh:1:cnt:0d9a2488a0b4929d4734aec15497992b393891ea
origin badgedirectory badge Iframe embedding
swh:1:dir:271a5117f476ddf4e991116698b261c0c7d3cbcf
origin badgerevision badge
swh:1:rev:9261b1e083022ac6e07fc4c84d727c94167aa984
origin badgesnapshot badge
swh:1:snp:5000b5dcf61aa2cac987bbe6af9204d011668dda
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Tip revision: 9261b1e083022ac6e07fc4c84d727c94167aa984 authored by D253 on 14 October 2019, 17:47:56 UTC
Merge branch 'tracking_dev' of https://github.com/RaymondLab/Code into tracking_dev
Tip revision: 9261b1e
Sequencer_Universal_Ella.pls
;-----------------------------------------------------------------------------
;   initialization
;-----------------------------------------------------------------------------

        ; for IntTo32bit: *429496729.6,   for IntTo16bit: 6553.6
            SET    1.000,1,0       ;Get rate at 1 ms & scaling O command
			;rate msPerStep, DACscale(1 = +-5V), DACoffset
            ;offset for Drum because of the DAC0 output bias of about 700uV
            VAR    V22,DrumOff=VDAC32(0.0000) ;HP .0003 - 0 1/10/14

            ;offset for Chair because of the DAC0 output bias
            VAR    V23,Chairoff=VDAC32(0.0000) ;HP .0004 1/13/14  Now set in Spike2


            VAR    V24,DrumAmp=VDAC16(0.05) ;V24: Amplitude of Drum Velocity command
            VAR    V25,DrumPh=VAngle(0) ;V25: Phase of Drum Velocity command
            VAR    V26,DrumFreq=VHz(1) ;V26: Frequency of Drum Velocity command

            VAR    V27,ChrAmp=VDAC16(0.1) ;V27: Amplitude of Chair Velocity command
            VAR    V28,ChrPh=VAngle(0) ;V28: Phase of Chair Velocity command
            VAR    V29,ChrFreq=VHz(1) ;V29: Fequency of Chair Velocity command

            VAR    V31,ChAmpOff=vdac16(0)
            VAR    V32,DrAmpOff=vdac16(0)

            VAR    V33,PulseWai=1  ;variables for stimulation pulses (opto)
            VAR    V34,PulseNum=1
            VAR    V35,PulseDur=1
            VAR    V36,PulseInt=1
            VAR    V37,PulseSta=1

            VAR    V38,StepRes2=100 ;variables for steps (drum & chair)
            VAR    V39,StepStar=100 ; Not currently used 12/16
            VAR    V40,StepLeng=500
            VAR    V41,SteLeng1=500
            VAR    V42,StepRes1=500
            VAR    V43,SAmpC=VDAC32(.01)        ; Step amp chair
            VAR    V44,SAmpD=VDAC32(.001)       ; Step amp drum
            VAR    V45,SAmpCn=VDAC32(-.01)      ; Step amp chair inverse
            VAR    V46,SAmpDn=VDAC32(-.001)     ; Step amp drum inverse

            VAR    V47,stepLen1=0  ;variables for step DELAYED light pulses
            VAR    V48,stepLen2=500
            VAR    V49,stepLen3=0

            VAR    V50,PulseDuV=33      ; pulse Duration V
            VAR    V51,PulseWaV=966  ; pulse wait V
            VAR    V52,PulsePer=1000 ; pulse period duration
            VAR    V53,PulseHPe=500  ; Half Period duration
            VAR    V54,evNcyc=1      ; Pulses occur every X cycles

            VAR    V66,initVel=0.02   ; velocity to rotate chair and drum
            VAR    V65,initDirD=1    ; default direction for drum to move
            VAR    V55,initDirC=1   ; default direction for chair to move

;-----------------------------------------------------------------------------
; LOOP: our idle loop.
;-----------------------------------------------------------------------------
;LOOP:       JUMP   LOOP

LOOP:       SZ     7,1        ;set cosine amplitude
            OFFSET 7,0        ;cosine offset command to ghost timing sine wave
            ANGLE  7,0        ;cosine phase
            RATE   7,1        ;set rate and start ghost cosine
            ;CLRC   7
LOOP1:     DAC 0,DrumOff           ; >Looping.
            DAC 1,Chairoff
            JUMP   LOOP1      ;WAITC  7,LOOP1

;-----------------------------------------------------------------------------
; INIT: Move CHAIR (DAC1) & DRUM (DAC0) to zero
;-----------------------------------------------------------------------------
INIT:   'I  RATE   0,0             ;stop cosine on drum
            RATE   1,0             ;stop cosine on chair
            DAC    0,DrumOff       ;stop the drum
            DAC    1,Chairoff      ;stop the chair
            DIGOUT [00000000]      ;stop any pulses
            JUMP   KDRUM          ;return drum

;-----------------------------------------------------------------------------
; QUIT: Stops all movement on drum and chair
;-----------------------------------------------------------------------------
QUIT:   'O  RATE   0,0             ;stop cosine on drum
            RATE   1,0             ;stop cosine on chair
            DAC    0,DrumOff       ;stop the drum
            DAC    1,Chairoff      ;stop the chair
            DIGOUT [00000000]      ;stop any pulses
            JUMP   LOOP            ;idle loop

;-----------------------------------------------------------------------------
; KCHAIR: Chair return function
; Returns the chair to a 0 position when called.  Also stops the chair sine-output.
;-----------------------------------------------------------------------------
KCHAIR:     RATE   1,0             ;stop cosine on chair

KCHAIR1:    CHAN   V8,4            ;Get value of channel 3 (chair pos)***3to4 HP 1/10/14
            MOVI   V9,0            ;Intialize v9 to 0 (0=false) >Returning chair.
            ABS    initVel,initVel         ; reset default velocity to 0.02 -- do i need to do this? NOTE: THIS ONLY WORKS IF IT'S A POSITIVE NUMBER TO BEGIN

            BGT    V8,0,KCHAIR2    ;get absolute value by negating if under 0
            NEG    V8,V8           ;it was < 0 so we negate it.
            MOVI   V9,1            ;and then remember that it was negative

KCHAIR2:    BLE    V8,vdac16(0.01),KCHAIREX ;check if we're within our epsilon
            BNE    V9,0,KCHAIR3    ;check if it was negative.
            MUL    initVel,initDirC         ;make vel go default direction
            DAC    1,initVel           ;vel for positive pos
            JUMP   KCHAIR1

KCHAIR3:    MUL    initVel,initDirC        ;make vel go default direction
            NEG    initVel,initVel        ;get negative of default direction
            DAC    1,initVel          ;vel for negative pos
            JUMP   KCHAIR1

KCHAIREX:   DAC    1,Chairoff      ;Stop the chair
            JUMP   KDRUM           ;Now initialize the drum

;-----------------------------------------------------------------------------
;KDRUM: Drum return function
;Initialize drum (DAC0) to 0 position
;-----------------------------------------------------------------------------
KDRUM:      RATE   0,0             ;stop sine on drum

KDRUM1:     CHAN   V8,3            ;Get position of drum from Ch 3 * 14 to 3 HP 1/10/14
            MOVI   V9,0            ;Initiliaze v9 to 0 (false)
            ABS    initVel,initVel         ;reset default velocity to 0.02 -- do i need to do this? NOTE: THIS ONLY WORKS IF IT'S A POSITIVE NUMBER TO BEGIN - if drum default vel =/= chair default vel add new variable

            BGT    V8,0,KDRUM2     ;get absolute value of position by negating if under 0
            NEG    V8,V8           ;it was < 0 so we negate it.
            MOVI   V9,1            ;and then remember that it was negative

KDRUM2:     BLE    V8,vdac16(0.01),KDRUMEX
                                    ;check if we're within our epsilon
                                    ;if so, exit
            BNE    V9,0,KDRUM3     ;check if position was negative
            MUL    initVel,initDirD         ;make vel go default direction
            DAC    0,initVel           ;vel for positive pos
            JUMP   KDRUM1

KDRUM3:     MUL    initVel,initDirD        ;make vel go default direction
            NEG    initVel,initVel        ;get negative of default direction
            DAC    0,initVel          ;vel for negative position
            JUMP   KDRUM1


KDRUMEX:    DAC    0,DrumOff       ;Exit KDRUM
            JUMP   LOOP            ;Drum stopped


;-----------------------------------------------------------------------------
;Set step command to move chair and drum without stimulation
;-----------------------------------------------------------------------------
STEP:   'T  DAC    0,SAmpD         ;HP 1/28/14 ***
            DAC    1,SAmpC
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes2
            JUMP   STEP

;Set step command to move chair and drum with light pulses - complete cycle
;-----------------------------------------------------------------------------
STEPL:  't  DAC    0,SAmpD              ;Turn on drum
            DAC    1,SAmpC              ;Turn on chair
            DIGOUT [.......1]           ;Light on
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DIGOUT [.......0]           ;Light off
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DIGOUT [.......1]           ;Light on
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DIGOUT [.......0]           ;Light off
            DELAY  StepRes2
            JUMP   STEPL

;Set step command to move chair and drum with light pulses - "delayed"
;-----------------------------------------------------------------------------
STEPD:  'd  DAC    0,SAmpD              ;Turn on drum
            DAC    1,SAmpC              ;Turn on chair
            DELAY  StepLen1
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DELAY  StepLen3
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DELAY  StepLen1
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DELAY  StepLen3
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes2
            JUMP   STEPD

 ;Set step command to move chair and drum with light pulses - "light aligned to beginning"
;-----------------------------------------------------------------------------
STEPB:  'b  DAC    0,SAmpD              ;Turn on drum
            DAC    1,SAmpC              ;Turn on chair
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DELAY  StepLen3
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DELAY  StepLen3
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes2
            JUMP   STEPB


 ;Set step command to move chair and drum with light pulses - "light aligned to end"
;-----------------------------------------------------------------------------
STEPE:  'e  DAC    0,SAmpD              ;Turn on drum
            DAC    1,SAmpC              ;Turn on chair
            DELAY  StepLen1
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DELAY  StepLen1
            DIGOUT [.......1]           ;Light on
            DELAY  StepLen2
            DIGOUT [.......0]           ;Light off
            DAC    0,DrumOff
            DAC    1,Chairoff
            DELAY  StepRes2
            JUMP   STEPE
;Set step command to move chair and drum with opto stimulation -- Maxwell 8/18
;-----------------------------------------------------------------------------
STEPZ:  'u  DAC    0,SAmpD              ;Turn on drum
            DAC    1,SAmpC              ;Turn on chair
            DIGOUT [.....1.1]           ;Light + R Pulse on
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DIGOUT [.....0.0]           ;Light + R Pulse off
            DELAY  StepRes1
            DAC    0,SAmpDn
            DAC    1,SAmpCn
            DIGOUT [....1..1]           ;Light + L Pulse on
            DELAY  StepLeng
            DAC    0,DrumOff
            DAC    1,Chairoff
            DIGOUT [....0..0]           ;Light + L Pulse off
            DELAY  StepRes2
            JUMP   STEPZ


;STEPS:  'u  DAC    0,SAmpD
;            DAC    1,SAmpC
;            DIGOUT [.......1]
;            DELAY  PulseDur
;            DIGOUT [.......0]
;            DELAY  SteLeng1
;            DAC    0,DrumOff
;            DAC    1,Chairoff
;            DELAY  StepRes1
;            DAC    0,SAmpDn
;            DAC    1,SAmpCn
;            DIGOUT [.......1]
;            DELAY  PulseDur
;            DIGOUT [.......0]
;            DELAY  SteLeng1
;            DAC    0,DrumOff
;            DAC    1,Chairoff
;            DELAY  StepRes1
;            JUMP   STEPS

;STEPS:  'u  DAC    0,DrumOff
;            DAC    1,Chairoff
;            DELAY  StepStar
;            DAC    0,SAmpD
;            DAC    1,SAmpC
;            MOV    V10,PulseNum
;STEPS2:     DIGOUT [.......1]
;            DELAY  PulseDur
;            DIGOUT [.......0]
;            DELAY  PulseInt
;            DBNZ   V10,STEPS2
;            DELAY  SteLeng1
;            DAC    0,DrumOff
;            DAC    1,Chairoff
;            DELAY  StepRes1
;            DAC    0,SAmpDn
;            DAC    1,SAmpCn
;            MOV    V10,PulseNum
;STEPS3:     DIGOUT [.......0]
;            DELAY  PulseDur
;            DIGOUT [.......0]
;            DELAY  PulseInt
;            DBNZ   V10,STEPS3
;            DELAY  SteLeng1
;            DAC    0,DrumOff
;            DAC    1,Chairoff
;            DELAY  StepRes1
;            JUMP   STEPS

;-----------------------------------------------------------------------------
;SINEON: Set sine command to DRUM Velocity DAC0 & to CHAIR Velocity DAC1
;-----------------------------------------------------------------------------
SINEON: 'S  SZ     0,DrumAmp       ;set cosine amplitude
            OFFSET 0,DrumOff       ;cosine offset
            ANGLE  0,DrumPh        ;cosine phase

            SZ     1,ChrAmp        ;set cosine amplitude
            OFFSET 1,Chairoff      ;cosine offset
            ANGLE  1,ChrPh         ;cosine phase

            RATE   0,DrumFreq      ;set rate and start cosine
            RATE   1,ChrFreq       ;set rate and start cosine

OFFST1:     WAITC  1,OFFST1
            OFFSET 0,DrumOff
            OFFSET 1,Chairoff

            JUMP   OFFST1            ;set loop to continue sine function > Sine running.

SINEOFF: 's RATE   0,0             ;stop cosine on drum
            RATE   1,0             ;stop cosine on chair
            DAC    0,DrumOff       ;stop the drum
            DAC    1,Chairoff      ;stop the chair

            JUMP   KCHAIR          ;return chair to zero
;-----------------------------------------------------------------------------

SETOFF: 'A  OFFSET 0,DrumOff
            OFFSET 1,Chairoff

            JUMP   LOOP

;-----------------------------------------------------------------------------
;LIGHTON: 'L SZ     0,DrumAmp       ;set cosine amplitude
;            OFFSET 0,DrumOff       ;cosine centre
;            ANGLE  0,DrumPh        ;cosine phase
;            RATE   0,DrumFreq      ;set rate and start cosine off
;
;            SZ     1,ChrAmp        ;set cosine amplitude
;            OFFSET 1,Chairoff      ;cosine offset command to chair b/c DAC1 has bias of -0.8 mV
;            ANGLE  1,ChrPh         ;cosine phase
;            RATE   1,ChrFreq       ;set rate and start cosine of
;
;            JUMP   pulse
;
;LIGHTOFF: 'l JUMP  pulse

;-----------------------------------------------------------------------------
; LIGHTON: modified 1/20/14 for Rig D019
LIGHTON: 'L DIGOUT [.......1]
            JUMP   OFFST1    ;LOOP

LIGHTOFF: 'l DIGOUT [.......0]
            JUMP   OFFST1    ;LOOP

;-----------------------------------------------------------------------------
; LASERON: turn on both lasers
LASERON: 'Z DIGOUT [....11..]
            JUMP   OFFST1    ;LOOP

LASEROFF: 'z DIGOUT [....00..]
            JUMP   OFFST1    ;LOOP

;-----------------------------------------------------------------------------

;-----------------------------------------------------------------------------
;uses commands for pulse stimulation
SPULSE0: 'P SZ     0,DrumAmp       ;set cosine amplitude
            OFFSET 0,DrumOff       ;cosine centre
            ANGLE  0,DrumPh        ;cosine phase

            SZ     1,ChrAmp        ;set cosine amplitude
            OFFSET 1,Chairoff      ;cosine offset command to chair V
            ANGLE  1,ChrPh         ;cosine phase


            SZ     7,1        ;set cosine amplitude
            OFFSET 7,0        ;cosine offset command to ghost timing sine wave
            ANGLE  7,0        ;cosine phase


            DIGOUT [....00..] ;   Can later change this to 11 to get overlapping pulses

            RATE   0,DrumFreq      ;set rate and start DRUM cosine
            RATE   1,ChrFreq       ;set rate and start CHAIR cosine
            RATE   7,ChrFreq       ; Standard for timing

            CLRC   7


SPULSE1:    MOV    V10,PulseNum
            MOV    V11,evNcyc

W1:         WAITC  7,W1            ;Wait for next cosine cycle
            DBNZ   V11,W1
SPULSE2:    DIGOUT [.....1..]      ; 1
            DELAY  PulseDur        ;DELAY takes up 1 ms itself
            DIGOUT [.....0..]      ; 0
            DELAY  PulseInt
            DBNZ   V10,SPULSE2
            DELAY  PulseWai        ;Number of ms to wait in between phases
            MOV    V10,PulseNum
            OFFSET 0,DrumOff
            OFFSET 1,Chairoff
SPULSE3:    DIGOUT [....1...]
            DELAY  PulseDur
            DIGOUT [....0...]
            DELAY  PulseInt
            DBNZ   V10,SPULSE3
            OFFSET 0,DrumOff
            OFFSET 1,Chairoff
            JUMP   SPULSE1

;uses commands for pulse stimulation - immediate switching between sides
IPULSE0: 'Q SZ     0,DrumAmp       ;set cosine amplitude
            OFFSET 0,DrumOff       ;cosine centre
            ANGLE  0,DrumPh        ;cosine phase

            SZ     1,ChrAmp        ;set cosine amplitude
            OFFSET 1,Chairoff      ;cosine offset command to chair V
            ANGLE  1,ChrPh         ;cosine phase

            SZ     7,1        ;set cosine amplitude - ghost channel for timing only
            OFFSET 7,0        ;cosine offset command to ghost timing sine wave
            ANGLE  7,0        ;cosine phase

            RATE   0,DrumFreq      ;set rate and start DRUM cosine
            RATE   1,ChrFreq       ;set rate and start CHAIR cosine
            RATE   7,ChrFreq       ; Standard for timing

            CLRC   7

IW1:        WAITC  7,IW1           ;Wait for next cosine cycle
            DELAY  PulseSta        ;Pulse Start - number of ms to wait before start
            DIGOUT [....01..]      ;Invert two channels
            DELAY  PulseDur        ;DELAY takes up 1 ms itself
            DIGOUT [....10..]
            OFFSET 0,DrumOff
            OFFSET 1,Chairoff
            JUMP   IW1

;----------------------------------------------------
KSPULSE: 'p DIGOUT [....00..]      ;set digital outputs low
            JUMP   LOOP
;-----------------------------------------------------------------------------

;-----------------------------------------------------------------------------
;uses commands for single channel LED single 33 ms pulse stimulation (event output 1 for video)
SPULSE4: 'V SZ     0,DrumAmp       ;set cosine amplitude
            OFFSET 0,DrumOff       ;cosine centre
            ANGLE  0,DrumPh        ;cosine phase
            RATE   0,DrumFreq      ;set rate and start cosine off

            SZ     1,ChrAmp        ;set cosine amplitude
            OFFSET 1,Chairoff      ;cosine offset command to chair b/c DAC1 has bias of -0.8 mV
            ANGLE  1,ChrPh         ;cosine phase
            RATE   1,ChrFreq       ;set rate and start cosine off

SPULSE5:    DIGOUT [......1.]
            DELAY  PulseDuV
            DIGOUT [......0.]
            DELAY  PulseWaV
            OFFSET 0,DrumOff
            OFFSET 1,Chairoff
            JUMP   SPULSE5
;----------------------------------------------------
KPULSE2: 'v DIGOUT [......0.]      ;set digital outputs low
            JUMP   INIT

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API