Skip to the content
PCBKitNew board
2 layers119.4 × 98.9 mmPCB Pami, the printed circuit board in 3D

Open source firmware and PCB for a differential mobile robot (PAMI) based on ESP32-S3 - Coupe de France de Robotique

Size
119.4 × 98.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
59
Pads
145
Tracks, vias
214, 0
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 May 2026
Updated
24 May 2026

Overview

PCB Pami is an open-source printed circuit board by FIPATECH, from the FIPATECH/CDFR26_PAMI repository on GitHub. It is a 2-layer board of 119.4 × 98.9 mm with 25 parts on 59 nets, routed with 214 tracks and 0 vias.

It is built around the ESP32-S3-DEVKITC-1-N8, DRV8833PW and MP1584EN, with the SG90 among its other parts. Its parts include 7 ICs, 5 connectors, 4 resistors, 4 switches and 2 capacitors. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

4

README

README.md

PAMI - Robot Mobile Différentiel ESP32-S3

License: GPL v3 Target: ESP32-S3 Framework: ESP-IDF

PAMI Robot

Firmware et PCB open source pour robot mobile différentiel basé sur ESP32-S3. Conçu pour la Coupe de France de Robotique (PAMI — Petit actionneur mobile independant).

Aperçu

PAMI en compétition

  • Firmware : ESP-IDF, FreeRTOS, contrôle différentiel, odométrie, navigation par waypoints
  • Interface : API REST + WebSocket, GUI Python, éditeur de waypoints visuel
  • PCB : KiCad 9, ESP32-S3-DevKitC, DRV8833, ICM-20948, VL53L0X, TCS34725, SSD1306

Structure du projet

text
PAMI/
├── main/                    # Firmware ESP-IDF (code source principal)
│   ├── app_main.c
│   ├── robot_config.h       # Configuration centralisée (GPIO, PID, WiFi)
│   ├── motion/              # Contrôle mouvement (cmd_vel, waypoints)
│   ├── localization/        # Odométrie + fusion IMU
│   ├── drivers/             # Moteurs, encodeurs, capteurs
│   ├── sensors/             # IMU, ToF
│   ├── net/                 # WiFi AP, HTTP server
│   ├── ws/                  # WebSocket (logs, télémétrie)
│   ├── mission/             # Séquences de waypoints
│   ├── config/              # Configuration persistante (NVS)
│   └── ota/                 # Mise à jour Over-The-Air
├── components/              # Composants ESP-IDF
│   └── icm20948/            # Driver ICM-20948 (IMU 9 axes)
├── hardware/
│   └── PCB_Pami_V2/         # PCB KiCad 9 (auto-suffisant)
│       ├── PCB_Pami.kicad_pcb
│       ├── PCB_Pami.kicad_sch
│       ├── footprints/      # Empreintes non-standard incluses
│       └── symbols/         # Symboles non-standard inclus
├── tools/                   # Outils Python
│   ├── robot_gui.py         # GUI de contrôle et mission planner
│   ├── robot_client.py      # Client REST/WebSocket

CAO Mécanique

La conception mécanique 3D est disponible sur OnShape : OnShape

Démarrage rapide

Firmware

bash
# Prérequis : ESP-IDF v5.x installé (ou utiliser le devcontainer)
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor

Configuration dans main/robot_config.h :

c
#define WIFI_SSID         "Robot-ESP32"
#define WIFI_PASS         "robot123"
#define WHEEL_DIAMETER_CM  6.43
#define WHEEL_BASE_CM      13.34

Outils Python

bash
cd tools
pip install -r requirements.txt
python robot_gui.py          # GUI complet
python waypoint_editor.py    # Éditeur de missions

Documentation complète : docs/GUIDE_ROBOT.md

PCB KiCad

Le dossier hardware/PCB_Pami_V2/ est auto-suffisant : toutes les empreintes et symboles non-standard sont inclus. Ouvrir directement PCB_Pami.kicad_pro dans KiCad 9.

Hardware

PCB PAMI

Composants principaux

ComposantRôle
ESP32-S3-DevKitCMicrocontrôleur principal (dual-core, WiFi)
DRV8833Driver moteurs DC (2 canaux)
ICM-20948IMU 9 axes (gyro + accéléro + magnéto)
VL53L0XCapteur distance ToF (détection obstacles)
TCS34725Capteur couleur (détection ligne/zone)
SSD1306Afficheur OLED 128x64
MP1584ENConvertisseur DC-DC 5V → 3.3V
SG90Servomoteur (mécanisme de jeu)

Broches ESP32-S3

SignalGPIO
MOTOR_LEFT_IN12
MOTOR_LEFT_IN21
MOTOR_RIGHT_IN39
MOTOR_RIGHT_IN48
ENCODER_LEFT_A/B11/10
ENCODER_RIGHT_A/B13/12
I2C SDA/SCL7/6

