Mycroft Community Forum

Available pins on the PI?

Hi Folks,
Dev kit has just arrived and I’m downloading the PI image as I type.

Couple of quick queries come to mind as I look at the bits.

  • I was hoping to connect a few sensors via I2C to the PI. Is that still possible?
  • Is there a pin out diagram?  Any spare GPIOs?
    

Edit: To answer my own question. From the documentation:

Which GPIO pins are available?

The Raspberry Pi GPIO pins 1, 12 and 13 are brought out to J9 on the SJ201. This is next to the volume up button on the front-right of the board if you are looking at the device face on. GPIO pin 0 is also not used.

So no easy I2C. No worries.

  • I was also intending to control an Arduino via USB. Any reason that is not possible?

Looking forward to putting this together. Hoping to build some sort of robot head enclosure to go on the wall of my summer house.

Thanks in advance

The container the mk2 is running in locks down usb, networking, etc.

That doesn’t sound good. Can you explain a bit? I dont know much about containerisation

Previously I’ve been sending simply serial commands over the USB port

if the ports aren’t passed through to the container you won’t be able to use them as expected.

Ah OK, I think I understand that. Is there a list of open ports or am I thinking in the wrong direction?

Apologies if my questions are daft. I think I have a couple of years of concepts to catch up on.

Extremely naive tl;dr from somebody not very far ahead of you on the electronics front:

The unit you’re getting out of the box is most comparable to a big-brand smart speaker, which is to say, those GPIO pins are more access than I (personally) expected.

The system it’s running, by extension, is relatively locked-down. The most important things for the consumer unit are 1) that every unit is the same and 2) that end users find it as difficult as possible to compromise their own privacy and security.

This obviously does not apply to makers, hackers, or, really, any of us here, but the fact remains that you’re getting a device that runs a Pi, not on Pi.

I will let others speak to what you can or can’t do about it, but it’s worth noting that, in your dev kit, most of the ports are unobstructed internally, but facing down, and so would require creative cable routing. Both sides of the Pi itself have a little bit of clearance, so, similar caveat.

But none of that does you any good with USB and ethernet locked down. That’s just the physical situation.

2 Likes

Oh, and there’s nothing stopping you from doing the robot head thing! Just probably not using the MkII OOTB and clean. IMO you’d be better off hooking it up to a Linux build, or waiting for OVOS, which is kind of like a community Picroft. I’d suggest Picroft itself, but it’s kinda backburnered while MycroftAI is focused on the MkII. :man_shrugging:

1 Like

You have given me much to think on. Many thanks.

I see the two of the open GPIO’s have PWM enabled. Worse case, I can semaphore the Arduino!

for a robot head i strongly recommend a git install in a proper host system solution

the mk2 doesnt run a traditional OS; it run on pantacor

essentially it uses a docker container, so my supposition is that someone controls the container and pushes changes to the device, meaning on reboot anything you installed will be gone, so its not great for development. if you changed your container the next update would also revert your changes. i think the .venv and skills folder are mounted volumes, so i suppose python requirements could work, but not any OS level stuff, so if you need to install drivers prepare for trouble…

NOTE: i still dont have my mk2 and this is theoretical, i dont know any details about mycroft/pantacor specific stuff

tldr, you probably can have files but not depend on OS libs at all

2 Likes

Cheers JarbasAI,
Most of the head functionality can be handled by the Arduino (Lights and a few light weight motors). But I was hoping to get Mycroft to read a few basic sensors (PIR and temp).

Sure I read somewhere in the documentation that there are three containers, but I cant find the reference now.

Would containerisation explain why I cant get to raspi-config to enable webgl? (I was trying to get some of your skills working but they needed webgl)

Much to learn.

my devkit is almost here according to tracking, please open up any issues in relevant repos, at this time i can’t give much feedback about mk2 specific things, but i would not be surprised if raspi-config isn’t even available

i will be doing a sweep over all my skills in the mk2 devkit and either fix them or flag them as wontfix

1 Like

it’s definitely not available.

We thought the usb2/3 ports and ethernet were the most important to make easily accessible hence why they’re out the side with a window to access. There’s also the 3.5mm jack on the back. I haven’t tried running anything off the micro (mini?) HDMI ports or the usb-c that is pointed down. You’d probably need a right angle cable head to route this properly.

Everything in the OS is kept intentionally very light and we want to go lighter by default, but nothing should be unusable. Eg usbutils is not installed by default so even lsusb won’t work out of the box, but you can sudo apt install usbutils .

Raspi-config won’t be available as the system in the mycroft container is ubuntu 20.04 based not Raspberry Pi OS. However raspi-config is just a convenient shell script for performing actions on the system.

I don’t have any arduino’s with me but I’m sure we can get those working.

A few other points:

  • The Pantacor system doesn’t run docker, it uses the linux native LXC which is far lighter.

  • Any changes you make to the filesystem will be retained even with auto-updates on but this can obviously cause issues given new updates would be expecting certain code changes are made. If you’re doing core development I would suggest turning off automatic updates as a general rule. We’re working on making this as intuitive as possible.

1 Like

Thanks Gaz,
Sounds more hopeful with the USBs. I can always connect the sensors to the Arduino and feed the results into Mycroft. That would avoid any need for GPIOs.

I shall be keeping well away from the kernal thank you very much. :slight_smile:

@Steve_Goodwin I have been using software from this guy namely this to connect my Arduinos to my other computers. Might give it a look.

1 Like

Much obliged Sir. I shall have a read