Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -301,3 +301,4 @@ You can also give a custom title as specified here.
{{% /notice %}}



Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ Modify the weight values to be unique and the extra buttons will disappear.
### Why aren't my changes showing up under Learning Paths?

There are various reasons this can happen. One being that the top links on the page will take you to the external site. Make sure that you are still viewing the Hugo server on `localhost`.

Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ In this section, we will create an AWS IoT Greengrass deployment that will downl

### 0. (Non-Camera Edge Devices Only): Additional Custom Component

If your edge device does not contain a camera (i.e. EC2 edge device), you will need to deploy an additional custom component. Please follow [these steps](./NonCameraCustomComponent.md) to get the additional component created. You will be selecting this component in addition to the custom component we created for the Edge Impulse "Runner" service.
If your edge device does not contain a camera (i.e. EC2 edge device), you will need to deploy an additional custom component. Please follow [these steps](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/noncameracustomcomponent/) to get the additional component created. You will be selecting this component in addition to the custom component we created for the Edge Impulse "Runner" service.

### 1. Deploy the custom component to a selected Greengrass edge device or group of edge devices.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,15 @@ layout: learningpathall

## Edge Device Hardware Setup

First, an edge device must be setup. In the following sections, Linux-compatible edge devices are detailed to enable them to receive and run as a AWS IoT Greengrass edge device. The list of supported devices will grow over time.
##### First, an edge device must be setup. In the following sections, Linux-compatible edge devices are detailed to enable them to receive and run as a AWS IoT Greengrass edge device. The list of supported devices will grow over time. Please select one of the following and follow the "Setup" link:

Please select one of the following and follow the "Setup" link...
### Option 1: Ubuntu EC2 Instance [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/HardwareSetupEC2/)

### Option 1: Ubuntu EC2 Instance [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/hardware/HardwareSetupEC2/)
### Option 2: Qualcomm QC6490 Platforms with Ubuntu [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/HardwareSetupQC6490Ubuntu/)

### Option 2: Qualcomm QC6490 Platforms with Ubuntu [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/hardware/HardwareSetupQC6490Ubuntu/)
### Option 3: Nvidia Jetson Platforms with Jetpack 5.x/6.0 [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/HardwareSetupNvidiaJetson/)

### Option 3: Nvidia Jetson Platforms with Jetpack 5.x/6.0 [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/hardware/HardwareSetupNvidiaJetson/)

### Option 4: Raspberry Pi 5 with RaspberryPi OS [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/hardware/HardwareSetupRPi5/)
### Option 4: Raspberry Pi 5 with RaspberryPi OS [Setup](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/HardwareSetupRPi5/)


#### (More exciting device options will be added soon. Stay tuned!)
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
hide_from_navpane: true

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Setup and Configuration for Ubuntu-based EC2 instance

### Create Ubuntu EC2 Instance
Expand All @@ -6,42 +13,42 @@ AWS EC2 instances can be used to simulate edge devices when edge device hardware

We'll start by opening our AWS Console and search for EC2:

![AWS Console](../images/EC2_Setup_1.png)
![AWS Console](./images/EC2_Setup_1.png)

We'll now open the EC2 console page:

![AWS EC2 Console](../images/EC2_Setup_2.png)
![AWS EC2 Console](./images/EC2_Setup_2.png)

Select "Launch instance". Provide a Name for the EC2 instance and select the "Ubuntu" Quick Start option. Additionally, select "64-bit(Arm)" as the architecture type and select "t4g.large" as the Instance type:

![Create EC2 Instance](../images/EC2_Setup_3.png)
![Create EC2 Instance](./images/EC2_Setup_3.png)

Additionally, please click on "Create new Key Pair" and provide a name for a new SSH key pair that will be used to SSH into our EC2 instance. Press "Create key pair":

![Create EC2 Keypair](../images/EC2_Setup_4.png)
![Create EC2 Keypair](./images/EC2_Setup_4.png)

>**_NOTE:_**
>You will notice that a download will occur with your browser. Save off this key (a .pem file) as we'll use it shortly.

Next, we need to edit our "Network Settings" for our EC2 instance... scroll down to "Network Settings" and press "Edit":

![Security Group](../images/EC2_Setup_4_ns.png)
![Security Group](./images/EC2_Setup_4_ns.png)

Press "Add security group rule" and lets allow port tcp/4912:

![Security Group](../images/EC2_Setup_4_4912.png)
![Security Group](./images/EC2_Setup_4_4912.png)

Lets also give the EC2 instance a bit more disk space. Please change the "8" to "28" here:

![Increase disk space](../images/EC2_Setup_5.png)
![Increase disk space](./images/EC2_Setup_5.png)

Finally, press "Launch instance". You should see your EC2 instance getting created:

![Launch Instance](../images/EC2_Setup_6.png)
![Launch Instance](./images/EC2_Setup_6.png)

Now, press "View all instances" and press the refresh button... you should see your new EC2 instance in the "Running" state:

![Running Instance](../images/EC2_Setup_7.png)
![Running Instance](./images/EC2_Setup_7.png)

You can scroll over and save off your Public IPv4 IP Address. You'll need this to SSH into your EC2 instance.

Expand All @@ -55,7 +62,7 @@ Lets now confirm that we can SSH into our EC2 instance. With the saved off pem f

You should see a login shell now for your EC2 instance!

![Login Shell](../images/EC2_Setup_8.png)
![Login Shell](./images/EC2_Setup_8.png)

Excellent! You can keep that shell open as we'll make use of it when we start installing Greengrass a bit later.

Expand Down Expand Up @@ -105,6 +112,6 @@ Before we go to the next section, lets also save off this JSON - it will be used
}
}

