Skip to the content
2 layers70 × 57 mmNucleo shield pcb, the printed circuit board in 3D

An autonomous, reactive, and expressive robotic companion built with an ESP32-CAM and STM32 Nucleo.

Size
70 × 57 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
83
Pads
142
Tracks, vias
297, 17
Pours
9
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Jul 2026
Updated
5 Aug 2026

Overview

Nucleo shield pcb is an open-source printed circuit board by PedroTorrado, from the PedroTorrado/Project_Mimir repository on GitHub. It is a 2-layer board of 70 × 57 mm with 19 parts on 83 nets, routed with 297 tracks and 17 vias.

It is built around the ESP32-CAM, ADXL345-EP and HC-SR04. Its parts include 6 connectors, 4 ICs, 3 switches and 1 diode. It belongs with the ESP32 and RISC-V boards of this library.

Main components

3

README

README.md

Project Mimir

Project Mimir Logo

An autonomous, reactive, and expressive robotic companion built with an ESP32-CAM and STM32 Nucleo.

ᛗ Runic Symbolism

The project logo features the Norse rune Mannaz (ᛗ) representing humanity and the mind, combined with a central camera lens. This symbolizes the camera's core objective: searching for, tracking, and identifying human faces. The name Mimir refers to the wise Norse sentinel head whose well guards Odin's sacrificed eye.

Features

  • Neural Network Face Tracking: Uses the ESP32-CAM to detect faces and dynamically tracks them using a Proportional-Integral (PI) motor loop.
  • SD Card Wi-Fi Loader & OLED Selector Menu: Reads custom networks on-the-fly from /wifi.txt on a MicroSD card. Allows interactively scanning and joining networks via the Nucleo OLED screen and button long-press.
  • Dynamic Telemetry Refresh Rate: Switch between Eco (5s) and Turbo (1s) refresh modes directly from the web dashboard to control cloud costs or increase responsiveness.
  • Startup Link Verification: Automatic serial handshake (PING/PONG) on boot to visually confirm TX/RX wire integrity.
  • Emotion Engine: A state machine that gives the robot a personality (Happy, Searching, Dizzy, Angry) based on sensor inputs.
  • Sensory Suite: Monitors room air quality (SGP30) and avoids collisions with ultrasonic sonar (HC-SR04).
  • Cloud Telemetry: Streams data to AWS IoT Core over MQTT.

Expressive Personalities

Project Mimir uses its SSD1306 OLED display to express its emotions dynamically based on sensor inputs:

HAPPY (Tracking)

text
                   ▄█▄                     ▄█▄
                 ▄██▀██▄                 ▄██▀██▄
               ▄██▀   ▀██              ▄██▀   ▀██
               █▀       ▀              █▀       ▀

                      █▄                 ▄
                      ▀██▄             ▄██
                        ▀██▄         ▄██▀
                          ▀██▄     ▄██▀
                            ▀██▄ ▄██▀
                              ▀███▀
                                ▀

ANGRY (Obstacle Alert)

text
                        ▄█              █▄
                      ▄█▀               ▀██▄
                    ▄█▀                   ▀██▄
                  ▄█▀                       ▀██▄
                ▄█▀                           ▀██▄
               ██████████              ███████████
               ██████████              ██████████
               ██████████              ██████████
               ██████████              ██████████
               ██████████              ██████████

                                   ██████████

DIZZY (Jerk/Bump)

text
               ▀▄        ▄             ▀▄        ▄
                ▀▄      █               ▀▄      █
                 ▀▄    █                 ▀▄    █
                  ▀▄  █                   ▀▄  █
                   ▀▄█                     ▀▄█
                    █▄                      █▄
                   █ ▀▄                    █ ▀▄
                  █   ▀▄                  █   ▀▄
                 █     ▀▄                █     ▀▄
                █       ▀▄              █       ▀▄
               ▀                       ▀

                              ██   ██
                           ███  ███

Documentation

Please refer to the docs/ folder for comprehensive setup instructions:

  1. System Architecture: Overview of the dual-microcontroller setup and data flow.
  2. Wiring Guide: Detailed pin-to-pin wiring for all hardware components.
  3. AWS IoT Setup Guide: Instructions on provisioning cloud certificates and policies.

