PAN003: Build thread for PAN003 Chile

Hi,
I used the instruction from May 2018 to configure the NUC (here)

On the first pass the test.py was giving me no error as can be seen on the following image.


However while running setup_pocs I was having the following message on the log:

PANCHAT Oh wait. There was a problem initialising: ‘ascii’ codec can’t decode byte 0x8a in position 0: ordinal not in range(128)

This would stop the initialisation trying to configure the MOUNT. So park or unpark would not work.

I went back and did the whole configuration again (after deleting the whole var/panoptes directory).

After successfully running this step:
${POCS}/scripts/install/install-dependencies.sh

I did the test.py again and THIS TIME found 2 errors seems to be related to the mount:

=========================================================== FAILURES ===========================================================
____________________________________________________ test_bad_mount_driver _____________________________________________________

name = 'pocs.mount.foobar', additional_parts = '', parts = ['pocs', 'mount', 'foobar'], cursor = 2, fromlist = ['foobar']

    def resolve_name(name, *additional_parts):
        """Resolve a name like ``module.object`` to an object and return it.
    
        This ends up working like ``from module import object`` but is easier
        to deal with than the `__import__` builtin and supports digging into
        submodules.
    
        Parameters
        ----------
    
        name : `str`
            A dotted path to a Python object--that is, the name of a function,
            class, or other object in a module with the full path to that module,
            including parent modules, separated by dots.  Also known as the fully
            qualified name of the object.
    
        additional_parts : iterable, optional
            If more than one positional arguments are given, those arguments are
            automatically dotted together with ``name``.
    
        Examples
        --------
    
        >>> resolve_name('astropy.utils.introspection.resolve_name')
        <function resolve_name at 0x...>
        >>> resolve_name('astropy', 'utils', 'introspection', 'resolve_name')
        <function resolve_name at 0x...>
    
        Raises
        ------
        `ImportError`
            If the module or named object is not found.
        """
    
        additional_parts = '.'.join(additional_parts)
    
        if additional_parts:
            name = name + '.' + additional_parts
    
        parts = name.split('.')
    
        if len(parts) == 1:
            # No dots in the name--just a straight up module import
            cursor = 1
            fromlist = []
        else:
            cursor = len(parts) - 1
            fromlist = [parts[-1]]
    
        module_name = parts[:cursor]
    
        while cursor > 0:
            try:
                ret = __import__(str('.'.join(module_name)), fromlist=fromlist)
                break
            except ImportError:
                if cursor == 0:
                    raise
                cursor -= 1
                module_name = parts[:cursor]
                fromlist = [parts[cursor]]
                ret = ''
    
        for part in parts[cursor:]:
            try:
>               ret = getattr(ret, part)
E               AttributeError: module 'pocs.mount' has no attribute 'foobar'

../miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/utils/introspection.py:85: AttributeError

During handling of the above exception, another exception occurred:

module_name = 'pocs.mount.foobar'

    def load_module(module_name):
        """Dynamically load a module.
    
        .. doctest::
    
            >>> from pocs.utils import load_module
            >>> camera = load_module('pocs.camera.simulator')
            >>> camera.__package__
            'pocs.camera'
    
        Args:
            module_name (str): Name of module to import.
    
        Returns:
            module: an imported module name
    
        Raises:
            error.NotFound: If module cannot be imported.
        """
        from pocs.utils import error
        try:
>           module = resolve_name(module_name)

pocs/utils/__init__.py:315: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'pocs.mount.foobar', additional_parts = '', parts = ['pocs', 'mount', 'foobar'], cursor = 2, fromlist = ['foobar']

    def resolve_name(name, *additional_parts):
        """Resolve a name like ``module.object`` to an object and return it.
    
        This ends up working like ``from module import object`` but is easier
        to deal with than the `__import__` builtin and supports digging into
        submodules.
    
        Parameters
        ----------
    
        name : `str`
            A dotted path to a Python object--that is, the name of a function,
            class, or other object in a module with the full path to that module,
            including parent modules, separated by dots.  Also known as the fully
            qualified name of the object.
    
        additional_parts : iterable, optional
            If more than one positional arguments are given, those arguments are
            automatically dotted together with ``name``.
    
        Examples
        --------
    
        >>> resolve_name('astropy.utils.introspection.resolve_name')
        <function resolve_name at 0x...>
        >>> resolve_name('astropy', 'utils', 'introspection', 'resolve_name')
        <function resolve_name at 0x...>
    
        Raises
        ------
        `ImportError`
            If the module or named object is not found.
        """
    
        additional_parts = '.'.join(additional_parts)
    
        if additional_parts:
            name = name + '.' + additional_parts
    
        parts = name.split('.')
    
        if len(parts) == 1:
            # No dots in the name--just a straight up module import
            cursor = 1
            fromlist = []
        else:
            cursor = len(parts) - 1
            fromlist = [parts[-1]]
    
        module_name = parts[:cursor]
    
        while cursor > 0:
            try:
                ret = __import__(str('.'.join(module_name)), fromlist=fromlist)
                break
            except ImportError:
                if cursor == 0:
                    raise
                cursor -= 1
                module_name = parts[:cursor]
                fromlist = [parts[cursor]]
                ret = ''
    
        for part in parts[cursor:]:
            try:
                ret = getattr(ret, part)
            except AttributeError:
