Skip to content

Inspect a Device from the BEC IPython Client

Overview

Inspect a device from the BEC IPython client so you can see its summary, live values, and configuration-style signals.

Prerequisites

  • You have a running BEC IPython client session.
  • A device configuration is already loaded.
  • You know the device name you want to inspect, for example samx.

1. List the available devices

Start by checking which devices are available in the current session:

dev.show_all()

This prints the devices known to the client together with status information such as whether they are enabled and which class they use.

Use tab completion

Type dev. and press TAB to explore available device names directly in the shell.

2. Print the device overview

To inspect one device in more detail, evaluate the device object:

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 compact overview of the device, including:

  • general metadata such as enabled, readoutPriority, and device class
  • current values
  • config signals

Use this first when you want a quick overview without manually calling several methods.

Whether a signal is included in .read() or .read_configuration() depends on its ophyd Kind. Learn more about ophyd Kind

3. Print the device summary

To get a more detailed summary of the device, including all its defined signals and their ophyd Kinds, call

dev.samx.summary()

device summary

3. Read the live values

To inspect the current read values directly, call read():

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}}

This is the fastest way to see the device's current readings in dictionary form.

For positioners, you can also use wm for a compact readback and setpoint view:

dev.samx.wm

4. Read the config signals

To inspect the configuration-style signals, call read_configuration():

dev.samx.read_configuration()

Use this when you specifically want values that belong to the device setup rather than the normal read() output.

Congratulations!

You can now inspect a device from the BEC IPython client with dev.show_all(), dev.<name>, dev.<name>.read(), and dev.<name>.read_configuration().

Common Pitfalls

  • dev.samx prints a summary, but it does not return the same structure as dev.samx.read().
  • If dev.samx does not exist, the device is either not loaded or has a different name in the current config.
  • read() and read_configuration() serve different purposes. If a value is missing from read(), check whether it is a config signal instead.

Next Steps