Skip to the content
PCBKitNew board
2 layers64 × 62 mmJardinier2000, the printed circuit board in 3D

Jardinier2000

blaizard/bzd14

Fullstack, lightweight and flexible framework for IoT applications

Size
64 × 62 mm
Copper layers
2
Thickness
1.6 mm
Parts
72
Nets
64
Pads
253
Tracks, vias
528, 38
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
18 Sep 2019
Updated
7 Nov 2026

Overview

Jardinier2000 is an open-source printed circuit board by blaizard, from the blaizard/bzd repository on GitHub. It is a 2-layer board of 64 × 62 mm with 72 parts on 64 nets, routed with 528 tracks and 38 vias.

It is built around the ESP32-S3-WROOM-1-N8 and AO3400A. Its parts include 17 resistors, 15 capacitors, 11 connectors, 7 diodes and 4 transistors. It belongs with the home automation and IoT boards and the ESP32 boards of this library.

Main components

2

README

README.md

bzd Framework

Build Status CI

Access the rendered version of this documentation.

Fullstack, lightweight and flexible framework for IoT applications. This mono-repository enables the following technologies:

C++20Rust (2024)Python 3.13Node (v23)VueBazelKiCad

Overview

This framework is built to run on all sorts of embedded platforms, from bare-metal 8-bit microcontrollers to high-performance compute units. It is made to remove any dependency on the STL, but to provide a similar set of components and utilities to develop applications in an efficient and safe manner.

It features the following:

  • No dynamic allocations. All storage is declared either at compile time or on the stack.
  • The core library is self-contained, with no reliance on third-party libraries, only on the freestanding C++ standard library.
  • Flexible error handling model.
  • Based on C++ coroutines.
  • Compile-time string formatting tool.
  • Lightweight.
  • Useful set of containers.

Platforms

The following target platforms are currently supported:

NameCompilerVersionExecutorsDebug
linux_x86_64_clang*clang19.1.7host*
linux_x86_64_gccgcc14.2.0host*
esp32_xtensa_lx6_gccgcc14.2.0sim*, uartx
esp32s3_xtensa_lx7_gccgcc14.2.0sim*, uartx

* Default.

When debug is supported by the platform, one can run a target with the --config=debug option and a debug environment will be made available.

Build

Locally

To build everything, just run:

bash
./tools/bazel test //...

This will build locally; it will fetch all tools needed to build on your machine.

Remote

To build Bazel targets, simply run ./tools/bazel with --config=remote appended.

For debugging purposes, toolchains can be run locally in a docker sandbox which is very similar to what runs on remote execution. To enable this configuration, run ./tools/bazel with --config=docker.

Documentation

To build the full project documentation, run:

bash
./tools/bazel run //docs

Code Quality

All supported languages come with their own set of code quality related tools. To run all static sanity checks, code formatters and documentation generators at once, run the following command:

bash
./tools/bazel run //:sanitizer

To run all tests, run the following command:

bash
./quality_gate

This is a non-exhaustive list of languages and their supported tools. In addition to that, formatters and linters for YAML, JSON and Markdown are also available.

LanguageFormattersCode AnalyzersCode CoverageTest FrameworkDocumentation
C++clang-formatclang-tidy, asan, lsan, tsan, ubsanYesYesdoxygen-based
Pythonruffruff, mypyYesYes
NodeprettiereslintYesYes
Skylarkbuildifierbuildifierstardoc

Update compile_commands.json

bash
./tools/bazel run @bzd_sanitizer//aspects/compile_commands:build

Update rust-project.json

bash
./tools/bazel run @rules_rust//tools/rust_analyzer:gen_rust_project -- //rust/...

Naming Convention

The code in this repository follows several principles regarding naming conventions. The following rules are applied across languages.

  • Files and directories are named lower case snake_case using only the characters matching the regex: [a-z0-9_/.]. This is enforced by tools/bazel_build/modules/bzd_sanitizer/actions/structure.
  • Variables, constants, functions, concepts, namespaces are named in camelCase.
  • All types are named in PascalCase.
  • Non-public members (variables, functions...) are appended with a _ character.
  • All names avoid abbreviations.

Memory Footprint

All classes offered by this library share the same objective: a fixed memory size. Their footprint or maximum size is determined at compile time, ensuring no memory allocation at runtime, making this library ideal for any safety-critical application.

Parts

