FELIX simple manual

Some notes in the front

These must be running on felix machine. (um-felix1.cern.ch, um-felix2.cern.ch)

Necessary steps for each terminal

  1. Login to one of our felix machine: um-felix1.cern.ch, um-felix2.cern.ch.
  2. setup environment:
    source /home/setup/setup.sh

Step that you might need to take from time to time

  1. Install felix firmware(if you haven't done it):
    vivado (you might need to use another account to open it)

    Auto connect

    then, select hardware manager. Choose the xcku115_0 FPGA. use the FLX_712 binary file under /afs/cern.ch/user/x/xuwa/public

    restart the felix machine.

Steps after you restart the computer

  1. Get the felix driver started:
    sudo /etc/init.d/drivers_flx start
  2. GBT phase alignment:
    flx-init -T 2

Steps after you power on

  1. Correct gbtx setting. Check out this script as an example for uploading gbtx config!

    For current pFEB test, use this one:


  2. Correctly set up "elinkconfig". Need TH_FO, FH_FO to be None for all, and Clock to be coming from TTC. Other parameters need to be "Generate/Upload" to be effective.


# then "open" either of those .elc file as a starting point. The files below only have link0, and then you can replicate to other link.

# /afs/cern.ch/work/r/rowang/public/FELIX/ElinkConfig/config_felixcore.elc

# /afs/cern.ch/user/r/rowang/public/FELIX/ElinkConfig/config_felixcore.elc

To run!

  1. open felixcore (hard core): (need the -elinks option for swROD to subscribe onto)
    felixcore --data-interface=eno1 --elinks=0-500
  2. opcserver. you can use the FELIX GUI to generate one, remember it will have a hostname automatically added behind your original name.
    OpcServer can only be properly stopped by `kill -9` or `Ctrl+C` or `Ctrl+\`
    /home/ScaOpcUa_1.3.2_N/bin/OpcUaScaServer <Your Opc Server File>.xml


Set up FELIX

  1. Q: During `flx-init -T 2`, it's prompting me LO register 0x02, and it never ends, what is happening?
    A: It's very likely that the TTCvx module is not pushed in fully in the crate! Or the LEMO cable/connector is bad..

Start up FELIX

  1. Q: felixcore command is not found?
    A: You need to setup the environment! See Necessary steps, source ...
  2. Q: The felixcore gives me a lot of error and doesn't get stabilized.
    A: Check if you have a correctly configured gbtx and elink config. Sometimes need to check MiniSAS connection. See also the point below.
  3. Q: Sometimes felixcore can't stabilize, sometimes the OpcServer gives me endless error of "broken frame".
    A: Congrats ::)) This is by far the most tricky error. In most cases it's unstable MiniSAS connector issue. Could also be overheating. We don't know, honestly. Try everything from reloading firmware, restart, set up, and pray...
  4. Q: The OpcServer got a "Deferred blablabla"
    A: It usually comes up the first time you have a good environment for felixcore! Congratulation, finally!
  5. Q: The OpcServer /felixcore closes immediately.
    A: Check if there's other processes occupying the resources. Usually check "ps aux | grep "Opc\|felixcore"". Kill with -9 for the OpcUaScaServer if it's there.
  6. Q: The OpcServer gives me endless error of "link not found".
    A: Check if you have a correctly configured gbtx and elink config. Sometimes need to check MiniSAS connection.


  1. Q: After configuring, it kept promping a lot of the following:

    Can't write I2c: bad-status: BadOutOfService (0x808d0000)

    Can't read GPIO: OPC-UA read: variable status is not goodBadResourceUnavailable (0x80040000)

    A: Check if OPC server is acting weirdly? If so, please restart felixcore and opc server. If not consider Q2
  2. Q: After configuring I get a limited number of

    Can't write I2c: bad-status: BadCommunicationError (0x80050000)

    A: Check if the message appears after trying to configure certain chip. If it's under rocCoreDigital, first you can try to configure gbtx phase again. And then if the problem is still there, you might need to tune parameters like roc internal pll phase.

  3. Q: After configuring, it kept promping a lot of the following(in the configure front end):

    0x80ae0000 explanation=' BadConnectionClosed (0x80ae0000)']

    A: Check if you have a correct NodeID existing in the OpcServer file. This error comes from OpcClient cannot find corresponding node! I suggest you to use FELIXGui to generate the OpcServer file!

  4. Q: My configuration hang there and time out eventually, what happened?
    A: We currently use ssh non-interactive shell to login to sbc machine to do all the configuration. This is because after configuration we also need to send sbc signals. In case of hanging, usually the connection to the server is waiting for interactive prompt. Go to here for more.

Data Taking

  1. Q: I see no data coming out..
    A: Well, the felixcore might be corrupted! Check OpcServer to see if the link is still there. It's better to start over.

-- RongkunWang - 2019-05-16

Edit | Attach | Watch | Print version | History: r17 < r16 < r15 < r14 < r13 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r17 - 2019-08-13 - RongkunWang
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback