Skip to the content
PCBKitNew board
2 layersD SMD, the printed circuit board in 3D

The goal of this project is to construct a physical FANET, outside the simulator, this can be done by constructing a number of drones built on the ESP-Drone repository, along with our own PCB and a 3D printed drone…

Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
44
Pads
96
Tracks, vias
174, 8
Pours
4
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Jun 2024
Updated
8 Jul 2024

Overview

D SMD is an open-source printed circuit board by mahmoud024, from the mahmoud024/Graduation-Project repository on GitHub. It is a 2-layer board with 31 parts on 44 nets, routed with 174 tracks and 8 vias.

Its parts include 6 resistors, 5 capacitors, 4 diodes, 4 transistors and 2 connectors.

README

README.md

Graduation Project

Our Idea

The goal of this project is to construct a physical FANET, outside the simulator, this can be done by constructing a number of drones built on the ESP-Drone repository, along with our own PCB and a 3D printed drone body. The FANET nodes will communicate with each other using LoRaWAN through our own modified AODV routing protocol. The FANET is planned to operate over the area of Birzeit University.

Since we will be using light-weight drones for nodes, the weight of anything carried by drones is critical, for this reason we decided on using the LoRa32 microcontroller, that integrates the ESP32 chip along with the LoRa module in a compact package, which weighs about 18grams, our testing shows a current draw of 45-50 mA during normal operations, goes up by 10 mA during transmission/reception

Image 3

Step 1: Build ESP23 Drone

Since the scope of the project is rapidly expanding, we don’t have enough time to design and build a drone from scratch, instead we will be using Espressif Systems’ drone design.

For more information on getting started, visit the Espressif ESP-Drone Documentation.

