Skip to the content
4 layers90.2 × 40 mmRadar v2, the printed circuit board in 3D

Frequency Modulated Continuous Wave Radar hardware and software design files with 26 dBm output power covering around 250 m.

Size
90.2 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
270
Nets
190
Pads
922
Tracks, vias
1,727, 868
Pours
48
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
11 May 2020
Updated
31 May 2024

Overview

Radar v2 is an open-source printed circuit board by ckflight, from the ckflight/FMCW-RADAR repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 90.2 × 40 mm with 270 parts on 190 nets, routed with 1,727 tracks and 868 vias.

It is built around the PAT1220-C-6DB, HMC431LP4E and SKY65404-31, with the LT6232IGN, MAX1426EAI+ and TLV172ID among its other parts. Its parts include 116 capacitors, 67 resistors, 51 ICs, 11 diodes and 11 inductors. It belongs with the STM32 boards of this library.

Main components

11

README

README.md

Frequency Modulated Continuous Wave Radar Hardware Design and the Firmware

Check the new design's Python files for better processing and analysis https://github.com/ckflight/FMCW_RADAR_2v2

Later Update 1:

New version of the hardware is available in the Radar 2 folder. For Radar 2 design, two separated boards in Radar MCU and Radar RF folders are brought together with several necessary improvements. I recommend using the second design since it is more reliable and tested. The reason behind two separate board was to change digital part of the board without changing the RF part of it. However, one united design performs better and have a better temperature cooling control which affect the overall perfomance significantly.

Important Power Supply Note: I used switching regulator for 3.3 and 5V power sources to test their effect on the RF performance and oscillation of ripple voltage on OpAmp analog amplifier side. Therefore do not use switching regulator in your design. Change them to LDO type of clean supplies. Or add second LDO stage to the switching regulator unless you want an AM modulated ( 1.4 MHz switching freq. is very visible ) signal at the OpAmp side. After observing these affects i had to fine tune components which is not necessary if you use a cleaner source !!!
Later Update 2:

I have added a new Python script for plotting the radar data with Python Qt5 and Vispy plotting tool which uses GPU instead of CPU. Radar_Plot2.py is the source code. New code plots the time domain and frequency domain data together with scale and restart options. It has thread based approach between Vispy and Qt classes by using DataSource which allows us to manage more data. See first screenshot under Python Script Plots section below.

Radar Info:
  • Frequency Modulated Continuous Wave Radar with 26 dBm output power covering around 250 meters range with 10 dBi gain patch antenna (400 meters in theory by using a better ADC with higher sampling rate to match the noise floor of the RF receiver chain).

$$ Range(radar) = {\sqrt[4]{Pt * G^2 * \lambda^2 * \sigma \over Pmin * 4\pi^3}} $$

  • Receiver chain has LNA, Gain Block and Mixer. The gain block drops the Noise Figure from 7 dB to 2 dB, which doubles the detection range. To determine the radar detection range, minimum detectable signal is needed. RF receiver chain has thermal noise and it determines the noise floor for Pmin. Signal to Noise (SNR) ratio of 20 dB is assumed for a good detectable signal then:

$$ Pthermal(watt) = {k * T * B * F} $$

$$ Pthermal(dBm) = {10\log_{10} {kT \over 1mW} + NF + 10\log_{10} BW} $$

$$ Pmin(dBm) = {Pthermal(dBm) + 20dB} $$

  • Radar, has an auto gain configuration with a digital potentiometer to control intermediate frequency (IF) signal gain at the last stage of the analog amplifier before sampling with ADC.

  • -40 dB / Decade Range Compensation Filter is implemented. Closer objects reflect more powerful RF signal which suppresses the signal of the objects at further distance. By amplifying the weaker signals and filtering the closer ones, each frequency band is adjusted to the same amplitude.

  • The IF signal is available at different stages of the amplifier and filter circuit for testing with other configurations.

  • The VCO range of the radar is from 5.5 to 6.1 GHz

  • Directional coupler has low insertion loss of 0.25 dB and 16 dB coupling.

  • ADF4158 Frequency Synthesizer is available due to the nonlinear characteristics of the VCO profile for accurate distance detection. ADF4158 can generate pulses with some gap between each sweep. During this gap samples are packed and buffered over USB.

  • STM32F4's DAC has a triangular waveform generation option and it can be used for VCO signal generation as well. Both option are available on board. Check schematic to populate necessary resistor values to use either mode.

  • SMA connector has 1 mm pad size, but the 50 Ohm transmission line is 0.342 mm wide. To prevent reflection, cutout is implemented beneath the SMA pad with CST Studio simulation which is also available at my repository https://github.com/ckflight/CST_ADS_MODELS_SIMULATIONS

  • PCB has 4 layers. 50 Ohm impedance microstrip transmission line is making 0.342mm trace width by using oshpark's stack-up below. Stack-up layer information can be found here: https://docs.oshpark.com/services/four-layer/

  • Main loop runs with a Finite State Machine (FSM) to control radar, which checks the condition of the start of the sweep and the gap. ADF4158 Muxout is generating a pulse according to the sweep condition. External interrupt tracks this pulse to move between FSM states.

  • Hardware is configured using Python script so the PC is in Host mode and controls everything. In this way, any hardware parameters can be changed without reflashing the firmware.

  • N number of samples are determined by sweep bandwidth rise time and the sampling frequency. For example:

    Fs = 500.000 samples/sec and the sweep rise time is 1 millisecond (ms) for 200 MHz bandwidth. The system will pack 500 x 16 bit ADC samples and transfer 1000 x 8 bit ADC samples to Python script in 1 ms. Therefore, 1 MegaByte data is buffered to Host PC for 500 KHz sampling frequency in 1 second.

  • Python Script: I have uploaded an example record file along with python scripts where the peaks of the stationary objects can be seen.

