
RadarAdapter
Brazil-L/Lumeward-OpenSource
Open-source Lumeward firmware and development tools

Open-source Lumeward firmware and development tools
R7FS7MOD is an open-source printed circuit board by Brazil-L, from the Brazil-L/Lumeward-OpenSource repository on GitHub, published under the Apache-2.0 licence. It is a 6-layer board of 57 × 25.9 mm with 228 parts on 302 nets, routed with 6,252 tracks and 978 vias.
It is built around the R7FS7G27H2A01CBD#AC0, AS179-92LF and TPS82740BSIPR, with the DA7217-00U32, MX25L25673GZNI-08G and 2908-05WB-MG among its other parts. Its parts include 108 capacitors, 39 resistors, 21 ICs, 9 inductors and 6 crystals. It belongs with the radio and wireless boards of this library.
Firmware for an autonomous sensor hub built into an ordinary motion-sensor luminaire. A 60 GHz FMCW radar, an infrared presence sensor, a precision barometer, an IMU, a microphone and a speaker sit behind the plastic of a two-euro solar lamp; a Cortex-M4 module at 240 MHz runs them, together with Wi-Fi, Bluetooth LE, LoRa, an SD card and a diagnostic web interface.
The name is the platform, not the product: lume for the light it still is, ward for what it now does. The first application on it is a door answering machine, and more are meant to follow as separate tasks in the same project.

