On this page: What changed from v0.1 · Specifications · Light and runtime · How it is built · Electronics · Cost · Drawings and animations · What has been checked · Open points before the first order · Files
EDCO v0.2 makes the EDCO light brighter and gives it a more rugged look, in two sizes:
| EDCO-18 | EDCO-14 | |
|---|---|---|
| Cell | one 18500 | one 14500 |
| Body / head | Ø24 / Ø26 mm | Ø20 / Ø22 mm |
| Length | 97.8 mm | 95.6 mm |
Both run a Luminus SST-40 LED behind a TIR optic. Charging, firmware updates and settings all go through a USB-C port on the side of the head, under a fluted twist collar. There is still no laser and no radio.

Render made from the design files.
Status: concept (v0.2). The housing of both sizes is modelled in CadQuery and checked for fits, walls and interference. The firmware board headers exist, and the light output is simulated with the LuxLibre simulator. The circuit boards are not drawn yet, and nothing has been built or measured. Every light figure on this page is simulated.
The owner asked for these changes:
![]() |
![]() |
|---|---|
| Front. Crenellated bezel, fins, the TIR optic. | Port open. The collar’s window over the USB-C socket. |
![]() |
![]() |
| Tail. Grooves, flats and the two lanyard holes. | Two sizes. EDCO-18 (black) and EDCO-14 (clear anodised). |
| Item | EDCO-18 | EDCO-14 |
|---|---|---|
| Size | Ø24 body, Ø26 head × 97.8 mm | Ø20 body, Ø22 head × 95.6 mm |
| Aluminium parts (body, bezel, head insert, collar; from the CAD) | 45.1 g | 36.2 g |
| LED | Luminus SST-40-W Gen 2, 6500 K, on a 20 mm copper DTP board | the same on a 16 mm board |
| Optic | Carclo 10003 narrow spot TIR, Ø20 mm (87 %, about 17° with a 5 × 5 mm LED) | LEDiL FA10888 TINA-RS, Ø16.1 × 10.9 mm (14–17°; fit over the SST-40 dome to be checked) |
| Turbo (simulated) | 5,700 mA: 2,022 lm at the LED and 1,759 lm out of the front with the LED at 85 °C. About 8 % more in the first seconds with a cool LED (about 1,900 lm out of the front) | 5,000 mA: 1,836 lm at the LED, 1,561 lm out of the front |
| Throw (estimate) | about 18 kcd, 270 m (Carclo’s 9.1 cd/lm with an XM-L2) | about 11 kcd, 210 m (scaled by aperture; no data published) |
| Cell | Vapcell INR18500 K15: 1,500 mAh typical, 15 A, 18.2 × 50.0 mm | Vapcell INR14500 H10: 1,000 mAh typical, 10 A, 14.3 × 49.4 mm |
| Runtime from turbo to the ANSI end point (simulated) | 99 min | 78 min |
| Driver | MPS MP2145GD 6 A synchronous buck with 100 % duty mode, in the LuxLibre current loop (TLV333, 10 mΩ sense) | the same |
| Cell protection | DW01A with a common-drain MOSFET path of about 15 mΩ: trips at about 9.3–12 A | the same |
| USB-C | SHOU HAN TYPE-C 16PLT-H6.5 (LCSC C3151748), vertical, 6.5 mm, on the underside of the main board | the same |
| Charging | TP4057 at about 500 mA (about 3 h) | about 2 h |
| Button | Ø7.5 mm stainless cap, glowing membrane, Alps SKRKAEE020 | Ø6.5 mm cap |
| Water | IPX8 is the target, not tested. Seals: the optic gasket, the face O-ring of the head insert, the button membrane, and the cord gasket round the port (sealed whenever the collar is turned away) | the same |
| Firmware | LuxLibre, board edco-v02-18 |
board edco-v02-14 |
These are LuxLibre simulator runs with each size’s board header: 25 °C still air, a full cell and the default profile. Lumens are out of the front, with the LED at 85 °C.
| EDCO-18 | EDCO-14 | |
|---|---|---|
| Turbo | 1,759 lm, full for 45 s (the turbo timer); 48 s with the timer off | 1,561 lm, full for 44 s |
| High (1.8 A) | 686 lm for 281 s | 662 lm for 212 s |
Sustained (temperature regulator, THM_LIMIT 49 °C) |
about 330–390 lm, body at most 47.5 °C | about 260–320 lm, body at most 47.7 °C |
| Turbo from a half-full cell, at 30 s | 1,543 lm | 1,463 lm |
| On a 35 °C day | full turbo for 23 s, about 200 lm sustained, body 48.4 °C | 21 s, about 150–200 lm, body 48.6 °C |
| Runtime from turbo to the ANSI end point | 99 min | 78 min |
| Modes (out of the front) | moon 3 mA (1 lm), low 27 lm, medium 155 lm, high 686 lm | moon 3 mA (1 lm), low 26 lm, medium 149 lm, high 662 lm |
cd firmware
make sim BOARD=edco-v02-18
build/luxsim-edco-v02-18 --preset board --set TURBO_S=0 "2C W900000"
make sim BOARD=edco-v02-14
build/luxsim-edco-v02-14 --preset board "2C W14000000"

