
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.anl.gov/wiki_gsdaq/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jta</id>
	<title>GammaSphere DAQ - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.anl.gov/wiki_gsdaq/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jta"/>
	<link rel="alternate" type="text/html" href="https://wiki.anl.gov/gsdaq/Special:Contributions/Jta"/>
	<updated>2026-06-04T00:03:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Linking_Systems_Together&amp;diff=4265</id>
		<title>Linking Systems Together</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Linking_Systems_Together&amp;diff=4265"/>
		<updated>2024-02-29T22:46:30Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* Linking Multiple Systems Together */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Linking Multiple Systems Together ==&lt;br /&gt;
&lt;br /&gt;
The trigger logic implemented for the various DAQ systems and the hardware design of the trigger module allows for the possibility to link multiple systems together.  This allows both clock synchronization and trigger sharing to occur.  A number of rules must be obeyed, so read &#039;&#039;&#039;&#039;&#039;carefully&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Physical Connectivity and basic firmware controls ===&lt;br /&gt;
&lt;br /&gt;
Just plugging in a cable or a fiber is &#039;&#039;&#039;&#039;&#039;not sufficient&#039;&#039;&#039;&#039;&#039; to make anything work.&lt;br /&gt;
&lt;br /&gt;
* Every link (A,B,C,D,E,F,G,H,L,R,U) of a trigger module has an &#039;&#039;&#039;&#039;&#039;Input Link Mask&#039;&#039;&#039;&#039;&#039; bit associated with it.&lt;br /&gt;
** If a link is masked, the trigger module will not use any data coming in on that link.&lt;br /&gt;
** If a link is masked, the trigger module won&#039;t send the data you want it to send, either.&lt;br /&gt;
** In the GUI screens, the color GRAY means &amp;quot;link is masked&amp;quot; and the color YELLOW means &amp;quot;link is in use/valid&amp;quot;.&lt;br /&gt;
* While the Input Link Mask is a &#039;&#039;&#039;&#039;&#039;firmware&#039;&#039;&#039;&#039;&#039; control, there is also a level of &#039;&#039;&#039;&#039;&#039;hardware&#039;&#039;&#039;&#039;&#039; control associated with the cable driver/receiver chips.&lt;br /&gt;
** There are controls named DEN (Driver ENable), REN (Receiver ENable) and SYNC that tell the cable driver/receiver chips to operate.&lt;br /&gt;
*** For cross-triggering operation, DEN and REN should be &#039;&#039;&#039;ON&#039;&#039;&#039; and SYNC should be &#039;&#039;&#039;OFF&#039;&#039;&#039;.&lt;br /&gt;
* System linkup scripts will usually leave the SYNC bit for links L, R, U in the &#039;&#039;&#039;ON&#039;&#039;&#039; state, so to link systems the SYNC should be turned &#039;&#039;&#039;OFF&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Clock Sharing ===&lt;br /&gt;
&lt;br /&gt;
The basic method of clock sharing that most users are familiar with is that the master trigger sends clock to the routers, and the routers re-distribute that clock to the digitizers.  Many users also understand that this tree of clock distribution has been extended to include Digital Gammasphere (DGS) sending the clock to DFMA, as shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:ClockHierarchy.png|Standard clock distribution]]&lt;br /&gt;
&lt;br /&gt;
Those that have been involved from the beginning will recall that the DGS master trigger could also be connected to &#039;Analog&#039; Gammasphere using the GITMO module - and use the clock from &#039;Analog&#039; Gammasphere.  Those that have been involved with hosting external detectors such as CHICO, Microball, ORRUBA, etc. also understand that there is clock sharing associated with the MyRIAD module.  A more full picture of this clock distribution hierarchy is shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:FullSystem.png|full system clocking tree]]&lt;br /&gt;
&lt;br /&gt;
==== The rules of the game as currently understood by users ====&lt;br /&gt;
&lt;br /&gt;
So people know that you can hook a MyRIAD to DGS, and you can hook DFMA to DGS, and that with appropriate software incantations the clock and timestamp can be distributed from DGS to the other two systems.  That is correct, and that is true, but it is not the whole and complete truth of how the firmware works.&lt;br /&gt;
&lt;br /&gt;
==== How clock sharing REALLY works ====&lt;br /&gt;
&lt;br /&gt;
How the clock sharing works in full detail is as follows.&lt;br /&gt;
&lt;br /&gt;
* Any master trigger can be declared as the &amp;quot;timing monarch&amp;quot; that is the source of the clock.&lt;br /&gt;
* Which master trigger is the &amp;quot;timing monarch&amp;quot; is defined &#039;&#039;solely by cabling&#039;&#039;.&lt;br /&gt;
** If a master trigger &#039;&#039;has a cable connected to it&#039;s link L&#039;&#039; then that master trigger can be told to be subservient to whatever is on the other end of the link L cable.&lt;br /&gt;
** The hierarchy is defined by what cables plug into link L of what boards.  &lt;br /&gt;
** This is why all the master-to-router cables go from any link of the master always to link L of the router.&lt;br /&gt;
* There is a limit as to how far the hierarchy can descend.&lt;br /&gt;
** Each time the clock is sent out of a board and received by another, clock jitter accumulates with each &#039;hop&#039;.&lt;br /&gt;
** In the DGS-DFMA setup that people are used to, there are six &#039;hops&#039; to get a trigger from DFMA back to DGS when DGS is the clock source :&lt;br /&gt;
*** DGS to DFMA master -&amp;gt; DFMA master-router -&amp;gt; DFMA router-digitizer -&amp;gt; DFMA digitizer-router -&amp;gt; DFMA router-master -&amp;gt; DFMA master to DGS&lt;br /&gt;
*** Measurements show that the accumulated jitter per &#039;hop&#039; is about 35ps.&lt;br /&gt;
*** So in the DGS-DFMA setup there would be a total accumulated jitter of (6*35), or 360ps.&lt;br /&gt;
*** The serial data stream is 1Gbps, or 1ns (1000ps) per bit.  &lt;br /&gt;
*** If the ratio of the accumulated jitter divided by the bit period is greater than 50%, the link WILL HAVE BIT ERRORS.&lt;br /&gt;
** Thus the number of &#039;hops&#039; in the current system is at a maximum and &#039;&#039;&#039;&#039;&#039;hanging a 3rd system behind DFMA will not work&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Any master trigger starts up using its own internal clock.  Then, by writing a bit to a register, a master trigger agrees to use the clock that comes in on link L.  The firmware has an automatic fallback provision that will cause any master trigger to fall back to using the internal clock &#039;&#039;irrespective of the software selection&#039;&#039; if there is no LOCK indication from the SERDES chip of link L.  Thus it is necessary to establish the SERDES link between two master triggers and verify that link L is locked BEFORE telling the &amp;quot;subservient&amp;quot; master trigger to use the clock from link L.&lt;br /&gt;
&lt;br /&gt;
=== Understanding Link usage ===&lt;br /&gt;
&lt;br /&gt;
Each master trigger board has three &amp;quot;special&amp;quot; SERDES links named &amp;quot;L&amp;quot;, &amp;quot;R&amp;quot; and &amp;quot;U&amp;quot;.  Originally this was meant to be read as &amp;quot;Left&amp;quot;, &amp;quot;Right&amp;quot; and &amp;quot;Up&amp;quot; for drawing complicated link connections, but the convention of direction was abandoned unused.  These three links are &amp;quot;special&amp;quot; in the sense that they are intended to be used as &#039;&#039;system interconnect&#039;&#039; links as opposed to the &#039;&#039;internal connections&#039;&#039; of links A through H.  More precisely, what this means is that the data formats that these links send and receive are slightly different than the data format used to connect with routers.  Each of these three links has a unique purpose and unique characteristics.&lt;br /&gt;
&lt;br /&gt;
* Link L is unique in that it alone can receive a clock from an external source that can be used in place of the board&#039;s internal clock.&lt;br /&gt;
** Link L can receive two different data formats, either the GITMO format or the format from another master trigger.&lt;br /&gt;
* Link R is intended to receive data from another master trigger.&lt;br /&gt;
* Link U is historically used with the MyRIAD module to receive trigger information from an external detector.&lt;br /&gt;
** Link U can be programmed to receive data from another master trigger.&lt;br /&gt;
&lt;br /&gt;
== General recipe for success ==&lt;br /&gt;
&lt;br /&gt;
* Run local scripts for each system to link everybody up within each system individually.&lt;br /&gt;
* Adjust Input Link Mask bits on links L, R, U of cross-connected systems so that the triggers send nice data to each other.&lt;br /&gt;
* Adjust Sync bits on links L, R, U of cross-connected systems so that triggers send nice data to each other.&lt;br /&gt;
* Turn on the F1 propagation bit of the systems that are subservient to the designated timing monarch.&lt;br /&gt;
* Set the Clock Source of the systems that are subservient to the designated timing monarch to &#039;link&#039;.&lt;br /&gt;
** this will cause some digitizers or routers to drop the link or have &#039;lost lock&#039; errors.  Reset errors and/or links as needed to re-link routers to master and then to re-link digitizers to routers as needed.&lt;br /&gt;
* Turn on the Imperative Sync of the timing monarch.  Verify that subservient systems respond at all levels of boards (master, routers, digitizers).&lt;br /&gt;
* As desired, Turn on F3 (and, if needed, F4, F5, F6, etc.) Propagation Control bits in systems subservient to the timing monarch to tell the systems to listen to and process triggers sent by the timing monarch.&lt;br /&gt;
* As desired, Turn on F3 (and, if needed, F4, F5, F6, etc.) Propagation Control bits in the timing monarch to tell the timing monarch to listen to and process triggers sent by the subservient systems.&lt;br /&gt;
** the purpose of the Propagation Control bits is to select which triggers from other systems are to be listened to by the system with the Propagation Control bits.&lt;br /&gt;
*** The F4/5/6/etc. bits are there to allow a system to listen to multiple trigger messages from multiple algorithms if the trigger setup is that complex.&lt;br /&gt;
* Send test triggers and see that they occur in the other systems.  &lt;br /&gt;
** Learn how to use the Manual Trigger bit in the Pulsed Control register and the Trig RAM logic to generate triggers at will without any beam and without any digitizers.&lt;br /&gt;
&lt;br /&gt;
=== Expert diagnosis tricks ===&lt;br /&gt;
There is a script that allows experts to look at the raw data being received on link L, R or U of any master trigger.  Experts know what the appropriate data pattern looks like.&lt;br /&gt;
&lt;br /&gt;
* data pattern of constant value of 0x00FF means that the sending device still has the hardware SYNC control on.&lt;br /&gt;
* data pattern of constant value of 0xFF00 means that the sending device still has the Input Link Mask bit in the gray state.&lt;br /&gt;
&lt;br /&gt;
== The concept of Propagation Control ==&lt;br /&gt;
&lt;br /&gt;
Every master trigger is the master of its own detector.  However, each master trigger that is receiving data from another master trigger from the SERDES links (L, R or U) can &#039;&#039;selectively propagate information received from another master trigger&#039;&#039; into itself.  There is a &#039;&#039;&#039;Propagation Control&#039;&#039;&#039; register associated with each of the three links that is bit-wise mapped to enumerate what information is allowed to enter.  This is described in the Trigger Timing and Control Link Specification document that I know you haven&#039;t read, so here&#039;s the text again.&lt;br /&gt;
&lt;br /&gt;
[[File:Ttcl cutout.PNG]]&lt;br /&gt;
&lt;br /&gt;
These Propagation Control registers are important not only to set up the timestamp, but also in the setting up of shared triggers across systems.&lt;br /&gt;
&lt;br /&gt;
=== Timestamp sharing and Imperative Sync ===&lt;br /&gt;
&lt;br /&gt;
There is a difference between sharing the CLOCK and sharing the TIMESTAMP.  The timestamp logic of the subservient master trigger has a separate enable bit to allow the subservient master to respond to Imperative Sync commands sent from the &amp;quot;timing monarch&amp;quot;.  The precise rule here is:&lt;br /&gt;
&lt;br /&gt;
* If the LINK L PROPAGATION CONTROL register, bit 0, is SET,  &#039;&#039;&#039;and&#039;&#039;&#039; the subservient master has set its link L to be receiving commands from another master trigger, &#039;&#039;&#039;then&#039;&#039;&#039; the subservient master will respond only to Imperative Sync from the &amp;quot;timing monarch&amp;quot; AND cannot issue its own local Imperative Sync.&lt;br /&gt;
* If either of those two conditions are not met, then the subservient master, &#039;&#039;even if using the clock from the timing monarch&#039;&#039;, will IGNORE any Imperative Sync from the timing monarch but CAN issue its own Imperative Sync within its own system.&lt;br /&gt;
&lt;br /&gt;
== Collection of triggers from one master trigger to another ==&lt;br /&gt;
&lt;br /&gt;
Each master trigger receives copies of all the &#039;local&#039; (within a given detector) trigger accept messages from all the other master triggers it is connected to through links L, R and U.  Hypothesize that the setup in play is Digital Gammasphere (DGS) as the &amp;quot;timing monarch&amp;quot; with DFMA and X-Array as the &amp;quot;subservient&amp;quot; master triggers.  Just to fill out the example, also assume that there&#039;s some other external detector in the setup that is using a MyRIAD.  Further assume that the wiring setup is as follows:&lt;br /&gt;
&lt;br /&gt;
* DGS link R is connected to DFMA, link L.&lt;br /&gt;
* DGS link L is connected to X-Array, link L.&lt;br /&gt;
* DGS link U is connected to the MyRIAD in the external detector.&lt;br /&gt;
&lt;br /&gt;
This is a legitimate setup because link L can be configured by writing to DGS&#039;s registers to use &#039;remote master&#039; format, link R is natively &#039;remote master&#039; format, and link U of DGS can be configured by writing to registers to use &#039;MyRIAD&#039; format.  This setup then means that the DGS master trigger has to somehow attempt to combine information not only from itself but from the other setups to make multi-system trigger accept messages.  The overall data flow by which this occurs is shown in the following picture.&lt;br /&gt;
&lt;br /&gt;
[[File:RemoteTriggerQueuing.png]]&lt;br /&gt;
&lt;br /&gt;
== Currently Supported Cross-system Triggers ==&lt;br /&gt;
&lt;br /&gt;
The important detail of the above picture is that the trigger messages coming in from links L, R and U must pass through &#039;&#039;Trigger Algorithms&#039;&#039; and only those combinations explicitly supported by the specific algorithms can create multi-detector coincidences.  There are also limits, as indicated in the picture, of what trigger messages pass through to the other systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;As the firmware is currently written there is no way to perform a three- or four-system coincidence and broadcast that coincidence trigger to all systems&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Processing of information from other masters ===&lt;br /&gt;
&lt;br /&gt;
Whenever a SERDES link (L, R or U) is configured to be a &#039;remote master&#039; data format, the firmware has a fixed way of processing that data, shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:RemoteTrigAlgorithm.PNG]]&lt;br /&gt;
&lt;br /&gt;
As is seen in the picture, the algorithm can perform a coincidence calculation of the trigger message &#039;&#039;received from that particular link&#039;&#039; relative to &#039;&#039;any of the other triggers&#039;&#039;.  The resultant coincidence then creates trigger acceptance messages FOR THAT LINK.  This means that, in our example, &lt;br /&gt;
&lt;br /&gt;
* DGS is receiving messages from the X-Array over link L.  Thus, DGS can calculate a timestamp offset for the messages from the X-Array to compensate for time-of-flight, different integration time, etc., generate an internal pulse at the adjusted timestamp, and then perform a coincidence of that pulse with the other triggers &#039;&#039;at the moment they occur&#039;&#039; to generate an internal DGS trigger (algorithm #6).&lt;br /&gt;
** The Algorithm 6 trigger is sent to DGS, to DFMA and to the MyRIAD, &#039;&#039;&#039;but is not sent back to the X-Array to avoid infinite trigger loops&#039;&#039;&#039;&lt;br /&gt;
* DGS is receiving messages from DFMA over link R.  Thus, DGS can calculate a timestamp offset for the messages from DFMA to compensate for time-of-flight, different integration time, etc., generate an internal pulse at the adjusted timestamp, and then perform a coincidence of that pulse with the other triggers &#039;&#039;at the moment they occur&#039;&#039; to generate an internal DGS trigger (algorithm #7).&lt;br /&gt;
** The Algorithm 7 trigger is sent to DGS, to X-Array and to the MyRIAD, &#039;&#039;&#039;but is not sent back to DFMA to avoid infinite trigger loops&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The MyRIAD - link U in this example - is treated different.y.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Linking_Systems_Together&amp;diff=4264</id>
		<title>Linking Systems Together</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Linking_Systems_Together&amp;diff=4264"/>
		<updated>2024-02-29T22:24:35Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Linking Multiple Systems Together ==&lt;br /&gt;