Repository Structure

  • /ESP32_CAM: Arduino IDE project for the ESP32-CAM vision coprocessor.
  • /Nucleo_F411RE: STM32CubeIDE project for the Nucleo master controller.
  • /docs: Architecture diagrams and hardware setup guides.

Quick Start

  1. Copy .env.example to .env and fill in your WiFi and AWS credentials.
  2. Copy ESP32_CAM/secrets.h.example to ESP32_CAM/secrets.h and paste your certificates.
  3. Flash the ESP32 using the Arduino IDE.
  4. Build and flash the Nucleo using STM32CubeIDE.
  5. Refer to docs/wiring_guide.md for physical hardware connections.

Parts

19
QtyValueFootprintReferences
3CK_KMS2xxGPButton_Switch_SMD:SW_SPST_PTS645Sx43SMTR92SW1, SW2, SW3
3MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO14580H2, H3, H4
11N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD2
1ADXL345components:MODULE_SEN-09836U2
1CN10Connector_PinSocket_2.54mm:PinSocket_2x19_P2.54mm_VerticalJ2
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x03_PinConnector_PinHeader_1.00mm:PinHeader_1x03_P1.00mm_VerticalJ5
1Conn_01x04_SocketConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ4
1Conn_01x06_PinConnector_PinHeader_1.27mm:PinHeader_1x06_P1.27mm_VerticalJ6
1Conn_02x19_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x19_P2.54mm_VerticalJ1
1DM-OLED096-636components:MODULE_DM-OLED096-636U4
1ESP32-CAMcomponents:ESP32-CAMU1
1HC-SR04components:XCVR_HC-SR04U3
1LOGOcomponents:mimirG***

The 18 most common of 19 parts.

Similar boards

  • 2 layers85 × 105 mmRestroBOT, the printed circuit board in 3D

    RestroBOT

    PrashilLamichhane/RestroBOT_PCB

    24 parts
  • 4 layers42 × 42 mmHuvud, the printed circuit board in 3D

    Huvud

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    126 parts373GPL-3.0
  • 2 layers97 × 77.5 mmESPlant, the printed circuit board in 3D

    ESPlant

    CCHS-Melbourne/ESPlant

    Environmental Sensor Plant - solar WiFi gardening/meteorological sensor using ESP8266

    77 parts37
  • 2 layers65 × 56 mmBigp4ppa, the printed circuit board in 3D

    Bigp4ppa

    gcormier/bigp4ppa

    A Raspberry Pi 5-channel PWM, PT100 and ADXL345 board.

    28 parts28
  • 2 layers61.3 × 89.6 mmQuakeGuard PCB, the printed circuit board in 3D

    QuakeGuard PCB

    GiZano/QuakeGuard

    Distributed Earthquake Early Warning (EEW) system built on low-cost ESP32-C3 IoT sensors with Zero-Trust security, multi-node epicenter triangulation, and on-premise AI emergency reports.

    17 parts24AGPL-3.0
  • 2 layers184.2 × 71.2 mm2Pocket, the printed circuit board in 3D

    2Pocket

    ParksDevelopment/2Pocket

    Tiny 36 key keyboard for a competition

    95 parts22
  • 2 layers112 × 62 mmAtkeyboard, the printed circuit board in 3D

    Atkeyboard

    ccadic/atmega328kb

    Small computer KB for ATMEGA328P-AU

    80 parts10

Questions

How big is the Nucleo shield pcb PCB?

It measures 70 × 57 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Nucleo shield pcb use?

19 parts, built around the ESP32-CAM, ADXL345-EP and HC-SR04. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Nucleo shield pcb KiCad files?

From the PedroTorrado/Project_Mimir repository on GitHub, at the commit this page was made from: the board is CAD/ecad/nucleo_shield_pcb.kicad_pcb and its schematic CAD/ecad/nucleo_shield_pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Nucleo shield pcb design in my own project?

Its repository states no licence, so its author keeps all rights: ask PedroTorrado before reusing the design.