Core 2 M5 IoT Stack AWS EduKit Unboxing
Tags: aws, iot, core2m5, hackster
Published: 2021-07-22 15:11:34

I have no idea how I missed this one, I only just caught this on my network someone (can't recall who) was promoting the last days to register for the [hackster healthy spaces challenge](https://www.hackster.io/contests/Healthy-Spaces-with-AWS).

I didn't end up registering for the free hardware but I went ahead and purchased one and registered for the event. I'm going to run through unboxing the Core 2 M5 Stack and first impressions.
Where cloud?

OK, you're probably wondering where the cloud part comes in and if you know me, more specially where does the AWS part come in. Well, this is the M5Stack Core2 ESP32 IoT Development Education Kit for AWS which as you've probably gathered is geared towards using the device with AWS IoT, it's also branded with AWS logos.
Why this kit?

Apart from just being keen on AWS in general, this device looked pretty cool on the surface. In the past I've dabbled in various micro controllers and typically what I've found has been more challenging is once you start adding a bunch of sensors the bread board gets pretty busy and it's usually not so plug n play. If you want battery than that will be another challenge. This device has a bunch of built in sensors (and LiPO) built-in that you can start using with little effort, helps for prototyping quickly.

### Unboxing

The box itself is cool, branded in the M5 stack logo on the cardboard and tape. I like this subtle detail. The overall weight of the unit is very light, the approximate weight is around 100 grams.

![core2 m5 close](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fpz7xm3ws5qx0d9xisly.png)

![core2 m5 open](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2wmljjdo5rlces8p1oao.png)

Upon opening the box you'll be greeted with a pretty decent chunk of bubble wrap. The actual contents of the box are pretty small. I should note that I purchased an additional cable that I wanted and an additional sensor. I'd be curious to hear if the box is smaller if you just get the Core 2 on its own?

The actual Core 2 packaging reminds me of a matchbox, sliding the contents outwards. I really liked the AWS branding on the packaging but in general don't expect Apple quality packaging. There is a sticker that needs to be removed before you can slide it out which is a little tricky or you'll need a knife or something.

![core2 m5 inside](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g23on4g3gmqw7ebka05n.png)

![core2 m5 matchbox](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e80abru7crffzz6uew7u.png)

As you can see from the size, it's quite a small footprint, it easily fits in the palm of my hand.

![palm of hand](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03o7yvkvnbht9y4w1fe4.png)

### Whats in the box

Firstly, there are no instructions in the box, there is no QR code or anything on the box guiding you to what you're supposed to do next. The box is limited to the following items:

    1. Core 2 M5 Stack device
    2. USB-C to USB-A cable
    3. Allen key / hex wrench

Naturally, by including a tool I'm going to open this thing...     

![exploring](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ig6ylxtpp7h0zi4pozdl.png)

![underneath](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/spqc1blcc6f1g866zdt6.png)

### What's inside the box inside the Core 2

Once you remove the four hex screws you get a better look inside the Core 2, you'll notice the battery and the small ESP32 board. Separating the cover is a little tricky, you kind of need to pry it open and be careful not to bend the pins but it's not to bad.

![inside the stack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71pjirj5y7vt9eflemyp.png)

> Tip: Take note of the different length screws, it's a tad annoying that they are different lengths.

![screw length](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/spy4hnlwptfdfd18zuwn.png)

The specs

It's probably easy to just show you the diagram from the supplier as it lists out the specs pretty nicely.

Here are some key take aways:

    * ESP32 16MB
    * USB-C interface for connection, power etc
    * Capacitive colour touch screen
    * Microphone
    * Speaker
    * Vibration motor (kind of like your smart phone when it vibrates)
    * RGB lights either side of the unit
    * Led light
    * Micro SD card slot
    * Battery - 500mAh lithium
    * 2.4Ghz Wifi

The M5 store has the most details if you want to dig further into it
https://shop.m5stack.com/collections/m5-core/products/m5stack-core2-esp32-iot-development-kit-for-aws-iot-edukit  

![core2 m5 promo image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74mkq17uzmapqz58xrc2.png)

The construction of the casing is pretty impressive, there are no sharp corners or manufacturing defects on my unit. The screen is protected by a plastic film that you can peel back and dispose of. There is a nice subtle M5 imprinted on the side of the unit which is nice detail. Apart from the unit being AWS orange there is no AWS logo or wording on the case itself.

### Bonus component

I did purchase an additional sensor, a microphone. I was curious to see what the quality of additional sensors was like and for my hackster project I need to use a microphone. I was unsure what the quality of the built-in mic would be so it was a just in case purchase (deadlines)

The mic sensor is pretty sweet. Again, the construction of the casing for the sensor is great and the cable is plugs in snugly. The sensor comes in its only little case. Which reminds me of gameboy game cases for some reason, ha! 

![mic check](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yv6bhcxlxecea8rv39rh.png)

### Boot up

There is a small power button that you press to power up the beast, it only takes a moment, you've got to be quick if you want to snap a pic of the AWS logo but it's glorious!

![it's alive](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7u5kknt0fqwvqg3ncu1a.png)

The lack of instructions becomes less of an issue as the touch screen welcomes you and has a bit of demo of the various sensors included with the device.

The welcome program will have you swipe through and interact with the device to activate the vibration sensor, use the microphone, toggle controls and others like the gyro. Don't expect the same touch responsiveness as your phone, I think it's pretty good considering, I did find that when I loaded one of demo firmwares the controls weren't as good as the demo loaded from factory. I'm guessing there is an activate area or something that needs to be programmed. I haven't gotten that far.

The final screen is a url to the [AWS EduKit website](https://edukit.workshop.aws/) to begin going through the "hello-world" samples.

### Ignore the help

So, I did the obvious which was ignore the instructions, how hard could it be? I continued to fumble my way though thinking there must be a way to connect this to the wifi or there must be a mobile app. Again, none of this was obvious.

Don't do what I did, [read the instructions from AWS](https://edukit.workshop.aws/).

### Mac OS Cable Connection

If you're running Apple devices like a macbook you might run into trouble with the USB-C connection. When you plug the M5 in it loads a driver and creates a serial connection which you use to interface with. Connecting through my dock / hub didn't work, I had to connect to directly. Booo...

> If you're running a macbook usb-c only, make sure you have a cable e.g. USB-C to USB-C (not included). I can confirm the genuine Apple USB-C display, USB adapter worked if you have one of those.

### A tale of two buttons

One thing I found kinda of funny was the power and reset buttons, there are two buttons. For some reason I thought there was only one button but you held it down to reset the device. This is the most common type of button I've seen on IoT devices. The M5 has two separate buttons, one for power and one for reset, they are identical but on different sides. Subtle.

![power button](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/odgbskbys5t79pvx9u1e.png)

### Initial connections, IDE

Good news! The M5 uses PlatformIO which integrates with Visual Studio Code, so you get that familiar IDE. I did find the PlatformIO extension to be pretty chunky and generally not very intuitive though. In my opinion it's the separate menu systems inside the extension which add to the confusion for me, it doesn't take long to work it out, so this is minor.

![platformio ide](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zk62sjzz8t6hvrrdo5o.png)

Once you've connected the device and confirmed you actual have a serial connection available, loading firmware is pretty easy. I went ahead and loaded the getting started firmware, this firmware has a very basic spinning fan on the display that you can control.

To toggle the controls remotely you can use the cli or you can use the mobile app. Follow the AWS EduKit guide to find the app.

> Tip: Restart the device once you've loaded the firmware and watch the terminal output on your computer. The QR code needed for claiming and registration is in the terminal output.

### Recap key tips

    * If you're running Apple Mac or USB-C only host, buy a USB-C <> USB-C cable
    * Restart the M5 once flashed, monitor the output for the QR code for claiming
    * Read the manual (shocker)
    * Note the screws if you take it apart as they are different lengths

### Final Thoughts

As an owner of multiple generations of raspberry pi's, various hats, cases, feathers and other mc's i'm impressed by the build quality most. The case construction, fitting and detail that has gone into it is really impressive for the price (~$49.90 USD). Shipping was pretty quick at around 5-7 days to Australia.

I thought the on-boarding wasn't as smooth as other IoT devices that I've used in the past, which would be scan a QR code, download app, register and toggle various buttons through the app. There are a few more steps to jump through to get going.

The platformIO IDE looks pretty powerful, bit of a learning curve there, I would have liked a more basic interface. One thing to note is that the platformIO IDE caters to many different types of devices which is probably why its feature rich.

In summary, I'm happy with the purchase so far, I'm looking forward to having a play with the Core 2 M5 and AWS IoT. Hopefully I'll have some more info to share soon!