Permanent botanical-style aluminum plant stakes engraved with the xTool F1 fiber laser. Designed for 25+ year outdoor durability with a consistent herbarium aesthetic across the entire collection. Each stake links to the farm PostgreSQL database via a Data Matrix code that also encodes complete plant info offline.
The lavender stake (LAV-001, planted 2026) is the master reference for all future stakes. Every new design starts from this template. The aesthetic, layout, fonts, spacing, and marking parameters are locked.
Visual elements (top to bottom):
- Botanical illustration (line art, ~50mm tall)
- Common name (large, bold sans-serif)
- Scientific name (italic, abbreviated genus per botanical convention)
- ID number (medium, plain)
- Year planted
- Data Matrix code (7mm, encodes full record + URL)
The Data Matrix at the bottom does double duty: scanning returns the complete plant info as text (works offline, no infrastructure needed), AND includes a URL for database lookup when online.
| Component | Detail |
|---|---|
| Laser | xTool F1 fiber (10W, 1064nm) |
| Marking area | 115Γ115mm window, conveyor extends length |
| Stock | Aluminum flat bar, 1" Γ 1/16" (cut to ~6-12" lengths, one end pointed) |
| Mounting | Pointed end driven into ground; 4-6" exposed above grade |
| Sourcing | Local metal supplier (Columbus area) β 6ft lengths cut and pointed at home |
For stakes the laser cannot mark in one shot, the F1 conveyor advances the stake through the marking window in sections.
Layout (top to bottom)
| Element | Size | Style | Notes |
|---|---|---|---|
| Botanical illustration | ~50mm tall Γ 30mm wide | Line art, no shading | Centered horizontally |
| Horizontal rule (optional) | thin line | β | Separator, can omit |
| Common name | ~10mm tall | Bold sans-serif | All caps |
| Scientific name | ~6mm tall | Italic serif | Abbreviated genus (e.g. “L. angustifolia”) |
| ID number | ~6mm tall | Plain | Sequential or prefixed (see schema) |
| Year planted | ~5mm tall | Plain | Just the year, e.g. “2026” |
| Data Matrix | 7mm Γ 7mm | High-contrast | Bottom of stake |
Typography
- Common name β bold sans-serif (the lavender stake used a clean modern sans)
- Scientific name β italic, follows the botanical convention (abbreviated genus + species epithet, possibly cultivar in single quotes)
- ID and year β same sans-serif as common name but plain weight, smaller
- Consistency rule: never change fonts between stakes. Use the same two faces (one bold sans, one italic serif if they’re different) for the entire collection.
Spacing
- Generous margins above illustration (~10mm from top edge)
- Tight grouping of text elements (each line ~2-3mm spacing)
- Wider gap between text block and Data Matrix (~5-8mm) so the code feels like a separate functional element
Primary method: Nano Banana (Google Gemini image generation)
Used for stake 001 (lavender). Produces clean, consistent botanical illustrations when prompted with locked language.
Prompt template β keep this exact language for every illustration:
Botanical illustration of [PLANT NAME], black and white line art,
simple clean linework, no shading, no color, white background,
single specimen centered, vertical composition,
traditional herbarium style, fine consistent line weight,
suitable for laser engraving on metal
Workflow:
- Replace
[PLANT NAME]with species (try common name first; if results are off, try scientific name) - Generate 3-4 candidates
- Pick the one closest to the established style (clean lines, no shading, vertical composition)
- Save as PNG, drop into stake template
Style consistency rule: Never change the prompt wording between stakes. Variation in prompt produces variation in style. Even small word swaps (“botanical drawing” vs “botanical illustration”) shift the output.
Backup sources for obscure species
When Nano Banana doesn’t know a plant well (rare natives, specific cultivars), fall back to public-domain historical sources:
- Biodiversity Heritage Library β biodiversitylibrary.org β massive archive, browseable via their Flickr
- USDA Pomological Watercolor Collection β usda.library.cornell.edu/concern/publications/9c67wm88c β apples, pears, berries, stone fruits (1886-1942)
- Wikimedia Commons Botanical Illustrations β commons.wikimedia.org/wiki/Category:Botanical_illustrations β by family, genus, species
- KΓΆhler’s Medicinal Plants (1887) β clean line illustrations, easy to convert
- Britton & Brown’s Illustrated Flora of the Northern United States (1913) β directly relevant to Ohio natives
When using historical sources, process to match the established style: convert to pure black-and-white line art, scale to template dimensions, place in the same position.
Why Data Matrix (not QR code)
| Feature | QR Code | Data Matrix |
|---|---|---|
| Min readable size | ~10mm | ~3-5mm |
| Data density | Lower | Higher |
| Designed for | Consumer scanning | Industrial part marking |
| Phone compatibility | Native iOS/Android | Most scanner apps |
Data Matrix is the industrial standard for laser-marked metal parts. Half the size of a QR code for the same data.
What to encode
Full self-contained record + database URL. This gives offline access AND database integration:
LAVENDER|Lavandula angustifolia|001|2026|edmd.me/p/001
Format: pipe-delimited fields in this order:
- Common name (uppercase)
- Scientific name (full genus + species, plus cultivar in single quotes if applicable)
- ID number
- Year planted
- Database lookup URL
Why this format:
- Self-contained β scan it, see everything, no internet needed
- Pipe-delimited β easy to parse programmatically
- URL at the end β most scanner apps will offer to open it on phone
- Future-proof β if database/infrastructure changes, the stake still has the data
Sizing
7mm Γ 7mm code reliably encodes ~70-80 characters with strong error correction. Marks in ~15-20 seconds with 2 passes.
Convention
Use 3-letter prefix + 3-digit sequential number for self-documenting IDs:
| Prefix | Category | Example |
|---|---|---|
LAV |
Lavender | LAV-001 |
RAS |
Red raspberry | RAS-001 |
BLR |
Black raspberry | BLR-001 |
AST |
Asparagus | AST-001 |
BLB |
Blueberry | BLB-001 |
BLK |
Blackberry | BLK-001 |
GBR |
Gooseberry | GBR-001 |
CUR |
Currant | CUR-001 |
For other categories beyond plants (the same database extends to property infrastructure):
| Prefix | Category | Example |
|---|---|---|
HIV |
Beehive | HIV-001 |
STR |
Pond structure | STR-001 |
MSH |
Mushroom log | MSH-001 |
TRE |
Permanent tree planting | TRE-001 |
INF |
Infrastructure asset | INF-001 |
Database URL pattern
edmd.me/p/{prefix}-{number} for plants, edmd.me/i/{prefix}-{number} for infrastructure (when the lookup service is built).
For the encoded Data Matrix, use the simpler form: edmd.me/p/001 β the prefix can be inferred from context or stripped on the server side.
These are the parameters used for stake 001 (lavender). Do not change for future stakes β consistency in marking depth and contrast is part of the collection aesthetic.
Botanical illustration (line art)
| Parameter | Value |
|---|---|
| Power | 80% |
| Speed | 500 mm/s |
| Frequency | 30 kHz |
| Passes | 1 |
| Mode | Line trace (no fill) |
Text β large (common name)
| Parameter | Value |
|---|---|
| Power | 90% |
| Speed | 400 mm/s |
| Frequency | 20 kHz |
| Passes | 2 |
| Line interval | 0.025mm |
| Hatch | Crosshatch (0Β° + 90Β°) |
Text β medium and small (scientific name, ID, year)
| Parameter | Value |
|---|---|
| Power | 80% |
| Speed | 500 mm/s |
| Frequency | 30 kHz |
| Passes | 2 |
| Line interval | 0.025mm |
| Hatch | Crosshatch (0Β° + 90Β°) |
Data Matrix code
| Parameter | Value |
|---|---|
| Power | 100% |
| Speed | 300 mm/s |
| Frequency | 20 kHz |
| Passes | 2 |
| Mode | Filled, high contrast |
Pre-session checklist
- Z-height calibrated using F1 focus stick or auto-focus
- Stake material is bare aluminum (not anodized β different parameters)
- Stake clean, free of cutting oil residue
- Ventilation/exhaust active
- Honeycomb or sacrificial plate under stake (not on bare F1 stage)
At locked parameters, a complete stake takes ~2-3 minutes:
| Element | Approximate Time |
|---|---|
| Botanical illustration | 30-60 seconds |
| Common name (large, filled) | 20-30 seconds |
| Scientific name (italic, filled) | 25-35 seconds |
| ID and year (filled) | 15-25 seconds |
| Data Matrix (7mm, filled) | 15-20 seconds |
| Conveyor advancement / positioning | 20-30 seconds |
| Total per stake | ~2-3 minutes |
Batch estimates
| Stakes | Total Time | Realistic with Setup |
|---|---|---|
| 20 | 40-60 min | 1 hour |
| 50 | 1.5-2.5 hr | 3 hours |
| 100 | 3-5 hr | 5-6 hours (long afternoon) |
| 200 | 6-10 hr | full day |
From “I planted a new thing” to “stake in the ground”:
- Plant the thing. Note species, variety, date.
- Add to farm database β assign next sequential ID for the category (e.g. RAS-007 if 6 raspberries already exist).
- Generate illustration β run Nano Banana with the locked prompt template, replacing plant name. Pick best of 3-4 candidates.
- Open master template file in xTool Creative Space (or LightBurn).
- Update template β swap illustration, common name, scientific name, ID, year. Update Data Matrix encoded text.
- Mark stake with locked F1 parameters. Stake exits conveyor complete.
- Plant the stake at the planting location, pointed end in the ground.
- Capture GPS point with Emlid Reach RS3 β code
p, voice memo describes plant and references stake ID. See Emlid workflow. - Office side: Emlid GeoJSON export ingestion script links GPS coords to stake ID, joins to species table, full record in PostGIS.
What’s stored where
| Information | Stake | Database |
|---|---|---|
| Common name | β | β |
| Scientific name | β | β |
| ID | β | β |
| Year planted | β | β |
| GPS coordinates | β | β (from Emlid) |
| Planting date (full) | β | β |
| Source / supplier | β | β |
| Variety / cultivar (if not on stake) | β | β |
| Observations over time | β | β |
| Photos | β | β |
| Harvest records | β | β |
The stake holds the identity of the plant. The database holds the history.
- Database lookup service β Caddy + Python/Flask service routing
edmd.me/p/{id}to PostgreSQL queries with rendered HTML output - Multi-domain stakes β same workflow extended to beehive tags, pond structure markers, mushroom log tags, equipment asset tags
- Photo on stake β F1 can do photo-style engraving with dithering. Possible to add a small photo of the plant in flower/fruit at top of stake instead of (or alongside) illustration.
- Anodized aluminum upgrade β for premium stakes (orchard trees, special plants), use black anodized aluminum. Higher contrast, longer outdoor life. Currently too expensive for mass stakes but worth considering for select special plantings.
- Replacement workflow β when a stake fails or is damaged, the database has all the info to regenerate it. Just open the master template, swap variables, mark a new one.
- xTool F1 documentation
- Emlid GNSS Workflow β GPS capture for each planted stake
- Berry Gardens β primary use case for stake collection
- Seed Collecting Garden β secondary use case