Object Type Detection:

RADAR 2 Screenshot:

Radar 2

RADAR 1 RF Board Screenshot:

RADAR_RF

RADAR 1 MCU Board Screenshot:

RADAR_MCU

IMG_20200511_111503

Python Script Plots:

radar1

radar2

radar3

Parts

270
QtyValueFootprintReferences
41100nFFootprints:SMD_0402C1, C2, C3, C10, C20, C22, C23, C26, C27, C28, C29, C30, C100, C101, C109, C110 +25
181KFootprints:SMD_0402R1, R10, R13, R20, R30, R39, R40, R46, R49, R56, R66, R67, R68, R69, R70, R71 +2
14Check_PointFootprints:SolderPad_1_1.5mm_SMD_CircleU3, U5, U10, U11, U14, U16, U24, U26, U34, U36, U39, U40, U41, U46
1210uFFootprints:SMD_0603C5, C12, C63, C64, C89, C91, C92, C95, C96, C97, C98, C99
1110nFFootprints:SMD_0402C57, C73, C74, C75, C77, C78, C93, C94, C102, C103, C107
10DNPFootprints:SMD_0402C65, C71, R15, R23, R27, R28, R31, R72, R73, R75
9Led_DiodeFootprints:Diode_0603D3, D4, D5, D6, D7, D8, D9, D10, D11
810KFootprints:SMD_0402R18, R21, R22, R41, R42, R61, R64, R65
810pFFootprints:SMD_0402C39, C40, C52, C60, C61, C67, C68, C76
7100pFFootprints:SMD_0402C24, C25, C45, C47, C48, C53, C79
62.2uFFootprints:SMD_0402C6, C11, C14, C15, C21, C69
50Footprints:SMD_0402R2, R3, R24, R33, R35
54.7KFootprints:SMD_0402R17, R19, R36, R37, R63
5BLM18PG181SN1DFootprints:SMD_0603L1, L4, L5, L8, L9
5Check_PointFootprints:SolderPad_1_1.2mm_SMD_CircleU47, U48, U49, U50, U51
5MITERED_BENDFootprints:Mitered_Bend_0.33mm_90U23, U28, U42, U43, U44
4100Footprints:SMD_0402R7, R8, R16, R76
41nFFootprints:SMD_0402C72, C81, C82, C90
42.2uFFootprints:SMD_0603C104, C105, C106, C108
422Footprints:SMD_0402R5, R6, R12, R74
4CONN_01X01Footprints:Mounting_3.2mm_Pad_ViaREF*, REF*, REF*, REF*
316.7Footprints:SMD_0402R52, R77, R78
318pFFootprints:SMD_0402C37, C38, C42
350Footprints:SMD_0402R25, R29, R59
2130Footprints:SMD_0402R47, R48
215pFFootprints:SMD_0402C16, C17
21uFFootprints:SMD_0402C18, C19
22.2uHFootprints:SMD_0603L2, L3
22.49KFootprints:SMD_0402R9, R11
233pFFootprints:SMD_0402C9, C13
24.7uHFootprints:SMD_0805L10, L11
24.99KFootprints:SMD_0402R50, R51
25400BL15B050EFootprints:Balun_5400BL15B050EU7, U13
2910Footprints:SMD_0402R44, R45
2AP3211Footprints:SOT23_6U31, U32
2Diode_SchottkyFootprints:Diode_SDM2U30CSP_7D1, D2
2LDS3985Footprints:SOT23_5U33, U38
2LOGOFootprints:UntitledG***, G***
2PAT1220-C-6DBFootprints:PAT1220_6dBU19, U27
2SMA_ConnectorFootprints:SMA_ConnectorU22, U30
10 to 27Footprints:SMD_0402R57
10.5pFFootprints:SMD_0402C83
10.6nHFootprints:SMD_0402L7
11.8Footprints:SMD_0402R43
1100KFootprints:SMD_0402R38
114.7KFootprints:SMD_0402R62
12.2nFFootprints:SMD_0402C62
1240Footprints:SMD_0402R32
130KFootprints:SMD_0402R58
1330nFFootprints:SMD_0402C55
1470pFFootprints:SMD_0402C33
149.9Footprints:SMD_0402R14
15.49KFootprints:SMD_0402R26
151.4KFootprints:SMD_0402R60
18MHzFootprints:Crystal_3.2x2.5mmY1
1ADC_ConnectorFootprints:SolderPad_1_1.5mm_SMD_CircleU25
1ADF4158Footprints:LFCSP24_4x4mm_P0.5mm_1EXP_2.5x2.5mmU8
1ADL5801Footprints:LFCSP24_4x4mm_P0.5mm_1EXP_2.5x2.5mmU9
1Connector_01x03Footprints:PinHeader_1x3_P2.5mmJ1
1Connector_01x06Footprints:PinHeader_1x6_P2.5mmJ3
1DC_JackFootprints:BarrelJackJ4
1DFU_ButtonFootprints:Button_B3U_1000PSW1
1Directional_CouplerFootprints:Directional_Coupler_15dBU29
1FuseFootprints:SMD_0805F1
1HMC431LP4Footprints:QFN24_4x4mm_P0.5mm_1EXP_2.7x2.7mmU17
1LP298XSFootprints:SOT23_5U35
1LQW18ANR10J00DFootprints:SMD_0603L6
1LT1817GNFootprints:SSOP16_3.9x4.9mm_P0.635mmU2
1LT6232Footprints:SSOP16_3.9x4.9mm_P0.635mmU15
1MAX1426Footprints:SSOP28_5.3x10.2mm_P0.65mmU45
1MCP4022Footprints:SOT23_6U1
1MicroCardFootprints:MICROCARD_DM3AT_SF_PEJM5U37
1Reset_ButtonFootprints:Button_B3U_1000PSW2
1SG-210STFFootprints:Crystal_2.5x2mmU6
1SKY65404Footprints:SKY65404_31U20
1STM32F405Footprints:LQFP64_10x10mm_P0.5mmU4
1TLV172Footprints:SC70_5U12
1TQP5523Footprints:QFN20_4x4mm_P0.5mm_1EXP_2.5x2.5mmU21
1TRF37A75Footprints:WSON8_2x2mm_P0.5mm_1EXP_0.9x1.6mmU18
1USB_MicroBFootprints:USB_MicroB_THJ2

