Skip to the content
2 layers40.3 × 39.7 mmPower circuit new, the printed circuit board in 3D

This repository contains the embedded firmware, circuit schematics, simulation models, and validation benchmarks for the Long Range Telemetry Module (Phase-I) designed for high-altitude drone and UAV/CanSat payload…

Size
40.3 × 39.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
69
Pads
166
Tracks, vias
432, 15
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
23 Jan 2026
Updated
12 Oct 2026

Overview

Power circuit new is an open-source printed circuit board by Omkar1464, from the Omkar1464/Telemetry-Module-using-CDMA-Modulation repository on GitHub. It is a 2-layer board of 40.3 × 39.7 mm with 32 parts on 69 nets, routed with 432 tracks and 15 vias.

It is built around the STM32G071RBT6, MCP1640-I/MC and MT3608, with the SS14 among its other parts. Its parts include 11 capacitors, 6 resistors, 4 ICs, 2 inductors and 1 diode. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

Long Range Telemetry Module (Phase-I)

SVNIT Surat Platform Carrier Frequency Baseband

B.Tech Phase-I Project Report & Codebase
Department of Electronics Engineering, Sardar Vallabhbhai National Institute of Technology (SVNIT), Surat
Academic Year: 2025–26 | Project Group: G60
Project Guide: Dr. Suresh Dahiya (Assistant Professor, DoECE)
Authors: Moksha Parikh (U23EC001), Ridham Chaudhary (U23EC030), Omkar Sinh (U23EC048)


📌 Overview

This repository contains the embedded firmware, circuit schematics, simulation models, and validation benchmarks for the Long Range Telemetry Module (Phase-I) designed for high-altitude drone and UAV/CanSat payload communication.

Operating under the severe resource constraints of an 8-bit ATmega328P microcontroller (16 MHz clock, 2 KB SRAM), the system implements a Direct Sequence Spread Spectrum (DSSS) / Code Division Multiple Access (CDMA) baseband transmitter alongside a discrete 433 MHz RF front-end architecture.

Key Capabilities

  • Dual-Channel CDMA Modulation:
    • In-Phase (I) Channel: Carries GPS navigation data ($f_d = 100\text{ Hz}$) spread by a 1000-chip PRN sequence ($N = 1000$, theoretical processing gain $G_p = 30\text{ dB}$).
    • Quadrature (Q) Channel: Carries high-rate environmental telemetry ($f_d = 10\text{ kHz}$) spread by a 10-chip sequence ($N = 10$).
  • Cycle-Accurate 100 kHz Baseband Chip Rate: $10.0\ \mu\text{s}$ per chip generated through Direct Port Manipulation (DPM), interrupt jitter elimination, and deterministic cycle calibration.
  • RF Front-End Design & Simulation: Colpitts Local Oscillator (MPSH10 BJT) and dual-gate MOSFET (BF998) mixer stage simulated in NI Multisim and laid out on a custom 2-layer mixed-signal PCB in KiCad.

🏗️ System Architecture

text
                       +------------------------------+
                       |      2.5V - 3V Battery       |
                       +--------------+---------------+
                                      |
                            [DC-DC Boost Converter]
                                      |
                 +--------------------+--------------------+
                 | (3.3V / 5V Logic)                       | (Vcc RF)
                 v                                         v
+------------------------------------+    +----------------------------------+
|           Sensors & Inputs         |    |        Discrete RF Chain         |
| - u-blox NEO-6M GPS (UART @ 9600)  |    | - MPSH10 Colpitts LO (~358 MHz)  |
| - SHT-40 Humidity & Temp (I2C)     |    | - Dual BF998 MOSFET Mixers       |
| - PT1000-S Platinum RTD (I2C)      |    | - SAW Filter FL1 (433.92 MHz)    |
| - On-board NTC Thermistor (ADC)    |    | - RD01MUS2B RF Power Amplifier   |
+-----------------+------------------+    | - Pi-Matching Network & SMA Port |
                  |                        +-----------------+----------------+
                  v                                          ^
+------------------------------------+                       |
|       ATmega328P Controller        |                       |
| - LFSR PRN Generator (10-bit)      |                       |
| - 8x Bit-Packed Memory Storage     |                       |
| - Single-Cycle Port Writes (DPM)   |                       |
+--------+--------------------+------+                       |
         | (Dout-1: I-Chan)   | (Dout-2: Q-Chan)             |
         +--------------------+------------------------------+

📂 Repository File Structure