&lt;br /&gt;
The trigger logic implemented for the various DAQ systems and the hardware design of the trigger module allows for the possibility to link multiple systems together.  This allows both clock synchronization and trigger sharing to occur.  A number of rules must be obeyed, so read carefully.&lt;br /&gt;
&lt;br /&gt;
=== Clock Sharing ===&lt;br /&gt;
&lt;br /&gt;
The basic method of clock sharing that most users are familiar with is that the master trigger sends clock to the routers, and the routers re-distribute that clock to the digitizers.  Many users also understand that this tree of clock distribution has been extended to include Digital Gammasphere (DGS) sending the clock to DFMA, as shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:ClockHierarchy.png|Standard clock distribution]]&lt;br /&gt;
&lt;br /&gt;
Those that have been involved from the beginning will recall that the DGS master trigger could also be connected to &#039;Analog&#039; Gammasphere using the GITMO module - and use the clock from &#039;Analog&#039; Gammasphere.  Those that have been involved with hosting external detectors such as CHICO, Microball, ORRUBA, etc. also understand that there is clock sharing associated with the MyRIAD module.  A more full picture of this clock distribution hierarchy is shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:FullSystem.png|full system clocking tree]]&lt;br /&gt;
&lt;br /&gt;
==== The rules of the game as currently understood by users ====&lt;br /&gt;
&lt;br /&gt;
So people know that you can hook a MyRIAD to DGS, and you can hook DFMA to DGS, and that with appropriate software incantations the clock and timestamp can be distributed from DGS to the other two systems.  That is correct, and that is true, but it is not the whole and complete truth of how the firmware works.&lt;br /&gt;
&lt;br /&gt;
==== How clock sharing REALLY works ====&lt;br /&gt;
&lt;br /&gt;
How the clock sharing works in full detail is as follows.&lt;br /&gt;
&lt;br /&gt;
* Any master trigger can be declared as the &amp;quot;timing monarch&amp;quot; that is the source of the clock.&lt;br /&gt;
* Which master trigger is the &amp;quot;timing monarch&amp;quot; is defined &#039;&#039;solely by cabling&#039;&#039;.&lt;br /&gt;
** If a master trigger &#039;&#039;has a cable connected to it&#039;s link L&#039;&#039; then that master trigger can be told to be subservient to whatever is on the other end of the link L cable.&lt;br /&gt;
** The hierarchy is defined by what cables plug into link L of what boards.  &lt;br /&gt;
** This is why all the master-to-router cables go from any link of the master always to link L of the router.&lt;br /&gt;
* There is a limit as to how far the hierarchy can descend.&lt;br /&gt;
** Each time the clock is sent out of a board and received by another, clock jitter accumulates with each &#039;hop&#039;.&lt;br /&gt;
** In the DGS-DFMA setup that people are used to, there are six &#039;hops&#039; to get a trigger from DFMA back to DGS when DGS is the clock source :&lt;br /&gt;
*** DGS to DFMA master -&amp;gt; DFMA master-router -&amp;gt; DFMA router-digitizer -&amp;gt; DFMA digitizer-router -&amp;gt; DFMA router-master -&amp;gt; DFMA master to DGS&lt;br /&gt;
*** Measurements show that the accumulated jitter per &#039;hop&#039; is about 35ps.&lt;br /&gt;
*** So in the DGS-DFMA setup there would be a total accumulated jitter of (6*35), or 360ps.&lt;br /&gt;
*** The serial data stream is 1Gbps, or 1ns (1000ps) per bit.  &lt;br /&gt;
*** If the ratio of the accumulated jitter divided by the bit period is greater than 50%, the link WILL HAVE BIT ERRORS.&lt;br /&gt;
** Thus the number of &#039;hops&#039; in the current system is at a maximum and &#039;&#039;&#039;&#039;&#039;hanging a 3rd system behind DFMA will not work&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Any master trigger starts up using its own internal clock.  Then, by writing a bit to a register, a master trigger agrees to use the clock that comes in on link L.  The firmware has an automatic fallback provision that will cause any master trigger to fall back to using the internal clock &#039;&#039;irrespective of the software selection&#039;&#039; if there is no LOCK indication from the SERDES chip of link L.  Thus it is necessary to establish the SERDES link between two master triggers and verify that link L is locked BEFORE telling the &amp;quot;subservient&amp;quot; master trigger to use the clock from link L.&lt;br /&gt;
&lt;br /&gt;
=== Understanding Link usage ===&lt;br /&gt;
&lt;br /&gt;
Each master trigger board has three &amp;quot;special&amp;quot; SERDES links named &amp;quot;L&amp;quot;, &amp;quot;R&amp;quot; and &amp;quot;U&amp;quot;.  Originally this was meant to be read as &amp;quot;Left&amp;quot;, &amp;quot;Right&amp;quot; and &amp;quot;Up&amp;quot; for drawing complicated link connections, but the convention of direction was abandoned unused.  These three links are &amp;quot;special&amp;quot; in the sense that they are intended to be used as &#039;&#039;system interconnect&#039;&#039; links as opposed to the &#039;&#039;internal connections&#039;&#039; of links A through H.  More precisely, what this means is that the data formats that these links send and receive are slightly different than the data format used to connect with routers.  Each of these three links has a unique purpose and unique characteristics.&lt;br /&gt;
&lt;br /&gt;
* Link L is unique in that it alone can receive a clock from an external source that can be used in place of the board&#039;s internal clock.&lt;br /&gt;
** Link L can receive two different data formats, either the GITMO format or the format from another master trigger.&lt;br /&gt;
* Link R is intended to receive data from another master trigger.&lt;br /&gt;
* Link U is historically used with the MyRIAD module to receive trigger information from an external detector.&lt;br /&gt;
** Link U can be programmed to receive data from another master trigger.&lt;br /&gt;
&lt;br /&gt;
== The concept of Propagation Control ==&lt;br /&gt;
&lt;br /&gt;
Every master trigger is the master of its own detector.  However, each master trigger that is receiving data from another master trigger from the SERDES links (L, R or U) can &#039;&#039;selectively propagate information received from another master trigger&#039;&#039; into itself.  There is a &#039;&#039;&#039;Propagation Control&#039;&#039;&#039; register associated with each of the three links that is bit-wise mapped to enumerate what information is allowed to enter.  This is described in the Trigger Timing and Control Link Specification document that I know you haven&#039;t read, so here&#039;s the text again.&lt;br /&gt;
&lt;br /&gt;
[[File:Ttcl cutout.PNG]]&lt;br /&gt;
&lt;br /&gt;
These Propagation Control registers are important not only to set up the timestamp, but also in the setting up of shared triggers across systems.&lt;br /&gt;
&lt;br /&gt;
=== Timestamp sharing and Imperative Sync ===&lt;br /&gt;
&lt;br /&gt;
There is a difference between sharing the CLOCK and sharing the TIMESTAMP.  The timestamp logic of the subservient master trigger has a separate enable bit to allow the subservient master to respond to Imperative Sync commands sent from the &amp;quot;timing monarch&amp;quot;.  The precise rule here is:&lt;br /&gt;
&lt;br /&gt;
* If the LINK L PROPAGATION CONTROL register, bit 0, is SET,  &#039;&#039;&#039;and&#039;&#039;&#039; the subservient master has set its link L to be receiving commands from another master trigger, &#039;&#039;&#039;then&#039;&#039;&#039; the subservient master will respond only to Imperative Sync from the &amp;quot;timing monarch&amp;quot; AND cannot issue its own local Imperative Sync.&lt;br /&gt;
* If either of those two conditions are not met, then the subservient master, &#039;&#039;even if using the clock from the timing monarch&#039;&#039;, will IGNORE any Imperative Sync from the timing monarch but CAN issue its own Imperative Sync within its own system.&lt;br /&gt;
&lt;br /&gt;
== Collection of triggers from one master trigger to another ==&lt;br /&gt;
&lt;br /&gt;
Each master trigger receives copies of all the &#039;local&#039; (within a given detector) trigger accept messages from all the other master triggers it is connected to through links L, R and U.  Hypothesize that the setup in play is Digital Gammasphere (DGS) as the &amp;quot;timing monarch&amp;quot; with DFMA and X-Array as the &amp;quot;subservient&amp;quot; master triggers.  Just to fill out the example, also assume that there&#039;s some other external detector in the setup that is using a MyRIAD.  Further assume that the wiring setup is as follows:&lt;br /&gt;
&lt;br /&gt;
* DGS link R is connected to DFMA, link L.&lt;br /&gt;
* DGS link L is connected to X-Array, link L.&lt;br /&gt;
* DGS link U is connected to the MyRIAD in the external detector.&lt;br /&gt;
&lt;br /&gt;
This is a legitimate setup because link L can be configured by writing to DGS&#039;s registers to use &#039;remote master&#039; format, link R is natively &#039;remote master&#039; format, and link U of DGS can be configured by writing to registers to use &#039;MyRIAD&#039; format.  This setup then means that the DGS master trigger has to somehow attempt to combine information not only from itself but from the other setups to make multi-system trigger accept messages.  The overall data flow by which this occurs is shown in the following picture.&lt;br /&gt;
&lt;br /&gt;
[[File:RemoteTriggerQueuing.png]]&lt;br /&gt;
&lt;br /&gt;
== Currently Supported Cross-system Triggers ==&lt;br /&gt;
&lt;br /&gt;
The important detail of the above picture is that the trigger messages coming in from links L, R and U must pass through &#039;&#039;Trigger Algorithms&#039;&#039; and only those combinations explicitly supported by the specific algorithms can create multi-detector coincidences.  There are also limits, as indicated in the picture, of what trigger messages pass through to the other systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;As the firmware is currently written there is no way to perform a three- or four-system coincidence and broadcast that coincidence trigger to all systems&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Processing of information from other masters ===&lt;br /&gt;
&lt;br /&gt;
Whenever a SERDES link (L, R or U) is configured to be a &#039;remote master&#039; data format, the firmware has a fixed way of processing that data, shown here.&lt;br /&gt;
&lt;br /&gt;
[[File:RemoteTrigAlgorithm.PNG]]&lt;br /&gt;
&lt;br /&gt;
As is seen in the picture, the algorithm can perform a coincidence calculation of the trigger message &#039;&#039;received from that particular link&#039;&#039; relative to &#039;&#039;any of the other triggers&#039;&#039;.  The resultant coincidence then creates trigger acceptance messages FOR THAT LINK.  This means that, in our example, &lt;br /&gt;
&lt;br /&gt;
* DGS is receiving messages from the X-Array over link L.  Thus, DGS can calculate a timestamp offset for the messages from the X-Array to compensate for time-of-flight, different integration time, etc., generate an internal pulse at the adjusted timestamp, and then perform a coincidence of that pulse with the other triggers &#039;&#039;at the moment they occur&#039;&#039; to generate an internal DGS trigger (algorithm #6).&lt;br /&gt;
** The Algorithm 6 trigger is sent to DGS, to DFMA and to the MyRIAD, &#039;&#039;&#039;but is not sent back to the X-Array to avoid infinite trigger loops&#039;&#039;&#039;&lt;br /&gt;
* DGS is receiving messages from DFMA over link R.  Thus, DGS can calculate a timestamp offset for the messages from DFMA to compensate for time-of-flight, different integration time, etc., generate an internal pulse at the adjusted timestamp, and then perform a coincidence of that pulse with the other triggers &#039;&#039;at the moment they occur&#039;&#039; to generate an internal DGS trigger (algorithm #7).&lt;br /&gt;
** The Algorithm 7 trigger is sent to DGS, to X-Array and to the MyRIAD, &#039;&#039;&#039;but is not sent back to DFMA to avoid infinite trigger loops&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The MyRIAD - link U in this example - is treated different.y.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4258</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4258"/>
		<updated>2024-02-20T02:06:13Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;THREE&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