>               raise ImportError(name)
E               ImportError: pocs.mount.foobar

../miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/utils/introspection.py:87: ImportError

During handling of the above exception, another exception occurred:

config = {'cameras': {'auto_detect': True, 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}], 'primary': '14d...tity 3400. m>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'gmt_offset': -600, ...}, ...}

    @pytest.mark.without_mount
    def test_bad_mount_driver(config):
        conf = config.copy()
        conf['mount']['driver'] = 'foobar'
        with pytest.raises(MountNotFound):
>           create_mount_from_config(conf)

pocs/tests/test_mount.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pocs/mount/__init__.py:72: in create_mount_from_config
    module = load_module('pocs.mount.{}'.format(driver))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

module_name = 'pocs.mount.foobar'

    def load_module(module_name):
        """Dynamically load a module.
    
        .. doctest::
    
            >>> from pocs.utils import load_module
            >>> camera = load_module('pocs.camera.simulator')
            >>> camera.__package__
            'pocs.camera'
    
        Args:
            module_name (str): Name of module to import.
    
        Returns:
            module: an imported module name
    
        Raises:
            error.NotFound: If module cannot be imported.
        """
        from pocs.utils import error
        try:
            module = resolve_name(module_name)
        except ImportError:
>           raise error.NotFound(msg=module_name)
E           pocs.utils.error.NotFound: NotFound: pocs.mount.foobar

pocs/utils/__init__.py:317: NotFound
------------------------------------------------------ Captured log setup ------------------------------------------------------
DEBUG    panoptes:conftest.py:55 config fixture: {'name': 'PAN000', 'pan_id': 'PAN000', 'location': {'name': 'Mauna Loa Observatory', 'latitude': <Quantity 19.54 deg>, 'longitude': <Quantity -155.58 deg>, 'elevation': <Quantity 3400. m>, 'horizon': <Quantity 30. deg>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'observe_horizon': <Quantity -18. deg>, 'timezone': 'US/Hawaii', 'gmt_offset': -600}, 'directories': {'base': '/var/panoptes', 'images': '/tmp/pytest-of-panoptes/pytest-4/images10', 'data': '/var/panoptes/data', 'resources': '/var/panoptes/POCS/resources', 'targets': '/var/panoptes/POCS/resources/targets', 'mounts': '/var/panoptes/POCS/resources/mounts'}, 'db': {'name': 'panoptes_testing', 'type': 'file'}, 'scheduler': {'type': 'dispatch', 'fields_file': 'simulator.yaml', 'check_file': False}, 'mount': {'brand': 'ioptron', 'model': 30, 'driver': 'ioptron', 'serial': {'port': '/dev/ttyUSB0', 'timeout': 0.0, 'baudrate': 9600}, 'non_sidereal_available': True}, 'pointing': {'auto_correct': False, 'threshold': 500, 'exptime': 30, 'max_iterations': 3}, 'cameras': {'auto_detect': True, 'primary': '14d3bd', 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}]}, 'messaging': {'cmd_port': 44001, 'msg_port': 43001}, 'observations': {'make_timelapse': True, 'keep_jpgs': True}, 'panoptes_network': {'image_storage': True, 'service_account_key': None, 'project_id': 'panoptes-survey', 'buckets': {'images': 'panoptes-survey'}}, 'state_machine': 'simple_state_table', 'simulator': ['camera', 'dome', 'mount', 'night', 'power', 'theskyx', 'weather']}
------------------------------------------------------ Captured log call -------------------------------------------------------
DEBUG    panoptes:__init__.py:40 No mount info provided, using values from config.
DEBUG    panoptes:__init__.py:47 No location provided, using values from config.
DEBUG    panoptes:location.py:27 Setting up site details
DEBUG    panoptes:location.py:58 Location: {'name': 'Mauna Loa Observatory', 'latitude': <Quantity 19.54 deg>, 'longitude': <Quantity -155.58 deg>, 'elevation': <Quantity 3400. m>, 'timezone': 'US/Hawaii', 'pressure': <Quantity 0.68 bar>, 'horizon': <Quantity 30. deg>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'observe_horizon': <Quantity -18. deg>}
DEBUG    panoptes:__init__.py:70 Creating mount: 30
ERROR    panoptes:error.py:16 NotFound: pocs.mount.foobar
____________________________________________________ test_bad_mount_driver _____________________________________________________