Folder / FileDescription
GPS-Neo6M/Arduino firmware for NEO-6M GPS NMEA sentence extraction, checksum validation, and coordinate parsing using TinyGPS++.
I_trail/ & I_trial1/Baseband firmware implementation for the I-Channel (1000-chip LFSR generation, bit-packing, cycle-accurate delay loops).
Q_trail/Baseband firmware implementation for the Q-Channel (10-chip array spreading code, corrected timing loops).
task1/ & task2/Firmware test suites, sensor serialization routines, and hardware debugging logs.
BF998 MOSFET LIB/Spice simulation libraries and component footprints for the BF998 dual-gate N-channel MOSFET.
Datasheet/Technical documentation and datasheets for active and passive components (MPSH10, BF998, RD01MUS2B, NEO-6M, SHT-40).
CDMA transferring rate.pdfDocumentation on CDMA transmission speed, spreading factors, and modulation characteristics.
G48- Update-LO Simulation...Report and simulation data for the Local Oscillator circuit.
Design1.ms14NI Multisim top-level schematic and RF modulator simulation circuit.
L_oscillator.ms14NI Multisim Colpitts oscillator simulation model.
d2.ms14 & d2out.scpMultisim circuit simulation and oscilloscope graph captures.
oscillator.cirSPICE netlist for the Colpitts Local Oscillator stage.

⚡ Firmware & Timing Engineering

1. Memory Optimization (8× SRAM Reduction)

The ATmega328P has only 2 KB of SRAM. Allocating 1000 chips as individual uint8_t bytes would consume 1000 bytes (almost 50% of total SRAM):

  • Solution: Bit-packing stores 8 chips per byte, reducing the 1000-chip array to just 125 bytes (uint8_t I_CDMA_PACKED[125]).
  • LFSR PRN Generator: Generated dynamically at startup via a 10-bit LFSR using primitive polynomial $x_n = x_{n-10} \oplus x_{n-7}$ with initial seed 0x02DF, eliminating large hardcoded arrays in flash memory.

2. Elimination of Interrupt Jitter & Direct Port Manipulation

  • Standard Arduino digitalWrite() requires ~50–60 clock cycles.
  • Direct Port Manipulation (DPM) writes directly to PORTB, changing pin states in a single clock cycle ($62.5\text{ ns}$ at $16\text{ MHz}$):
    cpp
    PORTB |=  (1 << PORTB2); // Set Pin 10 HIGH (1 cycle)
    PORTB &= ~(1 << PORTB2); // Set Pin 10 LOW  (1 cycle)
  • The Arduino core timer (Timer0) introduces up to $2\ \mu\text{s}$ interrupt jitter every $1.024\text{ ms}$. This is eliminated by calling noInterrupts() before entering the continuous transmission loop.

3. Cycle-Accurate Calibration Loop

To achieve a target chip rate of $f_c = 100\text{ kHz}$ ($T_c = 10.0\ \mu\text{s}$): $$\text{Total Clock Budget} = 10.0\ \mu\text{s} \times 16\text{ MHz} = 160\text{ cycles}$$ Accounting for loop overhead, bit shifting, and DPM write (~3 cycles), the calibrated delay is:

cpp
__builtin_avr_delay_cycles(157); // 157 cycles @ 16 MHz = 9.81 us

🔬 Hardware Verification & Measurement Results

Because random PRN sequences produce consecutive identical chips that cause auto-counter readouts to fluctuate on oscilloscopes (the PRN frequency illusion), a DSO Calibration Mode with an alternating 0xAA (10101010b) test pattern was used for hardware verification: $$f_{\text{DSO}} = \frac{f_c}{2} = 50.0\text{ kHz}$$

ParameterTheoretical / TargetMeasured (Tektronix DSO)Timing Deviation
I-Channel Baseline (Alternating)$50.0\text{ kHz}$ ($20.0\ \mu\text{s}$ period)$45.89\text{ kHz}$ ($22.20\ \mu\text{s}$)$-8.22%$
Q-Channel Baseline (Post-Correction)$50.0\text{ kHz}$ ($20.0\ \mu\text{s}$ period)$45.03\text{ kHz}$ ($22.20\ \mu\text{s}$)$-9.94%$
Single Chip Duration$10.0\ \mu\text{s}$$\approx 11.10\ \mu\text{s}$Within $\pm 10%$ SDR budget
Logic Level (Rail-to-Rail)$5.0\text{ V}$$5.60\text{ V} - 7.60\text{ V}_{\text{pk-pk}}$*Rail-to-rail confirmed

*Note: High peak-to-peak reading on the DSO is attributed to probe measurement ringing on the nanosecond-fast DPM rise/fall edges.


