Skip to the content
2 layers100.3 × 20 mmFCPC Breakout PCB, the printed circuit board in 3D

Project Feather Flight Companion Computer Ground Control Station & Onboard Flight UI Functions: 1) Data Logger 2) Telemetry Server 3) User Interface Engine

Size
100.3 × 20 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
14
Pads
39
Tracks, vias
38, 4
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
30 May 2024
Updated
16 Oct 2024

Overview

FCPC Breakout PCB is an open-source printed circuit board by Arrow-air, from the Arrow-air/Feather-Companion-Computer repository on GitHub. It is a 2-layer board of 100.3 × 20 mm with 32 parts on 14 nets, routed with 38 tracks and 4 vias.

It is built around the RS485. Its parts include 10 connectors, 2 capacitors and 2 resistors. It belongs with the interfaces and adapters and computers and single-board computers boards of this library.

Main components

1

README

README.md

Feather Flight Companion Computer

Ground Control Station & Onboard Flight UI

Functions:

  1. Data Logger
  2. Telemetry Server
  3. User Interface Engine

Table of Contents

  1. Introduction
  2. Architecture Overview
  3. File Descriptions

Introduction

The Flight Companion Computer system designed for both Ground Control Station (GCS) and onboard flight use (FUI). It integrates multiple functionalities including data logging, telemetry server, and a user interface engine. The system is modular, allowing for easy expansion and maintenance, and is designed to provide a robust Data interface for flight operations.

Architecture Overview

The system is structured into multiple modules, each handling a specific aspect of the overall functionality. These modules include communication protocols, data handling, user interfaces, and specific hardware controls. The main control program loop resides in the FCPC.py file.

File Descriptions

FCPC.py

Main Function and Control Logic
The central script that coordinates the activities of all other modules. Handles high-level decision making and ensures smooth operation of the entire system.

Data.py

Data Handling Module
Manages data storage and retrieval within the system. Provides functions for logging data, managing data formats, packaging data to be sent as telemetry.

Veronte.py

Veronte Module
Interfaces with the main Flight Controller, the Embention Veronte X1, over UART serial. packages flight sensor data, such as attitude and altitude etc.

BMS.py

Battery Management System (BMS) Module
Packages data from each of the 6 Ennoid X-LITE-V4 BMSs on board the aircraft, including voltage, current, temperature, and state of charge, etc.

VESCCAN.py

VESC-CAN Module
Interfaces with the VESC CAN bus protocol for interacting with data emminating from the Ennoid X-LITE-V4 BMSs, as implemented by Ennoid.

ESC.py

Electronic Speed Controller (ESC) Module
Packages data from each of the 6 Mad Motors ECSs on board the aircraft, including voltage, current, temperature, and state of charge, etc.

CyphalCAN3.py

Cyphal-CAN Protocol Module
Interfaces with the Cyphal-CAN CAN bus protocol for interacting with data emminating from the MAD Motors ECS, as implemented by MAD Motors.

TCP.py

TCP/IP Communication Module
Implements communication over TCP/IP, handling socket connections, data transmission, and reception over local network, send telemetry data to the displays.

server.py

Server Module
Sets up a network connection to display1.py and display2.py to send telementry data to the display screens

protocols_functions.py

Protocols Utility Functions Module
Contains utility functions used by server.py, display1.py, and display2.py. Provides common functionalities such as message parsing, checksum calculation, and other specific operations.

display1.py

Display Module 1
Responsible for rendering the "System State Window", primarily displaying data from the Flight Controller.

display2.py

Display Module 2
Responsible for rendering the "System Infromation Window", primarily displaying data from all the ESCs and BMSs.

Joystick.py

Joystick Input Module
Handles input from but Logitec USB and Otto CAN joystick devices. Reads joystick movements and button presses, translating their commands to the control system.

LoRa.py

Long Range Radio Communication Module
Implements communication over the LoRa protocol for long-range, low-power wireless communication. Handles message encoding, decoding, and transmission.

IO.py

Input-Output Module
Manages I/O on the RPI GPIO pins.


This README provides a comprehensive overview of the Project Feather system and its components. For detailed usage and additional information, refer to the documentation within each module and the main FCPC.py script, as well as the following reference documents:

FCPC Concept Document

FCPC Concept

