def METHOD_NAME(self):
    """ returns a map {volume_id: {serial:, vendor_id:, product_id:, tty:}"""
    # to find all the possible mbed volumes, we look for registry entries
    # under all possible USB tree which have a "BSD Name" that starts with
    # "disk" # (i.e. this is a USB disk), and have a IORegistryEntryName that
    # matches /\cmbed/
    # Once we've found a disk, we can search up for a parent with a valid
    # serial number, and then search down again to find a tty that's part
    # of the same composite device
    # ioreg -a -r -n <usb_controller_name> -l
    usb_controllers = [
        # Leaving these here for reference. The code nominally scanned each controller,
        # but a bug (?) caused it to only pay attention to the last one. That seems to
        # work fine, so the others are commented out.