API REST

Base URL : http://192.168.4.1/api/v1

EndpointMéthodeDescription
/cmd_velPOSTCommande vitesse {v, w, timeout_ms}
/motion/stopPOSTArrêt immédiat
/poseGETPose courante {x, y, theta}
/pose/resetPOSTRéinitialise la pose
/imu/calibratePOSTCalibration gyroscope
/ota/updatePOSTMise à jour firmware OTA
/ws/telemetryWSTélémétrie temps réel (stub, non implémenté)
/ws/logsWSLogs temps réel (stub, non implémenté)

Dev Container

Un environnement de développement Docker est disponible dans .devcontainer/ avec ESP-IDF pré-installé. Compatible VS Code (extension Dev Containers).

Licence

Ce projet est distribué sous licence GNU GPL v3 — les modifications et améliorations doivent rester open source.
Voir LICENSE pour les détails.

Parts

25
QtyValueFootprintReferences
44.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R3, R4
3SW_PushButton_Switch_THT:SW_PUSH_6mm_H13mmSW1, SW2, SW3
1100uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1
1470uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC2
1BATTConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ5
1DRV8833custom:DRV8833U7
1ESP32-S3-DevKitCPCM_Espressif:ESP32-S3-DevKitCU1
1LH_MotorConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3
1LH_OdomConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ1
1LOGOlogo:yetinegv2.16mmG***
1LOGOlogo:yetinegv2.12mmG***
1MP1584ENMP1584EN:SRT_MPT1584EN_ModuleMP1584EN2
1RH_MotorConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ4
1RH_OdomConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ2
1SG90custom:SG90U6
1SSD1306SSD1306:128x64OLEDU4
1SW_Slide_DPDTcustom:SW_DPDT_XLXSW4
1module_tcs34725usini_sensors:module_tcs34725U5
1module_vl53L0x-v2usini_sensors:module_vl53l0xU3
1~SparkFun-ICM-20948:SparkFun-ICM-20948U2

Questions

How big is the PCB Pami PCB?

It measures 119.4 × 98.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PCB Pami use?

25 parts, built around the ESP32-S3-DEVKITC-1-N8, DRV8833PW, MP1584EN and SG90. 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 PCB Pami KiCad files?

From the FIPATECH/CDFR26_PAMI repository on GitHub, at the commit this page was made from: the board is hardware/PCB_Pami_V2/PCB_Pami.kicad_pcb and its schematic hardware/PCB_Pami_V2/PCB_Pami.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB Pami design in my own project?

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

Similar boards

  • 4 layers102 × 100 mmZelvicka, the printed circuit board in 3D

    Zelvicka

    RoboticsBrno/Robutek

    Robůtek je robotická platforma založená na čipu ESP32-S3. Je velice rozšitiřelný, ale ze základu umí jezdit, kreslit fixou, jezdit po čáře, pohybovat se bludištěm. Programování je přes Jaculus.

    214 parts12
  • 2 layers90 × 119 mmSkid Steer 4x4 ESP32 DRV8833 PCB, the printed circuit board in 3D

    Skid Steer 4x4 ESP32 DRV8833 PCB

    retrobuiltRyan/4x4_Rover_ESP32

    1:10 scale robot Rover with ESP32 and PS4 controller. Custom PCB for multi channel motor control

    111 parts2BSD-3-Clause
  • 2 layers79 × 120 mmPrint1, the printed circuit board in 3D

    Print1

    ahmadtantowi/fifo-board-indicator

    A FIFO box indicator board utilizing LED lamps to visually guide users on the order of box usage

    29 parts
  • 2 layers106.4 × 74.7 mmCar pcb, the printed circuit board in 3D

    Car pcb

    MaximTrofimov/STM32-RC-Car

    Designed two custom PCBs (remote and car) for a wirelessly-controlled RC car. Implemented wireless communication between two STM32 microcontrollers using embedded firmware.

    55 parts1MIT
  • 2 layers117.1 × 68.6 mmProyecto exposito, the printed circuit board in 3D

    Proyecto exposito

    misaacastillo/RoboticArm

    “Robotic Arm” es un brazo robotico el cual cuenta con un modelo dummy de menores dimensiones. Este modelo copia tendrá una conexión entre sus potenciómetros y los servomotores ubicados en el modelo principal.

    37 parts1
  • 4 layers50 × 50 mmBoard v1, the printed circuit board in 3D

    Board v1

    ductomn/Swarm-robot

    Bachelor Thesis - Design and implementation of a cooperative robotic platform with simple communication

    79 parts
  • 6 layers100 × 160 mmScopefun v2, the printed circuit board in 3D

    Scopefun v2

    snhobbs/scopefun-hardware

    This repository contains Scopefun hardware schematics and pcb layout files.

    840 parts