

Genli
PDB/PCB repository for custom hopcopter build *named Genli :)*
- Size
- 125 × 90 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 40
- Pads
- 84
- Tracks, vias
- 123, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 18 Aug 2026
- Updated
- 21 Sep 2026
Overview
Genli is an open-source printed circuit board by eli-lame, from the eli-lame/Genli repository on GitHub. It is a 2-layer board of 125 × 90 mm with 20 parts on 40 nets, routed with 123 tracks and 0 vias.
It is built around the VL53L0X and ICM-20948. Its parts include 15 ICs and 1 connector.
Main components
2README
README.mdGenli — hardware
KiCad projects for the Revali hopcopter: a quadrotor with a passive spring-loaded telescopic leg that hops along the ground instead of hovering.
Firmware, and all design documentation, live in the companion repository eli-lame/Revali. This repository is boards only.
Layout
lib/ symbols and footprints shared by every board
HopCopter.pretty/ our own footprints
Genli.kicad_sym our own symbols
ESP32_Footprints.pretty/ third party, MIT
esp32_30pin_revised.kicad_sym third party, MIT
ESP32-DevKit-V1-DOIT.LICENSE its licence — keep it with the files
v1-prototype/ first board — archived, never fabricated
stage2-carrier/ current work — README.md is the specOne KiCad project per board, side by side. A new board is a new project,
not a copy of the previous one: copying inherits the previous netlist, and
v1's contains a reversed ESC1–ESC4 mapping and a power section built around
a part no longer used. Footprints are worth reusing; net topology is not.
The pin map lives in Revali
docs/hardware.md
is the single source of truth for every GPIO assignment, and it wins any
disagreement. Do not copy the pin table into this repository — link to it.
Two copies of a pin map is how a board and its firmware quietly diverge.
Other documents worth reading before changing a board:
| Doc | Covers |
|---|---|
| hardware.md | The pin map, buses, sensor quirks |
| hardware_roadmap.md | Board architecture, the 4-in-1 stack, power topology, the staging plan |
| safety.md | Arming, failsafes, the voltage thresholds the divider feeds |
| current_devtasks.md | Phase H — the hardware task list |
Because the boards and the firmware are in separate repositories, record the
Revali commit a board was designed against in its production/ directory
when gerbers are generated. That is the only link back from a fabricated board
to the pin map it assumed.
Libraries are vendored, not installed
Every custom or third-party symbol and footprint lives in lib/ and is
registered per project, never globally. A globally installed library is
invisible to the repository: the project opens on the machine that installed it
and nowhere else. v1 had exactly this problem — its symbols were referenced by
an absolute path into OneDrive/Documents/, so a clone of this repo could not
resolve them.
Register in Preferences → Manage Symbol / Footprint Libraries → Project
Specific Libraries, always with ${KIPRJMOD}-relative paths:
| Nickname | Path |
|---|---|
HopCopter | ${KIPRJMOD}/../lib/HopCopter.pretty |
ESP32_Footprints | ${KIPRJMOD}/../lib/ESP32_Footprints.pretty |
Genli | ${KIPRJMOD}/../lib/Genli.kicad_sym |
esp32_30pin_revised | ${KIPRJMOD}/../lib/esp32_30pin_revised.kicad_sym |
fp-lib-table and sym-lib-table in each board directory already contain
these; they are committed, so a fresh clone resolves without any setup.
The nicknames are load-bearing — do not rename them. Assignments are stored
as Nickname:Name across every sheet and board, so a nickname is a hard
reference. HopCopter and Genli are leftovers from earlier names for this
project; renaming them breaks every existing assignment for no benefit. Moving
the files is safe; renaming the nickname is not.
If a nickname is also in your global table, remove the global entry — duplicates across the two tables conflict.
Known gap
v1's PCB references PCM_SparkFun-Connector:ScrewTerminal_1x02_P5.0mm, from a
library installed through KiCad's Plugin and Content Manager, which is not
vendored here. v1 is archived and that screw terminal is deleted in Stage 2, so
this is recorded rather than fixed. Introduce no new PCM dependencies —
vendor anything that is not a KiCad stock library.
Moving or renaming a project
One change at a time, opening the project between each. A KiCad project is
<name>.kicad_pro, <name>.kicad_sch and <name>.kicad_pcb, and the root
schematic must share the project's base name — so renaming means renaming all
three consistently. Use File → Save As, which does it correctly, rather than
renaming files by hand.
v1-prototype/ deliberately keeps its original Genli.* file names. The
directory name carries the meaning, and renaming is the riskiest operation
available for no gain on a board that will never be edited again.
What is not committed
.gitignore excludes KiCad's per-user and regenerable files: *-backups/,
*.kicad_prl, fp-info-cache, *.net, autosave and lock files, and
.history/ from the VS Code local-history extension.
Fabrication outputs — gerbers, drill files, BOM, pick-and-place — go in a
production/ subdirectory of the board they belong to and are committed.
They are the exact bytes sent to the fab, which is worth being able to
reproduce.
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | ~ | HopCopter:ESC_Power_SolderPads_1x02 | U4, U7, U12, U14 |
| 4 | ~ | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | U5, U6, U11, U13 |
| 2 | VL53L0X | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | U2, U3 |
| 2 | ~ | PCM_SparkFun-Connector:ScrewTerminal_1x02_P5.0mm | U9, U15 |
| 1 | ICM-20948 | HopCopter:SEN-15335 | U1 |
| 1 | Screw_Terminal_01x02 | PCM_SparkFun-Connector:ScrewTerminal_1x02_P5.0mm | J1 |
| 1 | ~ | ESP32_Footprints:ESP32_30pin | U10 |
| 1 | ~ | Connector_AMASS:AMASS_XT60PW-F_1x02_P7.20mm_Horizontal | U8 |
The 16 most common of 20 parts.
Questions
How big is the Genli PCB?
It measures 125 × 90 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Genli use?
20 parts, built around the VL53L0X and ICM-20948. 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 Genli KiCad files?
From the eli-lame/Genli repository on GitHub, at the commit this page was made from: the board is v1-prototype/Genli.kicad_pcb and its schematic stage2-carrier/stage2-carrier.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Genli design in my own project?
Its repository states no licence, so its author keeps all rights: ask eli-lame before reusing the design.
Similar boards
- 2 layers42 × 48 mm

- 2 layers68.6 × 53.3 mm

- 2 layers100 × 80 mm

- 2 layers140 × 80 mm

IntelliThings
embedded-purdue/IntelliThings
From IoT to AIoT: ESP32-C6 sensor nodes, Home Assistant and an LLM agent that acts through MCP
12 parts5 - 2 layers24 × 24 mm

Distance sensor vl53l0x
festlv/laser-distance-sensor
Laser distance sensor with USB and serial output
28 parts3 - 4 layers

LogiBot PCB
Lukikato101/LogiBot
Low-cost autonomous mobile robot (AMR) for warehouse material transport and automation.
114 parts2 - 2 layers35.5 × 58 mm

Esguicho 2.0
project-neon/Esguicho
Neste repositório temos os principais arquivos que usamos para os 3 capítulos, Eletrônica, Mecânica e Software. Segue abaixo uma lista do que temos em cada uma das pastas:
45 parts2 - 2 layers100 × 100 mm

Kicad rover
12romis/esp32-elrs-rover
Ровер 4WD із танковим приводом на ESP32-S3: керування через ExpressLRS 2.4 ГГц, антизіткнення на ToF-далекомірах, замкнутий контур по енкодерах та аналоговий FPV-відеоканал 5.8 ГГц.
80 parts1