OK, Lets proceed to the next step and get our Edge Impulse environment setup!
OK, Lets proceed to the next step and get our Edge Impulse environment setup! Press "Next" to continue:

[Next](../../edgeimpulseprojectbuild/)
### [Next](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/edgeimpulseprojectbuild/)
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
hide_from_navpane: true

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Install/Configure Nvidia Jetpack (Jetson devices)

The workshop will assume that the Nvidia Jetson edge device has been loaded with Jetpack 5.x and/or Jetpack 6.0 per flashing instructions located at this [Nvidia website](https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html).
Expand Down Expand Up @@ -87,6 +94,6 @@ We are now setup! Before we continue, please save off the following JSONs. Thes
}
}

OK! Lets continue by getting our Edge Impulse project setup! Let's go!
OK! Lets continue by getting our Edge Impulse project setup! Let's go! Press "Next" to continue:

[Next](../../edgeimpulseprojectbuild/)
### [Next](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/edgeimpulseprojectbuild/)
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
hide_from_navpane: true

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Ubuntu-based QC6490 platforms

First, please flash your QC6490 device per your manufacturers instructions to load up Ubuntu onto the device.
Expand Down Expand Up @@ -120,6 +127,6 @@ We are now setup! Before we continue, please save off the following JSONs. Thes
}
}

OK! Lets continue by getting our Edge Impulse project setup! Let's go!
OK! Lets continue by getting our Edge Impulse project setup! Let's go! Press "Next" to continue:

[Next](../../edgeimpulseprojectbuild/)
### [Next](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/edgeimpulseprojectbuild/)
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
hide_from_navpane: true

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Setup and configuration of Raspberry Pi 5 with Raspberry Pi OS

### Install RaspberryPi OS
Expand All @@ -8,7 +15,7 @@ First step in this exercise is to install the latest version of the Raspberry Pi

The easiest way to setup Raspberry Pi OS is to follow the instructions here after downloading and installing the Raspberry Pi Imager application:

![Raspberry Pi Imager](../images/RPi_Imager.png)
![Raspberry Pi Imager](./images/RPi_Imager.png)

Instructions: [Install Raspberry Pi Imager](https://www.raspberrypi.com/software/)

Expand Down Expand Up @@ -101,6 +108,6 @@ Lastly, please safe off these JSONs. These will be used to customize our AWS Gr
}
}

Alright! Lets continue by getting our Edge Impulse project setup! Let's go!
Alright! Lets continue by getting our Edge Impulse project setup! Let's go! Press "Next" to continue:

[Next](../../edgeimpulseprojectbuild/)
### [Next](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/edgeimpulseprojectbuild/)
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
---
hide_from_navpane: true

### FIXED, DO NOT MODIFY
layout: learningpathall
---

## Non-Camera Custom Component

For those edge devices that do not contain a camera, the following component will prepare the edge device with some sample images that can be referenced by the Edge Impulse "Runner" component's JSON configuration (via "gst\_args" settings) to direct the running model to pull its image data from the file (vs. camera).
Expand Down Expand Up @@ -31,16 +38,16 @@ Next, we need to edit the EdgeImpulseRunnerRuntimeInstallerComponent.yaml and ch

Within the AWS dashboard, go to the IoTCore dashboard, then navigate to "Components" under the "Greengrass devices" drop-down on the left hand side.

![CreateComponent](GG_Create_NC_Component_1.png)
![CreateComponent](./images/GG_Create_NC_Component_1.png)

Press "Create Component" and select "YAML" as the recipe format type. Copy and paste the contents of your updated/modified file EdgeImpulseRunnerRuntimeInstallerComponent.yaml into the text window after clearing the initial contents:

![CreateComponent](GG_Create_NC_Component_2.png)
![CreateComponent](./images/GG_Create_NC_Component_2.png)

Finally, press "Create Component" and you should now have 2 custom components registered:

![CreateComponent](GG_Create_NC_Component_3.png)
![CreateComponent](./images/GG_Create_NC_Component_3.png)

Awesome! Now that the non-camera support component is created, we can go back and continue with the deployment of these components to your edge device via the AWS IoT Greengrass deployment mechanism. Press "Return to Deployment Steps" below and continue!

[Return to Deployment Steps](../6_CustomComponentDeployment/CustomComponentDeployment.md)
### [Return to Deployment Steps](/learning-paths/embedded-and-microcontrollers/edge_impulse_greengrass/customcomponentdeployment/)
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,15 @@ <h6 id="learning-path-title" class="u-margin-top-1/2" style="font-size:1em; font
{{ $counter := 0 }} <!-- Counter to track index-->
{{ range .Site.Pages.ByWeight }}
{{ if .File}}
{{ if (eq .File.Dir $thisdir)}}
{{ $learningpathfiles = $learningpathfiles | append . }}

<!-- Call partial to fill out navigation tabs -->
{{partial "navigation/content-navigation.html" (dict "context" . "thisfile" $thisfile "counter" $counter) }}
{{ $counter = add $counter 1 }}
<!-- Add option for metadata to optionally hide page from navigation pane-->
{{ if ne .Params.hide_from_navpane true }}
{{ if (eq .File.Dir $thisdir)}}
{{ $learningpathfiles = $learningpathfiles | append . }}

<!-- Call partial to fill out navigation tabs -->
{{partial "navigation/content-navigation.html" (dict "context" . "thisfile" $thisfile "counter" $counter) }}
{{ $counter = add $counter 1 }}
{{ end }}
{{ end }}
{{end}}
{{end}}
Expand Down Expand Up @@ -91,4 +94,4 @@ <h6 id="learning-path-title" class="u-margin-top-1/2" style="font-size:1em; font
</div>
</div>

{{end}}
{{end}}
Loading