name = 'pocs.mount.foobar', additional_parts = '', parts = ['pocs', 'mount', 'foobar'], cursor = 2, fromlist = ['foobar']

    def resolve_name(name, *additional_parts):
        """Resolve a name like ``module.object`` to an object and return it.
    
        This ends up working like ``from module import object`` but is easier
        to deal with than the `__import__` builtin and supports digging into
        submodules.
    
        Parameters
        ----------
    
        name : `str`
            A dotted path to a Python object--that is, the name of a function,
            class, or other object in a module with the full path to that module,
            including parent modules, separated by dots.  Also known as the fully
            qualified name of the object.
    
        additional_parts : iterable, optional
            If more than one positional arguments are given, those arguments are
            automatically dotted together with ``name``.
    
        Examples
        --------
    
        >>> resolve_name('astropy.utils.introspection.resolve_name')
        <function resolve_name at 0x...>
        >>> resolve_name('astropy', 'utils', 'introspection', 'resolve_name')
        <function resolve_name at 0x...>
    
        Raises
        ------
        `ImportError`
            If the module or named object is not found.
        """
    
        additional_parts = '.'.join(additional_parts)
    
        if additional_parts:
            name = name + '.' + additional_parts
    
        parts = name.split('.')
    
        if len(parts) == 1:
            # No dots in the name--just a straight up module import
            cursor = 1
            fromlist = []
        else:
            cursor = len(parts) - 1
            fromlist = [parts[-1]]
    
        module_name = parts[:cursor]
    
        while cursor > 0:
            try:
                ret = __import__(str('.'.join(module_name)), fromlist=fromlist)
                break
            except ImportError:
                if cursor == 0:
                    raise
                cursor -= 1
                module_name = parts[:cursor]
                fromlist = [parts[cursor]]
                ret = ''
    
        for part in parts[cursor:]:
            try:
>               ret = getattr(ret, part)
E               AttributeError: module 'pocs.mount' has no attribute 'foobar'

../miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/utils/introspection.py:85: AttributeError

During handling of the above exception, another exception occurred:

module_name = 'pocs.mount.foobar'

    def load_module(module_name):
        """Dynamically load a module.
    
        .. doctest::
    
            >>> from pocs.utils import load_module
            >>> camera = load_module('pocs.camera.simulator')
            >>> camera.__package__
            'pocs.camera'
    
        Args:
            module_name (str): Name of module to import.
    
        Returns:
            module: an imported module name
    
        Raises:
            error.NotFound: If module cannot be imported.
        """
        from pocs.utils import error
        try:
>           module = resolve_name(module_name)

pocs/utils/__init__.py:315: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'pocs.mount.foobar', additional_parts = '', parts = ['pocs', 'mount', 'foobar'], cursor = 2, fromlist = ['foobar']

    def resolve_name(name, *additional_parts):
        """Resolve a name like ``module.object`` to an object and return it.
    
        This ends up working like ``from module import object`` but is easier
        to deal with than the `__import__` builtin and supports digging into
        submodules.
    
        Parameters
        ----------
    
        name : `str`
            A dotted path to a Python object--that is, the name of a function,
            class, or other object in a module with the full path to that module,
            including parent modules, separated by dots.  Also known as the fully
            qualified name of the object.
    
        additional_parts : iterable, optional
            If more than one positional arguments are given, those arguments are
            automatically dotted together with ``name``.
    
        Examples
        --------
    
        >>> resolve_name('astropy.utils.introspection.resolve_name')
        <function resolve_name at 0x...>
        >>> resolve_name('astropy', 'utils', 'introspection', 'resolve_name')
        <function resolve_name at 0x...>
    
        Raises
        ------
        `ImportError`
            If the module or named object is not found.
        """
    
        additional_parts = '.'.join(additional_parts)
    
        if additional_parts:
            name = name + '.' + additional_parts
    
        parts = name.split('.')
    
        if len(parts) == 1:
            # No dots in the name--just a straight up module import
            cursor = 1
            fromlist = []
        else:
            cursor = len(parts) - 1
            fromlist = [parts[-1]]
    
        module_name = parts[:cursor]
    
        while cursor > 0:
            try:
                ret = __import__(str('.'.join(module_name)), fromlist=fromlist)
                break
            except ImportError:
                if cursor == 0:
                    raise
                cursor -= 1
                module_name = parts[:cursor]
                fromlist = [parts[cursor]]
                ret = ''
    
        for part in parts[cursor:]:
            try:
                ret = getattr(ret, part)
            except AttributeError:
