Giter VIP home page Giter VIP logo

enclosure-picroft's Introduction

It's Alive!

Safety Last!

Picroft - Buster Keaton (Pork Pi) release

Picroft is an enclosure for a Raspberry Pi 3, 3B+ or 4 connected to a speaker and microphone, bringing Mycroft to anyone who wants a simple voice interface they have complete control over. This is built on top of the official Raspbian Buster Lite image.

The entire project is available as a pre-built micro-SD image ready to be burned and placed into a Raspberry Pi. You can download the pre-built image here:

Download img Picroft Stable 2020-09-07 image

SHA-256: 3d3c99c53793224b84de02e816435230f2bbe6272b71d8909afee43e5ef9a402

Download img Picroft Release Candidate 2021-06-04 image

SHA-256: 2d5a81375036a1dc4ce30051ea9e9181f4019c8f61264db3a43d87d03df854a6

A list of current and past releases can be found at: https://downloads.mycroft.ai/releases/picroft/

Optionally you can build it yourself by following the Recipe for building the image

Requirements

  • Raspberry Pi 3, 3B+, or 4
    Older Raspberry Pi versions do not have sufficient processing power, and if they work they will be very slow
  • Speaker
    Any analog speaker, or an HDMI monitor with speaker
  • Microphone
    A list of Community tested hardware is available in our documentation.
  • 2.5 Amp or better power supply
    Don't skimp on this! It might appear to work, but you'll have weird issues with a cheapo supply.
  • MicroSD Card
    8 GB or larger
  • HDMI Monitor and keyboard, only required during setup

Installation

  1. Download and burn the image to the SD card.
    See the RaspberryPi.org's guide to Installing Operating System Images for detailed instructions on how to burn an image to your SD card.
  2. Insert the SD card into your Raspberry Pi
  3. Connect speaker, microphone, monitor and keyboard
  4. Apply power
  5. Follow the on-screen prompts to setup Picroft
  6. Follow the verbal prompts to pair your device to an account at Mycroft Home
  7. Talk to Mycroft and enjoy!

Usage

Simply speak to Picroft as you would to any Mycroft. For example:

"Hey Mycroft, what time is it?"
"Mycroft, how tall was Abraham Lincoln?"

Older Versions

Help and more info

To re-run the setup wizard, use mycroft-setup-wizard. Check out the Picroft wiki here. There's also the general Documentation.

Customization

  • audio_setup.sh configures your specific audio setup.
  • custom_setup.sh is a stub meant to initialize anything before Mycroft starts. For example, initializing connected devices, or launching services.

Getting Help

There is an active Picroft community within the Mycroft's Mattermost chat which all are welcome to join!


FAQ

Q1) Why "Buster Keaton (Pork Pi)"?

This image is built on top of Raspbian "Buster" for running on a Raspberry Pi.

Buster Keaton is best known for his silent films, but also his signature Pork Pie hats that he designed and made himself. Coincidentally, Buster Keaton's classic film "Safety Last!" came out of copyright in 2019.

The photo at the top of this page we thought was Buster Keaton wearing his signature hat. It turns out that it is actually a slightly more contemporary Harold Lloyd.

Q2) Can I run this with a the Raspbian desktop GUI?

Sadly, not really. A Raspberry Pi is powerful, but still not well suited to do everything at once. You can add other basic services on top of Picroft, but the desktop GUI requires too many additional resources and neither Mycroft nor the GUI end up running well.

Q3) Can I run this with anything else?

Depends on what you want to add. Serving simple webpages or polling devices periodically is probably fine. Mining bitcoin won't.

Q4) Can I run this on a Pi4?

Yes!

enclosure-picroft's People

Contributors

aatchison avatar andlo avatar augustnmonteiro avatar benjaminhccarr avatar btotharye avatar conoria avatar derme302 avatar ekjswim avatar forslund avatar gregrs-uk avatar kathyreid avatar kfezer avatar krisgesling avatar lbt avatar learnedvector avatar penrods avatar richmorin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

enclosure-picroft's Issues

Padatious not working on picroft

I have not been able to get padatious to run on picroft. I tried on two separate raspberry pi's, one being a fresh install.

I get the following error in mycroft-skills log:

mycroft/configuration/mycroft.conf
2017-09-24 07:06:13,851 - mycroft.configuration - DEBUG - Configuration '/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft
/configuration/mycroft.conf' loaded
2017-09-24 07:06:13,853 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-24 07:06:13,853 - mycroft.configuration - INFO - Loading configuration: mycroft.ai
2017-09-24 07:06:13,880 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-09-24 07:06:15,440 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/fc410cca-b746-43c0-a455-b8db8
a31a404/setting HTTP/1.1" 200 2919
2017-09-24 07:06:15,467 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-09-24 07:06:17,557 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/fc410cca-b746-43c0-a455-b8db8
a31a404/location HTTP/1.1" 200 936
2017-09-24 07:06:17,635 - mycroft.configuration - INFO - Loading configuration: /etc/mycroft/mycroft.conf
2017-09-24 07:06:17,638 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' loaded
2017-09-24 07:06:17,639 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-24 07:06:17,640 - mycroft.configuration - INFO - Loading configuration: /home/mycroft/.mycroft/mycroft.conf
2017-09-24 07:06:17,641 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-24 07:06:17,642 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-24 07:06:17,746 - mycroft.messagebus.client.ws - INFO - Connected
2017-09-24 07:06:17,774 - mycroft.skills.padatious_service - ERROR - Padatious not installed. Please re-run dev_setup.sh
2017-09-24 07:06:17,813 - mycroft.skills.core - INFO - ATTEMPTING TO LOAD SKILL: skill-pairing with ID 1873111006
2017-09-24 07:06:17,855 - mycroft.skills.core - INFO - Loaded skill-pairing
2017-09-24 07:06:17,872 - mycroft.skills.core - INFO - ATTEMPTING TO LOAD SKILL: skill-stock with ID -405658846
2017-09-24 07:06:17,916 - mycroft.skills.core - INFO - Loaded skill-stock
2017-09-24 07:06:17,922 - mycroft.skills.core - INFO - ATTEMPTING TO LOAD SKILL: skill-volume with ID -1876631849
ALSA lib conf.c:3325:(snd_config_hooks_call) Cannot open shared library (null)
ALSA lib conf.c:3788:(snd_config_update_r) hooks failed, removing configuration
2017-09-24 07:06:17,949 - skill-volume__init__ - WARNING - Weird first access to Mixer() error workaround still triggering. This should be fixed properly.```

When I originally installed pedatious this is the output I got

```pi@picroft:~ $ sudo pip3 install padatious
Downloading/unpacking padatious
  Downloading padatious-0.2.2-py2.py3-none-any.whl
Downloading/unpacking fann2 (from padatious)
  Downloading fann2-1.0.7.tar.gz (63kB): 63kB downloaded
  Running setup.py (path:/tmp/pip-build-lgafqli4/fann2/setup.py) egg_info for package fann2
    