Hardware Part

  1. Components

    We faced some difficulties in providing the parts because we are restricted by the Israeli occupation and the high cost of the parts, but the parts were eventually provided with great difficulty.

    • Basic Component List
    ComponentNumberNotes
    Main board1ESP32 LORA V3 + MPU6050
    Frame1We Build it using 3D printer
    716 motor4Optional: 720 motor
    46mm propeller A2
    46mm propeller B2
    1000mAh 1s LiPo battery1
    1. Frame

    Steps to make the Frame:

    Description of your image

    Final Output:

    Image 3 Image 3
    1. Main Controller
    Image 3
    ChipModuleBatteryDimensions
    ESP32-S3FN8ESP32 LORA V33.7V lithium battery50.2 * 25.5* 10.2 mm
    1. Sensor
    Image 3
    SensorInterfaceNotes
    MPU6050I2C0Main board sensor
    1. Motor
    Image 3
    MotorTypeNotes
    716 motorCoreless motorUse 720 if you have issue in altitude
    1. Battery
    Image 3
    BatteryVoltageDimensionsDimensions
    1000mAh 1s LiPo battery3.7V (1S)48 x 30 x 928.5
    • Definition of Main Board IO
    PinsFunctionNotes
    GPIO23I2C0_SDAOnly for MPU6050
    GPIO22I2C0_SCLOnly for MPU6050
    GPIO2interruptMPU6050 interrupt
    GPIO12MOT_1
    GPIO35MOT_2
    GPIO32MOT_3
    GPIO33MOT_4
    GNDWith Ground
    3V3With VCC of MPU6050
  2. PCB

    As is previously, our drone design is light-weight, so we will need to conserve as much as possible on the drone weight, and therefore we found it best to construct our own PCB.

    Scheme Below show our PCB design:

    Image 3

    Steps to make our PCB:

    Image 3 Image 3 Image 3 Image 3

    The Link below show some videos While working on the production of the PCB (https://google.com)

    You Can Find All File You Needed in (PCB) Folder


Software Part

Set up ESP-IDF Environment

Please refer to ESP-IDF Programming Guide and set up ESP-IDF environmnet step by step.

  • ESP-IDF branch release /v4.4 is suggested.

  • Please follow and complete all setup steps.

  • Build a example of ESP-IDF to make sure the setup is successful.

Get Project Source Code
Beta code, currently in the GitHub repository, is available by using git:
text
git clone https://github.com/espressif/esp-drone.git
The project software mainly consists of a flight control kernel, hardware drivers, and dependency libraries:
  • The flight control kernel is from Crazyflie, mainly including hardware abstraction layer and flight control program.

  • Hardware drivers are structured in files according to hardware interfaces, including I2C devcies and SPI devices.

  • Dependency libraries include the default components provided by ESP-IDF, as well as DSP from third parties.

The code file structure is as follows:

image

Download and Install ESP-Drone APP

ESP-Drone APP is available for Android and iOS.

For Android, please scan the QR below to download ESP-Drone APP.

Image 3

For iOS, please search and download the ESP-Drone APP in App Store.

iOS APP source code: ESP-Drone-iOS

Android APP source code: ESP-Drone-Android

Flight Control
  • Click “Connect” button/icon at your APP. When the connection is established successfully between your drone and APP, the LED on the drone blinks GREEN.

  • Slide “Thrust” slightly to take off the drone.

  • Control the flight by moving your fingers on the APP.

Image 3
Android APP Interface

Step 2: Routing Protocol

we will be using a LoRa module for transmission/Re- ception between nodes in our physical test bench, the LoRa module is chosen for its extended range, up to 14Km at SF12, and extremely low current draw, our own testing showed an 10 mA increase in current draw at transmission/re- ception at SF7, matching the datasheet specification.

The drawback to all this, is the low bandwidth, 290 bps at SF12, choosing a lower spread factor, will provide a higher bandwidth at a lower range, SF7 is rated to give 5470 bps for 2km, a range of 2km is well above our needs for this project, the bit rate is also sufficient for the communication protocol used, table 2 shows LoRa transmission ranges and bandwidth at different Spread Factors.

Spreading FactorBitrateRange
SF75470 bps2 Km
SF83125 bps4 Km
SF91760 bps6 Km
SF10980 bps8 Km
SF11440 bps11 Km
SF12290 bps14 Km

Our routing protocol builds upon the AODV protocol, and improves on it in two substantial ways, multiple paths and speed dependent route lifetime. The AODV routing protocol establishes a singular path for packets to travel from the source node to the destination node, however this can be unreliable in unstable networks, therefore establishing multiple paths will incur small overhead for the reward of a more reliable communication link, this is proposed in the AOMDV routing protocol.

ParameterAODVAOMDV
Routing ProtocolSingle path routing protocolMultipath routing protocol
Average End-to-End Delay175 ms194 ms
Routing OverheadLowHigh
Number of Packets DroppedHighLow
Performance MetricsLowHigh

The AODV routing protocol doesn’t provide a method to calculate the lifetime of established routes between nodes, ns3 simulator keeps an arbitrary period of time of 10 seconds, we suggest making use of the instantaneous speed of each node in the calculation of the lifetime, where the lifetime of any path is decided by the speed of the nodes in the path at route instantiation, equation below is followed when calculating the lifetime of any route established between any two nodes, where Sx is the speed of node x at the time of RREP packet transmission/forwarding, and is scalar hyperparameter used for scaling the lifetime of all routes.

Life time Route = min(S0, S1, S2, …, Sn) / α

Currently, we were able to construct the lifetime calculations on the ns3 simulator and it has yield promising results, as it outperformed the AODV protocol in terms on Packet Receive Rate, this is probably at the cost of increased routing calculations.

Multi-path implementation is currently stagnate as some unexpected difficulties were faced.

  • Part 1: code inspection and review of ns3 aodv implementtion
  • Part 2: code inspection of ns3 mobility models to obtain speed
  • Part 3: implantation of speed reliant timeout
  • Part 4: attempt at implementing multi-path protocol(fail)
  • Part 5: implement RREQ and RERR counter
  • Part 6: Simulation results at different max_distance parameter values

Parts

31
QtyValueFootprintReferences
8, , , , , , ,
610kResistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R5, R6
41ufCapacitor_SMD:C_0504_1310Metric_Pad0.83x1.28mm_HandSolderC2, C3, C4, C5
4DDiode_SMD:D_0603_1608MetricD1, D2, D3, D4
4NMOSTSM250N02CX_RFG:TRANS_TSM250N02CX_RFGQ1, Q2, Q3, Q4
2Conn_01x18_SocketConnector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_VerticalJ1, J2
110ufCapacitor_SMD:C_0504_1310Metric_Pad0.83x1.28mm_HandSolderC1
13.7Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_HorizontalBT1
1module_mpu6050usini_sensors:module_mpu6050U4

Questions

What parts does the D SMD use?

31 parts. 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 D SMD KiCad files?

From the mahmoud024/Graduation-Project repository on GitHub, at the commit this page was made from: the board is PCB/d_SMD/d_SMD.kicad_pcb and its schematic PCB/d_SMD/d_SMD.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the D SMD design in my own project?

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

Similar boards

  • 2 layers44.5 × 46.9 mmOSO SWAT B1-jig, the printed circuit board in 3D

    OSO SWAT B1-jig

    joeycastillo/Sensor-Watch

    A board replacement for the classic Casio F-91W wristwatch

    31 parts2.1k
  • 2 layers65 × 30 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    31 parts1kGPL-3.0
  • 2 layers191 × 98.5 mmMacroKeypad, the printed circuit board in 3D

    MacroKeypad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    31 parts915
  • 2 layers39 × 45.2 mmCH32V003F4P6-R0-1v1, the printed circuit board in 3D

    CH32V003F4P6-R0-1v1

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    31 parts599
  • 2 layers26.7 × 27.9 mmBreakout board, the printed circuit board in 3D

    Breakout board

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    31 parts546MIT
  • 2 layers100 × 50 mmPixelix, the printed circuit board in 3D

    Pixelix

    BlueAndi/Pixelix

    Full RGB LED matrix, based on an ESP32 and WS2812B LEDs or emulated LEDs on TFT.

    31 parts447MIT
  • 2 layers77.2 × 69.8 mmCubesatsim solar, the printed circuit board in 3D

    Cubesatsim solar

    alanbjohnston/CubeSatSim

    CubeSatSim, the AMSAT CubeSat Simulator

    31 parts419GPL-3.0
  • 2 layers103 × 55 mmTd neck-294, the printed circuit board in 3D

    Td neck-294

    tdaede/td-crt

    tubes

    31 parts373