Skip to content

Load Your First Config

A "config" in BEC usually refers to a device configuration, which specifies all the devices with which BEC can communicate and use in scans.

Goal

In this tutorial you will load the demo device configuration and use it to explore the first devices in your BEC session. By the end, you will have a live dev namespace with simulated devices and know the two fastest ways to inspect a device from the shell.

Before you start

Continue with the same BEC session you opened in 01 Open BEC.

1. Load the demo configuration

We will load a config with simulated devices, including motors and detectors. This mimics a beamline environment for learning and testing.

Load that demo configuration now:

bec.config.load_demo_config()
A recovery config was written to ...

2. Check the available devices

Inspect the devices currently available in the session:

dev.show_all()
┏━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃         ┃         ┃         ┃         ┃         ┃ Device  ┃ Reado… ┃ Device  ┃
┃ Device  ┃ Descri… ┃ Status  ┃ ReadOn… ┃ Softwa… ┃  class  ┃ prior… ┃  tags   ┃
┡━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│  eiger  │         │ enabled │  False  │  True   │ ophyd_… │ async  │ {'dete… │
│ dyn_si… │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │  set()  │
│ pseudo… │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │  set()  │
│ hexapod │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│ eyefoc  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  eyex   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  eyey   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│ flyer_… │         │ disabl… │  False  │  False  │ ophyd_… │ on_re… │ {'flye… │
│  hrox   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  hroy   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  hroz   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│   hx    │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│   hy    │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│   hz    │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  mbsx   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  mbsy   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  pinx   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  piny   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  pinz   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  samx   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  samy   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  samz   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'user  │
│         │         │         │         │         │         │        │ motors… │
│  bpm3a  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3b  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3c  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3d  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3i  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3x  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3y  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm3z  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4a  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4b  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4c  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4d  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4i  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4s  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4x  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ bpm4xf  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ bpm4xm  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4y  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ bpm4yf  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ bpm4ym  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm4z  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5a  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5b  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5c  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5d  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5i  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5x  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5y  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm5z  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6a  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6b  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6c  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6d  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6i  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6x  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6y  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  bpm6z  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  curr   │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  diode  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ ebpmdx  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ ebpmdy  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ ebpmux  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ ebpmuy  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│   ftp   │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  temp   │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ transd  │         │ enabled │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│  aptrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  aptry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bim2x  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bim2y  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm1trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm1try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm2trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm2try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm3trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm3try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm4trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm4try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm5trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm5try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm6trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ bm6try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bpm4r  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bpm5r  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bs1x   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bs1y   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bs2x   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  bs2y   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ burstn  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ burstr  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1a  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1b  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1c  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1d  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1e  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1f  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1g  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ddg1h  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ dettrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ di2trx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ di2try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ dtpush  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  dtth   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  dttrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  dttry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  dttrz  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebcsx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebcsy  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebfi1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebfi2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebfi3  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebfi4  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ ebfzpx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ ebfzpy  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebtrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebtry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  ebtrz  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fi1try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fi2try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fi3try  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  fsh1x  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  fsh2x  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ ftrans  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fttrx1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fttrx2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fttry1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ fttry2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  fttrz  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  idgap  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mibd   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mibd1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mibd2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ miroll  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mith   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mitrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mitry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mitry1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mitry2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mitry3  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mobd   │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mobdai  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mobdbo  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mobdco  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mobddi  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  mokev  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mopush1 │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ mopush2 │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ moroll1 │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ moroll2 │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  moth1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ moth1e  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  moth2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ moth2e  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ motrx2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  motry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ motry2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ motrz1  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ motrz1e │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ moyaw2  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl0ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl0trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl0trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl0wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl1ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl1cv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl1trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl1trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl1tryb │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl1tryt │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl1wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl1wv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl2ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl2cv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl2trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl2trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl2tryb │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl2tryt │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl2wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl2wv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl3ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl3cv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl3trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl3trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl3tryb │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl3tryt │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl3wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl3wv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl4ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl4cv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl4trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl4trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl4tryb │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl4tryt │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl4wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl4wv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl5ch  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl5cv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl5trxi │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl5trxo │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl5tryb │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ sl5tryt │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl5wh  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sl5wv  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  strox  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  stroy  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  stroz  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sttrx  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│  sttry  │         │ enabled │  False  │  False  │ ophyd_… │ basel… │ {'beam… │
│ ring_c… │         │ disabl… │  False  │  False  │ ophyd_… │ monit… │ {'beam… │
│ monito… │         │ disabl… │  False  │  True   │ ophyd_… │ async  │ {'beam… │
│ rt_con… │         │ disabl… │  False  │  False  │ ophyd_… │ basel… │ {'test  │
│         │         │         │         │         │         │        │ device… │
│         │         │         │         │         │         │        │  'user  │
│         │         │         │         │         │         │        │ motors… │
│ wavefo… │         │ disabl… │  False  │  True   │ ophyd_… │ async  │ {'dete… │
└─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴────────┴─────────┘

The output is a table of the devices currently available in your session, including whether they are enabled and how BEC classifies them. In the demo configuration.

dev_show_all.png

Tab completion

BEC provides tab completion throughout the shell. Try dev. and press Tab to discover available devices and attributes, or scans. to explore the scan interface. tab_completion.gif

3. Inspect one device

Start with one of the simulated motors:

dev.samx
              SimPositioner: samx              
 Enabled           True                        
 Description                                   
 Read only         False                       
 Software Trigger  False                       
 Device class      ophyd_devices.SimPositioner 
 Readout Priority  baseline                    
 Device tags       user motors                 
 Limits            [-50, 50]                   

                       Current Values                        
 Signal                Value             Timestamp           
 samx                  9.99789260545663  2026-04-01 14:43:52 
 samx_setpoint         10.0              2026-04-01 14:43:52 
 samx_motor_is_moving  0                 2026-04-01 14:43:52 

  Config Signals  
 Signal     Value 
 tolerance  0.01  

This prints a device overview with the most important metadata, current values, and config signals. Use this overview when you want to understand what a device is, whether it is enabled, what limits it has, and so on.

4. Inspect the live values directly

dev.samx.read()
{'samx': {'value': 0, 'timestamp': 1774874622.037339},
 'samx_setpoint': {'value': 0, 'timestamp': 1774873374.7518551},
 'samx_motor_is_moving': {'value': 0, 'timestamp': 1774873374.751864}}

.read() returns the current state of the device and is the quickest way to inspect it from the shell.

Use wm for one or more devices

The wm command is convenient when you want a compact position overview. You can use it for a single device such as dev.samx.wm or for multiple devices at once, for example dev.wm(dev.samx, dev.samy). You can also use wildcard expressions, such as dev.wm("sam*") to show all devices whose name starts with "sam". Find out more about wm by calling dev.wm? in the shell.

What you have learned

You loaded the demo configuration, saw that BEC includes a simulated beamline for training and development, inspected the available devices, and learned the two most useful shell entry points for a first inspection: dev.____ for the device overview and dev.____.read() for live values. In the next step you will start moving a device and learn the difference between blocking and non-blocking motion commands.

Next step

Continue with 03 Move a device, where you will use the newly loaded motors for your first controlled move.