Downloading/unpacking xxhash (from padatious)
  Downloading xxhash-1.0.1.zip
  Running setup.py (path:/tmp/pip-build-lgafqli4/xxhash/setup.py) egg_info for package xxhash
    
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
Installing collected packages: padatious, fann2, xxhash
  Running setup.py install for fann2
    
    building 'fann2._libfann' extension
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DSWIG_COMPILE -I./include -I../include -Iinclude -I/usr/include/python3.4m -c fann2/fann2_wrap.cxx -o build/temp.linux-armv7l-3.4/fann2/fann2_wrap.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    fann2/fann2_wrap.cxx: In function ‘PyObject* _wrap_new_training_data(PyObject*, PyObject*)’:
    fann2/fann2_wrap.cxx:1164:111: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
                                                                                                                   ^
    fann2/fann2_wrap.cxx:9252:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    fann2/fann2_wrap.cxx: In function ‘PyObject* _wrap_new_training_data_parent(PyObject*, PyObject*)’:
    fann2/fann2_wrap.cxx:1164:111: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
                                                                                                                   ^
    fann2/fann2_wrap.cxx:4594:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    fann2/fann2_wrap.cxx: In function ‘PyObject* _wrap_new_neural_net_parent(PyObject*, PyObject*)’:
    fann2/fann2_wrap.cxx:1164:111: warning: ‘argv[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
                                                                                                                   ^
    fann2/fann2_wrap.cxx:5299:13: note: ‘argv[0]’ was declared here
       PyObject *argv[2];
                 ^
    arm-linux-gnueabihf-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/fann2/fann2_wrap.o -ldoublefann -o build/lib.linux-armv7l-3.4/fann2/_libfann.cpython-34m.so
  Running setup.py install for xxhash
    building 'cpython' extension
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -Ic-xxhash -I/usr/include/python3.4m -c xxhash/cpython.c -o build/temp.linux-armv7l-3.4/xxhash/cpython.o -std=c99 -O3 -Wall -W -Wundef -Wno-error=declaration-after-statement
    xxhash/cpython.c: In function ‘PYXXH32_new’:
    xxhash/cpython.c:102:44: warning: unused parameter ‘type’ [-Wunused-parameter]
     static PyObject *PYXXH32_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                ^
    xxhash/cpython.c:102:60: warning: unused parameter ‘args’ [-Wunused-parameter]
     static PyObject *PYXXH32_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                                ^
    xxhash/cpython.c:102:76: warning: unused parameter ‘kwargs’ [-Wunused-parameter]
     static PyObject *PYXXH32_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                                                ^
    xxhash/cpython.c: In function ‘PYXXH32_get_block_size’:
    xxhash/cpython.c:309:56: warning: unused parameter ‘self’ [-Wunused-parameter]
     static PyObject *PYXXH32_get_block_size(PYXXH32Object *self, void *closure)
                                                            ^
    xxhash/cpython.c:309:68: warning: unused parameter ‘closure’ [-Wunused-parameter]
     static PyObject *PYXXH32_get_block_size(PYXXH32Object *self, void *closure)
                                                                        ^
    xxhash/cpython.c: In function ‘PYXXH32_get_digest_size’:
    xxhash/cpython.c:315:40: warning: unused parameter ‘self’ [-Wunused-parameter]
     PYXXH32_get_digest_size(PYXXH32Object *self, void *closure)
                                            ^
    xxhash/cpython.c:315:52: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH32_get_digest_size(PYXXH32Object *self, void *closure)
                                                        ^
    xxhash/cpython.c: In function ‘PYXXH32_get_name’:
    xxhash/cpython.c:321:33: warning: unused parameter ‘self’ [-Wunused-parameter]
     PYXXH32_get_name(PYXXH32Object *self, void *closure)
                                     ^
    xxhash/cpython.c:321:45: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH32_get_name(PYXXH32Object *self, void *closure)
                                                 ^
    xxhash/cpython.c: In function ‘PYXXH32_get_seed’:
    xxhash/cpython.c:331:45: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH32_get_seed(PYXXH32Object *self, void *closure)
                                                 ^
    xxhash/cpython.c: At top level:
    xxhash/cpython.c:427:1: warning: missing initializer for field ‘tp_free’ of ‘PyTypeObject’ [-Wmissing-field-initializers]
     };
     ^
    In file included from /usr/include/python3.4m/pytime.h:6:0,
                     from /usr/include/python3.4m/Python.h:65,
                     from xxhash/cpython.c:31:
    /usr/include/python3.4m/object.h:400:14: note: ‘tp_free’ declared here
         freefunc tp_free; /* Low-level free-memory routine */
                  ^
    xxhash/cpython.c: In function ‘PYXXH64_new’:
    xxhash/cpython.c:447:44: warning: unused parameter ‘type’ [-Wunused-parameter]
     static PyObject *PYXXH64_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                ^
    xxhash/cpython.c:447:60: warning: unused parameter ‘args’ [-Wunused-parameter]
     static PyObject *PYXXH64_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                                ^
    xxhash/cpython.c:447:76: warning: unused parameter ‘kwargs’ [-Wunused-parameter]
     static PyObject *PYXXH64_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
                                                                                ^
    xxhash/cpython.c: In function ‘PYXXH64_get_block_size’:
    xxhash/cpython.c:654:56: warning: unused parameter ‘self’ [-Wunused-parameter]
     static PyObject *PYXXH64_get_block_size(PYXXH64Object *self, void *closure)
                                                            ^
    xxhash/cpython.c:654:68: warning: unused parameter ‘closure’ [-Wunused-parameter]
     static PyObject *PYXXH64_get_block_size(PYXXH64Object *self, void *closure)
                                                                        ^
    xxhash/cpython.c: In function ‘PYXXH64_get_digest_size’:
    xxhash/cpython.c:660:40: warning: unused parameter ‘self’ [-Wunused-parameter]
     PYXXH64_get_digest_size(PYXXH64Object *self, void *closure)
                                            ^
    xxhash/cpython.c:660:52: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH64_get_digest_size(PYXXH64Object *self, void *closure)
                                                        ^
    xxhash/cpython.c: In function ‘PYXXH64_get_name’:
    xxhash/cpython.c:666:33: warning: unused parameter ‘self’ [-Wunused-parameter]
     PYXXH64_get_name(PYXXH64Object *self, void *closure)
                                     ^
    xxhash/cpython.c:666:45: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH64_get_name(PYXXH64Object *self, void *closure)
                                                 ^
    xxhash/cpython.c: In function ‘PYXXH64_get_seed’:
    xxhash/cpython.c:676:45: warning: unused parameter ‘closure’ [-Wunused-parameter]
     PYXXH64_get_seed(PYXXH64Object *self, void *closure)
                                                 ^
    xxhash/cpython.c: At top level:
    xxhash/cpython.c:772:1: warning: missing initializer for field ‘tp_free’ of ‘PyTypeObject’ [-Wmissing-field-initializers]
     };
     ^
    In file included from /usr/include/python3.4m/pytime.h:6:0,
                     from /usr/include/python3.4m/Python.h:65,
                     from xxhash/cpython.c:31:
    /usr/include/python3.4m/object.h:400:14: note: ‘tp_free’ declared here
         freefunc tp_free; /* Low-level free-memory routine */
                  ^
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -Ic-xxhash -I/usr/include/python3.4m -c c-xxhash/xxhash.c -o build/temp.linux-armv7l-3.4/c-xxhash/xxhash.o -std=c99 -O3 -Wall -W -Wundef -Wno-error=declaration-after-statement
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/xxhash/cpython.o build/temp.linux-armv7l-3.4/c-xxhash/xxhash.o -o build/lib.linux-armv7l-3.4/xxhash/cpython.cpython-34m.so
    
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
Successfully installed padatious fann2 xxhash
Cleaning up...```

Now if I try to install is again I get 

```pi@picroft:~ $ sudo pip install padatious
Requirement already satisfied: padatious in /usr/local/lib/python2.7/site-packages
Requirement already satisfied: fann2 in /usr/local/lib/python2.7/site-packages (from padatious)
Requirement already satisfied: xxhash in /usr/local/lib/python2.7/site-packages (from padatious)
pi@picroft:~ $ less /var/log/mycroft-skills.log```


hello devs i got an error

im getting this
loop = RecognizerLoop()
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.1-py2.7.egg/mycroft/client/speech/listener.py", line 184, in init
self.mycroft_recognizer = self.create_mycroft_recognizer(rate, lang)
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.1-py2.7.egg/mycroft/client/speech/listener.py", line 194, in create_mycroft_recognizer
return LocalRecognizer(wake_word, phonemes, threshold, rate, lang)
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.1-py2.7.egg/mycroft/client/speech/local_recognizer.py", line 40, in init
self.decoder = Decoder(self.create_config(dict_name))
File "/usr/local/lib/python2.7/site-packages/pocketsphinx/pocketsphinx.py", line 271, in init
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1

“Locale not supported” error when starting mycroft-cli-client

Using Raspberry Pi 3 B
using the latest Image and installed with etcher
The issue I am facing is exactly as discussed here:
https://community.mycroft.ai/t/picroft-install-locale-not-supported-error-when-starting-mycroft-cli-client/3242

used the test_microphone command to check that my mic is working properly and I got a nice and clean playback.

Since the voice recognition it was still not working, I started mycroft_cli_client manually after SSHing my raspberry and I got the following error:

pi@picroft:~ $ mycroft-cli-client
15:11:27.216 - root - INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt
15:11:27.353 - root - INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
Locale not supported, please try starting the command and setting LANG="en_US.UTF-8"

    Example: LANG="en_US.UTF-8" ./start-mycroft.sh cli

I checked and my locales were all en_GB.UTF-8 so I used raspbi-config to generate and set up the system locales to en_US.UTF-8.

Doesn't work on reboot

Hello!
I instars picroft, and ot listened well, that is, until it restarted. The picroft then didn't hear my microphone at all. Any help?
Thanks!

4GB card too small

When trying to flash the 0.8 image to a 4GB card I get an error that the available space is too small. According to the requirements it should be enough. So either the requirements, or Etcher is wrong :)

2018-07-31 image issues

Be clear about the software, hardware and version you are running

  • I'm running a pi 3b+ with the above image (2018-07-31 lightning preview)
  • With the standard Wake Word

Try to provide steps that we can use to replicate the Issue

  1. Burn the image to Micro SD card
  2. Seat the Micro SD card in the RPi 3
  3. Connect a network cable
  4. Boot Picroft
  5. ssh into pi.

Item 3 above is due to the missing bracket in the /etc/wpa_supplicant/wpa_supplicant.conf that was pointed out in chat (Don't recall who, sorry!). Wifi does not start in AP mode with the mycroft network to connect to.

(tl;dr)

  1. missing mycroft-cli-client
  2. motd has punctuation issues (_ vs -) in the command names.
  3. not completing the first run through has consequences, either force it or have it completed before image is remade?
  4. having a custom wake word and precise won't work well until you edit the config for it...though to be fair this is not terribly common yet.
  5. on home, under devices, the picroft images are showing with the mk1 graphic now instead of the picroft one.
  6. remove extraneous TODO in first_run bits?
    =====

After connecting, I declined to do first run. The MOTD which shows up uses underscores in the commands "say-to-mycroft" and "test-microphone", these should be dashes. The command "mycroft-cli-client" was also missing.

Upon reconnecting, dev_setup was run, and I was dropped into a mycroft cli. Unfortunately, it was not able to connect to the message bus and spammed with several errors (see log snippet 1, below). These continue until breaking out with ctrl-c. At which point you are dropped to a shell with venv activated. None of the mycroft processes were running. I had network connectivity (could look up and curl mycroft.ai, for instance).

At this point I touched /home/pi/first_run and reconnected. After microphone volume adjustments, it has a TODO: which made no sense, and I wish I had gotten to it before the dev_setup bits started, sorry!

The dev setup appeared to try and re-run, but repeated the same drop to CLI and the error messages seen below. In perusing the logs in /var/log, there's leftovers from the initial setup, not sure if that's something you want to clear or not (not a big deal, just cruft).

I touched first_ run again rebooted. This time it appears to have successfully gotten the mycroft pieces setup and running. Upon dropping me into the CLI, it was able to give me a pairing string, and after registering connected and is now working.

At this point I asked it to change its listener to precise, which did not seem to work very well(see log snippet 2, below), I attribute this to my custom wake word. On reboot, I got log snippet 3, also related to the wakeword.

The tool mycroft-cli-client does not exist on this image.

Log snippet 1:

> 05:13:42.104 - mycroft.messagebus.client.ws:on_error:84 - WARNING - WS Client will reconnect in 5 seconds.                                                                                                   
05:13:47.120 - mycroft.messagebus.client.ws:on_error:75 - ERROR - === ConnectionRefusedError(111, 'Connection refused') ===
Traceback (most recent call last):
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_app.py", line 168, in run_forever
host=host, origin=origin)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_core.py", line 266, in connect
                                                                                     self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options))
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 63, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 116, in _open_socket
                  raise err
                             File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 105, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_app.py", line 168, in run_forever
host=host, origin=origin)
                              File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_core.py", line 266, in connect
                                                                                                                                         self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options))
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 63, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 116, in _open_socket
                                                                      raise err
                                                                                 File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 105, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
05:13:47.132 - mycroft.messagebus.client.ws:on_error:82 - ERROR - Exception closing websocket: Exception("Uncaught 'error' event.",)
05:13:47.141 - mycroft.messagebus.client.ws:on_error:84 - WARNING - WS Client will reconnect in 10 seconds.

Log snippet 2:

05:24:26.407 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine                                                                                                                                                                                                                                                                                                                         
05:24:26.430 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx                                                                                                                                                                                                                                                                                                                
05:24:28.803 - mycroft.client.speech.listener:create_wake_word_recognizer:243 - INFO - creating wake word engine                                                                                                                                                                                                                                                                                                                          
05:24:28.816 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my customized silliness" wake word via precise                                                                                                                                                                                                                                                                                                                      
05:24:30.979 - mycroft.client.speech.hotword_factory:on_download:182 - INFO - Downloading Precise executable...                                                                                                                                                                                                                                                                                                                           
05:24:34.410 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.                                                                                                                                                                                                                                                                                                          
Traceback (most recent call last):                                                                                                                                                                                                                                                                                                                                                                                                        
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize                                                                                                                                                                                                                                                                                                                                            
instance = clazz(hotword, config, lang=lang)                                                                                                                                                                                                                                                                                                                                                                                              
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 128, in __init__                                                                                                                                                                                                                                                                                                                                              
precise_exe = self.install_exe(precise_config['dist_url'])                                                                                                                                                                                                                                                                                                                                                                                
File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 155, in install_exe                                                                                                                                                                                                                                                                                                                                           
on_download=self.on_download, on_complete=self.on_complete                                                                                                                                                                                                                                                                                                                                                                                
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 121, in install_package                                                                                                                                                                                                                                                                                                                             
download_extract_tar(tar_url, folder, data_file)                                                                                                                                                                                                                                                                                                                                                                                          
File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 83, in download_extract_tar                                                                                                                                                                                                                                                                                                                         
tar.extractall(path=folder)                                                                                                                                                                                                                                                                                                                                                                                                               
File "/usr/lib/python3.5/tarfile.py", line 1998, in extractall                                                                                                                                                                                                                                                                                                                                                                            
numeric_owner=numeric_owner)                                                                                                                                                                                                                                                                                                                                                                                                              
File "/usr/lib/python3.5/tarfile.py", line 2040, in extract                                                                                                                                                                                                                                                                                                                                                                               
numeric_owner=numeric_owner)                                                                                                                                                                                                                                                                                                                                                                                                              
File "/usr/lib/python3.5/tarfile.py", line 2110, in _extract_member                                                                                                                                                                                                                                                                                                                                                                       
self.makefile(tarinfo, targetpath)                                                                                                                                                                                                                                                                                                                                                                                                        
File "/usr/lib/python3.5/tarfile.py", line 2158, in makefile                                                                                                                                                                                                                                                                                                                                                                              
copyfileobj(source, target, tarinfo.size, ReadError)                                                                                                                                                                                                                                                                                                                                                                                      
File "/usr/lib/python3.5/tarfile.py", line 241, in copyfileobj                                                                                                                                                                                                                                                                                                                                                                            
buf = src.read(BUFSIZE)                                                                                                                                                                                                                                                                                                                                                                                                                   
File "/usr/lib/python3.5/gzip.py", line 274, in read                                                                                                                                                                                                                                                                                                                                                                                      
return self._buffer.read(size)                                                                                                                                                                                                                                                                                                                                                                                                            
File "/usr/lib/python3.5/_compression.py", line 68, in readinto                                                                                                                                                                                                                                                                                                                                                                           
data = self.read(len(byte_view))                                                                                                                                                                                                                                                                                                                                                                                                          
File "/usr/lib/python3.5/gzip.py", line 480, in read                                                                                                                                                                                                                                                                                                                                                                                      
raise EOFError("Compressed file ended before the "                                                                                                                                                                                                                                                                                                                                                                                        
EOFError: Compressed file ended before the end-of-stream marker was reached                                                                                                                                                                                                                                                                                                                                                               
05:24:37.120 - mycroft.client.speech.hotword_factory:during_download:194 - INFO - Still downloading executable...                                                                                                                                                                                                                                                                                                                         
05:24:38.830 - mycroft.client.speech.hotword_factory:load_module:273 - INFO - precise is taking too long to load                                                                                                                                                                                                                                                                                                                          
05:24:38.840 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my customized silliness" wake word via pocketsphinx                                                                                                                                                                                                                                                                                                                 
05:24:39.014 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine                                                                                                                                                                                                                                                                                                                         
05:24:39.034 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx                          
05:24:39.192 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:24:39.531 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 401 38
05:24:39.554 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:24:39.873 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/auth/token HTTP/1.1" 401 38
05:24:41.646 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize
    instance = clazz(hotword, config, lang=lang)
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 128, in __init__
    precise_exe = self.install_exe(precise_config['dist_url'])
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 155, in install_exe
    on_download=self.on_download, on_complete=self.on_complete
  File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 121, in install_package
    download_extract_tar(tar_url, folder, data_file)
  File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 83, in download_extract_tar
    tar.extractall(path=folder)
  File "/usr/lib/python3.5/tarfile.py", line 1998, in extractall
    numeric_owner=numeric_owner)
  File "/usr/lib/python3.5/tarfile.py", line 2040, in extract
    numeric_owner=numeric_owner)
  File "/usr/lib/python3.5/tarfile.py", line 2110, in _extract_member
    self.makefile(tarinfo, targetpath)
  File "/usr/lib/python3.5/tarfile.py", line 2158, in makefile
    copyfileobj(source, target, tarinfo.size, ReadError)
  File "/usr/lib/python3.5/tarfile.py", line 241, in copyfileobj
    buf = src.read(BUFSIZE)
  File "/usr/lib/python3.5/gzip.py", line 274, in read
    return self._buffer.read(size)
  File "/usr/lib/python3.5/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/usr/lib/python3.5/gzip.py", line 480, in read
    raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached
05:26:00.477 - mycroft.client.speech.hotword_factory:on_complete:202 - INFO - Precise download complete!

Log snippet 3

05:35:52.246 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via pocketsphinx
05:35:52.384 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:35:52.388 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:35:52.531 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:35:52.820 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 200 353
05:35:52.835 - mycroft.api:send:115 - DEBUG - Updating etag for: device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb
05:35:53.848 - mycroft.client.speech.listener:run:335 - DEBUG - Config has changed, reloading...
05:35:54.351 - mycroft.client.speech.listener:create_wake_word_recognizer:243 - INFO - creating wake word engine
05:35:54.361 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via precise
05:35:54.370 - mycroft.configuration.config:load_local:124 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
05:35:54.383 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): github.com:443
05:35:54.694 - urllib3.connectionpool - DEBUG - https://github.com:443 "GET /MycroftAI/precise-data/raw/dist/armv7l/latest HTTP/1.1" 302 141
05:35:54.703 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): raw.githubusercontent.com:443
05:35:54.919 - urllib3.connectionpool - DEBUG - https://raw.githubusercontent.com:443 "GET /MycroftAI/precise-data/dist/armv7l/latest HTTP/1.1" 200 111
05:35:56.225 - mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
  File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 105, in install_package
    remote_md5 = download(md5_url).decode('utf-8').split(' ')[0]
  File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 51, in download
    with urllib.request.urlopen(url) as response:
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 472, in open
    response = meth(req, response)
  File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.5/urllib/request.py", line 510, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 260, in initialize
    instance = clazz(hotword, config, lang=lang)
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 130, in __init__
    precise_config['model_url'], key_phrase.replace(' ', '-')
  File "/home/pi/mycroft-core/mycroft/client/speech/hotword_factory.py", line 166, in install_model
    on_download=lambda: LOG.info('Updated precise model')
  File "/home/pi/mycroft-core/.venv/lib/python3.5/site-packages/petact/petact.py", line 107, in install_package
    raise ValueError('Invalid MD5 url: ' + md5_url)
ValueError: Invalid MD5 url: https://raw.githubusercontent.com/MycroftAI/precise-data/models/my_silly_wakeword.tar.gz.md5
05:35:56.231 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "my silly wakeword" wake word via pocketsphinx
05:35:56.375 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
05:35:56.380 - mycroft.client.speech.hotword_factory:load_module:252 - INFO - Loading "wake up" wake word via pocketsphinx
05:35:56.524 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
05:35:56.809 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb HTTP/1.1" 304 0
05:35:56.823 - mycroft.api:send:111 - DEBUG - Etag matched. Nothing changed for: device/46c6e66a-68f6-4f8f-8fe8-bb56847f6eeb

Default password is not 'mycroft'

The default password is raspberry, not mycroft as stated in the documentation.

When using sudo -i, I see this, which is also shown on boot:

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

Error while processing skills

Hi,

I'm running picroft on a Raspberry Pi 3. I don't have any microphone yet, so I'm testing it using the command "say_to_mycroft". The problem is that when I trigger my custom skill, after saying the response that I want, Mycroft says "An error occurred while processing a request in SKILL_NAME skill". I have been reading the logs and I can see this message. This message appears in the log also for the pre-installed skills, but it does not says it:

22:01:16.934 - mycroft.skills.main:handle_converse_request:510 - ERROR - Error in converse method for skill 132214865 Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.9.17-py2.7.egg/mycroft/skills/main.py", line 504, in handle_converse_request result = instance.converse(utterances, lang) AttributeError: 'NoneType' object has no attribute 'converse'

Thanks in advance !

subscription voice doesn't work on picroft

The /etc/mycroft/mycroft.conf config overrides tts/voice from the web which will block the unit from using the subscriber voice.

To reproduce the issue:

  • select the subscriber voice on home.mycroft.ai
  • update the config (hey mycroft, update the configuration)
  • allow the voice to be downloaded

The voice should not change to the subscriber voice

Remove the "voice": "ap" line from /etc/mycroft/mycroft.conf and reboot, the device should now be using the subscriber voice.

Reboot problem

Hi, i have installed Picroft v0.8b Rapbian JessieLite on my RPi3, starts correctly and i can pair and register the unit correctly. The problem appears when i reboot the system, the system corrupts and start but with a lot of problems.

Is it necessary to shutdown or stop Mycroft the system in any specific way, i shutdown using "sudo shutdown now".

I have read that in order to recognize the new installed skills is necessary to restart, how can i restart M ycroft without rebooting the system?

auto_run.sh attempts to check mycroft version from ouside the virtual environment

Stack:

  • Raspberry Pi 3
  • 8GB MicroSD card
  • Picroft (core 18.2.10)

Steps to Replicate

  1. Install and Mycroft on the RPi 3
  2. Configure SSH access to the RPi 3 (eg. via raspi-config)
  3. SSH into the RPi 3

The Problem

When logging into the RPi 3 via SSH, the following header is displayed:

$ ssh pi@picroft

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 9 12:19:25 2018
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named mycroft.version


** Picroft enclosure platform version: 2018-03-14
**


Quick inspection of the auto_run.sh script points to line 12:

mycroft_core_ver=$(python -c "import mycroft.version; print 'mycroft-core: '+mycroft.version.CORE_VERSION_STR" | grep "core:")

Which is being run outside the mycroft virtual environment, so it can't see the mycroft Python packages.

Changes in home.mycroft.ai aren't applied to the PiCroft and picroft doens't recognize anything

I've changed the following in the online panel:
Settings > Advanced > Text-to-Speech Engine > Voice: Female (STL)
Settings > Advanced > Listener > WAKE WORD: hey sarah
Settings > Advanced > Listener > PHONEMES: HH EY . S EH R AH .
Rebooted the Pi but they changes aren't applied to the Pi...

When asking the Pi something, like: "Hey Mycroft, what time is it?"
I get a respond that he didn't understand what I said, in the log there's an error: "Failed to find intent"
If I check the log I also see MyCroft understood what I said: Utterance [u"what time is it"]
But why is there a u withing the [ ], maybe this causes the problems?

Can't connect to WS Client

Hi,
I have been trying to make Mycroft to work on Raspberry Pi.
I have installed Ubuntu Mate for Raspberry Pi 3 and also I followed this tutorial "https://github.com/MycroftAI/enclosure-picroft/wiki/Script-for-building-Picroft-image". While installation there was no error. But I couldn't make it work.
It gives this error at every new new terminal:

14:46:05.609 - mycroft.messagebus.client.ws:on_error:71 - ERROR - Exception("Uncaught 'error' event.",)
14:46:05.622 - mycroft.messagebus.client.ws:on_error:72 - WARNING - WS Client will reconnect in 60 seconds.

Also it gives these errors:

14:39:47.374 - mycroft.configuration.config:load_local:128 - DEBUG - Configuration /usr/local/lib/python2.7/site-packages/mycroft_core-0.9.17-py2.7.egg/mycroft/configuration/mycroft.conf loaded
14:39:47.387 - mycroft.configuration.config:load_local:128 - DEBUG - Configuration /usr/local/lib/python2.7/site-packages/mycroft_core-0.9.17-py2.7.egg/mycroft/configuration/mycroft.conf loaded
14:39:47.397 - mycroft.configuration.config:load_local:128 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
14:39:47.402 - mycroft.configuration.config:load_local:133 - DEBUG - Configuration '/home/connecticals/.mycroft/mycroft.conf' not found
14:39:47.434 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
14:39:48.628 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device//setting HTTP/1.1" 401 38
14:39:48.645 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
14:39:49.975 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/auth/token HTTP/1.1" 401 38
14:39:50.001 - mycroft.configuration.config:init:175 - ERROR - HTTPError fetching remote configuration: 401
14:39:50.011 - mycroft.configuration.config:load_local:133 - DEBUG - Configuration '/opt/mycroft/web_config_cache.json' not found
14:39:50.022 - mycroft.configuration.config:load_local:128 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
14:39:50.032 - mycroft.configuration.config:load_local:133 - DEBUG - Configuration '/home/connecticals/.mycroft/mycroft.conf' not found

I have installed Mycroft on Miniconda with these addinational steps:

conda create -n mycroft pip python=2.7

And also I have added these lines to "auto_run.sh"

export PATH="/home/connecticals/miniconda/bin:$PATH"
source activate mycroft

  • My hardware is Raspberry Pi 3
  • My OS is Ubuntu Mate ( 16.04 )
  • With version 0.9.17 of the Mycroft software
  • With the standard Wake Word

Also I saw a package that is mycroft-picroft. Should I have to install it?

Thanks in advance.

configure wifi doesn't work with Mycroft core >= 18.2.6

I've been trying to make a new image of picroft that works with the Google AIY voicekit, but am having issues with the wifi setup.

On a Raspberry Pi 3 B, with

  • mycroft-core 18.2.8
  • mycroft-picroft 18.2.8
  • mycroft-wifi-setup 0.2.5

source configure_wifi.sh fails, saying
ImportError: No module named mycroft.messagebus.client.ws

This seems clearly due to the fact that the shell script is using python2:

ls -l `which python`
/usr/bin/python -> python2.7

https://github.com/MycroftAI/enclosure-picroft/blob/master/home/pi/configure_wifi.sh#L2

Except messagebus_emit.py is not compatible with Python3:

python3 messagebus_emit.py
...
SyntaxError: Missing parentheses in call to 'print'

https://github.com/MycroftAI/enclosure-picroft/blob/master/home/pi/messagebus_emit.py#L12

Presumably the error started with mycroft-core v18.2.6,

The big move to python 3 ...
https://github.com/MycroftAI/mycroft-core/releases/tag/release%2Fv18.2.6

Do you have a feature branch in the works for this resolution? Any workarounds or mitigations you'd recommend for now?

Future Proof Mycroft Updates and Installs by Preallocating 8GB in the Image

This pertains to installing Mycroft via image on a memory card based system. As per convo with @KathyReid I observed that after writing the 20180301_build18 image to a 16GB mSD via Etcher, only 3.9GB is allocated to the main partition (this can be viewed with any partition manager). This is problematic because it is expected that Mycroft will eventually use ~8GB, and eventually a user may encounter difficult to debug issues when attempting to update, installing a skill, etc and there's no more space on the main partition, esp if they may know that they have at least a 8GB card installed.

This potential issue can be rectified in 2 ways. The first is for users to manually resize the partition themselves, but this may take a bit of know-how (it was pretty easy to do in KDE Partition Manager) and the user would have to be aware that this is the cause. The second method, which I propose, is to preallocate the 8GB within the image itself before distributing. As it now stands, the space used on the partition is ~3.04GB of that 3.9GB allocated. I think it's just a matter of installing Mycroft to a 8GB card, ensuring that the main partition fills it, and dding that partition - or the entire card - to create the image.

As a bonus, if it doesn't already, one of the things the support skill could collect is disk usage information, or maybe Mycroft could check if it has enough space to upgrade or install X...

amixer command sets Master Volume, not output source

After some troubleshooting of my own I discovered that amixer cset numid=3 is the scontrol for Master Playback Volume.

Where auto_run.sh and startup_auto_run.sh state

amixer cset numid=3 "1" # audio out the analog speaker/headphone jack 
#amixer cset numid=3 "2" # audio out the HDMI por (e.g. TV speakers)

...we are simply setting the Master Playback Volume to 1 or 2 but we don't notice that at runtime because the very next command readjusts the volume

amixer set Master 75% # set volume to a reasonable level

Recommend removing the following lines as they do not change the output source

amixer cset numid=3 "1" # audio out the analog speaker/headphone jack 
#amixer cset numid=3 "2" # audio out the HDMI por (e.g. TV speakers)

I haven't succeeded in finding the actual commands to switch output sources. Will keep looking

Discrepancies in build instructions

There are several minor discrepancies in the instructions for the custom build images. Here are the two versions of documentation I'm comparing:

  1. https://mycroft.ai/documentation/picroft/picroft-image/
  2. https://github.com/MycroftAI/enclosure-picroft/blob/stretch/image_recipe.md

These should be merged or updated to be in-sync to avoid confusion. Examples of discrepancies:

1 instructs the user to:
--> 'B2 Console Autologin'
--> 'I3 Change Keyboard Layout'
--> 'Generic 101-key PC'

  • '7 Advanced Options'
    -->'A1 Expand Filesystem'

while 2 does not have these doesn't have the majority of these instructions and also instructs the user to select Pick Generic 104-key PC.

And then from here on out, the two documents are drastically different. 1 appears to be more outdated asking the user to install mycroft repos, git, vim, cron jobs, platform detection scripts and more while 2 just asks you to do the following:

cd ~
wget -N https://rawgit.com/MycroftAI/enclosure-picroft/stretch/home/pi/update.sh
bash update.sh

As this is my first go at building the Picroft, I'm following 2 and are in the midst of running the bash update script. I'll update this issue with the results of my test.

Add msm list

Add msm list to list all available skills install-able.

Picroft2: update system as first thing after booting new install up

When setting up Picroft as the auto_run.sh should be dooing a systemupdate as the first thing

sudo apt-get update
sudo apt-get upgrade
sudo reboot

And maybe inform the user that it is updating….

Reason is that I see that mycroft dosnt come up right if not done - it fails starting some of the servises.

new decoder returned -1

I get this error

loop = RecognizerLoop()

File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.8-py2.7.egg/mycroft/client/speech/listener.py", line 189, in init
self.mycroft_recognizer = self.create_mycroft_recognizer(rate, lang)
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.8-py2.7.egg/mycroft/client/speech/listener.py", line 200, in create_mycroft_recognizer
return LocalRecognizer(wake_word, phonemes, threshold, rate, lang)
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.8-py2.7.egg/mycroft/client/speech/local_recognizer.py", line 40, in init
self.decoder = Decoder(self.create_config(dict_name))
File "/usr/local/lib/python2.7/site-packages/pocketsphinx/pocketsphinx.py", line 271, in init
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1

test_microphone utility is not working

PiCroft test_microphone or mycroft-audio-test does not work on my Pi-3, although mycroft works fine when in use.

The test_microphone utility would be very handy for testing the speech quality of a range of microphones, so I can use the best that I have.

Please let me know if you need more info.

Screen dump:-
$ test_microphone
Shutting down mycroft...
Starting a 5 second test recording...
2017-06-27 10:34:15,154 - mycroft.configuration - INFO - Loading configuration: /usr/local/lib/python2.7/site-packages/mycroft_core-0.8.16-py2.7.egg/mycroft/configuration/mycroft.conf
2017-06-27 10:34:15,156 - mycroft.configuration - DEBUG - Configuration '/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.16-py2.7.egg/mycroft/configuration/mycroft.conf' loaded
2017-06-27 10:34:15,157 - mycroft.configuration - DEBUG - Configuration '/home/pi/.mycroft/mycroft.conf' loaded
2017-06-27 10:34:15,157 - mycroft.configuration - INFO - Loading configuration: mycroft.ai
2017-06-27 10:34:15,631 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-06-27 10:34:16,071 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device//setting HTTP/1.1" 401 38
2017-06-27 10:34:16,088 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-06-27 10:34:16,518 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/auth/token HTTP/1.1" 401 38
2017-06-27 10:34:16,539 - mycroft.configuration - WARNING - Failed to fetch remote configuration: HTTPError(u'The supplied authentication is invalid',)
2017-06-27 10:34:16,540 - mycroft.configuration - INFO - Loading configuration: /etc/mycroft/mycroft.conf
2017-06-27 10:34:16,542 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' loaded
2017-06-27 10:34:16,543 - mycroft.configuration - DEBUG - Configuration '/home/pi/.mycroft/mycroft.conf' loaded
2017-06-27 10:34:16,544 - mycroft.configuration - INFO - Loading configuration: /home/pi/.mycroft/mycroft.conf
2017-06-27 10:34:16,546 - mycroft.configuration - DEBUG - Configuration '/home/pi/.mycroft/mycroft.conf' loaded
2017-06-27 10:34:16,547 - mycroft.configuration - DEBUG - Configuration '/home/pi/.mycroft/mycroft.conf' loaded
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.front.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround40.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround71.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Playing back the recording...
Restarting mycroft...

Wake Word Change Requires Reboot

Seems from testing today after changing the wake word and phonemes on the site it did push it to the pi, but it never would activate the new wakeword until I rebooted the pi. I tried restarting the services no luck. Not sure if this should work like this or not.

msm install fails to install exact matches

MSM install fails to install exact matches that have a longer alternative. Example:

pi@picroft:~ $ msm install bitcoin
#######  Mycroft Skill Manager #######
You search have multiple choices

bitcoin
bitcoin-price

PICroft 0.8.22 version Flawed??

I am a newbie here but after installing the image then having the auto update take it upto 0.8.22 I get strange experiences. Sometimes the speaker does not work, sometimes the mic does not work, (Jabra 410). Any mycroft.conf changes at any of the 3 conf locations, or via Web always breaks the system completely.
After two weeks of playing around with new images and with the PA and ALSA setting thinking I had a Audio issue, i got nowhere.
Since two days I installed the 'unstable' 0.8.18 image and blocked all updates, It's working perfect, never an issue, even when edit the hard coded mycroft.conf file in the core folder.

Can someone confirm my worries, because i'm quickly losing interest in Mycroft as a concept..

thanks
RM

how to add a gui

HELLO THERE
im new to picroft and previously i was familiar with raspbian jessi pixel
so how i can add a gui to picroft it will really help..

apt-get: server certificate verification failed

Seen during boot of newly flashed picroft SD card:

Checking for updates to Mycroft...
Ign http://repo.mycroft.ai debian InRelease
Ign http://repo.mycroft.ai debian Release.gpg
Ign http://repo.mycroft.ai debian Release
Err http://repo.mycroft.ai debian/main armhf Packages

Err http://repo.mycroft.ai debian/main armhf Packages

Err http://repo.mycroft.ai debian/main armhf Packages

Err http://repo.mycroft.ai debian/main armhf Packages

Err http://repo.mycroft.ai debian/main armhf Packages
  server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Ign http://repo.mycroft.ai debian/main Translation-en_GB
Ign http://repo.mycroft.ai debian/main Translation-en
W: Failed to fetch http://repo.mycroft.ai/repos/apt/debian/dists/debian/mai/binary-armhf/Packages  server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

E: Some index files failed to download. They have been ignored, or old ones used instead.

Trying sudo apt-get update && sudo apt-get update from a SSH session works without problem.

autorun tries to launch services on every terminal

The autorun script seems to assume that if you're not connecting over SSH it should launch the mycroft services. But if you're working locally, it's not uncommon for an experienced *nix developer to rely on multiple TTYs in the absence of a windowing system (ctrl-alt-1, ctrl-alt-2, etc).

The autorun script should detect if the services have already been launched or detect that we're not running on the default TTY and not attempt to launch them again.

Tested on Pi Zero?

Hi.

Has this been tested on Pi Zero W. Also, if it is connected to a HDMI device which has both display and audio, would it send audio to the HDMI connected device? or I use a sound card would it work?

This is specifically for the Pi Zero W version.

Or is the processing power of the Pi Zero not good enough for the Picroft to work well?

Build errors for Raspbian(full)

I am having issues with the install script for raspbian stretch(v9) for picroft. Here's the exact log:

Setting up ca-certificates-java (20170531+nmu1) ...
Error: missing `server' JVM at `/usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/server/libjvm.so'.
Please install or use the JRE or JDK that contains these missing components.
dpkg: error processing package ca-certificates-java (--configure):
 subprocess installed post-installation script returned error exit status 4
dpkg: dependency problems prevent configuration of openjdk-8-jre-headless:armhf:
 openjdk-8-jre-headless:armhf depends on ca-certificates-java; however:
  Package ca-certificates-java is not configured yet.

dpkg: error processing package openjdk-8-jre-headless:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of openjdk-8-jdk-headless:armhf:
 openjdk-8-jdk-headless:armhf depends on openjdk-8-jre-headless (= 8u181-b13-2~deb9u1); however:
  Package openjdk-8-jre-headless:armhf is not configured yet.

dpkg: error processing package openjdk-8-jdk-headless:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of openjdk-8-jdk:armhf:
 openjdk-8-jdk:armhf depends on openjdk-8-jdk-headless (= 8u181-b13-2~deb9u1); however:
  Package openjdk-8-jdk-headless:armhf is not configured yet.

dpkg: error processing package openjdk-8-jdk:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of openjdk-8-jre:armhf:
 openjdk-8-jre:armhf depends on openjdk-8-jre-headless (= 8u181-b13-2~deb9u1); however:
  Package openjdk-8-jre-headless:armhf is not configured yet.

dpkg: error processing package openjdk-8-jre:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-jdk:
 default-jdk depends on openjdk-8-jdk; however:
  Package openjdk-8-jdk:armhf is not configured yet.

dpkg: error processing package default-jdk (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-jre-headless:
 default-jre-headless depends on openjdk-8-jre-headless; however:
  Package openjdk-8-jre-headless:armhf is not configured yet.

dpkg: error processing package default-jre-headless (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-jdk-headless:
 default-jdk-headless depends on default-jre-headless (= 2:1.8-58+b2); however:
  Package default-jre-headless is not configured yet.
 default-jdk-headless depends on openjdk-8-jdk-headless; however:
  Package openjdk-8-jdk-headless:armhf is not configured yet.

dpkg: error processing package default-jdk-headless (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of icedtea-netx:armhf:
 icedtea-netx:armhf depends on openjdk-8-jre; however:
  Package openjdk-8-jre:armhf is not configured yet.

dpkg: error processing package icedtea-netx:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of icedtea-8-plugin:armhf:
 icedtea-8-plugin:armhf depends on openjdk-8-jre; however:
  Package openjdk-8-jre:armhf is not configured yet.
 icedtea-8-plugin:armhf depends on icedtea-netx (= 1.6.2-3.1); however:
  Package icedtea-netx:armhf is not configured yet.

dpkg: error processing package icedtea-8-plugin:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-jre:
 default-jre depends on default-jre-headless (= 2:1.8-58+b2); however:
  Package default-jre-headless is not configured yet.
 default-jre depends on openjdk-8-jre; however:
  Package openjdk-8-jre:armhf is not configured yet.

dpkg: error processing package default-jre (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of default-java-plugin:
 default-java-plugin depends on default-jre (= 2:1.8-58+b2); however:
  Package default-jre is not configured yet.
 default-java-plugin depends on icedtea-8-plugin; however:
  Package icedtea-8-plugin:armhf is not configured yet.

dpkg: error processing package default-java-plugin (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ca-certificates (20161130+nmu1+deb9u1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Error: missing `server' JVM at `/usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/server/libjvm.so'.
Please install or use the JRE or JDK that contains these missing components.
E: /etc/ca-certificates/update.d/jks-keystore exited with code 1.
done.
Errors were encountered while processing:
 ca-certificates-java
 openjdk-8-jre-headless:armhf
 openjdk-8-jdk-headless:armhf
 openjdk-8-jdk:armhf
 openjdk-8-jre:armhf
 default-jdk
 default-jre-headless
 default-jdk-headless
 icedtea-netx:armhf
 icedtea-8-plugin:armhf
 default-jre
 default-java-plugin
E: Sub-process /usr/bin/dpkg returned an error code (1)
Build complete.  Press any key to review the output before it is deleted.

It looks like there's an issue with the java dependencies and the repository. Any ideas?

python error in the listener.py

After updating to the the 0.8.22 version, I get a python error in the listener.py.

load_entry_point('mycroft-core==0.8.22', 'console_scripts', 'mycroft-speech-client')()

File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft/client/speech/main.py", line 140, in main
loop = RecognizerLoop()
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft/client/speech/listener.py", line 193, in init
self._load_config()
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft/client/speech/listener.py", line 211, in _load_config
self.wakeword_recognizer = self.create_wake_word_recognizer()
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft/client/speech/listener.py", line 227, in create_wake_word_recognizer
config[word]["phonemes"] = phonemes
KeyError: u'hey pedro'

0.8.21 seemed to work perfectly?
I tried just about everything:

  • reinstalling the image
  • dist upgrade to stretch,
  • installing the dev version
  • rebuilding python from source, manually installing pip.

Is nobody else having this issue?

automated build

I have a fork that adds a build process that overlays the Picroft code onto an existing SD card image. At the moment I use a past Picroft build, but that's obviously not ideal. What would be ideal would be to overlay it on a Mycroft standalone image.

2 questions:

  1. Before I go about building it myself, is there already an available location of SD card images of Mycroft standalone?
  2. Would this be interesting as a pull request?

Could not request Speech Recognition recognition request failed: Not Authorized

Picroft on Raspberry Pi 3 Model B.
Connection: Ethernet
Version: 0.9.17
Image written: Using the following command on Linux; sudo dd if=imagename.img of=device oflag=sync bs=4M
Microphone: PS3 Eyecam

The issue I'm having is that Mycroft works, except for voice recognition. Saying "Hey Mycroft" works fine and I get the activation sound, but then it just stays silent and outputs the following.
mycroft.client.speech.listener:transcribe:168 - ERROR - Could not request Speech Recognition recognition request failed: Not Authorized

Add msm install <keyword>

Allow install by keyword rather than github http link. Makes it more user accessible. For example:

msm install pandora

installs the pandora radio skill to picroft

Wrong msm script

Running an updated version of the latest picroft 3-14 image, msm points to /home/pi/bin/msm rather than /usr/bin/msm. This can be manually fixed with rm /home/pi/bin/msm.

usb audio speaker output not working with picroft on pi3

  • I'm running a Raspberry Pi 3
  • With pi day image release of the Mycroft software
  • With the standard Wake Word

When I follow the standard procedure listed for setting up a usb speaker:

Typically the USB audio should be connected to hwplug:1,0 but to verify run the following:

aplay -L

Find the hwplug output for the device you want to use, take this and update the >/etc/mycroft/mycroft.conf file accordingly:

"play_wav_cmdline": "aplay -Dhw:0,0 %1" this line now becomes "play_wav_cmdline": "aplay ->Dplughw:1,0 %1"

You can now run ./auto_run.sh to start the program back up and test and ensure the output comes >through the USB speakers.

When I run aplay -L, I see a device at slot Device_1,0

plughw:CARD=Device_1,DEV=0 USB2.0 Device, USB Audio Hardware device with all software conversions

I can get a test waveform to play on said USB device through running the command aplay -D plughw:Device_1,0 /usr/share/sounds/alsa/Side_Left.wav. However, when I replace the play wav command... hw:0,0 line in /etc/mycroft/mycroft.conf with plughw:Device_1,0, audio still plays out the audio jack.

Here is a copy of the two audio output lines in the .conf file:

"play_wav_cmdline": "aplay -D plughw:Device_1,0 %1", "play_mp3_cmdline": "mpg123 -a plughw:Device_1,0 %1",

Additionally, when I ran auto_run.sh, I noticed a line that said:

20:26:07.427 - mycroft.configuration.config:load_local:124 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf not found, so I tried copying the .conf file to /home/pi/.mycroft to see if that would solve the problem, but still nothing out of the USB speaker.

Any suggestions?

Message Bus stops logging

I have noticed on 3 separate picrofts that mycroft-messagebus.log stops capturing messages not long after booting.

Below is the entire mycroft-messagebus.log for a system that has been running for 5 days:

2017-09-27 19:09:31,972 - mycroft.configuration - DEBUG - Configuration '/usr/local/lib/python2.7/site-packages/mycroft_core-0.8.22-py2.7.egg/mycroft/configuration/mycroft.conf' loaded
2017-09-27 19:09:31,981 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-27 19:09:31,982 - mycroft.configuration - INFO - Loading configuration: mycroft.ai
2017-09-27 19:09:32,006 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-09-27 19:09:33,950 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/2679f45e-eb27-45ba-9ade-e1d695cbcfd7/setting HTTP/1.1" 200 2919
2017-09-27 19:09:34,037 - requests.packages.urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai
2017-09-27 19:09:39,265 - requests.packages.urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/2679f45e-eb27-45ba-9ade-e1d695cbcfd7/location HTTP/1.1" 200 936
2017-09-27 19:09:39,356 - mycroft.configuration - INFO - Loading configuration: /etc/mycroft/mycroft.conf
2017-09-27 19:09:39,358 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' loaded
2017-09-27 19:09:39,359 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-27 19:09:39,360 - mycroft.configuration - INFO - Loading configuration: /home/mycroft/.mycroft/mycroft.conf
2017-09-27 19:09:39,361 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
2017-09-27 19:09:39,362 - mycroft.configuration - DEBUG - Configuration '/home/mycroft/.mycroft/mycroft.conf' loaded
/var/log/mycroft-messagebus.log (END)```


How to turn off Display Manager

To boost performance, is there a configuration param to turn off the Display Manager when no faceplate is being used? I'm running cli and am constantly seeing "setting active skill to..." along with img_codes. I have tried stopping the enclosure service and this does not seem to make a difference. I have my enclosure set as picroft using the remote settings.

Picroft2: pulseaudio or not...

I have installed new image, and got google AIY working.

But if installing pulseaudio mycroft cant set volume. If not having installed pulseaudio he can set volume.

Cant figure out why and how to fix.

I think I need pulse audio to get mix on google AIY working whith mycroft. It works whitout pulseaudio outside mycroft - and whith mycroft-mic-test but non when mycrofr is running (gues the voice part dosnt really work vhitout pulse)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.