Quick start (about two minutes)
- Open Tembuku. Click the Tembuku icon on the toolbar, or use Vector > Tembuku > Design Feeders...
- Choose your data folder. Put all KMZ files for the job in one folder and choose it. Tembuku reads every file and works out what each one is. If it guesses wrong, change the Read as column.
- Read the input check. Green lines were corrected automatically, amber lines need a look, red lines must be fixed before Tembuku can run. Each line ends with an arrow telling you what to do.
- Press Run all FDTs. Tembuku works in the background; QGIS stays usable. When it finishes, the report opens in your browser and the results appear on the map and in the panel on the right.
- Review and decide. Tembuku proposes; you decide. Open each FDT, read the reason, check the route on the map and adjust it if needed. The KMZ files are ready to copy into the feeder design compilation.
Your files
| File | Needed? | Used for |
|---|---|---|
| Cable inventory KMZ (existing network, with spare-fibre counts) | At least one of these two | Existing feeders that may give free tubes, and existing pole routes |
Feeder design compilation KMZ (on-going feeders, folders F1_T1, ...) | On-going feeders, numbering of the new folder, and the accuracy test | |
| KMZ with the FDT points to design (distribution or design KMZ) | Yes, unless you click FDTs on the map | The FDTs to design |
| POP / OLT list KMZ | Recommended | Where each feeder starts. Without it, the POP is taken from the compilation if possible |
File names and formats do not matter. Tembuku looks inside every file and recognises what it is from the content:
lines with fibre counts and spare-fibre data are a cable inventory; folders that hold both FDT points and cables (with
F1_T1 names or any other names) are a design compilation; a list of FDT/ODC points is what you want designed;
POP/OLT/STO points are POP locations. The Why column in the window and the section "Berkas yang dibaca dan
alasannya" in the report say what was found in each file. If a file was recognised wrongly, change it in the
Read as column.
Formats read: KMZ and KML (also when the extension is wrong), ZIP files holding several of these, GeoJSON, CSV or TXT with coordinate columns (lat/lon in any common spelling, one "lat, lon" column, or WKT; decimal comma is fine), Excel (.xlsx), and through QGIS also Shapefile, GeoPackage, GML, MapInfo TAB, FlatGeobuf and GPX. Column names in Indonesian or English are understood (e.g. kode ODC, core cadangan, spare), and attributes kept only in the description table of a KMZ are read too. Presentations, documents and pictures in the folder are skipped. Very large inventory files are fine; the first run builds a small index of your work area (a few seconds), later runs reuse it.
Reading the results
Every FDT gets one of these decisions. The report and the KMZ use the Indonesian names shown in brackets.
| Decision | What it means | What you do |
|---|---|---|
| Use an existing feeder (Pakai feeder yang ada) | An existing feeder near the FDT has free tubes, runs toward the FDT and passes every check. Only a short new cable from the tap point is needed. | Check the route, then use the KMZ. |
| Use an existing feeder - check free tubes (Pakai feeder yang ada - cek sisa tube) | Direction and length are good, but the data does not prove that the feeder still has a free tube. | Confirm the free tube with the network owner before using it. |
| Designer's choice (Pilihan desainer) | You chose another candidate in the panel although Tembuku had a note on it. | The note is kept in the report for your records. |
| New feeder from the POP (Feeder baru dari POP) | No existing feeder is suitable (full, wrong direction, too long a detour). A new feeder from the POP is drawn. | Check the route; redraw any straight helper line. |
| Needs manual design (Perlu dirancang manual) | Something essential is missing, for example no POP within 20 km, or Tembuku could not analyse this FDT. It is never left out of the list. | Add the missing data, or design this FDT yourself. |
Marks you may see
- Please review (perlu ditinjau): using an existing feeder and building a new one are almost equally good. Look at both before deciding.
- Straight helper line (garis bantu, red dashes): there was no road or cable data on that stretch. Redraw it along the poles or the road before construction.
- Accuracy test: when you run Accuracy test, each FDT already designed in the compilation is hidden and designed again, and the report compares Tembuku with the designer (same decision, same folder, tap point distance, route match).
The candidate table
For every FDT, Tembuku lists the existing feeders nearby and what it found for each one:
- Free tubes: whether the feeder still has a whole tube (12 fibres) free for this FDT.
- New cable to FDT: the new cable from the tap point on that feeder to the FDT, and how much longer it is than a straight line.
- Direction: the angle between the feeder and the way to the FDT, seen from the POP. 0° points straight at the FDT; more than 60° (the default limit) means the feeder runs away from it.
- Route vs new feeder: the route through this feeder (POP to tap point plus the new cable) compared with a new feeder straight from the POP. 1.00× is the same length; above 1.24× (the default limit) the route is a long way round.
- Signal loss: the total loss of light from the POP to the customer and how much is left before the GPON class B+ limit of 28 dB.
- Result: Meets every condition, Usable, but ... (something to check on site), or Rejected: ... with the reason in plain words.
On the map
Tembuku adds a group of layers: Proposed cable route (coloured by type: existing poles, new poles, helper line), Existing feeder used (POP to tap point), Candidate feeders, FDT, POP and tap points, and, in the accuracy test, Designer's own design. In the panel, double-click another candidate to use it instead.
Click on the map
Press Prepare for map clicks once, then switch on Click an FDT on the Map and click. Each click is designed in about a second. Clicking outside the prepared area simply adds that area first.
The input check
Real files contain small mistakes. Tembuku follows the data-quality terms of ISO 19157-1 and the robustness principle as re-examined in RFC 9413: it corrects only what has one clear answer, always tells you what it corrected, and stops when it cannot be sure.
- Corrected automatically: e.g.
FDTfolder speltFTD, extra spaces, a comma used as decimal point. - Please check: e.g. a cable size like
441Cthat is probably144C, or two FDT codes that disagree. - Cannot run: a file that does not exist, is damaged or unsafe, or a required source is missing. Tembuku suggests files with similar names if you mistyped a path.
How decisions are made
- Find the POP serving the FDT (nearest, within 20 km: the GPON physical reach of ITU-T G.984.1).
- List candidate feeders within 3 km. Only fibre-to-the-home feeders of at least 48 fibres may give fibres; other cables are used only as existing pole routes.
- Free tubes: from the spare-fibre count (spare ÷ 12 per tube) or, for on-going feeders, tubes minus the FDTs they already serve. One FDT uses one tube.
- Direction: the feeder must run toward the FDT as seen from the POP (at most 60° off), and the route through the tap point must not be more than 1.24 times a new feeder from the POP. This limit was calibrated on 17 approved real designs.
- Route: the cheapest path from the tap to the FDT along existing poles, roads and short access links (a shortest-path search, the standard engineering rule in FTTH planning research). Existing poles are preferred.
- Optical budget: fibre loss, splitters, connectors, splices and a 3 dB margin must stay within GPON class B+ (28 dB). Tembuku uses the standards' maximum values, so the check is on the safe side.
All settings can be changed under Advanced in the Tembuku window. Changed values are highlighted, and Restore default values brings back the calibrated defaults.
Glossary
| POP / OLT | The network site where feeders start; the OLT is the equipment inside it. |
| Feeder | The main cable from the POP toward the customers' area. |
| FDT | Fibre distribution terminal: the cabinet near customers where a feeder tube is split. |
| FAT | Fibre access terminal: the small box on a pole that serves a few houses. |
| Tube | A small tube inside the cable holding 12 coloured fibres. |
| Core / fibre | One glass fibre. "48C" means a cable with 48 fibres. |
| Tap point | The spot on an existing feeder where a closure is opened to take one tube to the new FDT. |
| Colo / reuse | Using an existing feeder or existing poles instead of building new ones. |
| New infra | Stretches that need new poles or a new path. |
| Route vs new feeder | (POP-to-tap-point + new cable) ÷ a new feeder from the POP. 1.00× is the same length; smaller is better. |
| Helper line | A straight temporary line where there is no road or cable data. Always redraw it along poles or roads. |
| Slack / closure / OTB | Spare cable loop / splice box / termination box at the POP. |
| Optical budget | Total light loss from the OLT to the customer, in dB; it must stay below the class limit. |
| Splitter 1:4, 1:8 | A passive part that divides the light into 4 or 8 outputs. |
| Compilation folder F/T | Folder name in the feeder design compilation: F2_T3 = feeder 2, route 3. |
| Cable inventory | A KMZ of all installed cables in the network, with their spare fibre counts. |
Standards and sources
Default values come from current international standards and official policies; the plain-language basis of each value is also shown in the Advanced table and in the report.
| Value | Default | Source |
|---|---|---|
| Fibre loss | 0.40 dB/km | ITU-T G.652 (08/2024), G.652.D cable attributes: maximum 0.40 dB/km from 1310 to 1625 nm |
| Optical budget | 28 dB (class B+) | ITU-T G.984.2 (08/2019), Annex A, Table A.2: 13 to 28 dB; class C+ 17 to 32 dB |
| Furthest POP | 20 km | ITU-T G.984.1: physical reach 10 or 20 km, logical reach 60 km |
| Splitter 1:4 / 1:8 | 7.4 / 10.5 dB | ITU-T G.9940 (12/2023), Table I.1, maximum insertion loss including connection loss; IEC 61753-031-2 |
| Connector | 0.5 dB | ITU-T G.671 (11/2025), clause 6.7: maximum for a single-fibre connector |
| Fusion splice | 0.15 dB | ITU-T G.671, note 9: typical passively aligned fusion splice (actively aligned 0.08 dB) |
| Loss formula | sum of fibre, splices, splitters, connectors + margin | ITU-T L.250 (01/2024); ITU-T G.652 Appendix I; ITU-T G-Sup.39 (worst-case design) |
| System margin | 3 dB | Design policy. The standards ask for "a suitable margin" without a fixed figure |
| Fibres per tube | 12 | ANSI/TIA-598-D (2014) with Addendum 1 (2018) |
| Slack per cable end | 10 m | ITU-T L.163 (11/2018): at least 10 m at each end |
| Cable join distance | 12 m | GPS.gov: smartphones are typically accurate to a 4.9 m radius under open sky |
| Routing method | shortest path on a street and pole graph | Shortest-path engineering rules for FTTH cable routes: Telecommunication Systems (Springer, 2016) "Profitable areas in large-scale FTTH network optimization"; EURO J. Comput. Optim. 2 (2014) 17-53 |
| Road data | OpenStreetMap | © OpenStreetMap contributors, Open Database License 1.0 (OSMF attribution guideline) |
The decision thresholds marked "calibrated" (route ratio 1.24, direction, detour, branch length) were measured on 17 approved
real designs in Bitung and Tomohon (November 2026). See DASAR_KEPUTUSAN.md in the plugin folder for the full basis.
Company labels (optional)
Tembuku ships with neutral labels and contains no company or brand names. To make the KMZ match your company's template
exactly, place a file istilah.json in Documents/Tembuku/ (or in the QGIS profile folder
tembuku/). It stays on your computer and is never part of the plugin. Each rule in aturan_label_colo is
[column, text, label]: the label is used when the column contains the text, or starts with it when the text begins with
^. Rules are checked in order. Example:
{
"label_tiang_nasional": "Colo Pole (your company)",
"label_colo_compile": "Colo FTTH (on going)",
"aturan_label_colo": [["Owner", "PARTNER", "Colo Partner"], ["Owner", "^ABC", "Colo ABC"]],
"petunjuk_berkas_nasional": ["CABLE INVENTORY"],
"atribut_pop": ["Site_ID"]
}
Background maps: OpenStreetMap and current satellite imagery
Choose Vector > Tembuku > Basemaps (or the Basemap button in the results panel). Tembuku offers only maps that are current and whose date you can see: a design made in 2026 must not be checked against a picture from years ago, when houses and roads that exist today were not there yet. Layers are added under the Tembuku results and are streamed live, never stored for offline use, as the providers require.
| Basemap | Detail | How fresh | Best for |
|---|---|---|---|
| OpenStreetMap (live) | street level | community edits appear within minutes to days | roads, street names, buildings that people have mapped. No account |
| Satellite - detailed, houses visible (Esri World Imagery) — recommended | 0.3-0.5 m in Indonesian towns | updated area by area; Tembuku reads the capture date at the map centre and puts it in the layer name. In Nov 2026 it was 2024-2025 in most towns checked (e.g. Bitung 28 Apr 2025, Makassar 12 Oct 2025, Jakarta 21 Jul 2025) | zooming in to houses, roads, poles and trees for the design check; a curated mosaic of mostly cloud-free pictures. Needs your own free ArcGIS Location Platform API key (2 million tiles per month) |
| Satellite - newest cloud-free, change check (Copernicus quarterly) | 10 m per pixel | one cloud-free mosaic per 3 months, published within a month after the quarter; moves forward by itself. Spots that were cloudy all quarter are filled from the previous quarters, newest first | seeing what changed since the date of the detailed picture: new roads, land clearing, new housing estates (single houses are too small at 10 m). Free for companies; needs your own free Copernicus account (setup below) |
Is the picture old? Basemaps > When was the detailed satellite image here taken? reads the date at the map centre at any time. If it is older than 12 months, Tembuku shows a warning: anything built after that date is not in the picture, so compare with OpenStreetMap, the Copernicus mosaic or a field survey. The HTML report does the same: switch to the detailed layer and the date of the place in the middle of the map appears at the bottom left, with the same warning.
Anywhere in Indonesia: all three maps cover the whole country. When your data moves to another area, just pan there: the Copernicus layer always shows the newest quarter and the Esri date is read again for the new place. When QGIS starts or a project opens, Tembuku moves the Copernicus layer to the newest quarter and re-reads the Esri date by itself.
One-time setup for the cloud-free Copernicus mosaic (free, about 5 minutes)
- Create a free account at
dataspace.copernicus.eu(Copernicus data are free for any use, including commercial). - Open the Sentinel Hub dashboard of the Copernicus Data Space Ecosystem and choose Configuration utility > New configuration.
- Add a layer: data source Bring your own COG, collection
byoc-5460de54-082e-473a-b6ea-d5cbe3c17cca(Sentinel-2 L2A quarterly cloudless mosaics), with the true-colour script offered for that collection. Give the layer a short name, e.g.TRUE-COLOR. - In QGIS choose Basemaps > Satellite - newest cloud-free, change check and paste the configuration's instance ID and the layer name, separated by a space. Tembuku remembers them; Forget my saved keys removes them.
The free account allows about 10,000 tiles per month, enough for one engineer. A whole team should each use their own account, or the company can buy a larger plan.
Why only these sources: OpenStreetMap tiles may be used interactively with attribution, but not stored for offline use (OSMF Tile Usage Policy); for that reason the offline report carries road lines (data) instead of map pictures. Copernicus Sentinel data are free for any use, including commercial. Esri imagery may be used in other software only with an ArcGIS key; its capture dates come from Esri's official World Imagery metadata service. Not offered: the 2016 Sentinel-2 cloudless mosaic (too old), NASA daily/HLS imagery (375 m and 30 m, often cloudy), later EOX mosaics and Planet NICFI (non-commercial licences; NICFI ended in January 2025), Google and Bing (their terms do not allow direct tile access). Your Esri key or Copernicus instance is put in the HTML report only if you allow it under Advanced, because anyone who receives the report could then use it.
Credits shown on the maps: © OpenStreetMap contributors (ODbL); Contains modified Copernicus Sentinel data, processed by Sentinel Hub, Copernicus Data Space Ecosystem; Powered by Esri | Esri, Vantor, Earthstar Geographics, and the GIS User Community.
Privacy and internet
- Your files never leave your computer. Tembuku reads KMZ files without unpacking them to disk and rejects unsafe content. ZIP bundles are unpacked only into Tembuku's own cache folder, with limits on size and number of files.
- Internet is used only for road lines from OpenStreetMap around your FDTs (once per area, kept for 90 days) and for the basemaps you choose to show. Nothing about your data is uploaded. You can switch this off, or use your own road layer under Advanced.
- The public road server is free and shared. Its operators ask heavy, regular users (such as companies) to use their own or a paid server: enter its address under Advanced > Road data server.
- The cable index keeps only the geometry and attributes needed for the decision (data minimisation, Law 27/2022).
Problems?
| The Run button is grey | There is a red item in the input check, or no target FDTs. Fix the red item and press Check again, or use map clicks. |
| Many red dashed lines | Road data was not available (offline or server busy). Run again later, or choose your own road layer under Advanced. |
| "OpenStreetMap server busy" | The public server is overloaded. Tembuku waits 30 to 60 seconds and retries, as the server's rules ask. Areas that fail are tried again on the next run. |
| A file was read as the wrong type | Change it in the Read as column. |
| Something else | Open View > Panels > Log Messages > Tembuku and send the text to the author. |