import subprocess

def get_arduino_info():
    arduino_info = None
    
    # Run the lsusb command to list USB devices
    lsusb_output = subprocess.check_output(['lsusb']).decode('utf-8')
    
    # Iterate through the lines of lsusb output
    for line in lsusb_output.split('\n'):
        if 'Arduino' in line:
            parts = line.split()
            bus = parts[1]
            device = parts[3][:-1]
            port = f"/dev/bus/usb/{bus}/{device}"
            
            # Get the serial number using udevadm
            udevadm_output = subprocess.check_output(['udevadm', 'info', f'/dev/bus/usb/{bus}/{device}']).decode('utf-8')
            for udev_line in udevadm_output.split('\n'):
                if 'ID_SERIAL=' in udev_line:
                    serial_number = udev_line.split('=')[1].split('__')[-1].split('_')[-1]
                    break
            
            arduino_info = {'port': port, 'serial_number': serial_number}
            break
    
    if arduino_info:
        return arduino_info
    else:
        raise IOError("Failed to retrieve Arduino information")

try:
    arduino_info = get_arduino_info()
    print("Arduino Port:", arduino_info['port'])
    print("Arduino Serial Number:", arduino_info['serial_number'])
except IOError as e:
    print("Error:", e)