&lt;br /&gt;
The root of the boot host is the folder &#039;&#039;&#039;/global/ioc&#039;&#039;&#039; that has subfolders&lt;br /&gt;
&lt;br /&gt;
*    bin&lt;br /&gt;
*    boot&lt;br /&gt;
*    db&lt;br /&gt;
*    dbd&lt;br /&gt;
*    dgsSoftIOC&lt;br /&gt;
*    epics&lt;br /&gt;
*    FW_Maint    (Will be deprecated in the &#039;&#039;&#039;imminent&#039;&#039;&#039; future)&lt;br /&gt;
*    gui&lt;br /&gt;
&lt;br /&gt;
The places that change when the system is rebuilt are the &#039;&#039;&#039;bin&#039;&#039;&#039;, &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;gui&#039;&#039;&#039; areas.&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases&lt;br /&gt;
&lt;br /&gt;
=The entire sequence from spreadsheet to boot=&lt;br /&gt;
&lt;br /&gt;
==Spreadsheet general path==&lt;br /&gt;
&lt;br /&gt;
* Checkout or update a local working copy of https://svn.inside.anl.gov/repos/psg/CodeGeneratingSpreadsheetsGeneric onto a Windows PC.&lt;br /&gt;
* Make any modifications to the spreadsheet needed to update desired functionality in firmware, EPICS, C structs, etc.&lt;br /&gt;
* There are different projects for every kind of FPGA/board.&lt;br /&gt;
* After the spreadsheet is run then the entire folder tree for the project must be committed to SVN.&lt;br /&gt;
&lt;br /&gt;
===Spreadsheet outputs===&lt;br /&gt;
&lt;br /&gt;
A spreadsheet for the digitizer or the master trigger or the router trigger has a folder &#039;&#039;&#039;SS_output&#039;&#039;&#039; that contains all of its output products.&lt;br /&gt;
The output products of interest for the Area IV data acquisition systems are&lt;br /&gt;
&lt;br /&gt;
====files for rebuilding the VxWorks driver====&lt;br /&gt;
* asyn&amp;lt;boardtype&amp;gt;Params.c&lt;br /&gt;
* asyn&amp;lt;boardtype&amp;gt;Params.h&lt;br /&gt;
&lt;br /&gt;
The Solaris machine &#039;con6&#039; has no &#039;svn&#039; program installed on it, so some other machine that has &#039;svn&#039; must be used to pull the files down.&lt;br /&gt;
This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /dk/fs2/dgs/global_sandbox/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
* ./Export_Parameter_Files_from_dgs1.sh&lt;br /&gt;
&lt;br /&gt;
After you have exported the parameter files, then compile as described above.&lt;br /&gt;
&lt;br /&gt;
Once you have successfully compiled, then you must go to the &#039;&#039;&#039;boot machine&#039;&#039;&#039; (e.g. DGS1) and do the following:&lt;br /&gt;
&lt;br /&gt;
* cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
* ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
====files used by the VME IOCs to generate PVs====&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;Registers.template&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;User.template&lt;br /&gt;
* A series of &#039;VMExx.db&#039; files (however many were defined in the system definition file of the spreadsheet)&lt;br /&gt;
&lt;br /&gt;
These files must be exported from SVN to the folder on the boot host machine (e.g. dgs1) for use by the VME IOC processor&lt;br /&gt;
during the boot of that specific processor.  This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /global/ioc/db&lt;br /&gt;
* ./Export_SVN_Databases.sh&lt;br /&gt;
&lt;br /&gt;
====files used by the Soft IOC (run on the host machine, e.g. DGS1)====&lt;br /&gt;
* JustGlobals.db&lt;br /&gt;
&lt;br /&gt;
This file must be exported from SVN to the folder on the boot host machine where the Soft IOC resides.  This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /global/ioc/dgsSoftIOC/db&lt;br /&gt;
* ./Export_SVN_SoftIOC_Database.sh&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4257</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4257"/>
		<updated>2024-02-20T02:03:31Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;THREE&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
&lt;br /&gt;
The root of the boot host is the folder &#039;&#039;&#039;/global/ioc&#039;&#039;&#039; that has subfolders&lt;br /&gt;
&lt;br /&gt;
*    bin&lt;br /&gt;
*    boot&lt;br /&gt;
*    db&lt;br /&gt;
*    dbd&lt;br /&gt;
*    dgsSoftIOC&lt;br /&gt;
*    epics&lt;br /&gt;
*    FW_Maint    (Will be deprecated in the &#039;&#039;&#039;imminent&#039;&#039;&#039; future)&lt;br /&gt;
*    gui&lt;br /&gt;
&lt;br /&gt;
The places that change when the system is rebuilt are the &#039;&#039;&#039;bin&#039;&#039;&#039;, &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;gui&#039;&#039;&#039; areas.&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases&lt;br /&gt;
&lt;br /&gt;
=The entire sequence from spreadsheet to boot=&lt;br /&gt;
&lt;br /&gt;
==Spreadsheet general path==&lt;br /&gt;
&lt;br /&gt;
* Checkout or update a local working copy of https://svn.inside.anl.gov/repos/psg/CodeGeneratingSpreadsheetsGeneric onto a Windows PC.&lt;br /&gt;
* Make any modifications to the spreadsheet needed to update desired functionality in firmware, EPICS, C structs, etc.&lt;br /&gt;
* There are different projects for every kind of FPGA/board.&lt;br /&gt;
* After the spreadsheet is run then the entire folder tree for the project must be committed to SVN.&lt;br /&gt;
&lt;br /&gt;
===Spreadsheet outputs===&lt;br /&gt;
&lt;br /&gt;
A spreadsheet for the digitizer or the master trigger or the router trigger has a folder &#039;&#039;&#039;SS_output&#039;&#039;&#039; that contains all of its output products.&lt;br /&gt;
The output products of interest for the Area IV data acquisition systems are&lt;br /&gt;
&lt;br /&gt;
====files for rebuilding the VxWorks driver====&lt;br /&gt;
* asyn&amp;lt;boardtype&amp;gt;Params.c&lt;br /&gt;
* asyn&amp;lt;boardtype&amp;gt;Params.h&lt;br /&gt;
&lt;br /&gt;
The Solaris machine &#039;con6&#039; has no &#039;svn&#039; program installed on it, so some other machine that has &#039;svn&#039; must be used to pull the files down.&lt;br /&gt;
This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /dk/fs2/dgs/global_sandbox/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
* ./Export_Parameter_Files_from_dgs1.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====files used by the VME IOCs to generate PVs====&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;Registers.template&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;User.template&lt;br /&gt;
* A series of &#039;VMExx.db&#039; files (however many were defined in the system definition file of the spreadsheet)&lt;br /&gt;
&lt;br /&gt;
These files must be exported from SVN to the folder on the boot host machine (e.g. dgs1) for use by the VME IOC processor&lt;br /&gt;
during the boot of that specific processor.  This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /global/ioc/db&lt;br /&gt;
* ./Export_SVN_Databases.sh&lt;br /&gt;
&lt;br /&gt;
====files used by the Soft IOC (run on the host machine, e.g. DGS1)====&lt;br /&gt;
* JustGlobals.db&lt;br /&gt;
&lt;br /&gt;
This file must be exported from SVN to the folder on the boot host machine where the Soft IOC resides.  This is done by&lt;br /&gt;
&lt;br /&gt;
* cd /global/ioc/dgsSoftIOC/db&lt;br /&gt;
* ./Export_SVN_SoftIOC_Database.sh&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4256</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4256"/>
		<updated>2024-02-20T01:02:07Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;THREE&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
&lt;br /&gt;
The root of the boot host is the folder &#039;&#039;&#039;/global/ioc&#039;&#039;&#039; that has subfolders&lt;br /&gt;
&lt;br /&gt;
*    bin&lt;br /&gt;
*    boot&lt;br /&gt;
*    db&lt;br /&gt;
*    dbd&lt;br /&gt;
*    dgsSoftIOC&lt;br /&gt;
*    epics&lt;br /&gt;
*    FW_Maint    (Will be deprecated in the &#039;&#039;&#039;imminent&#039;&#039;&#039; future)&lt;br /&gt;
*    gui&lt;br /&gt;
&lt;br /&gt;
The places that change when the system is rebuilt are the &#039;&#039;&#039;bin&#039;&#039;&#039;, &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;gui&#039;&#039;&#039; areas.&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases&lt;br /&gt;
&lt;br /&gt;
=The entire sequence from spreadsheet to boot=&lt;br /&gt;
&lt;br /&gt;
==Spreadsheet general path==&lt;br /&gt;
&lt;br /&gt;
* Checkout or update a local working copy of https://svn.inside.anl.gov/repos/psg/CodeGeneratingSpreadsheetsGeneric onto a Windows PC.&lt;br /&gt;
* Make any modifications to the spreadsheet needed to update desired functionality in firmware, EPICS, C structs, etc.&lt;br /&gt;
* There are different projects for every kind of FPGA/board.&lt;br /&gt;
&lt;br /&gt;
===Spreadsheet outputs===&lt;br /&gt;
&lt;br /&gt;
A spreadsheet for the digitizer or the master trigger or the router trigger has a folder &#039;&#039;&#039;SS_output&#039;&#039;&#039; that contains all of its output products.&lt;br /&gt;
The output products of interest for the Area IV data acquisition systems are&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;Registers.template&lt;br /&gt;
* &amp;lt;boardtype&amp;gt;User.template&lt;br /&gt;
* A series of VMExx.db files (however many were defined in the system definition file of the spreadsheet)&lt;br /&gt;
* A &#039;JustGlobals.db&#039; file for use by the Soft IOC&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4255</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4255"/>
		<updated>2024-02-19T23:49:38Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* File Structure of Boot Host DGS1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;THREE&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
&lt;br /&gt;
The root of the boot host is the folder &#039;&#039;&#039;/global/ioc&#039;&#039;&#039; that has subfolders&lt;br /&gt;
&lt;br /&gt;
*    bin&lt;br /&gt;
*    boot&lt;br /&gt;
*    db&lt;br /&gt;
*    dbd&lt;br /&gt;
*    dgsSoftIOC&lt;br /&gt;
*    epics&lt;br /&gt;
*    FW_Maint    (Will be deprecated in the &#039;&#039;&#039;imminent&#039;&#039;&#039; future)&lt;br /&gt;
*    gui&lt;br /&gt;
&lt;br /&gt;
The places that change when the system is rebuilt are the &#039;&#039;&#039;bin&#039;&#039;&#039;, &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;gui&#039;&#039;&#039; areas.&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4254</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4254"/>
		<updated>2024-02-19T23:45:50Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;THREE&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[dgs@dgs1 ioc]$ pwd&lt;br /&gt;
/global/ioc&lt;br /&gt;
[dgs@dgs1 ioc]$ ls -la&lt;br /&gt;
total 220&lt;br /&gt;
drwxrwxr-x. 10 dgs dgs     14 Feb 19 15:06 ./&lt;br /&gt;
drwxrwxr-x. 11 dgs dgs     14 Sep 28 19:27 ../&lt;br /&gt;
drwxrwxr-x.  3 dgs dgs      3 Mar 30  2023 bin/&lt;br /&gt;
drwxrwxr-x.  3 dgs dgs     68 Sep 21 18:50 boot/&lt;br /&gt;
-rwxrwxr-x.  1 dgs dgs    386 Mar 30  2023 Copy_from_sandbox.sh*&lt;br /&gt;
-rwxrwxr-x.  1 dgs dgs    924 Mar 30  2023 Copy_from_svn_checkout.sh*&lt;br /&gt;
drwxrwxr-x.  2 dgs dgs     32 Feb  5 16:02 db/&lt;br /&gt;
drwxrwxr-x.  2 dgs dgs      3 Feb 19 17:32 dbd/&lt;br /&gt;
drwxrwxr-x. 10 dgs dgs     11 Sep 20 13:57 dgsSoftIOC/&lt;br /&gt;
drwxrwxr-x.  3 dgs dgs      3 Apr  5  2023 epics/&lt;br /&gt;
drwxrwxr-x.  6 dgs dgs      8 Sep  8 16:12 FW_Maint/&lt;br /&gt;
drwxrwxr-x.  6 dgs dgs     22 Feb 16 16:36 gui/&lt;br /&gt;
-rw-rw-r--.  1 dgs dgs 275916 Feb 19 15:06 tempfile.tmp&lt;br /&gt;
-rw-rw-r--.  1 dgs dgs   6321 Sep  8 14:45 WikiExtract.txt&lt;br /&gt;
[dgs@dgs1 ioc]$&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Collector_Box&amp;diff=4253</id>
		<title>Collector Box</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Collector_Box&amp;diff=4253"/>
		<updated>2024-01-10T21:03:18Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* In Each Collector Box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:Collectorbox.png|thumb|400px|Figure 1. One of the collector boxes on Gammasphere, circled in white; yellow-encased power supply above collector box and gray VME crate below.&lt;br /&gt;
poly 295 352 296 401 372 420 370 359 325 363 [[VME Crates]]&lt;br /&gt;
poly 431 272 417 283 416 315 456 323 463 351 487 352 537 326 537 257 488 285 [[VME Crates]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
As a part of [[Gammasphere]]&#039;s upgraded [[DAQ system]], a new &amp;quot;collector box&amp;quot; has been added. The collector box collects and maps all analog [[Detector Signals|signals]] for up to 30 [[Gammasphere Detectors|detectors]], coming from the pickoff card in the [[The Slope Box Extension|SBX]] to the collector, and being output to the [[Gammasphere Detectors|digitizers]].  For concepts like [[Detector Signals|&amp;quot;electric honeycomb&amp;quot;]], the collector box implements distinct hardware to accurately route signals to the digitizer. It does this this by utilizing time synchronization with its access to the trigger system to ensure that the correct set of samples are used for the reconstruction of each BGO waveform. Control and monitoring of Gammasphere&#039;s modules are maintained with the help of the collector box, using EPICS IOC. It provides power to individual SBX units via a singular 48V input from the power supply (above the circled collector box in the image to the right). &lt;br /&gt;
&lt;br /&gt;
The collector box was created to replace the system that preceded it, known as VXI crates. They consisted of multiple boards and racks, including over a hundred heavy, 60-foot multi-conductor cables that were draped all around Gammasphere. Detector [[The Slope Box|slope boxes]] were connected directly to an entirely separate system called the VXI system, which would convert the signals to digitizer-readable differential signals before sending them off to &amp;quot;VXI digitizers&amp;quot;. The VXI system had an entire &amp;quot;shack&amp;quot; designated to it, whereas the collector box upgrade can now be attached directly to Gammasphere&#039;s chassis and contain the DAQ system near the detectors. The previous system took up physical space within the room and presented a heat issue as well as multiple obsolescence risks and possibilities of power supply failure. The collector box eliminates these risks, and physically and digitally optimizes the overall system.&lt;br /&gt;
&lt;br /&gt;
==Collector Box Hardware==&lt;br /&gt;
===Throughout Gammasphere===&lt;br /&gt;
[[File:CollectorBoxesLayout.png|left|800px|thumb|Figure 2. A top-view mapping of Gammasphere&#039;s collector box setup.]]&lt;br /&gt;
Figure 1 shows a hemisphere of Gammasphere, and two of the collector boxes placed on it. On the other side of Gammasphere, there are another two collector boxes with the rest of the DAQ (the full picture is displayed on the [[DAQ system]] page). This is because Gammasphere has four pairs of collector boxes and VME crates (along with the power supply), each of which power and receive data from approximately 30 detectors. Figure 2 shows all of this from an above point of view; an &amp;quot;unfolded” drawing of how this mapping looks when viewing collectors and VME crates from their “active sides” where connections happen. Each collector box is shown (in the diagram) from the connector side, where cables are plugged in from the collector box to each [[The Slope Box Extension|SBX]] for power output. The output is accomplished using the same cable interfaces as used for the analog signal path, slow control-and-monitoring and all other detector functionality. All four collector boxes of Gammasphere are paired with their VME crate from their &amp;quot;active side&amp;quot;, where the arrangement of digitizers, IOCs, and trigger modules are carefully placed. The collector boxes are labeled with the “GS#” they appear as in EPICS, with even “GS” numbers on the south hemisphere and odd “GS” numbers on the northern hemisphere. The semicircle “N” in Figure 2 represents the Gammasphere’s northern hemisphere, while “S” represents Gammasphere’s southern hemisphere. The compass directions in purple (NE, NW, SE, SW) are as in the current in-front-of-[[Argonne Gas-Filled Analyzer|AGFA]] position. The collector boxes and VME crates are flipped right-to-left when comparing East versus West because the collector boxes are rotated 180 degrees in the birds’ eye view. Note that Figure 2 is giving a closeup of the system, but Figure 1 represents what the DAQ system actually looks like in real life. Although not shown in the Figure 2 diagram, each collector box also provides a connection for hooking up the alarm and status outputs from the external 48V DC supply, so that the collector can make that data available to the control system via the [[DGS Commander EPICS Screens|EPICS interface]]. &lt;br /&gt;
&lt;br /&gt;
===In Each Collector Box===&lt;br /&gt;
[[File:CollectorBoxHardware.png|600px|thumb|Figure 3. Collector box hardware]]&lt;br /&gt;
Observing Figure 2, one can note from each collector box that there are 30 output cables, each boxed in the diagram into groups of three. This is because there are six FPGAs (field-programmable gate arrays) programmed to handle 5 detectors at a time in units called &amp;quot;stripes&amp;quot;. The Collector Box maps the four differential signals from the Pickoff to specified digitizer channels, while distributing 48V Power to individual SBX Units. Built-in ground fault circuits periodically monitor continuity between the DVI cable shield and Earth ground, as ground loops are another known source of degraded performance. A distinct FPGA collects all BGO discriminator bits, calculates the [[Detector Signals|Electric Honeycomb]] for nearest neighbor Compton Suppression, and sends the information to a dedicated router of the trigger system via fiber optic cable. This Electric Honeycomb increases Compton suppression by up to 10% @ 1 MeV. With the Electric Honeycomb now supported by a distinct Trigger module, two of the four digitized channels have multiple options for readout. The Ge center and BGO sum will always remain fixed, but the other two can be assigned to the Ge sides, the BGO Hit Pattern, or to a copy of the Ge center at a fixed energy range (of 8 or 20 MeV). The collector box routes these values to the &amp;quot;front boards&amp;quot; to the digitizers in the [[VME Crates]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[DAQ system]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Run_procedures&amp;diff=4252</id>
		<title>Run procedures</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Run_procedures&amp;diff=4252"/>
		<updated>2023-09-20T21:27:55Z</updated>

		<summary type="html">&lt;p&gt;Jta: Removed incorrect commentary.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==start DAQ==&lt;br /&gt;
&lt;br /&gt;
There are 3 controls associated with Run Control on the main page of either GUI&lt;br /&gt;
&lt;br /&gt;
* Start/Stop - this is self explanatory. Pushing to start begins taking data.&lt;br /&gt;
* NoSave/Save - If set to Save, IOC buffers fill with data. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the DGS and DFMA systems you usually do the following:&lt;br /&gt;
&lt;br /&gt;
* on the DGS side, find the window where the DGS data is stored. There will be a start.sh script there. Start the receivers up by typing&lt;br /&gt;
&lt;br /&gt;
  start.sh &amp;lt;runNo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;runNo&amp;gt; is the run number you want. A bunch of windows should show up, one for each receiver/IOC pair&lt;br /&gt;
&lt;br /&gt;
* On the DFMA side, find the where the DFMA data is stored. There will be a start.sh script there. Start the receivers up by typing&lt;br /&gt;
&lt;br /&gt;
  start.sh &amp;lt;runNo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;runNo&amp;gt; is the run number you want, the same as what you used on the DGS side please. A bunch of windows should show up, one for each receiver/IOC pair now in the FMA setup&lt;br /&gt;
&lt;br /&gt;
* If necessary, synch the clocks of the two systems by clicking on the Impeartive sync button on the DGS side. Please don&#039;t click on the Impeartive sync button on the DFMA side or bad things will happen...&lt;br /&gt;
&lt;br /&gt;
* now, as simultaneous as you can, click the start buttons on the DGS and DFMA DAQ windows. You shoImpeartiveuld see the receivers on both systems receiving data.&lt;br /&gt;
&lt;br /&gt;
* may want to check that the data files are growing to be sure data is coming in&lt;br /&gt;
&lt;br /&gt;
* check that the dssd_liveTS show the same numbers on both sides (FMA-GS-Sync) on Darek computer &lt;br /&gt;
&lt;br /&gt;
If not : click on imp sync (GS side) but this should not happen very often&lt;br /&gt;
&lt;br /&gt;
*Check the digitizers counters at the FMA show the same&lt;br /&gt;
stop runs in both sides : click on stop in the commander windows&lt;br /&gt;
and then stop the receivers : type Ctrl C on all the receivers (IOC1, OIC2 ....)&lt;br /&gt;
 numbers on the left side of the window (AcEvCnt- AcHtCnt-DsCnt) and all dizitizers (right 3 raws of the window)&lt;br /&gt;
&lt;br /&gt;
* Check the MaterDiag counters : should show numbers if the beam is on &lt;br /&gt;
&lt;br /&gt;
* Check Sender Summary (VME SummaryDFMA window), the IOC&#039;s should keep updating at DGS&lt;br /&gt;
&lt;br /&gt;
==stop DAQ==&lt;br /&gt;
stop the run on both sides : click on stop in the commander windows &lt;br /&gt;
&lt;br /&gt;
and then stop the receivers : type Ctrl-C on all the receivers (IOC1, OIC2 ....)&lt;br /&gt;
&lt;br /&gt;
==Linking two or more systems==&lt;br /&gt;
&lt;br /&gt;
write your instructions here&lt;br /&gt;
&lt;br /&gt;
==syncing two systems==&lt;br /&gt;
&lt;br /&gt;
For DGS&lt;br /&gt;
&lt;br /&gt;
* Goto trig0 window.&lt;br /&gt;
* Turn off SYNC U - listed under LRU Control&lt;br /&gt;
* Make sure receive/send power is on for L &amp;amp; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If SYNC U is turned off - an Impeartive sync by DGS will reset the master clock on DFMA.&lt;br /&gt;
&lt;br /&gt;
For DFMA&lt;br /&gt;
&lt;br /&gt;
* Goto Trig0 Window&lt;br /&gt;
* Under Misc Control - turn on both undefined buttons&lt;br /&gt;
* Pull up diagnotsitc window on trig0.&lt;br /&gt;
* Set Clrk Source to LINK&lt;br /&gt;
* Set Nim1 and Nim2 out on master trigger module FMA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clock Source cannot be set to LINK in GUI. Set address 0x8D0 in slot 0 to set 1 for trigger modules. This needs to be fixed in Driver by Tim.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4251</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4251"/>
		<updated>2023-09-20T19:01:04Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;FOUR&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 7 will map /global to /dk/fs2/dgs/global_sl7.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
== File Structure of Boot Host DGS1 ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4250</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4250"/>
		<updated>2023-09-20T18:13:13Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How Gammasphere VME IOCs boot ===&lt;br /&gt;
Each of the VME processors in Gammasphere (VME01 - VME12) are embedded processors running the VxWorks operating system, version 5.5.  For some history see https://www.windriver.com/blog/vxworks-past-and-future, but don&#039;t allow the maximally stupid concept of &amp;quot;upgrading&amp;quot; to enter your mind.  Everything in the system is specifically dependent and designed for VxWorks version 5.5, and if you change that, you have contracted to spend the next 5 years of your life attempting to rebuild everything for ZERO functional gain.&lt;br /&gt;
&lt;br /&gt;
When the VxWorks processors are powered on they first boot from an onboard boot loader PROM.  If one has access to a console terminal window the data in the PROM may be viewed or edited.  The PROM specifies the IP address, user name and location of the boot script that the VME processor will load and execute after the initial PROM boot, and also the location of the VxWorks image.&lt;br /&gt;
&lt;br /&gt;
==== Boot Host for VME processors ====&lt;br /&gt;
Machine DGS1 is the boot host for VME processors. The VxWorks OS image and the boot scripts for all the VME processors are located on machine DGS1, starting at the folder /global/ioc.&lt;br /&gt;
&lt;br /&gt;
==== Shared File System ====&lt;br /&gt;
Machine DGS1 and other machines in the data room use a shared file server.  The /global folder on many machines is actually just a symbolic link.  /global, &#039;&#039;depending upon which machine you log into&#039;&#039;, may be one of &#039;&#039;&#039;&#039;&#039;FOUR&#039;&#039;&#039;&#039;&#039; different locations on the file server:&lt;br /&gt;
&lt;br /&gt;
   * Machines running a 64-bit OS like Rocky Linux will map /global to /dk/fs2/dgs/global_64.&lt;br /&gt;
   * Machines running Scientific Linux 7 will map /global to /dk/fs2/dgs/global_sl7.&lt;br /&gt;
   * Machines running Scientific Linux 6 (e.g. DGS1) will map /global to /dk/fs2/dgs/global_32.&lt;br /&gt;
   * One specific machine (CON6), critical to the maintenance of the system, maps /global to /dk/fs2/dgs/global_sandbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Updating_Firmware_in_Digitizers_and_Triggers&amp;diff=4249</id>
		<title>Updating Firmware in Digitizers and Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Updating_Firmware_in_Digitizers_and_Triggers&amp;diff=4249"/>
		<updated>2023-09-08T20:23:23Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Some more notes about flashing digitizers or triggers:==&lt;br /&gt;
# Log into dgs account on dgs1&lt;br /&gt;
# Get the *.bin from directory /Digitizer/MAIN_FPGA/Work11_DGS&lt;br /&gt;
## We have 4 flavors, MSTR_digitizer, SLAVE_digitizer, trigger_top and router_top&lt;br /&gt;
# copy to /home/dgs/tmadden/DGSDigFirmware or  /home/dgs/tmadden/DGSTrigFirmware &lt;br /&gt;
## You can rename file to reflect the date compiled e.g. MSTR_digitizer_2020722.bin&lt;br /&gt;
# cd /home/dgs/tmadden/swWork/workspace/epicsClient/src&lt;br /&gt;
# issue following: java -classpath jca-2.3.5.jar:caj-1.1.9.jar:fpgasender.jar plotControl &amp;lt;br&amp;gt;&lt;br /&gt;
# copy and paste below&lt;br /&gt;
&lt;br /&gt;
epics.epics_init(); &amp;lt;br&amp;gt;&lt;br /&gt;
var fn0=new String(&amp;quot;/home/dgs/tmadden/swWork/workspace/epicsClient/src/asynRecords.txt&amp;quot;); &amp;lt;br&amp;gt;&lt;br /&gt;
var fn1=new String(&amp;quot;/home/dgs/tmadden/retfile.bin&amp;quot;); &amp;lt;br&amp;gt;&lt;br /&gt;
epics.connectPVs(fn0); &amp;lt;br&amp;gt;&lt;br /&gt;
var digware=new String(&amp;quot;/home/dgs/tmadden/DGSDigFirmware/MSTR_digitizer_20200722.bin&amp;quot;); &amp;lt;br&amp;gt;&lt;br /&gt;
var slvware=new String(&amp;quot;/home/dgs/tmadden/DGSDigFirmware/SLAVE_digitizer_20200602.bin&amp;quot;);&amp;lt;br&amp;gt;&lt;br /&gt;
var mastware=new String(&amp;quot;/home/dgs/tmadden/DGSTrigFirmware/trigger_top_20160626.bin&amp;quot;);&amp;lt;br&amp;gt;&lt;br /&gt;
var routware=new String(&amp;quot;/home/dgs/tmadden/DGSTrigFirmware/router_top_20160601.bin&amp;quot;);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-&#039;&#039;&#039;NOTE: Need to define add current name of master, slave digitizer bin files and trigger &amp;amp; router bin file names&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
-&#039;&#039;&#039;NOTE: If bin file name is wrong, program will still try to flash and result will be yellow fever.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
-&#039;&#039;&#039;NOTE: The asynRecords.txt file defines the active crates. If you get a missing PV during setup, edit this file or better yet, make a new one and assign it instead.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get this far, you are now ready to flash the individual digitizers&lt;br /&gt;
&lt;br /&gt;
* To flash digitizer type epics.sendFpga(digware, fn1, 1, 0,1, 1, 1);&lt;br /&gt;
** This line sends the firmware file defined in digware to the board.&lt;br /&gt;
** The args of the function are defined as: epics.sendFgga(Firmwarename, ret file name, Crate num, Board num, erase, program, verify)&lt;br /&gt;
** IN the above function, we send digware to crate 1, board 0 and erase, program and verify the fpga.&lt;br /&gt;
* To Update the FPGA so it runs the new firmware. ON the dig boards there is a PV called GLBL:DIG:config_main_fpga that will reconfigure ALL digitizer FPGAs in DGS. This is convenient. &lt;br /&gt;
* To update a single FPGA, say in VME1, we use VME01:DIG1:config_main_fpga. Simple write a 1 to these PVs to reconfig the FPGAs. &lt;br /&gt;
* For the Trigger crate, a power cycle is needed but power cycle also works for digitizers too. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Below are cut and paste commands to use with DGS or DFMA ==&lt;br /&gt;
=== Trigger and Routers ===&lt;br /&gt;
&#039;&#039;&#039;For master trigger&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(mastware, fn1, 0, 0,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For routers&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(routware, fn1, 0, 1,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(routware, fn1, 0, 2,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(routware, fn1, 0, 3,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;add these for FMA&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
epics.sendFpga(routware, fn1, 0, 4,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(routware, fn1, 0, 5,1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DGS Digitizers===&lt;br /&gt;
&#039;&#039;&#039;master digitzers&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 6, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 10, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 11, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 11, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 12, 0, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 12, 2, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;slave digitzers&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 1, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 1, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 2, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 2, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 3, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 3, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 4, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 4, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 5, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 5, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 6, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 7, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 7, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 8, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 8, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 9, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 9, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 10, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 11, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 11, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 12, 1, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(slvware, fn1, 12, 3, 1,1,0);&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===For Non-Slave Configuration (FMA):===&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 1, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 2, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 3, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 4, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 5, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 6, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 6, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 6, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 6, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 7, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 8, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 0, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 1, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 2, 1,1,1);&amp;lt;br/&amp;gt;&lt;br /&gt;
epics.sendFpga(digware, fn1, 9, 3, 1,1,1);&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4247</id>
		<title>Firmware documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4247"/>
		<updated>2023-07-19T01:10:14Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;User manual&amp;quot; type documentation is provided here.  Newer versions may be present on the DGS Subversion repository as updating of this page is a manual process.&lt;br /&gt;
&lt;br /&gt;
* [[file:DGS_trigger_system_firmware_user_guide.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:MYRIAD_Module_Specification.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:ANL_Firmware_for_LBL_Digitizer.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
**  &#039;&#039; &#039;&#039;&#039;Scientists should first read&#039;&#039;&#039; &#039;&#039;  [[file:Non-Expert_ANL_Firmware_-_ANL_version.pdf]] as this provides a shorter summary of features and is easier to digest.&lt;br /&gt;
**  If you want to know more after the Non-Expert document &#039;&#039; &#039;&#039;&#039;then&#039;&#039;&#039; &#039;&#039; read  [[file:ANL_Digitizer_Firmware_for_Experts.pdf]] for further details about how the firmware works.&lt;br /&gt;
** These two documents are newer than [[file:ANL_Firmware_for_LBL_Digitizer.pdf]] and present firmware changes that have occurred since this document was written.&lt;br /&gt;
&lt;br /&gt;
* [[file:20160418_trig_command_link.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:CPLD_sum_logic.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:Interfacing_Digital_Gammasphere_with_other_detectors_and_systems.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:TripletPulseNotesTake2.pdf]]   was uploaded by JTA on 20180501.  This document demonstrates using the Digitizer Tester to show the effects of integration time and readout length settings on complex waveforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:ANL_Digitizer_Firmware_for_Experts.pdf&amp;diff=4246</id>
		<title>File:ANL Digitizer Firmware for Experts.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:ANL_Digitizer_Firmware_for_Experts.pdf&amp;diff=4246"/>
		<updated>2023-07-19T01:07:35Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4245</id>
		<title>Firmware documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4245"/>
		<updated>2023-07-19T01:06:47Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;User manual&amp;quot; type documentation is provided here.  Newer versions may be present on the DGS Subversion repository as updating of this page is a manual process.&lt;br /&gt;
&lt;br /&gt;
* [[file:DGS_trigger_system_firmware_user_guide.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:MYRIAD_Module_Specification.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:ANL_Firmware_for_LBL_Digitizer.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
**  &#039;&#039; &#039;&#039;&#039;Scientists should first read&#039;&#039;&#039; &#039;&#039;  [[file:Non-Expert_ANL_Firmware_-_ANL_version.pdf]] as this provides a shorter summary of features and is easier to digest.&lt;br /&gt;
&lt;br /&gt;
* [[file:20160418_trig_command_link.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:CPLD_sum_logic.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:Interfacing_Digital_Gammasphere_with_other_detectors_and_systems.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:TripletPulseNotesTake2.pdf]]   was uploaded by JTA on 20180501.  This document demonstrates using the Digitizer Tester to show the effects of integration time and readout length settings on complex waveforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4244</id>
		<title>Firmware documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Firmware_documentation&amp;diff=4244"/>
		<updated>2023-07-19T01:06:27Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;User manual&amp;quot; type documentation is provided here.  Newer versions may be present on the DGS Subversion repository as updating of this page is a manual process.&lt;br /&gt;
&lt;br /&gt;
* [[file:DGS_trigger_system_firmware_user_guide.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:MYRIAD_Module_Specification.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:ANL_Firmware_for_LBL_Digitizer.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
**  &#039;&#039; &#039;&#039;&#039;Scientists should first&#039;&#039;&#039;&#039; &#039;&#039; read [[file:Non-Expert_ANL_Firmware_-_ANL_version.pdf]] as this provides a shorter summary of features and is easier to digest.&lt;br /&gt;
&lt;br /&gt;
* [[file:20160418_trig_command_link.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:CPLD_sum_logic.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:Interfacing_Digital_Gammasphere_with_other_detectors_and_systems.pdf]]  was uploaded by JTA on 20180501.&lt;br /&gt;
&lt;br /&gt;
* [[file:TripletPulseNotesTake2.pdf]]   was uploaded by JTA on 20180501.  This document demonstrates using the Digitizer Tester to show the effects of integration time and readout length settings on complex waveforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Non-Expert_ANL_Firmware_-_ANL_version.pdf&amp;diff=4243</id>
		<title>File:Non-Expert ANL Firmware - ANL version.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Non-Expert_ANL_Firmware_-_ANL_version.pdf&amp;diff=4243"/>
		<updated>2023-07-19T01:04:21Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Pickoff_Card&amp;diff=4242</id>
		<title>The Pickoff Card</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Pickoff_Card&amp;diff=4242"/>
		<updated>2023-07-19T00:59:45Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pickofflabeled.png|475px|thumb|Figure 1. The SBX pickoff card, labeled.]]&lt;br /&gt;
The &amp;quot;SBX pickoff card&amp;quot; attached to the [[The Slope Box Extension|SBX]] of each detector receives the single-ended [[Detector Signals|signals]] for the Ge Center, Ge Sides, and BGO segments from the Slope Box. It converts these to differential signal format before sending them to the rest of the [[DAQ system]]. The SBX pickoff card is an FPGA-based design that provides a communication hub interfacing the preamp, power board, dongle and slope box to EPICS through a serial interface. Its receives all analog signals from the detector by directly plugging into the Slope Box, eliminating the &amp;quot;grey cables&amp;quot; that existed prior to the Gammasphere Upgrade.  From the 10 detector signals (Ge center contact, two Ge Side contacts and 7 BGO signals) the SBX pickoff generates the four digitizer signals GeCenter, BGOsum, GeSide &amp;amp; BGOpattern.  Many signal conditioning and multiplexing options for these four signals are included, all controllable from software through the FPGA&#039;s communication interface.  New signal combination modes built into the SBX pickoff&#039;s design now also enable new measurements that were previously unavailable.  These new features include&lt;br /&gt;
&lt;br /&gt;
* Software programmable DC offsets for all four digitizer signals&lt;br /&gt;
* 16 different, software-selectable gain settings for the GeCenter signal&lt;br /&gt;
* 16 different, software-selectable decay time constants for the GeCenter signal&lt;br /&gt;
* Software programmable voltage comparator to detect preamp reset conditions, connected to software programmable clamping circuit (DC level and clamp time) for baseline restoration after preamp reset&lt;br /&gt;
* 5 level programmable attenuation for the BGO sum signal&lt;br /&gt;
* 16 different signal multiplexing/addition combinations for the GeSide channel providing access to both side channels, a 2nd copy of the GeCenter at fixed 5MeV full scale gain and many FPGA-based digital pulse signals for diganostics and system tuning&lt;br /&gt;
* Individual BGO discriminators with programmable threshold for every BGO scintillator, connected both to FPGA based rate counters and to the [[Collector Box|collector box]] via a fast serial interface for formation of the [[Detector Signals|electric honeycomb]] 2nd-order suppression data&lt;br /&gt;
* Software selectable access, through the BGOpattern digitizer channel, to each BGO scintillator signal, the BGO pattern signal, or a 3rd copy of the GeCenter signal at fixed gains of either 8Mev full scale or 17MeV full scale&lt;br /&gt;
&lt;br /&gt;
Figure 1 shows the SBX pickoff card, with its various subsections highlighted. Parts of the pickoff card are dedicated to the processing of specific [[Detector Signals|signals]], like the Ge center, Ge sides, and BGO sum and BGO pattern. It is designed to stack up with the SBX power board, and has protruding connectors on two different sides to do so. It has connectors for an optional Raspberry Pi, which is meant to enable standalone detector operation. A DVI cable attaches to the pickoff card for connection to the collector box. This DVI cable contains the four digitizer signals plus power and communications.  The FPGA of the SBX pickoff performs automated scanning of the Preamp, the Power Board and the Slope Box continuously in the background using scan programs stored in read-only memory. At startup, the EEPROMs of both the Preamp and the Dongle are also read. Within the pickoff firmware, scanner machines run these scan programs with the help of transactor machines that perform individual reads/writes tailored to the specific communications protocols of each device (speed, signal types, etc). The data collected from these scanners are placed into a dual-port RAM inside the FPGA to make all collected status values available to EPICS.  All scanners can be paused to allow EPICS to manually insert commands to the transactors to set any detector device to new values. The status information collected by all these scanners is then written into a dual-port RAM by an arbiter machine. Values in the dual-port RAM are read by EPICS just like any register of the pickoff FPGA, hiding all device-specific timing from EPICS. &lt;br /&gt;
&lt;br /&gt;
== The VXI Pickoff Card (Before the Gammasphere Upgrade) ==&lt;br /&gt;
Large many-conductor grey cables ran between the Slope Box on each detector to the Pickoff cards in the VXI crates of the old system. The VXI Pickoff Card received the single-ended signals for the Ge Center, Ge Sides, and BGO segments from the Slope Box. The VXI pickoff converted them to differential signal format before sending them to the digitizer.  Detector signals were sent as single-ended signals on coax cables that were part of the grey cables, running parallel with multiple power supply voltages plus communication.  All power for Gammasphere detectors was generated by the bulk power supplies of the VXI crates, that also had to power the VXI cards.  The long cable runs and many connectors often resulted in noisy or marginal power for the detectors, and failing contacts in these cables caused an ever-growing maintenance issue.  The VXI pickoff passed the power and slow control through from the VXI cards to the grey cable while intercepting the side and center Ge signals plus the 7 BGO signals, converting them into the same GeCenter, BGOsum and GeSide differential digitizers still in use today.  The original VXI pickoff did not implement the BGOpattern signals or support for the electric honeycomb in any way.  While sufficient for many experiments, the &amp;quot;pass-through&amp;quot; mechanical nature of the VXI pickoff card created mechanical contact difficulties.  The functionality of the VXI pickoff has been completely replaced and significantly expanded upon by the SBX pickoff card.&lt;br /&gt;
[[File:VXI Pickoff card top view.jpg|thumb|400px|Figure 2. The VXI system, with old pickoff cards at the end of cables.]]&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4241</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4241"/>
		<updated>2023-07-19T00:31:23Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 388 753 245 317 285 203 320 108 322 27 1147 27 1554 62 1533 467 1373 424 1366 221 1123 148 771 216 701 136 307 206 290 346 386 410 434 576 820 507 874 639 388 753 [[The Slope Box]]&lt;br /&gt;
rect 801 256 1336 308 [[SBX Power Board]]&lt;br /&gt;
rect 814 454 1361 561 [[The Pickoff Card]]&lt;br /&gt;
rect 309 231 788 398 [[Raspberry Pi]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4240</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4240"/>
		<updated>2023-07-19T00:30:30Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 388 753 245 317 285 203 320 108 322 27 1147 27 1554 62 1533 467 1373 424 1366 221 1123 148 771 216 701 136 307 206 290 346 386 410 434 576 820 507 874 639 388 753 [[The Slope Box]]&lt;br /&gt;
rect 801 256 1336 308 [[SBX Power Board]]&lt;br /&gt;
rect 814 454 1361 461 [[The Pickoff Card]]&lt;br /&gt;
rect 309 231 788 398 [[Raspberry Pi]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4239</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4239"/>
		<updated>2023-07-19T00:29:11Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 388 753 245 317 285 203 320 108 322 27 1147 27 1554 62 1533 467 1373 424 1366 221 1123 148 771 216 701 136 307 206 290 346 386 410 434 576 820 507 874 639 388 753 [[The Slope Box]]&lt;br /&gt;
rect 801 256 1336 308 [[The Pickoff Card]]&lt;br /&gt;
rect 814 454 1361 461 [[SBX Power Board]]&lt;br /&gt;
rect 309 231 788 398 [[Raspberry Pi]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4238</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4238"/>
		<updated>2023-07-19T00:28:43Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 388 753 245 317 285 203 320 108 322 27 1147 27 1554 62 1533 467 1373 424 1366 221 1123 148 771 216 701 136 307 206 290 346 386 410 434 576 820 507 874 639 388 753 [[The Slope Box]]&lt;br /&gt;
rect 814 454 1361 461 [[SBX Power Board]]&lt;br /&gt;
rect 309 231 788 398 [[Raspberry Pi]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4237</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4237"/>
		<updated>2023-07-19T00:26:52Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 388 753 245 317 285 203 320 108 322 27 1147 27 1554 62 1533 467 1373 424 1366 221 1123 148 771 216 701 136 307 206 290 346 386 410 434 576 820 507 874 639 388 753 [[The Slope Box]]&lt;br /&gt;
rect 801 256 1336 308 [[The Pickoff Card]]&lt;br /&gt;
rect 814 454 1361 461 [[SBX Power Board]]&lt;br /&gt;
rect 309 231 788 398 [[Raspberry Pi]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4236</id>
		<title>The Slope Box Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=The_Slope_Box_Extension&amp;diff=4236"/>
		<updated>2023-07-19T00:18:58Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This image is clickable. Click text to go to the link.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:SBX.png|thumb|600px|Figure 1. SBX contents&lt;br /&gt;
poly 519 162 691 149 1552 217 1560 352 1200 548 1180 211 [[The Slope Box]]&lt;br /&gt;
poly 163 548 274 474 873 510 803 610 [[The Pickoff Card]]&lt;br /&gt;
poly 890 377 806 499 424 466 547 356 [[SBX Power Board]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
The Slope Box Extension (SBX) unit provides power to the detector and helps convert signals received from the detector to be sent to the [[Collector Box|collector box]]. It extends directly from the [[The Slope Box|slope box]]. The SBX contains a power board and &#039;&#039;&#039;[[The Pickoff Card|&amp;quot;pickoff card&amp;quot;]]&#039;&#039;&#039; along with an optional &#039;&#039;&#039;Raspberry Pi&#039;&#039;&#039; computer for standalone detecter operation. As a whole, the SBX is there to handle much of the signals and processing between the detectors and the greater [[DAQ system|data acquisition system]]. The power board of the SBX provides all necessary power to the detector from a single source (48VDC), and allows a single detector and its SBX to be run entirely from one PoE (power over ethernet) port, enabling a detector to operate by itself. Meanwhile, the pickoff card converts signals from the detector to go to the digitizer. Understanding the SBX on a hardware level can be understood by observing the functions of the [[The Pickoff Card|pickoff card]].  &lt;br /&gt;
&lt;br /&gt;
These electronics replace all utility of the previously used &amp;quot;VXI system&amp;quot;, while providing additional functionality previously unavailable. The addition of the Slope Box Extension moved all detector analog signal conditioning performed by the pickoff directly to the detector. Signal conversion prior to the existence of the SBX required extensive cabling and signal-carrying to the VXI sub-systems before being digitized. As a result of the changes, there is a significant reduction in cabling, and the elimination of the VXI sub-system that previously fulfilled the function of the SBX, making the detector easier to move in the future. The Slope Box Extension now drives a DVI-I cable containing the analog signals, power, and communication interface to a [[Collector Box|collector box]].&lt;br /&gt;
&lt;br /&gt;
==EDM Interface for Slope Box==&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi contains an EDM screen allowing users to read and write process variables (PVs). The Slope Box PVs include detector controls and monitoring (HV, Temps, etc.), and the SBX Pickoff PVs include control for signal processing functions (DC offset, gain range, Preamp Reset Clamping, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:PickoffControl Screen.png|frame|center|alt=Test Image Map&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Gammasphere Detectors]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:SBX.png&amp;diff=4235</id>
		<title>File:SBX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:SBX.png&amp;diff=4235"/>
		<updated>2023-07-19T00:18:23Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4233</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4233"/>
		<updated>2023-04-01T00:47:29Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+These devices are used both by data acquisition and by control &amp;amp; monitoring&lt;br /&gt;
|-&lt;br /&gt;
!  scope=col | Network name&lt;br /&gt;
!  scope=col | IP address &lt;br /&gt;
!  scope=col | Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+These devices are used by control &amp;amp; monitoring only.&lt;br /&gt;
|-&lt;br /&gt;
!  scope=col | Network name&lt;br /&gt;
!  scope=col | IP address &lt;br /&gt;
!  scope=col | Description&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+These devices are used by directly logging into them to control power to the VME crates, network switches and terminal servers.&lt;br /&gt;
|-&lt;br /&gt;
!  scope=col | Network name&lt;br /&gt;
!  scope=col | IP address &lt;br /&gt;
!  scope=col | Description&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+These devices are used by directly logging into them to connect to the console ports of IOC01 through IOC12.&lt;br /&gt;
|-&lt;br /&gt;
!  scope=col | Network name&lt;br /&gt;
!  scope=col | IP address &lt;br /&gt;
!  scope=col | Description&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+These devices are associated with the liquid nitrogen subsystem.&lt;br /&gt;
|-&lt;br /&gt;
!  scope=col | Network name&lt;br /&gt;
!  scope=col | IP address &lt;br /&gt;
!  scope=col | Description&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|-&lt;br /&gt;
| ln2con || 192.168.203.148 || Linux computer that lnfill boots from&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The Gammasphere DAQ system consists of VME crates, IOC Modules, Digitizers and Trigger Modules.  The original &amp;quot;analog&amp;quot; implementation of Gammasphere using the VXI modules used a charge-integrating ADC methodology and did not continuously digitize the data from the detectors.  The Digital Gammasphere system (2010s) introduced the digitizers as a replacement for the charge-integrating ADC functions of the VXI modules and replaces the &amp;quot;analog&amp;quot; system&#039;s trigger by a new trigger system, requiring a redesign of the DAQ.  The later &amp;quot;Gammasphere Upgrade&amp;quot; project (2019-2023) that resulted in the SBX, preamp and collector box hardware did not materially affect the DAQ but replaced all of the remaining control, monitoring and power distribution functions of the VXI system allowing removal of the VXI system and associated cable plant.&lt;br /&gt;
&lt;br /&gt;
Each digitizer in the system consists of 10 channels, but should be conceptualized as a pair of two &#039;&#039;sub-digitizers&#039;&#039; consisting of five channels each. There are two types of digitizers: master and slave. A pair of channels in a master digitizer receives signals from the Ge center and BGO sum from a single Gammasphere detector, while a channel-pair in the slave digitizer receives signals from the Ge side and BGO pattern. All channels in all digitizers run continuously.&lt;br /&gt;
&lt;br /&gt;
There are two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). All channels in all digitizers run continuously. There are two types of digitizers (master and slave) as well as two types of triggers (master and router).&lt;br /&gt;
&lt;br /&gt;
When discriminator logic within the digitizer firmware marks edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. Similarly the trigger modules have FIFO buffers that store information each time a trigger acceptance message is issued to the digitizers.  The IOC scans the FIFOs of all modules to see if there is data to read out through a series of programs named inLoop, outLoop and MiniSender. If data is available, the inLoop program reads it and stores the data read into memory buffers. Program outLoop verifies the integrity of the buffers and then hands control of the buffers to the MiniSender program.  A separate program running on a different computer called “gtReceiver” sends messages to each IOC&#039;s MiniSender program when it is capable of receiving data. The MiniSender program of each IOC, in response to requests from gtReceiver, then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then stores the data received to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4232</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4232"/>
		<updated>2023-04-01T00:30:53Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code used in the VME IOCs ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;br /&gt;
&lt;br /&gt;
=== Ensuring EPICS databases are up to date ===&lt;br /&gt;
# ssh -XY dgs@dgs1&lt;br /&gt;
# cd /global/ioc/db&lt;br /&gt;
# ./Export_SVN_Databases.sh&lt;br /&gt;
# You will have to reboot all the VME IOCs to load the new databases.&lt;br /&gt;
# You will have to stop and restart the Soft IOC to load the new databases.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4231</id>
		<title>Building the Entire System</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=Building_the_Entire_System&amp;diff=4231"/>
		<updated>2023-04-01T00:28:11Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A multi-stage make is required to build the .munch files for the IOCs.  Munch files are raw binary executable for the MVME5500&#039;s VxWorks operating system generated by a cross compiler.  The cross compiler resides on machine con6, a Sun Solaris machine.  This machine has no internal hard disk, it connects to the network file server.  This means files &#039;&#039;can&#039;&#039; be copied willy-nilly but that doesn&#039;t mean they &#039;&#039;should&#039;&#039; be.  Yes, physicists, I speak to you. &#039;&#039;&#039;DO NOT TOUCH /dk/fs2/dgs/global_sanbox EVER.  NO, NEVER!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Compiling the Code ===&lt;br /&gt;
# ssh -XY dgs@con6&lt;br /&gt;
# cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
# ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
# cd ../..&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# cd ../dgsIoc&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
## There should be ZERO errors and ZERO warnings.  Anything else is a fatal, full, stop.&lt;br /&gt;
# Log out of con6&lt;br /&gt;
# Log into dgs1 as dgs&lt;br /&gt;
# cd /global/ioc/bin/vxWorks-ppc604_long&lt;br /&gt;
# ./CopyNewMunch.sh&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4227</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4227"/>
		<updated>2023-03-30T01:25:39Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* DAQ System Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network names and IP addresses of the devices within Digital Gammasphere&lt;br /&gt;
|-&lt;br /&gt;
! Network name !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|-&lt;br /&gt;
 ln2con || 192.168.203.148 || Linux computer that lnfill boots from&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The Gammasphere DAQ system consists of VME crates, IOC Modules, Digitizers and Trigger Modules.  The original &amp;quot;analog&amp;quot; implementation of Gammasphere using the VXI modules used a charge-integrating ADC methodology and did not continuously digitize the data from the detectors.  The Digital Gammasphere system introduced the digitizers as a replacement for the charge-integrating ADC functions of the VXI modules and replaces the &amp;quot;analog&amp;quot; system&#039;s trigger by a new trigger system, requiring a redesign of the DAQ.  The later &amp;quot;Gammasphere Upgrade&amp;quot; project that resulted in the SBX, preamp and collector box hardware did not materially affect the DAQ but replaced all of the remaining control, monitoring and power distribution functions of the VXI system allowing removal of the VXI system and associated cable plant.&lt;br /&gt;
&lt;br /&gt;
There are two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). All channels in all digitizers run continuously. When discriminator logic within the digitizer firmware marks edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. Similarly the trigger modules have FIFO buffers that store information each time a trigger acceptance message is issued to the digitizers.  The IOC scans the FIFOs of all modules to see if there is data to read out through a series of programs named inLoop, outLoop and MiniSender. If data is available, the inLoop program reads it and stores the data read into memory buffers. Program outLoop verifies the integrity of the buffers and then hands control of the buffers to the MiniSender program.  A separate program running on a different computer called “gtReceiver” sends messages to each IOC&#039;s MiniSender program when it is capable of receiving data. The MiniSender program of each IOC, in response to requests from gtReceiver, then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then stores the data received to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4226</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4226"/>
		<updated>2023-03-30T01:18:29Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* DAQ System Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network names and IP addresses of the devices within Digital Gammasphere&lt;br /&gt;
|-&lt;br /&gt;
! Network name !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|-&lt;br /&gt;
 ln2con || 192.168.203.148 || Linux computer that lnfill boots from&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). All channels in all digitizers run continuously. When discriminator logic within the digitizer firmware marks edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. Similarly the trigger modules have FIFO buffers that store information each time a trigger acceptance message is issued to the digitizers.  The IOC scans the FIFOs of all modules to see if there is data to read out through a series of programs named inLoop, outLoop and MiniSender. If data is available, the inLoop program reads it and stores the data read into memory buffers. Program outLoop verifies the integrity of the buffers and then hands control of the buffers to the MiniSender program.  A separate program running on a different computer called “gtReceiver” sends messages to each IOC&#039;s MiniSender program when it is capable of receiving data. The MiniSender program of each IOC, in response to requests from gtReceiver, then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then stores the data received to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4225</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4225"/>
		<updated>2023-03-30T01:13:32Z</updated>

		<summary type="html">&lt;p&gt;Jta: /* DAQ System Function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network names and IP addresses of the devices within Digital Gammasphere&lt;br /&gt;
|-&lt;br /&gt;
! Network name !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|-&lt;br /&gt;
 ln2con || 192.168.203.148 || Linux computer that lnfill boots from&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). All channels in all digitizers run continuously. When discriminator logic marks leading edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. The IOC scans the FIFOs to see if there is data to read out. If so, the IOC reads it out into buffers. A program called “gtReceiver” sends messages to each IOC when the receiver is ready for more data. The IOC then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then routes the packets to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4224</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4224"/>
		<updated>2023-03-29T20:53:27Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network names and IP addresses of the devices within Digital Gammasphere&lt;br /&gt;
|-&lt;br /&gt;
! Network name !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|-&lt;br /&gt;
 ln2con || 192.168.203.148 || Linux computer that lnfill boots from&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). In the current version of the upgraded Gammasphere DAQ system, some of the old hardware is still used, but in a different way. All channels in all digitizers run continuously. When discriminator logic marks leading edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. The IOC scans the FIFOs to see if there is data to read out. If so, the IOC reads it out into buffers. A program called “gtReceiver” sends messages to each IOC when the receiver is ready for more data. The IOC then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then routes the packets to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4223</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4223"/>
		<updated>2023-03-29T20:38:26Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network names and IP addresses of the devices within Digital Gammasphere&lt;br /&gt;
|-&lt;br /&gt;
! Network name !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| ln2con || 192.168.203.148 || Linux computer that controls and monitors the liquid nitrogen fill system&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). In the current version of the upgraded Gammasphere DAQ system, some of the old hardware is still used, but in a different way. All channels in all digitizers run continuously. When discriminator logic marks leading edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. The IOC scans the FIFOs to see if there is data to read out. If so, the IOC reads it out into buffers. A program called “gtReceiver” sends messages to each IOC when the receiver is ready for more data. The IOC then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then routes the packets to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4222</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4222"/>
		<updated>2023-03-29T20:36:31Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! NodeName(ssh) !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ioc01: || 192.168.203.141 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc02: || 192.168.203.142 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc03: || 192.168.203.143 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc04: || 192.168.203.144 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc05: || 192.168.203.145 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc06: || 192.168.203.177 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc07: || 192.168.203.178 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc08: || 192.168.203.179 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc09: || 192.168.203.180 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc10: || 192.168.203.183 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc11: || 192.168.203.181 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| ioc12: || 192.168.203.182 || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || 192.168.203.88 || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || 192.168.203.149 || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || 192.168.203.42 || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || 192.168.203.26 || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || 192.168.203.224 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || 192.168.203.225 || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts-north || 192.168.203.91 || Terminal server providing console port access for ioc07 through ioc12&lt;br /&gt;
|-&lt;br /&gt;
| gs-ts_south || 192.168.203.186 || Terminal server providing console port access for ioc01 through ioc06&lt;br /&gt;
|-&lt;br /&gt;
| ln2con || 192.168.203.148 || Linux computer that controls and monitors the liquid nitrogen fill system&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || 192.168.203.121 || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). In the current version of the upgraded Gammasphere DAQ system, some of the old hardware is still used, but in a different way. All channels in all digitizers run continuously. When discriminator logic marks leading edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. The IOC scans the FIFOs to see if there is data to read out. If so, the IOC reads it out into buffers. A program called “gtReceiver” sends messages to each IOC when the receiver is ready for more data. The IOC then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then routes the packets to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4221</id>
		<title>DAQ system</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=DAQ_system&amp;diff=4221"/>
		<updated>2023-03-29T20:30:08Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;This is an image map. Click on a section of the picture to go to the page for that item.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:GammasphereDAQupgrade.jpg|700px|center|thumb|Figure 1. DAQ System circled in red; one rack for each of the four &amp;quot;hemispheres&amp;quot; of Gammasphere&lt;br /&gt;
poly 135 204 209 219 258 192 250 266 213 293 137 268 [[VME Crates]]&lt;br /&gt;
poly 904 385 977 402 1030 373 1029 438 979 470 904 452 [[VME Crates]]&lt;br /&gt;
poly 1039 326 1097 339 1143 308 1148 378 1096 406 1058 376 1027 364 [[VME Crates]]&lt;br /&gt;
poly 134 167 135 197 209 217 257 184 256 162 208 185 [[Collector Box]]&lt;br /&gt;
poly 906 347 906 367 977 395 1022 369 1025 345 977 367 [[Collector Box]]&lt;br /&gt;
poly 1034 287 1103 301 1146 275 1146 299 1100 323 1042 311 [[Collector Box]]&lt;br /&gt;
poly 199 104 137 158 206 175 269 139 [[DAQ Power Supply]]&lt;br /&gt;
poly 312 42 253 96 317 113 375 58 [[DAQ Power Supply]]&lt;br /&gt;
poly 902 339 966 285 1034 321 976 356 [[DAQ Power Supply]]&lt;br /&gt;
poly 1021 274 1081 225 1140 242 1089 293 [[DAQ Power Supply]]&lt;br /&gt;
poly 445 151 432 123 398 113 351 138 305 218 291 285 290 337 300 382 336 429 370 423 421 413 356 454 276 423 251 353 252 293 267 219 304 138 344 95 379 79 428 88 472 135 [[Liquid Nitrogen]]&lt;br /&gt;
poly 838 557 809 506 804 446 808 384 828 320 865 258 911 222 960 212 1010 233 1021 293 991 288 969 251 950 241 935 239 901 264 876 300 860 331 846 378 839 428 839 470 847 516 850 532[[Liquid Nitrogen]]&lt;br /&gt;
poly 502 374 499 305 519 251 564 207 615 184 660 181 713 195 759 233 783 277 796 329 788 382 764 427 710 470 648 483 587 471 533 431 [[Gammasphere|Gammasphere frame (without detectors in it)]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
Gammasphere&#039;s DAQ system (data acquisition system) is now placed on relay racks by each side of its &amp;quot;hemispheres&amp;quot;. Each of the racks for the DAQ consists of a [[DAQ Power Supply|power supply]], a [[Collector Box|collector box]], and a [[VME Crates|VME crate]]. The data acquisition system observes, interprets, and modifies data taken from [[Gammasphere]] and appropriately presents it to the user.  &lt;br /&gt;
&lt;br /&gt;
The picture above provides an overall map to the naming conventions associated with the system.  Cardinal directions are shown in &#039;&#039;&#039;purple&#039;&#039;&#039; text, process variable (EPICS) names are shown in &#039;&#039;&#039;green&#039;&#039;&#039; text and network IDs are shown in &#039;&#039;&#039;red&#039;&#039;&#039; text.  There are multiple computers within the DAQ system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! NodeName(ssh) !! IP address !! Description&lt;br /&gt;
|-&lt;br /&gt;
| VME01: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME02: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME03: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME04: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME05: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME06: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME07: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME08: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME09: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME10: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME11: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| VME12: || Example || MVME5500 VME processor used for control and readout&lt;br /&gt;
|-&lt;br /&gt;
| gs-cne || Example || Raspberry Pi inside the North East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cnw || Example || Raspberry Pi inside the North West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-cse || Example || Raspberry Pi inside the South East Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-csw || Example || Raspberry Pi inside the South West Collector box&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu-north || Example || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| gs-pdu_south || Example || Power Distribution Unit for the North Hemisphere&lt;br /&gt;
|-&lt;br /&gt;
| ln2con || Example || Linux computer that controls and monitors the liquid nitrogen fill system&lt;br /&gt;
|-&lt;br /&gt;
| lnfill || Example || Embedded VME processor that hosts the EPICS databases for valve status and valve control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When [[Gammasphere]] collects data, single-ended [[Detector Signals|signals]] are first collected from the slope box for the Ge Center, Ge Sides, and BGO segment. The signals are converted to differential signals by the [[The Slope Box Extension|SBX]], and are then sent to the collector box so the signals can properly be routed to the digitizers. The digitizers process and output the desired information to the user based upon their data specifications. The DAQ system is an FPGA-based design that provides communication hub interfacing the [[Preamplifier|preamp]], power board, dongle and slope box to EPICS through serial interface. Analog signal paths are completely software controlled.  &lt;br /&gt;
==DAQ System Function==&lt;br /&gt;
The DAQ system prior to upgrades consisted of VME crates, IOC Modules, Digitizers and Trigger Modules. There were two types of Digitizers (Master and Slave) and well as Trigger (Master and Router). In the current version of the upgraded Gammasphere DAQ system, some of the old hardware is still used, but in a different way. All channels in all digitizers run continuously. When discriminator logic marks leading edges of gamma-ray signals, energy sums, timing and other data are stored in a header identifying the event. If the event is selected for readout by the trigger system, the header and a programmable amount of waveform is transferred from the channel to the board-wide FIFO (first in, first out) data holder. The IOC scans the FIFOs to see if there is data to read out. If so, the IOC reads it out into buffers. A program called “gtReceiver” sends messages to each IOC when the receiver is ready for more data. The IOC then breaks apart buffers into UDP packets and sends them to gtReceiver. The gtReceiver program then routes the packets to files that may be organized by digitizer or by channel. &lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Image:DAQSystem.png|center|thumb|700px|Figure 2. Diagram of the DAQ system process. &lt;br /&gt;
rect 454 225 478 241 [[Gammasphere Detectors]]&lt;br /&gt;
rect 550 225 575 242 [[Gammasphere Detectors]]&lt;br /&gt;
rect 642 225 665 241 [[Gammasphere Detectors]]&lt;br /&gt;
poly 451 211 449 224 481 224 480 213 [[The Slope Box]]&lt;br /&gt;
poly 546 212 545 224 575 224 576 216 [[The Slope Box]]&lt;br /&gt;
poly 637 209 637 222 667 223 667 214 [[The Slope Box]]&lt;br /&gt;
rect 435 211 448 222 [[The Slope Box Extension]]&lt;br /&gt;
rect 532 213 544 223 [[The Slope Box Extension]]&lt;br /&gt;
rect 624 211 635 221[[The Slope Box Extension]]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;To view how this system is controlled, go to [[DGS Commander EDM Screens]].&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Go back to [[Digital Gammasphere Upgrade Project]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:GammasphereDAQupgrade.jpg&amp;diff=4219</id>
		<title>File:GammasphereDAQupgrade.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:GammasphereDAQupgrade.jpg&amp;diff=4219"/>
		<updated>2023-03-29T20:17:09Z</updated>

		<summary type="html">&lt;p&gt;Jta: Jta uploaded a new version of File:GammasphereDAQupgrade.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DAQ System circled in red&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:GammasphereDAQupgrade.jpg&amp;diff=4218</id>
		<title>File:GammasphereDAQupgrade.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:GammasphereDAQupgrade.jpg&amp;diff=4218"/>
		<updated>2023-03-29T20:15:44Z</updated>

		<summary type="html">&lt;p&gt;Jta: Jta uploaded a new version of File:GammasphereDAQupgrade.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DAQ System circled in red&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=EPICS_control_of_digitizers&amp;diff=4217</id>
		<title>EPICS control of digitizers</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=EPICS_control_of_digitizers&amp;diff=4217"/>
		<updated>2023-03-29T18:28:25Z</updated>

		<summary type="html">&lt;p&gt;Jta: Created page with &amp;quot;EPICS (xperimental Physics and Industrial Control System) is a framework of software that provides a distributed database of &amp;#039;&amp;#039;process variables&amp;#039;&amp;#039; (PVs) shared among an arbitr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EPICS (xperimental Physics and Industrial Control System) is a framework of software that provides a distributed database of &#039;&#039;process variables&#039;&#039; (PVs) shared among an arbitrary number of computers, known within EPICS documentation as IOCs (Input-Output Controllers).  By itself, EPICS does nothing of use, but it is a communications framework upon which control systems are built.  The &#039;&#039;process variables&#039;&#039; are bits, multi-bit groups, integer words and floating point values that represent states or values within the data acquisition system.  Process variables are connected to actual hardware by developing &#039;&#039;device driver&#039;&#039; software that communicates with the hardware in the format the hardware requires and by developing &#039;&#039;device support&#039;&#039; software that connects process variables to the device drivers to either read information from the hardware for display to the user (monitoring) or to cause writes to the hardware when the user changes the value of a process variable (control).&lt;br /&gt;
&lt;br /&gt;
== User interface to process variables ==&lt;br /&gt;
The user interfaces with process variables either through graphical user interfaces (GUIs) or by command-line operations.  Digital Gammasphere uses the EDM (Extensible Display Manager) as its GUI.  Everything in the GUI screens is either text, simplistic graphics, monitoring objects that display the value of PVs, control objects that allow users to change the value of PVs or links to other screens or scripts.  On the command line, the &#039;caget&#039; command allows the user to read the value of a PV and the &#039;caput&#039; command allows the user to set a PV to a new value.&lt;br /&gt;
&lt;br /&gt;
== Databases ==&lt;br /&gt;
Process variables are defined using database files that enumerate all the PVs in the system.  Each PV is a &#039;record&#039; that defines the type of PV that it is and has a field (INP or OUT) that provides the linkage information needed to connect the PV to the name of some hardware register.  Each PV also has a DTYP field that defines which device support software package will process the PV.  &amp;quot;Input&amp;quot;, or &amp;quot;read&amp;quot;, or &amp;quot;monitoring&amp;quot; PVs will typically have a SCAN field that specifies how often they are read and processed.  &amp;quot;Output&amp;quot;, &amp;quot;write&amp;quot; or &amp;quot;control&amp;quot; PVs only process when changed.&lt;br /&gt;
&lt;br /&gt;
== Building the DGS EPICS system ==&lt;br /&gt;
DGS (Digital Gammasphere) contains multiple VME crates each with some number of digitizer and/or trigger boards under the control of an IOC (MVME5500 processor board running the VxWorks operating system).  Each VME IOC runs &#039;&#039;&#039;&#039;&#039;multiple&#039;&#039;&#039;&#039;&#039; threads of software of which EPICS is just one.  EPICS is a lower priority thread than the readout software, and EPICS is not the readout software.  &lt;br /&gt;
&lt;br /&gt;
In addition to the VME IOCs, the four Collector Boxes each contain a Raspberry Pi model 3b+ running Raspbian Linux, and one of the threads running on each Collector Box is EPICS making each of these four Raspberry Pis an IOC.&lt;br /&gt;
&lt;br /&gt;
There is also an embedded VME processor board in the liquid nitrogen system that is an EPICS IOC, and finally Linux machine DGS1 is also an IOC.&lt;br /&gt;
&lt;br /&gt;
All of these IOCs host databases containing PVs related to the hardware that each IOC is directly connected to, with the exception of DGS1.  The IOC of DGS1 connects to no data acquisition hardware directly, and is used only to run process variables that connect to other process variables.  Examples of this are&lt;br /&gt;
&lt;br /&gt;
* Overall system controls such as Run/Stop or Save/NoSave&lt;br /&gt;
* Global values that, once changed, then propagate throughout the system to cause many hardware-connected PVs to all take on the value of the global PV&lt;br /&gt;
* Miscellaneous conversion/calculation PVs that take values from hardware-related PVs to generate monitoring values in a more pleasant format for the human to read&lt;br /&gt;
&lt;br /&gt;
== Root sources of information ==&lt;br /&gt;
The root source of all EPICS information are the &#039;&#039;&#039;Code Generating Spreadsheets&#039;&#039;&#039; maintained in a Subversion repository by the engineers of the Low Energy Technical Support group.  These Excel spreadsheets enumerate all the registers within the firmware of each device (digitizer, SBX, collector box, trigger, etc.) throughout Digital Gammasphere. Code within these spreadsheets (Visual Basic for Applications, or VBA) uses text template files to write all EPICS database files used throughout the system.  If a firmware upgrade occurs, the engineer updates the physical register maps in the spreadsheet, hits a button and a few seconds later all the databases are rewritten to match.&lt;br /&gt;
&lt;br /&gt;
=== Building the IOC device support ===&lt;br /&gt;
The device support for the VME IOCs is a mix of C and C++ code that is maintained on the same Subversion repository (https://svn.inside.anl.gov/repos/dgs) as the code generating spreadsheets.  As the MVME5500 VME processors run VxWorks, a cross-compiler is required.  An ancient Solaris machine (con6.phy.anl.gov) is the sole and only host of the cross-compiler license.  This ancient machine has no disk drives of its own and uses a part of the shared disk structure used by all the Linux boxes in the data room.  However, one must log in to this machine to use its software.&lt;br /&gt;
&lt;br /&gt;
* The full path to where the code is stored is /dk/fs2/dgs/global_sandbox/devel/.&lt;br /&gt;
* When logged into machine con6 as user dgs, this path now shows as /global/devel&lt;br /&gt;
* Beneath this path are two subfolders, dgsDrivers and dgsIoc.&lt;br /&gt;
** dgsDrivers is the device support code.&lt;br /&gt;
** dgsIoc is a &amp;quot;psuedo project&amp;quot; in that there&#039;s no code here, it&#039;s just used for the cross compilation.&lt;br /&gt;
&lt;br /&gt;
==== Specific compilation steps on con6 ====&lt;br /&gt;
&lt;br /&gt;
* log in to machine con6 as user dgs.&lt;br /&gt;
* cd /global/devel/dgsDrivers&lt;br /&gt;
* make clean&lt;br /&gt;
* make&lt;br /&gt;
** You should get 0 warnings and 0 errors.  Anything else is failure.&lt;br /&gt;
* cd ../dgsIoc&lt;br /&gt;
* make clean&lt;br /&gt;
* make&lt;br /&gt;
** You should get 0 warnings and 0 errors.  Anything else is failure.&lt;br /&gt;
&lt;br /&gt;
==== Updating the code from the code generating spreadsheets ====&lt;br /&gt;
If the firmware has been updated and the spreadsheets modified, running the VBA code for the different spreadsheets will, in addition to writing databases, also write C code that is part of the con6 compile.  There are three spreadsheets associated with this:&lt;br /&gt;
&lt;br /&gt;
*  The DGS_CSDigitizer spreadsheet models the digitizers and writes two files used by con6.&lt;br /&gt;
*  The DGS_MTrig spreadsheet models the master trigger and writes two files used by con6.&lt;br /&gt;
*  The DGS_RTrig spreadsheet models the router triggers and writes two files used by con6.&lt;br /&gt;
&lt;br /&gt;
If any spreadsheet has been changed and re-run, the files generated thereby must be copied to machine con6 before a recompile.  This is done by entering the commands&lt;br /&gt;
&lt;br /&gt;
* cd /global/devel/dgsDrivers/dgsDriverApp/src&lt;br /&gt;
* ./Export_SVN_ParameterFiles.sh&lt;br /&gt;
&lt;br /&gt;
The Bash script will ask for a username and password for access to the Subversion repository and also ask for the password to ssh into machine DGS1 for the Subversion operations, because machine con6 has no working copy of the Subversion client.&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_53.png&amp;diff=2232</id>
		<title>File:Dig pic 53.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_53.png&amp;diff=2232"/>
		<updated>2021-09-20T15:53:28Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_52.png&amp;diff=2231</id>
		<title>File:Dig pic 52.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_52.png&amp;diff=2231"/>
		<updated>2021-09-20T15:53:18Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_51.png&amp;diff=2230</id>
		<title>File:Dig pic 51.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_51.png&amp;diff=2230"/>
		<updated>2021-09-20T15:53:08Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_50.png&amp;diff=2229</id>
		<title>File:Dig pic 50.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_50.png&amp;diff=2229"/>
		<updated>2021-09-20T15:52:58Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_47.png&amp;diff=2228</id>
		<title>File:Dig pic 47.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_47.png&amp;diff=2228"/>
		<updated>2021-09-20T15:52:49Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_44.png&amp;diff=2227</id>
		<title>File:Dig pic 44.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_44.png&amp;diff=2227"/>
		<updated>2021-09-20T15:52:39Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_43.png&amp;diff=2226</id>
		<title>File:Dig pic 43.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_43.png&amp;diff=2226"/>
		<updated>2021-09-20T15:52:26Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_42.png&amp;diff=2225</id>
		<title>File:Dig pic 42.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_42.png&amp;diff=2225"/>
		<updated>2021-09-20T15:52:17Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_41.png&amp;diff=2224</id>
		<title>File:Dig pic 41.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_41.png&amp;diff=2224"/>
		<updated>2021-09-20T15:52:07Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dic_pic_40.png&amp;diff=2223</id>
		<title>File:Dic pic 40.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dic_pic_40.png&amp;diff=2223"/>
		<updated>2021-09-20T15:51:46Z</updated>

		<summary type="html">&lt;p&gt;Jta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_39.png&amp;diff=2222</id>
		<title>File:Dig pic 39.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_39.png&amp;diff=2222"/>
		<updated>2021-09-20T15:51:09Z</updated>

		<summary type="html">&lt;p&gt;Jta: cfd discriminator pre-arming&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
cfd discriminator pre-arming&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
	<entry>
		<id>https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_38.png&amp;diff=2221</id>
		<title>File:Dig pic 38.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.anl.gov/wiki_gsdaq/index.php?title=File:Dig_pic_38.png&amp;diff=2221"/>
		<updated>2021-09-20T15:50:40Z</updated>

		<summary type="html">&lt;p&gt;Jta: led mode waveform overlay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
led mode waveform overlay&lt;/div&gt;</summary>
		<author><name>Jta</name></author>
	</entry>
</feed>