📡 RF Front-End & PCB Design

  • Colpitts Local Oscillator: Built with an MPSH10 NPN BJT ($f_T \approx 650\text{ MHz}$). $$C_{eq} = \frac{C_1 C_2}{C_1 + C_2} = \frac{22 \times 22}{22 + 22} = 11\text{ pF}$$ $$f_0 = \frac{1}{2\pi \sqrt{L_2 \cdot C_{eq}}} = \frac{1}{2\pi \sqrt{0.18\ \mu\text{H} \cdot 11\text{ pF}}} \approx 358\text{ MHz}$$
  • Multisim Simulation: Sustained oscillation confirmed at $357\text{ MHz}$ with an output amplitude of $3.54\text{ V}_{\text{pk}}$ ($< 0.3%$ discrepancy from analytical equations).
  • Custom PCB (KiCad): 2-layer mixed-signal board featuring segregated functional partitions:
    • Top-Right: NEO-6M GPS module placed near the perimeter for antenna clearance.
    • Top-Center: ATmega328P TQFP-32 with SPI header and adjacent clock crystal.
    • Left: Power management (NCP1640T, HT3608) and Local Oscillator.
    • Bottom-Right: RF chain with dual BF998 mixers, SAW filter, RD01MUS2B PA, and SMA connector backed by a solid stitched ground plane.

👥 Authors & Academic Affiliation

Project Guide:
Dr. Suresh Dahiya, Assistant Professor, Department of Electronics and Communication Engineering
Sardar Vallabhbhai National Institute of Technology (SVNIT), Surat, Gujarat, India.

Parts

32
QtyValueFootprintReferences
5100nCapacitor_SMD:C_0603_1608MetricC1, C2, C4, C5, C11
310uCapacitor_SMD:C_0603_1608MetricC6, C8, C10
222uCapacitor_SMD:C_0603_1608MetricC7, C9
24.7kResistor_SMD:R_0603_1608MetricR1, R2
1100kResistor_SMD:R_0603_1608MetricR10
11uCapacitor_SMD:C_0603_1608MetricC3
122uInductor_SMD:L_0603_1608MetricL4
14.7uInductor_SMD:L_0603_1608MetricL2
1562kResistor_SMD:R_0603_1608MetricR8
1750kResistor_SMD:R_0603_1608MetricR9
1976kResistor_SMD:R_0603_1608MetricR7
1Battery_CellConnector_Wire:SolderWire-0.25sqmm_1x02_P4.2mm_D0.65mm_OD1.7mm_Relief2xBT2
1GPIO_PINSETConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalGPIO_PINSET1
1GPSConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalGPS1
1MCP1640-I/MCmcp1640:DFN8_2x3MC_MCHU6
1MT3608MT3608:SOT95P280X145-6NU4
1PWM_OUTConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalPWM_OUT1
1SHT4xSensor_Humidity:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPadU2
1SPIConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalSPI1
1SS14Diode_SMD:D_SMAD2
1STM32G071RBT6Package_QFP:LQFP-64_7x7mm_P0.4mmU5
1SWD_PORTConnector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalSWD_PORT1
1Temp_ADCConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalTemp_ADC1
1UART1_SENSORConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalUART1_SENSOR1

Similar boards

  • 4 layers275 × 240 mmSupervisor, the printed circuit board in 3D

    Supervisor

    BennetLeff/temper

    a breville control freak ++

    440 parts1
  • 4 layersPomodoro V1, the printed circuit board in 3D

    Pomodoro V1

    MaxLell/Pomodoro_Clock

    So this is basically what this device (will) is about. It will sit on my desk and ping me, when I need to take a break, and not only ping me, but rather shine a bright light at me, so that I actually get my lazy a up…

    155 partsMIT
  • 4 layers130 × 25 mmCurrent sense, the printed circuit board in 3D

    Current sense

    westonb/little-bee-B1

    A high performance current & magnetic field probe

    113 parts331CC-BY-SA-4.0
  • 2 layers142.2 × 132.1 mmInterphase, the printed circuit board in 3D

    Interphase

    Durburz/interphase

    a mitosis clone with more keys!!1eleven

    115 parts50MIT
  • 2 layers100 × 100 mmWifi PB panel, the printed circuit board in 3D

    Wifi PB panel

    AntonioMR/Wifi-Play-Board

    Placa de experimentacion para el ESP12F (ESP8266)

    416 parts29
  • 2 layers76.2 × 147.3 mmAriCalculator RevC, the printed circuit board in 3D

    AriCalculator RevC

    hotwolf/AriCalculator

    A homemade pocket calculator

    513 parts15GPL-3.0
  • 4 layers160 × 65 mmCapybara rocket, the printed circuit board in 3D

    Capybara rocket

    adam-kabbara/RSX-CANSAT-2026

    This is a repository design to manage the files made by the Aerial team under the Robotics for Space eXploration design team at the University of Toronto

    174 parts4

Questions

How big is the Power circuit new PCB?

It measures 40.3 × 39.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Power circuit new use?

32 parts, built around the STM32G071RBT6, MCP1640-I/MC, MT3608 and SS14. 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 Power circuit new KiCad files?

From the Omkar1464/Telemetry-Module-using-CDMA-Modulation repository on GitHub, at the commit this page was made from: the board is PCB/POWER_MICROCONTROLLER/power circuit _new/power circuit _new.kicad_pcb and its schematic PCB/POWER_MICROCONTROLLER/power circuit _new/power circuit _new.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Power circuit new design in my own project?

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