Ghost feather v1 is an open-source printed circuit board by PanBabinicz, from the PanBabinicz/ghost-feather repository on GitHub. It is a 4-layer board of 106.6 × 106.7 mm with 97 parts on 97 nets, routed with 559 tracks and 845 vias.
It is built around the STM32F722RET6, BMI270 and USBLC6-2SC6, with the BSS138, AMPMGFB-16.0000T and CC4V-T1A-32.768KHZ-10PF-20PPM-TA-QC among its other parts. Its parts include 28 resistors, 21 capacitors, 8 connectors, 5 ICs and 4 transistors. It belongs with the microcontroller boards boards and the STM32 boards of this library.
[!NOTE]
Please bear in mind that the workspace was primarily created for enjoyment
and educational endeavors.
The MIT License (MIT)
Copyright (c) 2011-2024 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Compilation process
[!NOTE]
The current compilation process will be changed
~ cmake --preset list
~ cmake --preset <build-type>
Build shell script
console
~ ./build.sh <build-type>
How to program
For now, CMake generates two elf files. Each of these files needs to be uploaded to the device.
Newlib
To use newlib with libopencm3 it is necessary to recomplie the libc to be able to use hard floating point numbers which use on-chip FPU.
The second option is to use soft floating point numbers but the speed will be slower.
Marco Paland printf implementation
The Marco Paland printf implementation is a lightweight, standalone alternative designed
specifically to address these limitations. This implementation offers a small memory footprint,
portability, and independence from the full C standard library. It is widely used in embedded
projects where developers require formatted output but cannot afford the code size and
dependencies of a complete libc implementation.
DFU script
Description
The script enables firmware update over USART. It allows users to upload binary firmware files to microcontroller-based devices with minimal effort.
The script handles communication setup, data formatting, and transmission to ensure reliable updates.
Usage
console
~ python3 dfu_usart.py <binary> <port> <baudrate>
<binary>: The firmware to be uploaded.
<port>: The name of the serial port connected to the target device (e.g., /dev/tty.usbmodem).
<baudrate>: The communication speed in bits per second (e.g., 9600, 115200).
Conda is an open-source package manager and environment manager used for installing, running, and
updating software packages and their dependencies. It is widely used in data science, machine learning,
and scientific computing because it simplifies managing complex software environments.
Unlike pip, which only installs Python packages, Conda can manage packages written in multiple languages
(such as Python, R, and C libraries) and handles system-level dependencies as well.
Conda is distributed with platforms such as:
Anaconda – a large distribution that includes many preinstalled scientific packages.
Miniconda – a lightweight version that installs only Conda and Python.
Open source flight controller for FPV drones. Includes two complete hardware designs (kicad) with production files. Will include custom firmware (bare-metal cpp). In progress :-)
It measures 106.6 × 106.7 mm and has 4 copper layers, 1.58 mm thick.
What parts does the Ghost feather v1 use?
97 parts, built around the STM32F722RET6, BMI270, USBLC6-2SC6 and BSS138. 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 Ghost feather v1 KiCad files?
From the PanBabinicz/ghost-feather repository on GitHub, at the commit this page was made from: the board is hardware/ghost-feather-v1/kicad/ghost-feather-v1.kicad_pcb and its schematic hardware/flying-byte-v1/flying-byte-v1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ghost feather v1 design in my own project?
Its repository states no licence, so its author keeps all rights: ask PanBabinicz before reusing the design.