Similar boards

  • 4 layers40.3 × 22.9 mmFmcw2, the printed circuit board in 3D

    Fmcw2

    Ttl/fmcw2

    FMCW radar design files

    136 parts199
  • 4 layers71.6 × 40.2 mmCapstone, the printed circuit board in 3D

    Capstone

    anas-ambri/contactless-life-monitoring

    321 partsMIT
  • 4 layers119.6 × 58.9 mmFmcw, the printed circuit board in 3D

    Fmcw

    matthuszagh/fmcw

    6GHz frequency-modulated continuous-wave radar with real-time range detection

    415 parts66Apache-2.0
  • 2 layersFMCW Radar, the printed circuit board in 3D

    FMCW Radar

    Roshan-khatri78/Electronics-Projects-KiCad-

    A collection of my KiCad projects and PCB designs. These projects reflect my learning journey in electronics and PCB design.

    228 parts2
  • 4 layers52 × 57 mmVna, the printed circuit board in 3D

    Vna

    Ttl/vna

    Homemade 30 MHZ - 6 GHz single receiver VNA design files.

    342 parts195
  • 4 layers101.8 × 46.8 mmFmcw3, the printed circuit board in 3D

    Fmcw3

    Radar-Uniwa/5-6GHz-FMCW-Radar

    This work is based on an original open source project by Henrik Forstén and the original design files can be found here.

    430 parts1MIT
  • 2 layersSegments, the printed circuit board in 3D

    Segments

    microresearch/allcolours

    all the colours of the noise

    219 parts16
  • 4 layers88.9 × 35.6 mmTransmitter, the printed circuit board in 3D

    Transmitter

    PeraZver/Microwave-Transmitter

    30 - 6000 MHz 10 dBm Transmitter based on MAX2871 synthesizer. Controlled by Teensy 3.2.

    144 parts14GPL-3.0

Questions

How big is the Radar v2 PCB?

It measures 90.2 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Radar v2 use?

270 parts, built around the PAT1220-C-6DB, HMC431LP4E, SKY65404-31 and LT6232IGN. 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 Radar v2 KiCad files?

From the ckflight/FMCW-RADAR repository on GitHub, at the commit this page was made from: the board is Radar 2/Radar v2.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Radar v2 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).