Skip to content

Raspberry Pi Seabreeze spec.close() not working #287

Description

@ThomasPleavin

We have Seabreeze v2.10.0 running on a Raspberry pi 5 with an OceanFX Spectrometer, all is working great except spec.close(). On a windows based machine this works flawlessly to close a spectrometer after use and prevent a connection issue. The same Code running on a Pi5 will not close properly and cause issues when trying to reconnect. The following code will work every time on windows machine, but only once on a Pi5 and will not connect on subsequent runs. Do you have any thoughts?

from seabreeze.spectrometers import Spectrometer, list_devices

def get_spectrometer_serial_number():
    # List all connected devices
    devices = list_devices()
    print("Devices found:", devices)

    if not devices:
        print("No spectrometers found.")
        return None

    # Connect to the first available spectrometer
    spec = Spectrometer(devices[0])

    # Get and print serial number
    serial_number = spec.serial_number
    print(f"Spectrometer Serial Number: {serial_number}")

    # Close the device
    spec.close()
    print("Spectrometer connection closed.")

    # Try accessing the spectrometer to confirm it's closed
    try:
        _ = spec.serial_number
        print("ERROR: Spectrometer is still accessible after closing.")
    except Exception as e:
        print("Confirmed closed: accessing spectrometer raises an error.")
        print("Error message:", str(e))

    return serial_number

# Run the function
if __name__ == "__main__":
    get_spectrometer_serial_number()

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions