Mycroft Mark II missing files

A post was split to a new topic: Mark II stopped booting - fans at max

I got to agree with LiberalArtist here; I’ve spent quite a few hours hacking and tinkering, writing a couple of skills for Mycroft, getting the setup just so; now all that work is, without communication from core-devs, deprecated or required to be ported to a new platform. I was working on:

  • features for the spotify skill
  • a new skill that integrates purpleair
  • a new skill that allows you to change mycroft’s voice (in runtime, via voice commands).

I appreciate the difficulty of what you’re trying to do, but working behind closed doors and then sort of “hard forking” your own project – without warning anyone who might be messing with your code – is an unpleasant thing to do to your community. Like, will the dinkum repo be able to run outside the mark 2 hardware? If I develop a skill, am I forced to choose developing for an unsupported platform that works on a pi or working on a mark 2?

I placed on order for the mark 2 based on the promise of a really hackable, open and integrity-focused piece of software. I’m paying a premium over what Amazon/Google/Apple provide, and happy to do so, but when I pay that premium I’m not simply hoping Mycroft succeeds or that I get a good device (indeed, I expect Mycroft won’t compete in UX for some years), but that Mycroft can be a platform that I can be part of. For this to work, you all have to merge PRs, and be really transparent about what’s up inside your org.

Again, I appreciate that you all seem to be in serious production hell, and underwater, but you’ve set a really high bar for yourselves when you advertise a different kind of product and different kind of company, and making trade-offs that favor “consumer experience” over community-engagement are the kind that make me think about cancelling my order and just going back to alexa.

7 Likes

Hi @osheroff,

For those that want the extensibility and access to the existing ecosystem - we have released a Classic Core image that includes all the tooling you’d be used to and is completely compatible with all the Skills you’ve been working on.

We built Dinkum because we wanted to show what was possible with heavily refactored code, and provide the best possible direct user experience when people plug their Mark II in for the first time. We did this “behind closed doors” because we were trying lots of different things and every time we did this publicly there was an outcry that it wasn’t backwards compatible. We tried to explain our intentions the first few times, but honestly, our dev team was able to move far more quickly by hunkering down and just trying things out in private.

Dinkum was made as a fork, precisely because we didn’t want to force this on everyone and it is only written to work on the Mark II. For those like yourself that have written Skills we didn’t want to suddenly force you to port this to a new framework, particularly before we’d really tested it out in the field.

Maybe we should have released Classic Core as the default and provided Dinkum as an optional image? However Dinkum is simply far more stable. So for consumers that aren’t comfortable on the command line it provides the best experience as a voice assistant performing the core functions that we’ve seen people use most.

For yourself, if Classic Core is working well, then I wouldn’t bother porting your Skills to Dinkum. Just grab the Classic Core Sandbox image and away you go.

It’s an interesting point about making trade-off’s between “consumer experience” and “community engagement”. I think I need to sit with that for a bit, but I do hope that we can find a place where as a community we are working toward a better consumer experience together.

The Mark II production model I received is a total disappointment. It took 3 days until I finally stumbled on the documentation that explained that the Mark II OS didn’t have the capabilities I thought I’d been sold when I decided to order it. As a retired software engineer I understand how the pressure to deliver promises can lead to bad decisions. All the justifications offered above don’t justify the fact that this appliance is effectively not what was promised. Furthermore the fact that the documentation did not make this failure blatently clear is even more disappointing.

3 Likes

My Mark II thinks its paired, but it doesn’t respond to any commands or show up in my account.

Attempts to get help via forum, email and MM chat haven’t been successful yet. My GF wants me to just box it up and get a refund.

Linux HAL: “The purpose of the hardware abstraction layer (HAL) was to allow desktop applications to discover and use the hardware of the host system through a simple, portable and abstract API, regardless of the type of the underlying hardware”

Can Mycroft strive for a HAL? Just a thought …

-Mike Mac
1 Like

OVOS and Neon does that.

2 Likes

our PHAL service can also be used together with vanilla mycroft, just run it on same machine, all it needs is to connect to the bus. but our plugins may not make sense in vanilla mycroft

docs here

https://openvoiceos.github.io/community-docs/PHAL

We did this “behind closed doors” because we were trying lots of different things and every time we did this publicly there was an outcry that it wasn’t backwards compatible.

Definitely sounds painful. That said, you did sign up to run an open-source based company…

Maybe we should have released Classic Core as the default and provided Dinkum as an optional image?

No, I don’t want to stay on classic. If you all have a better framework in dinkum I’m happy to port skills there – I want to be swimming as close to HEAD as possible; I know that even in open source projects it’s usually one person or one company that does the bulk of the heavy lifting. But:

  • Giving your devs more of a heads up of where you’re going (even if only to say “hey guys, this it the new stuff, like it or not”) so that your community doesn’t feel totally surprised / left in the dark is going to engender goodwill down the line, and the inverse is just going to make your community feel left out / devalued.

  • Dinkum has a lot of odd systemd stuffs that seem to be aimed at just the mark 2; I’m happy to have ordered a mark 2 personally, but I’d like to know that if I contribute skills for mycroft I’m not going to either have to (a) contribute to a deprecated, unmaintained codebase or (b) only have skills be available to people who pay for premium hardware.

4 Likes

Can you elaborate on “no automatic updates” ?

I received my unit yesterday and already had to flash an image…

Also, to anyone who flashes… Make sure you go into the Advanced Settings on the Raspberry Imager and set your SSID credentials… Wasted 20-30 minutes before realizing the Mycroft temporary SSID will not broadcast.

1 Like

Back in October 26th, I read with interest michael-mycroft’s response to missing files in this Mk2 missing files topic. Quote, " Rest assured, we will soon be releasing images that allow you make use of the hardware with any version of Mycroft. This should be within days, not months." unquote.