From the outside, Lumeward still looks like the ordinary solar motion-sensor lamp that provided its enclosure.
| Electronics during assembly | Main controller installed in the enclosure |
|---|---|
![]() | ![]() |
The hardware and how it came to exist are described in the article series this repository accompanies. The firmware is the bulk of what is here; the board files below are what it runs on.
Two boards make the device, the same 56.97 x 25.91 mm outline stacked one on the other.
MODULE_R7FS7v2 carries the MCU, the memories and every radio; RADADPTR01 is the
carrier it plugs into, and brings out the LED drivers, the radar and the sensor buses.
Both are KiCad projects under docs/:
| Board | KiCad project | Stack |
|---|---|---|
MODULE_R7FS7v2 (R7FS7MOD) | docs/R7FS7MOD_PCB_KiCad/ | 6 copper layers, 0.72 mm |
Radar adapter (RADADPTR01) | docs/RADADPTR01_PCB_KiCad/ | 4 copper layers, 1.02 mm |
The renders below are exported from those projects: every layer except solder mask and paste, on the PCB editor's own colours. Each image links to the full-resolution PNG - the schematic sheets are A3 at 400 dpi, where the smallest lettering still reads.
| Sheet 1 - the S7G2 and its pinout | Sheet 2 - power, charger, RTC, ADCs, USB |
|---|---|
![]() | ![]() |
| Sheet 3 - SDRAM, SD card, NOR flash, Wi-Fi, LoRa, codec, IMU | Sheet 4 - the three board-to-board connectors |
![]() | ![]() |
CMakeLists.txt / CMakePresets.json the LLVM/CMake build graph and Debug/Release presets
BootLoader/ the bootloader over the same framework_src
src/ the application layer
framework_src/ the platform layer, shared by future applications
MODULE_R7FS7v2/ the hardware layer and the platform header with its two faces
ThreadX/ NetXDuo/ UsbX/ Eclipse ThreadX components, MIT
CMSIS/ the ARM compiler-abstraction and DSP headers, Apache-2.0
Vendor_libs/ prebuilt archives the firmware links (SCE crypto, CMSIS-DSP)
Libraries_LLVM/ committed clang archives for builds without the closed SDK sources
Tools/LLVM/ LLVM build, packaging, memory-report and J-Link scripts
Tools/Build/ shared versioning, packaging and factory-image scripts
demo_keys/ the published demo key set the packer signs with when there is no other
Tools/Manual/ scripts run by hand: delivery to the module, uploads, the bench
WebDevLink/ browser diagnostic client, one panel per subsystem
SD_card/ what the card carries: prompts and service tones
ParametersGenerator/ the parameter database and its generator
AndroidDevLink/ Android client for the same diagnostic protocol
docs/ build notes, the update key, and the hardware
*_PCB_KiCad/ KiCad projects of the two boards
*_Schematic_PNG/ schematic sheets and board renders exported from themThe split between src/ and framework_src/ is the point of the project. Everything in
framework_src/ is application-independent: RTOS, file system, networking, USB, audio,
the parameter store, the logger, the DevLink diagnostic protocol, the web server and the
cloud client. Everything specific to answering the door lives in src/.
| Directory | What it does |
|---|---|
src/Door_answer/ | The answering machine: a thirteen-state visit scenario and the delivery queue that gets the recording off the device |
src/Smart_luminaire/ | Light control, RGB, the trigger arbiter and the acoustic monitor |
src/BGT60TR13C/ | Radar driver, presence detection, the Strata bridge and the register generator |
src/STHS34PF80/, src/DPS368/ | Infrared presence sensor and barometer |
src/Sound_player/ | Voice announcer and audio parameters |
src/WEB/, src/DevLink/, src/Parameters/ | Web interface, diagnostic variables and the parameter table |
The supported build uses Arm Toolchain for Embedded 22.1.0 (LLVM/clang), CMake 3.28 or
newer, Ninja 1.11 or newer, sccache, and Python 3.10 or newer with cryptography.
SEGGER J-Link Software is needed only for flashing and debugging. The installation paths,
download checksums and debugger setup are in docs/LLVM_Build.md.
A fresh clone builds as it is. Two source trees may not be republished - the Renesas SSP and the Azure RTOS FileX build with exFAT - so they are not part of this repository, and everything that needs their headers is committed as an archive instead:
| Archive | What is inside | Sources |
|---|---|---|
libssp_lib.a | The SSP and the Renesas port of ThreadX | not in the repository |
libfx_lib.a | FileX with exFAT | not in the repository |
libnxd_fs_lib.a | The NetX Duo addons whose headers pull in fx_api.h (HTTP, web, FTP, TFTP, POP3) | in the repository; supplied as an archive because they require FileX headers |
libplatform_lib.a | This project's own sources that touch the SSP register map, its drivers, or FileX | in the repository; supplied as an archive in a public clone |
libboot_bound_lib.a | The same kind of sources, built with BOOTLOADER defined, for the bootloader | in the repository; supplied as an archive in a public clone |
The rest - the application, the kernel, the network stack, USB, the diagnostic protocol -
compiles from source. framework_src/MODULE_R7FS7v2/MODULE_R7FS7v2.h is the platform header
every source includes; it has two faces, Platform_full.h for a machine that has the SDK and
Platform_api.h for one without, chosen automatically by whether bsp_api.h can be found.
The two faces define identical structure layouts, which is what lets the archives and the
sources link. CMake detects whether the closed SDK trees are present. A public clone
automatically links the matching Debug or Release archives from
framework_src/Libraries_LLVM/; no separate preparation step is required.
From VS Code, Terminal -> Run Build Task offers LLVM: Build Lumeward,
LLVM: Build Bootloader, LLVM: Build All (app + bootloader + factory) and the matching
J-Link flash tasks. From PowerShell, build all images with:
powershell -NoProfile -ExecutionPolicy Bypass -File Tools/LLVM/Build.ps1 `
-Configuration Debug -Target all
powershell -NoProfile -ExecutionPolicy Bypass -File Tools/LLVM/Build.ps1 `
-Configuration Release -Target allFor direct CMake use, the equivalent presets are llvm-debug and llvm-release:
C:\DevTools\cmake\bin\cmake.exe --preset llvm-debug
C:\DevTools\cmake\bin\cmake.exe --build --preset llvm-debugBuild products are written to Out/Lumeward_LLVM/Debug or
Out/Lumeward_LLVM/Release. Each directory contains the application and bootloader ELF,
MAP, BIN and HEX files, the signed SD-card update images, and Lumeward_factory.hex.
On Windows, clone into a short path such as
D:/Lumeward, or enablegit config --global core.longpaths truefirst: some NetX Duo paths underaddons/azure_iot/azure-sdk-for-c/break checkout inside a deep directory.
BootLoader/ holds the other image in flash. The first 512 KB (0x00000000..0x0007FFFF)
belong to the bootloader; the application starts at 0x00080000. At every reset the
bootloader looks for firmware.bin in the root of the card, checks its signature, its CRC
and its start address, writes it into the application region, renames it firmware.flashed,
and restarts into the application when the region holds a valid image. A wake-up from deep
software standby goes straight to the application. With no valid image it stays and blinks:
green when the card is readable, red when it is not.
It is the same platform built with BOOTLOADER defined. BootLoader/src/ carries only the
boot flow, the early hardware initialisation and a logger stub; everything else comes from
framework_src/, where the bootloader-specific branches are marked #ifdef BOOTLOADER.
The sources that need the closed headers are listed in BootLoader/Bootloader_bound_sources.txt
and committed as libboot_bound_lib.a under framework_src/Libraries_LLVM/. The CMake build
selects the archive automatically when those headers are unavailable.
powershell -NoProfile -ExecutionPolicy Bypass -File Tools/LLVM/Build.ps1 `
-Configuration Debug -Target lumeward_bootloader
powershell -NoProfile -ExecutionPolicy Bypass -File Tools/LLVM/Build.ps1 `
-Configuration Debug -Target lumeward_factoryThe bootloader update is written to
Out/Lumeward_LLVM/Debug/SD_card_bootloader_update_for_Lumeward/bootldr.bin, and the combined
factory image to Out/Lumeward_LLVM/Debug/Lumeward_factory.hex; replace Debug with Release
for a Release build. Lumeward_factory.hex is what a blank module gets over J-Link. Build and
flash it from VS Code with LLVM: Flash Factory (app + bootloader), or from PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -File Tools/LLVM/Build.ps1 `
-Configuration Debug -Target lumeward_factory -Flash FactoryA module that already runs the bootloader takes new firmware from the card, and takes a new
bootloader the same way: bootldr.bin in the card root and the FLASH_BOOTLOADER command from
DevLink.
The project ships a demo key set and nothing else. Tools/Build/demo_keys/ holds a
signing key and a wrapping key whose private halves are published right there, and
framework_src/Keys/Keys.c holds the public half of that signing key. A clone therefore builds
every image, the signed ones included - firmware.bin, bootldr.bin, the versioned image and
the update package - and the bootloader built from the same tree accepts them.
The demo keys protect nothing. Anyone can sign an image that a bootloader built with the demo
Keys.c accepts, so they belong on a bench board. The build says so in its output every time it
signs with them, and stops using them as soon as secrets/ exists or LUMEWARD_SIGNING_KEY and
LUMEWARD_AES_KEY point at keys of your own. Issue those before a board leaves your hands.
The demo set carries no wrapped-key bundle: producing one needs a UFPK of your own and Renesas' key
wrap service (docs/Wrapped_Key.md). A board with no bundle installed refuses every update image,
demo-signed or not; the HEX images still flash over J-Link.
Two keys are involved, and they do different jobs:
| Key | Where it lives | What it does |
|---|---|---|
| RSA-2048 pair | private half on the build machine, public half in framework_src/Keys/Keys.c as RSA_pub_exp_modul | the build machine signs each image with the private half; the board checks the signature with the public one, which is all it carries |
| AES-256 wrapping key | on the build machine, and inside each board's SCE7 engine, rewrapped on a secret unique to that chip | every image is encrypted with a session key generated for that image alone; the session key travels inside the image, wrapped on this one |
Nothing that can forge an image is compiled into the firmware. The board holds the public half of the signing pair and a wrapped key that is worthless on any other chip, so reading out a board's flash yields neither the signing key nor the key to anyone else's images.
Tools/Build/firmware_packer.py is what signs and packs. It looks for the two keys in
secrets/ beside the project root, or wherever LUMEWARD_SIGNING_KEY and LUMEWARD_AES_KEY
point, and takes the demo set only when neither is there. Whichever key signs, it must be the
one whose public half is in Keys.c: the packer compares them and stops on a mismatch, because
a board would refuse that image anyway:
| File | What it is |
|---|---|
lumeward_signing_key.pem | RSA-2048 private key. Its public half goes into Keys.c |
lumeward_aes_key.bin | 32 bytes, the key each image's session key is wrapped on |
lumeward_aeskey_wrapped.bin | the 108-byte bundle a board is provisioned with |
Generate your own pair, put its public half into Keys.c, and turn your AES key into the
bundle with Renesas' Security Key Management Tool. docs/Wrapped_Key.md is the whole
procedure, including the one-time key-wrap service exchange it needs. Back all three up
somewhere that is not the build machine: losing the signing key means no further release can
be signed, and losing the AES key means no release can be packed that a board already
provisioned will read.
Two more secrets are compiled in and are demonstration values, not anything to keep:
framework_src/MODULE_R7FS7v2/SoC_periphery/SDHI/s7_sdmmc_utils.c holds the SD card lock
password the bootloader build uses, and the TLS credentials of the embedded web server are in
framework_src/WEB_server/WEB_server_certificate.c. Rotate the password and regenerate the
certificate pair with framework_src/Tools/cert_generator/ before anything faces a real
network.
A board off the assembly line runs, but it is anonymous and it cannot be updated. Provisioning
is what gives it an identity, its secrets and its update key, and it happens over DevLink from
the Provisioning menu of WebDevLink/ while the board is on the USB cable. It is not
optional: a board with no wrapped key refuses every update image outright, with no fallback.
| Panel | What it does |
|---|---|
| Board credentials | asks a provisioning server for this board's passwords and writes them in: web server password, FTP login and password, Wi-Fi AP name and key, Bluetooth name, host name, menu PIN, and the Azure DPS ID Scope, endpoint and hub |
| DevLink channel password | the one credential that is not a parameter - it travels as DL_APPCMD_SET_DL_PASSWORD, is write-only by construction, and takes effect at the next DevLink start |
| Cloud provisioning | the board's own serial and certificate. The board can fetch these itself over HTTP, but not on a bench where the USB cable carries a COM port and no IP, so the page asks the server and hands the answer to the board |
| Board wipe | DL_APPCMD_WIPE: settings, credentials, or everything down to a board that comes back with firmware only |
Nothing is stored per board on the server side: every password is HKDF over one master secret
salted with the chip UID, so a board always gets the same set and asking again is how a
password is recovered rather than reset. The master secret never leaves the server and never
reaches the browser page. The server itself is not part of this project - the panels expect
one answering on http://localhost:8471, and you supply it.
Two more steps belong to the same bench pass, and both are one-way enough to be worth reading about first:
DL_APPCMD_INSTALL_KEY (0x1F). The bench sends the 108-byte bundle; the
SCE7 engine rewraps it under a secret of that one chip and stores 52 bytes in DataFlash. The
command answers only after re-probing what it wrote, and g_key_wrap_active is published in
the DevLink TSA table, so a bench can confirm the key took rather than assume it.DL_APPCMD_SET_SWD_CODE (0x1E). Every board gets its own code,
derived from the master secret and the chip UID; it goes straight into option memory and is
never read back. Mode 1 - the debugger asks for the code but all-erase stays available - is
what the panel offers, because it leaves a way back. Mode 3 locks the chip permanently and the
firmware refuses it. If the code is lost, DL_WIPE_OP_UNLOCK_SWD releases the debugger with no
programmer at all, as long as the application still runs and DevLink still answers.The device is meant to be tuned, not guessed at. WebDevLink/ is a browser client that
speaks the DevLink protocol over serial, USB or the network and gives each subsystem its
own panel: radar range profiles and a waterfall, infrared thresholds against live values,
the audio level against its floor, the light arbiter with its active sources, and the
answering machine with its current scenario step and recorder handshake.
Tools/Manual/door_answer_bench.py drives the same protocol from the command line: it delivers
prompts to the card, runs a visit, pulls the recording back and analyses its spectrum.
Batch reads give roughly 661 samples per second across a whole variable group, which is
what makes a twenty-millisecond state visible at all.
Parameters live in one database, ParametersGenerator/ParamsDB.txt, and the generator
produces the C tables, the DevLink descriptors and the web schema from it in a single
pass. Adding a parameter means adding a row, not touching four files.
This is a development project, not a certified product. The radar, the mains-free power path, the battery charger, the RF emissions and the recording of people at a door are all your responsibility to check against the rules that apply where you are. Recording visitors is regulated in most of Europe; the device is designed for a private entrance and stores nothing until someone stands at the door, but that does not make the recordings lawful everywhere.
The original work in this repository is licensed under the Apache License 2.0. See
LICENSE for the terms and NOTICE for what the grant covers.
The licence covers this project's own code, not the third-party components shipped
alongside it. Two of those are not open source at all and are present only as prebuilt
archives, which is why THIRD_PARTY_NOTICES.md is worth reading before you reuse anything
here in a product.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 32 | 0402B104K500CT | R7FS7MOD-import-fps:0402 CAP | C3, C12, C13, C17, C19, C21, C22, C24, C25, C26, C28, C29, C103, C109, C110, C111 +16 |
| 26 | TMK105BJ105MV-F | R7FS7MOD-import-fps:0402 CAP | C35, C36, C37, C38, C52, C54, C55, C57, C58, C59, C64, C65, C66, C67, C102, C106 +10 |
| 16 | RMCF0402FT10K0 | R7FS7MOD-import-fps:0402 | R4, R5, R6, R7, R8, R9, R18, R20, R23, R28, R29, R31, R32, R34, R35, R47 |
| 9 | GRT155R61E224KE01D | R7FS7MOD-import-fps:0402 CAP | C4, C8, C9, C10, C11, C14, C18, C20, C99 |
| 9 | GRT188R61C106KE13D | R7FS7MOD-import-fps:0603 CAP | C1, C2, C27, C50, C56, C60, C73, C84, C101 |
| 8 | WR04X000 PTL | R7FS7MOD-import-fps:0402 | R12, R16, R22, R37, R38, R39, R43, R44 |
| 5 | , , , , | ||
| 5 | Test_point 0.5 мм | R7FS7MOD-import-fps:Test point 0.5 мм | TP6, TP7, TP8, TP9, TP10 |
| 5 | Test_point 0.5 мм | R7FS7MOD-import-fps:TEST POINT 0.5 мм | TP1, TP2, TP3, TP4, TP5 |
| 4 | CL05B103KB5NNNC | R7FS7MOD-import-fps:0402 CAP | C45, C46, C47, C49 |
| 4 | LMK107BBJ226MA-T | R7FS7MOD-import-fps:0603 CAP | C16, C23, C107, C108 |
| 3 | 885392005011 | R7FS7MOD-import-fps:0402 CAP | C86, C104, C105 |
| 3 | EVP-AVAA1A | R7FS7MOD-import-fps:EVPAV | BT1, BT2, BT3 |
| 2 | 0402N120G500CT | R7FS7MOD-import-fps:0402 CAP | C61, C62 |
| 2 | ADS7028IRTER | R7FS7MOD-import-fps:WQFN-16 3x3mm TI | U9, U11 |
| 2 | C1005CH1H102J050BA | R7FS7MOD-import-fps:0402 CAP | C94, C97 |
| 2 | CC0402KRX7R8BB473 | R7FS7MOD-import-fps:0402 CAP | C53, C85 |
| 2 | Capacitor_0402 | R7FS7MOD-import-fps:0402 CAP | C90, C100 |
| 2 | DF12NB(3.0)-20DS-0.5V(51) | R7FS7MOD-import-fps:DF12NB(3.0)-20DS-0.5V(51) | X6, X7 |
| 2 | DF12NB(3.0)-60DS-0.5V(51) | R7FS7MOD-import-fps:DF12NB(3.0)-60DS-0.5V(51) | X2, X4 |
| 2 | GCM1555C1H100FA16D | R7FS7MOD-import-fps:0402 CAP | C6, C7 |
| 2 | GJM1555C1H390JB01D | R7FS7MOD-import-fps:0402 CAP | C89, C96 |
| 2 | GJM1555C1H470FB01D | R7FS7MOD-import-fps:0402 CAP | C32, C87 |
| 2 | GRT155R61E474ME01D | R7FS7MOD-import-fps:0402 CAP | C33, C70 |
| 2 | MBRX120LF-TP | R7FS7MOD-import-fps:SOD-123 | VD3, VD4 |
| 2 | MIC94045YFL-TR | R7FS7MOD-import-fps:4-WDFN | U21, U22 |
| 2 | PUSB3FR6Z | R7FS7MOD-import-fps:SOT1358-1 | U1, U2 |
| 2 | RMCF0402FT100R | R7FS7MOD-import-fps:0402 | R45, R46 |
| 2 | RMCF0402FT15K0 | R7FS7MOD-import-fps:0402 | R1, R3 |
| 2 | RMCF0402FT30K0 | R7FS7MOD-import-fps:0402 | R2, R11 |
| 2 | RMCF0402FT453R | R7FS7MOD-import-fps:0402 | R15, R33 |
| 2 | RMCF0402FT5K10 | R7FS7MOD-import-fps:0402 | R41, R42 |
| 2 | TPS82740BSIPR | R7FS7MOD-import-fps:MICROSIP | U10, U14 |
| 1 | 2908-05WB-MG | R7FS7MOD-import-fps:2908-05WB-MG | uSD1 |
| 1 | 629722000214 | R7FS7MOD-import-fps:629722000214 | X3 |
| 1 | 734120110 | R7FS7MOD-import-fps:0734120110 | X5 |
| 1 | AB1815-T3 | R7FS7MOD-import-fps:QFN-16 3x3mm AB18XX | U4 |
| 1 | ABM11-24.000MHZ-D2X-T3 | R7FS7MOD-import-fps:4-SMD 2.00mm x 1.60mm | Z1 |
| 1 | ABS07-32.768KHZ-T | R7FS7MOD-import-fps:ABS7 | Z4 |
| 1 | APHHS1005LQBC/D-V | R7FS7MOD-import-fps:2-SMD BLUE | LED3 |
| 1 | APHHS1005LSECK/J3-PF | R7FS7MOD-import-fps:2-SMD RED | LED1 |
| 1 | APHHS1005LZGCK-V | R7FS7MOD-import-fps:2-SMD GREEN | LED2 |
| 1 | AS179-92LF | R7FS7MOD-import-fps:SC70-6 | U19 |
| 1 | BAV116T-7 | R7FS7MOD-import-fps:SOD523 | VD1 |
| 1 | BQ25619RTWR | R7FS7MOD-import-fps:TI S-PVQFN-N24 | U3 |
| 1 | CBR04C229B5GAC | R7FS7MOD-import-fps:0402 CAP | C95 |
| 1 | CL05A226MQ5N6J8 | R7FS7MOD-import-fps:0402 CAP | C15 |
| 1 | CM315E32768DZZT-4PF | R7FS7MOD-import-fps:ABS7 | Z2 |
| 1 | CR0603-10W-000T | R7FS7MOD-import-fps:0603 | R25 |
| 1 | CRCW04020000Z0ED | R7FS7MOD-import-fps:INDC1005-0402 | L11 |
| 1 | CRCW04023M90FKED | R7FS7MOD-import-fps:0402 | R19 |
| 1 | DA7217-00U32 | R7FS7MOD-import-fps:DILAOG 34-WLCSP (4.57X1.98) | U13 |
| 1 | GJM1555C1H1R8BB01D | R7FS7MOD-import-fps:0402 CAP | C92 |
| 1 | GJM1555C1H2R4BB01D | R7FS7MOD-import-fps:0402 CAP | C98 |
| 1 | GJM1555C1H5R6BB01D | R7FS7MOD-import-fps:0402 CAP | C91 |
| 1 | ICS-40730 | R7FS7MOD-import-fps:ICS-40730 | M4 |
| 1 | IHLP2020BZER2R2M01 | R7FS7MOD-import-fps:IHLP-2020BZ-11 | L1 |
| 1 | ISM330DLCTR | R7FS7MOD-import-fps:LGA-14 BOSCH | U15 |
| 1 | LQM21DH150M70L | R7FS7MOD-import-fps:2012[0805] | L9 |
| 1 | LQW15AN15NH00D | R7FS7MOD-import-fps:INDC1005-0402 | L12 |
| 1 | LQW15AN2N5C00D | R7FS7MOD-import-fps:INDC1005-0402 | L14 |
| 1 | LQW15AN47NJ00D | R7FS7MOD-import-fps:INDC1005-0402 | L13 |
| 1 | LQW15AN4N7C00D | R7FS7MOD-import-fps:INDC1005-0402 | L15 |
| 1 | LQW15AN9N1H00D | R7FS7MOD-import-fps:INDC1005-0402 | L17 |
| 1 | Laird, Sterling LWB5+, 453-00046 | R7FS7MOD-import-fps:LWB5+ 453-00045C | MOD1 |
| 1 | MAX17262REWL+T | R7FS7MOD-import-fps:9-WFBGA | U5 |
| 1 | MIC94163YCS-TR | R7FS7MOD-import-fps:6-BALL WLCSP 1.5x1.0 | U20 |
| 1 | ML414H IV01E | R7FS7MOD-import-fps:ML414H | BAT1 |
| 1 | MLG1005SR10JT000 | R7FS7MOD-import-fps:INDC1005-0402 | L3 |
| 1 | MT48LC16M16A2B4-6A IT:G TR | R7FS7MOD-import-fps:MICRON_VFBGA54 | U6 |
| 1 | MX25L25673GZNI-08G | R7FS7MOD-import-fps:DFN8 | U23 |
| 1 | NCP163AMX180TBG | R7FS7MOD-import-fps:4-XDFN | U12 |
| 1 | NCP163AMX290TBG | R7FS7MOD-import-fps:4-XDFN | U18 |
| 1 | NCP163AMX330TBG | R7FS7MOD-import-fps:4-XDFN | U8 |
| 1 | NTCG103JX103DTDS | R7FS7MOD-import-fps:0402 | R26 |
| 1 | NX2016SA-32M-EXS00A-CS06465 | R7FS7MOD-import-fps:4-SMD 2.00mm x 1.60mm | Z3 |
| 1 | Net tie 0.1mm | R7FS7MOD-import-fps:NET TEE 0.1 MM | P1 |
| 1 | R7FS7G27H2A01CBD | R7FS7MOD-import-fps:RENESAS_FBGA224 | U17 |
| 1 | RC0402FR-07100KL | R7FS7MOD-import-fps:0402 | R21 |
| 1 | RC0402FR-071KL | R7FS7MOD-import-fps:0402 | R24 |
The 216 most common of 228 parts.

Brazil-L/Lumeward-OpenSource
Open-source Lumeward firmware and development tools


PicoballoonLabs/Debug-Boards
Hardware designs for the integrated debug probe, debug adapter, flex debug cables and RF VNA calibrator

UCBioengineering/open_source_insulin_pump
This repository contains software and hardware files for building an open source insulin pump. Files were created by the team at UC Bioengineering, University of Canterbury, Christchurch, New Zealand.

doug-harriman/E-Display
Electronic display for calendars, weather, etc.


Connaxio/production-controller-makroshield
The PCM has a mikroBUS socket that works with Espoir, our Power over Ethernet devboard, to provide remote control, as well as advanced functionalities through node-red and Home Assistant.

spacecraft-design-lab-2019/avionics-motherboard
Main flight computer board for the PyCubed-1 spacecraft
It measures 57 × 25.9 mm and has 6 copper layers, 0.72 mm thick.
228 parts, built around the R7FS7G27H2A01CBD#AC0, AS179-92LF, TPS82740BSIPR and DA7217-00U32. 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.
From the Brazil-L/Lumeward-OpenSource repository on GitHub, at the commit this page was made from: the board is docs/R7FS7MOD_PCB_KiCad/R7FS7MOD.kicad_pcb and its schematic docs/R7FS7MOD_PCB_KiCad/R7FS7MOD.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the Apache-2.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).