Project Feather Data Network & Ground Equipment Document

Data Network & Ground Equipment

Parts

32
QtyValueFootprintReferences
2CCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2
2G***kibuzzard-6696DEDDkibuzzard-6696DEDD, kibuzzard-6696DEDD
112VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ9
112VConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.5_1x02_P3.50mm_VerticalJ5
11KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
15VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8
15VConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.5_1x02_P3.50mm_VerticalJ4
1CANConnector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ1
1CANConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ7
1G***kibuzzard-6696DF63kibuzzard-6696DF63
1G***kibuzzard-6696DFADkibuzzard-6696DFAD
1G***kibuzzard-66AD0A64kibuzzard-66AD0A64
1G***kibuzzard-6696DEF0kibuzzard-6696DEF0
1G***kibuzzard-6696E02Fkibuzzard-6696E02F
1G***kibuzzard-66AD0A40kibuzzard-66AD0A40
1G***kibuzzard-6696E03Fkibuzzard-6696E03F
1G***kibuzzard-6696DF0Dkibuzzard-6696DF0D
1G***kibuzzard-6696E01Ekibuzzard-6696E01E
1G***kibuzzard-6696DF6Dkibuzzard-6696DF6D
1G***kibuzzard-6696DFD9kibuzzard-6696DFD9
1G***kibuzzard-6696E054kibuzzard-6696E054
1G***kibuzzard-6696DFC0kibuzzard-6696DFC0
1RS485Connector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ2
1RS485Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10
1UARTConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.5_1x02_P3.50mm_VerticalJ3
1UARTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6

The 29 most common of 32 parts.

Similar boards

  • 2 layers100 × 100 mmExplorer, the printed circuit board in 3D

    Explorer

    anyshake/explorer

    🌏 Detecting seismic wave using 3 geophones and 3-axis accelerometer, pack & send data to AnyShake Observer over RS232 / RS485 serial.

    266 parts100
  • 2 layers45 × 45 mmMotor, the printed circuit board in 3D

    Motor

    DizzyRobot/DirectServo

    Controller that drives BLDC motor as servo

    48 parts76
  • 8 layers163.5 × 123.5 mmYeti, the printed circuit board in 3D

    Yeti

    PionixPublic/reference-hardware

    BelayBox reference hardware

    278 parts70CERN-OHL-P-2.0
  • 2 layers63 × 46 mmPi485, the printed circuit board in 3D

    Pi485

    bvarner/pi485

    An open-source TTL UART <-> RS485 converter, intended for a Raspberry Pi or Arduino

    31 parts41MIT
  • 2 layers123 × 87.5 mmFastLOGIC, the printed circuit board in 3D

    FastLOGIC

    Neumi/fastLOGIC

    An affordable Arduino-based board designed for straightforward (industrial) logic control, ideal for building small-scale automation and control solutions.

    180 parts23MIT
  • 4 layers105 × 55 mmMotorKit, the printed circuit board in 3D

    MotorKit

    zhbi98/ODriveX

    【无刷电机FOC驱动器】双通道 FOC 无刷电机驱动套件,最高电压 60V 单通道电流可达 100A,可以驱动 1.2kW 以内 BLDC 或 PMSM(有中文注释)。

    184 parts22MIT
  • 2 layers98.9 × 91.4 mmCoin Cell Tester, the printed circuit board in 3D

    Coin Cell Tester

    tomrodinger/servomotor

    Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software.

    204 parts17MIT
  • 4 layers80 × 100 mmTempCtrl, the printed circuit board in 3D

    TempCtrl

    charlesbaynham/DigitalTemperatureController

    Schematic, PCB and source code for a high-precision digital temperature controller

    186 parts14

Questions

How big is the FCPC Breakout PCB PCB?

It measures 100.3 × 20 mm and has 2 copper layers, 1.6 mm thick.

What parts does the FCPC Breakout PCB use?

32 parts, built around the RS485. 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 FCPC Breakout PCB KiCad files?

From the Arrow-air/Feather-Companion-Computer repository on GitHub, at the commit this page was made from: the board is Hardware/PCBs/FCPC Breakout PCB/FCPC Breakout PCB.kicad_pcb and its schematic Hardware/PCBs/FCPC Breakout PCB/FCPC Breakout PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FCPC Breakout PCB design in my own project?

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