>               raise ImportError(name)
E               ImportError: pocs.mount.foobar

../miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/utils/introspection.py:87: ImportError

During handling of the above exception, another exception occurred:

config = {'cameras': {'auto_detect': True, 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}], 'primary': '14d...tity 3400. m>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'gmt_offset': -600, ...}, ...}

    @pytest.mark.without_mount
    def test_bad_mount_driver(config):
        conf = config.copy()
        simulator = hardware.get_all_names(without=['mount'])
        conf['mount']['driver'] = 'foobar'
        with pytest.raises(error.MountNotFound):
>           Observatory(simulator=simulator, config=conf, ignore_local_config=True)

pocs/tests/test_observatory.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pocs/observatory.py:44: in __init__
    self._create_mount()
pocs/observatory.py:803: in _create_mount
    module = load_module('pocs.mount.{}'.format(driver))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

module_name = 'pocs.mount.foobar'

    def load_module(module_name):
        """Dynamically load a module.
    
        .. doctest::
    
            >>> from pocs.utils import load_module
            >>> camera = load_module('pocs.camera.simulator')
            >>> camera.__package__
            'pocs.camera'
    
        Args:
            module_name (str): Name of module to import.
    
        Returns:
            module: an imported module name
    
        Raises:
            error.NotFound: If module cannot be imported.
        """
        from pocs.utils import error
        try:
            module = resolve_name(module_name)
        except ImportError:
>           raise error.NotFound(msg=module_name)
E           pocs.utils.error.NotFound: NotFound: pocs.mount.foobar

pocs/utils/__init__.py:317: NotFound
------------------------------------------------------ Captured log setup ------------------------------------------------------
DEBUG    panoptes:conftest.py:55 config fixture: {'name': 'PAN000', 'pan_id': 'PAN000', 'location': {'name': 'Mauna Loa Observatory', 'latitude': <Quantity 19.54 deg>, 'longitude': <Quantity -155.58 deg>, 'elevation': <Quantity 3400. m>, 'horizon': <Quantity 30. deg>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'observe_horizon': <Quantity -18. deg>, 'timezone': 'US/Hawaii', 'gmt_offset': -600}, 'directories': {'base': '/var/panoptes', 'images': '/tmp/pytest-of-panoptes/pytest-4/images12', 'data': '/var/panoptes/data', 'resources': '/var/panoptes/POCS/resources', 'targets': '/var/panoptes/POCS/resources/targets', 'mounts': '/var/panoptes/POCS/resources/mounts'}, 'db': {'name': 'panoptes_testing', 'type': 'file'}, 'scheduler': {'type': 'dispatch', 'fields_file': 'simulator.yaml', 'check_file': False}, 'mount': {'brand': 'ioptron', 'model': 30, 'driver': 'ioptron', 'serial': {'port': '/dev/ttyUSB0', 'timeout': 0.0, 'baudrate': 9600}, 'non_sidereal_available': True}, 'pointing': {'auto_correct': False, 'threshold': 500, 'exptime': 30, 'max_iterations': 3}, 'cameras': {'auto_detect': True, 'primary': '14d3bd', 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}]}, 'messaging': {'cmd_port': 44001, 'msg_port': 43001}, 'observations': {'make_timelapse': True, 'keep_jpgs': True}, 'panoptes_network': {'image_storage': True, 'service_account_key': None, 'project_id': 'panoptes-survey', 'buckets': {'images': 'panoptes-survey'}}, 'state_machine': 'simple_state_table', 'simulator': ['camera', 'dome', 'mount', 'night', 'power', 'theskyx', 'weather']}
------------------------------------------------------ Captured log call -------------------------------------------------------
INFO     panoptes:observatory.py:33 Initializing observatory
INFO     panoptes:observatory.py:36 	Setting up location
DEBUG    panoptes:observatory.py:716 Setting up site details of observatory
DEBUG    panoptes:observatory.py:747 Location: {'name': 'Mauna Loa Observatory', 'latitude': <Quantity 19.54 deg>, 'longitude': <Quantity -155.58 deg>, 'elevation': <Quantity 3400. m>, 'timezone': 'US/Hawaii', 'pressure': <Quantity 0.68 bar>, 'horizon': <Quantity 30. deg>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'observe_horizon': <Quantity -18. deg>}
INFO     panoptes:observatory.py:42 	Setting up mount
DEBUG    panoptes:observatory.py:801 Creating mount: ioptron
ERROR    panoptes:error.py:16 NotFound: pocs.mount.foobar
======================================================= warnings summary =======================================================
/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/extern/six.py:7
  /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/extern/six.py:7: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp

/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/extern/six.py:15
  /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/astropy/extern/six.py:15: AstropyDeprecationWarning: astropy.extern.six will be removed in 4.0, use the six module directly if it is still needed
    AstropyDeprecationWarning)

/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332
  /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332: PytestUnknownMarkWarning: Unknown pytest.mark.with_mount - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
    PytestUnknownMarkWarning,

/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332
  /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332: PytestUnknownMarkWarning: Unknown pytest.mark.without_mount - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
    PytestUnknownMarkWarning,

/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332
  /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/_pytest/mark/structures.py:332: PytestUnknownMarkWarning: Unknown pytest.mark.with_camera - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
    PytestUnknownMarkWarning,

pocs/tests/test_images.py::test_solve_field_unsolved
pocs/tests/test_pocs.py::test_run_complete[file]
  /var/panoptes/POCS/pocs/utils/images/fits.py:181: UserWarning: Error in solving: 
    warn("Error in solving: {}".format(errs))

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============================== 2 failed, 380 passed, 243 skipped, 7 warnings in 570.44 seconds ================================
(panoptes-env) panoptes@pan003:/var/panoptes/POCS$ 

Not sure why the 2 errors are showing up now and not before but the thing is the sympton while running setup_pocs is the same, here is the log:

D0813 03:27:23.245                machine.py:388] Created state
D0813 03:27:23.256                machine.py:063] State machine created
I0813 03:27:23.257            observatory.py:162] Scheduler not present, cannot observe.
I0813 03:27:23.258            observatory.py:131] Scheduler not present, cannot get current observation.
I0813 03:27:24.273              messaging.py:204] PANCHAT Hi there!
I0813 03:27:24.274                   core.py:144] ********************************************************************************
I0813 03:27:24.274              messaging.py:204] PANCHAT Initializing the system! Woohoo!
D0813 03:27:24.274                   core.py:148] Initializing observatory
D0813 03:27:24.275            observatory.py:258] Initializing mount
I0813 03:27:24.275                ioptron.py:137] Connecting to mount pocs.mount.ioptron
D0813 03:27:24.275                 serial.py:047] Connecting to mount
I0813 03:27:24.275                 serial.py:059] Mount connected: True
I0813 03:27:24.275                ioptron.py:141] Initializing pocs.mount.ioptron mount
I0813 03:27:25.277                ioptron.py:244] Setting up mount for location
D0813 03:27:28.288                 serial.py:088] Setting tracking rate to sidereal +00.0000
D0813 03:27:28.789                 serial.py:090] Custom tracking rate set
D0813 03:27:29.291                 serial.py:094] Tracking response: 1
D0813 03:27:29.291                 serial.py:098] Custom tracking rate sent
D0813 03:27:29.291                ioptron.py:212] Setting manual moving rate to max
I0813 03:27:30.295              messaging.py:204] PANCHAT Oh wait. There was a problem initializing: 'ascii' codec can't decode byte 0x8a in position 0: ordinal not in range(128)
I0813 03:27:30.296              messaging.py:204] PANCHAT Since we didn't initialize, I'm going to exit.
I0813 03:27:30.298              messaging.py:204] PANCHAT I'm powering down
I0813 03:27:30.298                   core.py:230] Shutting down POCS State Machine: , please be patient and allow for exit.
D0813 03:27:30.298            observatory.py:266] Shutting down observatory
D0813 03:27:30.298                 serial.py:064] Closing serial port for mount
D0813 03:27:30.299                  rs232.py:199] SerialData.disconnect called for /dev/ttyUSB1
D0813 03:27:30.299                   core.py:258] Shutting down messaging system
D0813 03:27:30.299                   core.py:262] Terminating check_messages - PID 5990
D0813 03:27:30.299                   core.py:262] Terminating cmd_forwarder - PID 5978
D0813 03:27:30.300                   core.py:262] Terminating msg_forwarder - PID 5981
I0813 03:27:30.301                   core.py:268] Power down complete
I0813 03:27:30.302            observatory.py:162] Scheduler not present, cannot observe.
D0813 03:27:30.303                  mount.py:116] Problem getting mount status: 
W0813 03:27:30.303            observatory.py:315] Can't get observatory status: 

@wtgee any idea?? let me know if you want to ssh the NUC.

Ok the issue here was that the Mount firmware was outdated.
Also we are now working with the Docker Install and everything works fine.