At the time I assumed, (obviously mistakenly), that this meant that the dinkum variant would shortly be upgraded to support installation of other existing skills etc, a common complaint here. However after waiting over a month, thought that I’d better re-read it.

On re-reading am I to assume now that the mycroft Core image is the one that was being talked about, (which Has been made available), and that there’s no immediate plans to bring installation of other existing skills into dinkum ?

(Did initially load up another USB with the core version, but as I ran into problems immediately, decided to hang on till dinkum was brought up to scratch).

So the question is, is this currently it for dinkum, or are there any plans to make it and/or other software compatible ? If so, any ideas on timelines ?

Thanks

5 Likes

It looks like the README in dinkum now includes some direction on porting skills to Dinkum:

With sessions, skill intent handlers change from:

def handle_intent(self):
    self.speak_dialog("my-dialog", data={"x": 1})
    self.gui["y"] = 2
    self.gui.show_page("my-page.qml")

to this:

def handle_intent(self):
    return self.end_session(
        dialog=("my-dialog", {"x": 1}),
        gui=("my-page.qml", {"y": 2})
    )

Rather than executing commands to control the GUI and TTS, the skill is returning a message that expresses what it wants to do. The session manager (intent service) can then decide whether or not to do it.

A new session begins when an utterance is received, and is usually ended by a skill’s intent handler (self.end_session()). When the session is over, the GUI returns to the home screen after all TTS has been spoken.

Exceptions to the default flow include:

  • Using self.continue_session(expect_response=True) to get a response from the user.
    • The skill’s raw_utterance method is called with the utterance
  • Common Query/Play
    • The parent skill uses continue_session and expects the child skill to end it
1 Like

As a skill developer I want to reiterate what @osheroff said here: I’d like to be working against the future of the platform, not the past. But the documentation is lacking.

Edit:
In particular what I would love to see is instructions or a general guide on setting up a dev environment for dinkum that doesn’t involve the mark Ii hardware itself. Whether this be using a virtual machine or something else…my Mark ii is a production device in my house and I can’t always use it for skill development

3 Likes

Thank you Harmony for bringing that to our collective attention! I appreciate your contribution. I want to suss out how to develop new skills, and I’m shocked that this info is not more readily available.

I’d like to point out that Mycroft AI has done a great job of documentation before…

just see their docs for mycroft-core: Development Setup - Mycroft AI

I suspect what we are seeing is just an overworked team trying to develop and ship a production product ready for the market and meet their kickstarter obligations. Obviously they have prioritized shipping the hardware along with suitable production firmware… hopefully now that this crunch is over they will be able to update the documentation with the new system.

Merry Christmas to the Mycroft team!

3 Likes

My two cents: I’m thinking there’s a misalignment about what the target market is. I think I’m (software developer, interested in mucking with things myself and willing to pay a premium for hardware to avoid adtech) pretty much the target market for the original product I ordered . It feels like the target market has shifted (or maybe it was always this way?) and there’s an intention that this is a mass market device?

It worked out so that I unboxed this at Christmas, so my first experience showing it off was “huh, it doesn’t seem to really work or do any of the stuff it says it can do”. It can turn on very slowly with fan whine, connect to Wi-Fi, and then tell you in a bunch of different ways that it can’t do anything you ask. The room full of “mass market consumers” is not going to be buying this based of my demo, that’s for sure.

I understand the team is under pressure and it blows to have to make hard choices. That said, how many shipment delay, address confirmation, “order now”, “no really, order now” emails did we get and how many mentioned anything about Dinkum or the “stripped-down” (from my perspective, crippled) software that would ultimately ship?

I’m really surprised this wasn’t the decision made, but I guess it’s also got me curious. How many sales of the Mark 2 went to people unfamiliar with the command line? Is that really the majority end user that should be optimized for?

The product that showed up did not feel like it was produced to be user-empowering, hackable, open source alternative to adtech. It feels like it got halfway there, someone said “hmm, but it’s gotta make money” and turned it into mass market shovelware.

Maybe this is a rant and overly harsh, but sure was a disappointing Christmas reveal.

Edit: Thinking about how to make this rant more constructive, I think it’s all down to communication. If I buy a microcontroller, I know it doesn’t do anything and the first thing I’m going to have to do is flash it. Dinkum was a complete surprise to me, and I only found out about it indirectly in response to my own bewilderment in Mycroft Skills Manager on Mark 2? - #4 by devilish_cobweb. If the version that shows up is stripped to the core and can’t even install skills, then that should be front and center in the on-boarding so I don’t assume it’s just broken.

6 Likes

Release of the Mark II was botched. The device has been described as an expensive paperweight and no more than a clock. Mycroft leadership should own this, and share a roadmap of the way forward, and by the way, give thanks to those who trusted them and who might continue to trust them. The goal of the Mycroft exercise is admirable, but those who peripherally support the effort shouldn’t be treated with disrespect.

6 Likes

Yes exactly this. I’ve had my Mark 2 a couple of months but it’s only now at Christmas that I have some time to spend messing around with it. It is so disappointing to find that it has so few skills and no simple way to add more.

I spent the day yesterday getting the hello.mark2 skill working - it was painful, the guide assumes knowledge of pre-Mark2 which I don’t have. I finally figured it out but it was much harder than it needed to be.

Now I’d like to try to get some other skills working on my Mark2 but there is very little to go on.

1 Like

This was stated on October 26th. Where is the new documentation? Where are images that don’t force me to rollback to an older version of the OS? If this is not ready, I would like a full refund on this product or I will report Mycroft to the FTC for bait and switch tactics.

1 Like