Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

DeepPens

DeepPens is a voice enabled Internet of Things (IoT) connected robot whiteboard first displayed at the AWS re:Invent builders fair 2019.

img

Architecture

img

The DeepPens device was built using:

Getting started

To get started with your own DeepPens project:

  1. Buy and assemble the JJRobots iBoardBot
  2. Setup a Raspberry Pi with your Linux distribution of choice (we <3 Raspbian!)
  3. Install custom Arduino firmware using Arduino IDE via USB
  4. Install iboardbot-web onto the Raspberry Pi
  1. Now you should be able to test the implementation via local web server with a test SVG file
  2. Ready for IoT connectivity!
  3. Install AWS IoT Greengrass onto the Raspberry Pi and setup a new AWS IoT Core device via AWS Console
  4. Setup the DeepPens Lambda via AWS IoT Core for deployment onto the Raspberry Pi
  5. Deploy backend API
  • The backend API is deployed via AWS CDK, first follow the instructions in the CDK documentation or use the provided buildspec.yml and buildspec-deploy.yml to build the container and deploy the CDK stack via AWS CodeBuild
  • The backend relies on some configuration variables passed to AWS CDK, you will need to create these and update the ARNs within cdk-fargate-stack.ts
    • Two secrets in AWS Secrets Manager
      • DrawingBackend-Tag - the container tag name
      • DrawingBacked-IOT_ENDPOINT - the AWS IoT endpoint name created earlier
    • IMAGE_ARN - The ARN to the container repository
  1. Alternatively, you could build and deploy the container using:
export DOCKER_IMAGE_TAG="1"
docker build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/drawing-backend:$DOCKER_IMAGE_TAG -f backend/draw-images/Dockerfile backend/draw-images
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/drawing-backend:$DOCKER_IMAGE_TAG
npm install -g [email protected] tslint typescript
npm install
npm run build
cdk bootstrap
cdk synth
cdk deploy
  1. Deploy Web Frontend - We used AWS Amplify Console for this and you can directly point it to the frontend folder from this git repo

To-do

Frontend

  • Add some example SVG files

Backend

  • Add custom logic to pull from public svg datasets

CDK Stack

  • Add SecretsManager inital setup and values
  • Add CodeBuild & CodePipeline setup
  • Add ECR repo creation
  • Add Amplify Console site to code for easier deployments

Authors

  • Neil Lock - nlock AT amazon.co.uk
  • Tom Ellis - ellistr AT amazon.co.uk

License

This content is licensed under the Apache 2.0 License.