72
QtyValueFootprintReferences
100.1uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C5, C6, C7, C13, C14, C15, C16, C18
810KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R3, R5, R7, R16, R17, R20, R21
6D_SchottkyDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D3, D4, D6, D7
4100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R4, R8, R9
410uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C19, C20
4AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4SolderJumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mm_NumberLabelsJP1, JP2, JP3, JP4
4~TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1, J2, J3, J4
3SW_PushButton_Switch_THT:SW_PUSH_6mmSW4, SW5, SW6
25.1KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR22, R23
2I2CConnector_JST:JST_XH_B4B-XH-AM_1x04_P2.50mm_VerticalJ7, J11
1100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR18
113.7kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR19
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6
12.2uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC17
13.3uH & 3AInductor_SMD:L_Cenker_CKCS6028L1
13V3TestPoint:TestPoint_Pad_2.0x2.0mmTP1
1ADC1_CH0Connector_JST:JST_XH_B3B-XH-AM_1x03_P2.50mm_VerticalJ5
1ADC2_CH0Connector_JST:JST_XH_B3B-XH-AM_1x03_P2.50mm_VerticalJ6
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_HorizontalJ12
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U4
1JTAGConnector_JST:JST_XH_B6B-XH-AM_1x06_P2.50mm_VerticalJ9
1LEDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD8
1LMR51430YDDCRPackage_TO_SOT_SMD:SOT-23-6U1
1LOGOLOGOG***
1NCP1117-3.3_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1RESETbzd:push_button_6x3SW3
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ14
1VBUSTestPoint:TestPoint_Pad_2.0x2.0mmTP3
1VIN_LDO_3V3TestPoint:TestPoint_Pad_2.0x2.0mmTP4
1VIN_STEP_DOWNTestPoint:TestPoint_Pad_2.0x2.0mmTP5
1VOUT_STEP_DOWNTestPoint:TestPoint_Pad_2.0x2.0mmTP6

Questions

How big is the Jardinier2000 PCB?

It measures 64 × 62 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Jardinier2000 use?

72 parts, built around the ESP32-S3-WROOM-1-N8 and AO3400A. 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 Jardinier2000 KiCad files?

From the blaizard/bzd repository on GitHub, at the commit this page was made from: the board is apps/jardinier2000/hardware/jardinier2000.kicad_pcb and its schematic apps/jardinier2000/hardware/jardinier2000.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Jardinier2000 design in my own project?

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

Similar boards

  • 6 layers90.1 × 135 mmHandheld, the printed circuit board in 3D

    Handheld

    gamebub/gamebub-pcb

    PCB design files for the Game Bub project

    386 parts31CERN-OHL-S-2.0
  • 2 layers42.3 × 42.3 mmWireless Stepper Motor Controller, the printed circuit board in 3D

    Wireless Stepper Motor Controller

    Circuit-Digest/Wireless-Stepper-Motor-Controller

    The Wireless Stepper Driver is a compact and efficient motion control system designed to control stepper motors over Wi-Fi.

    62 parts17MIT
  • 4 layers59.6 × 48.3 mmPlant1337, the printed circuit board in 3D

    Plant1337

    chl33/Plant133

    Firmware, circuit design, and 3D-printable components for an automated plant-watering system.

    61 parts6MIT
  • 2 layers37 × 70.9 mmOpendiag, the printed circuit board in 3D

    Opendiag

    maximus64/opendiag-hardware

    OpenDIAG - Open Source OBD2 Interface (Hardware)

    148 parts5CERN-OHL-S-2.0
  • 2 layers93.3 × 128.4 mmMonpolyElectronicV2, the printed circuit board in 3D

    MonpolyElectronicV2

    Pegoku/Monopoly-Electronic-V2

    Gameplay focuses on NFC interaction instead of menus.

    104 parts5
  • 2 layers32.3 × 87.6 mmESP32-Gimbal, the printed circuit board in 3D

    ESP32-Gimbal

    Visaging/ESP32-Gimbal

    A high-performance, open-source 3-axis smartphone gimbal built from scratch using a custom PCB and the SimpleFOC library. It features real-time stabilization, native USB-C programming, and custom motion modes.

    60 parts4MIT
  • 4 layers35 × 99.9 mmSnips controller, the printed circuit board in 3D

    Snips controller

    thePunderWoman/SnipsControllers

    The controllers built to work with Amidala

    95 parts3GPL-2.0
  • 2 layers42 × 66 mmWafflehw rev0.1, the printed circuit board in 3D

    Wafflehw rev0.1

    Jankyneering/Waffle_hw

    Hardware designs for Waffle, a compact Pager and general RF multitool.

    42 parts2GPL-3.0