From the front to the tail:

| v0.1 | v0.2 |
|---|---|
| TPS62095 4 A buck, 20 mΩ sense, VSET 2.2 k / 100 k | MP2145GD 6 A buck (QFN-12 2 × 3 mm, high-side limit 7.5–8.1 A, FB 0.6 V) with an inductor of about 0.47–1 µH (Isat ≥ 9 A, 4 × 4 mm) and a 10 mΩ sense resistor. VSET 1.0 k / 53.6 k: 6,044 mA at full duty; the firmware never asks for more than 5,700 mA. Backup: TI TPS62480 (2 × 3 A phases). TI’s TPS62866/9 do not fit: their output is set over I²C and stops at 3.35 V |
| DW01A + SE8830A (trip about 5.4 A) | DW01A with a common-drain path of about 15 mΩ, for example AOS AOC4810, or two TI CSD17575Q3 (LCSC C529277) plus a 10 mΩ resistor. Trip about 9.3–12 A; about 0.5 W in the path at 6 A |
| Waterproof socket on a tail board, 4-wire flex | vertical SHOU HAN TYPE-C 16PLT-H6.5 (C3151748) on the main board; CC resistors and ESD on the main board; no tail board, no flex |
| Indicator LED and light pipe | RGB LED beside the switch, lighting the clear pin and membrane |
| SST-20 Gen 2 on 10 mm, LISA3 optic | SST-40 Gen 2 on 20 mm / 16 mm copper DTP, Carclo 10003 / LEDiL TINA-RS |
| ESP32-C3FH4, TP4057, RT9080, NTC | unchanged |
There is no EDCO workbook yet. This is a rough estimate, all fees, shipping and VAT included:
![]() |
![]() |
|---|---|
| Turning. EDCO-18 with the collar closed: crenellated bezel, flats, the button, the tail grooves. | Coming apart. Bezel, optic, LED board, head insert, collar, button parts, main board, cell, body. |
![]() |
![]() |
|---|---|
| EDCO-18 body: PDF, DXF | EDCO-14 body: PDF, DXF |
The drawings are A3 sheets at 2:1, made from the same parameters as the STEP files by hardware/tools/edco_drawings.py. Each has the outline, a section, the end views and a feature table with tolerances, and every dimension on it is checked against the solid (check report). The animations are made by hardware/tools/edco_anim.py. All of them are renders and drawings of the design: nothing has been built yet.
All numbers are in cad/edco_v02_interface.json, written by tools/housing/edco_v02.py.
| Path | What |
|---|---|
| cad/ | for each size (EDCO-18_*, EDCO-14_*): body, bezel, head insert and collar as STEP (plain thread diameters), and the assembly STEP |
| cad/edco_v02_interface.json | sizes, walls, fits, masses and the interference check of both sizes |
| cad/EDCO-18_body_drawing.pdf, EDCO-14_body_drawing.pdf (and .dxf, .png) | the body drawings (A3, 2:1) |
| tools/housing/edco_v02.py | the CadQuery model (sizes in SIZES, common dimensions in class P): python3 edco_v02.py ../../cad --size both |
| tools/housing/edco_v02_render.py | the renders: xvfb-run -a python3 edco_v02_render.py ../../assets (uses the FlashKa v0.7 renderer) |
| ../tools/edco_drawings.py, ../tools/edco_anim.py | the drawings and the animations of all EDCO designs: python3 hardware/tools/edco_drawings.py, xvfb-run -a python3 hardware/tools/edco_anim.py (from the repository root) |
| ../../firmware/boards/edco-v02-18/, edco-v02-14/ | the firmware board headers, each with the thermal model for the simulator |
Licences as for the rest of LuxLibre: hardware CERN-OHL-W-2.0, firmware and tools GPL-3.0-or-later, this page CC-BY-SA-4.0 (LICENSING.md).