Skip to content

Instantly share code, notes, and snippets.

@eonist
Created March 12, 2026 20:30
Show Gist options
  • Select an option

  • Save eonist/87f89662e86116a2a0463a5ea7ce1742 to your computer and use it in GitHub Desktop.

Select an option

Save eonist/87f89662e86116a2a0463a5ea7ce1742 to your computer and use it in GitHub Desktop.
battery-bike.md

Here's a comprehensive overview of ebike battery designs — especially relevant for your Omera frame project.

Cell Types: 21700 vs 18650

The industry has largely moved to 21700 cells for new builds. They're 50% larger in volume than 18650s but pack up to 45% more energy density, meaning more range with fewer cells and better heat management. em3ev

Spec 18650 21700
Diameter 18mm 21mm
Height 65mm 70mm
Max capacity ~3,500 mAh ~5,000 mAh
Weight ~48g ~70g
Best for Compact builds, legacy packs New builds, higher range batterydesign

Battery Placement Approaches

Downtube Integrated (Most Relevant for Omera)

The battery pack sits inside an oversized downtube, typically accommodating 40–60 cells. This is the cleanest look — the battery is invisible. Modern frames like Giant's EnergyPak use a removable cartridge that slides in/out through the bottom of the DT. This is why we discussed going to a 50mm DT for Omera — a standard 42mm DT can't fit 21700 cells (21mm diameter × 2 rows = 42mm bare minimum, no room for BMS/wiring). myvelo

Downtube External Mount

Battery bolts to the outside of the downtube using rivnuts or braze-on bosses. Common for conversions. Looks less clean but simpler to engineer. A 48V 25Ah pack with 65× 21700 cells comes pre-shaped in a downtube profile. yosepower.co

Triangle Bag/Pack

A custom-shaped battery fills the front triangle, held by a frame bag or custom cradle. Maximizes capacity (85+ cells possible) but looks bulky. Good for range-focused builds. twowheellifestyle

In-Tube Stealth

Cells are packed directly inside the frame tubes — split across top tube, seat tube, and down tube. Extremely stealthy but hard to service, limited capacity (~20 cells), and structurally risky since you're drilling access holes. forums.electricbikereview

What This Means for Omera

For a clean fixed-gear-style ebike, the best approach is downtube integrated with a removable cartridge:

  • DT outer diameter: 55–60mm (up from Detroit's 42mm) to fit 21700 cells in a 2-wide or 3-wide arrangement
  • Configuration: 13S3P (48V, ~15Ah, 720Wh) = 39× 21700 cells — fits in a ~55mm × 400mm downtube cavity
  • BMS: 40A continuous, UL 2271 certified for US/California compliance bev-intl
  • Access: Bottom-load at BB junction or side-load panel
  • Weight: ~2.8kg for the pack alone

The 2026 California regulation (SB 1271) now requires UL 2849 or UL 2271 certification on all ebike batteries, so designing around a certified battery pack from the start avoids costly redesigns later. bev-intl

Want me to calculate the exact cell layout dimensions for the Omera downtube, or look into specific off-the-shelf battery packs that could fit?

@eonist
Copy link
Author

eonist commented Mar 12, 2026

The 65×55 oval is a smart call — it fits 4 cells per layer in a 2×2 square arrangement, which doubles what a 55mm circle can do.

Why 65×55 Oval Works

The inner cavity is 60×50mm after wall + liner. Four 21700 cells (21.5mm effective diameter each) pack into a tight 2×2 square with solid clearances: em3ev

  • Right/left clearance to inner wall: 8.8mm — plenty of room for wiring harness
  • Top/bottom clearance: 3.8mm — tight but workable, enough for cell wrap and BMS ribbon
  • Min diagonal clearance: 1.2mm — this is the tight spot at the corners, but the oval curvature helps airflow

The tube is only 10mm wider than a 55mm circle but the same 55mm height — so from the side profile it looks identical to a normal frame. The extra width just blends into the visual mass when viewed from riding position. myvelo

Battery Specs at 48V

With 480mm usable DT length (6 layers × 70mm), 4 cells/layer gives 24 total cells:

Config Voltage Capacity Energy Weight Pack Length Cells Used
13S1P 48V 5 Ah 240 Wh 0.9 kg 280mm 13/24
14S1P 52V 5 Ah 260 Wh 1.0 kg 280mm 14/24
10S2P 36V 10 Ah 360 Wh 1.4 kg 210mm 20/24

The interesting trade-off here: 13S1P at 48V only uses 13 of 24 cells, leaving 11 unused (wasted space). But 10S2P at 36V uses 20 of 24 and gives you 360Wh — that's 50% more energy than the 48V config, and 36V is the EU-legal sweet spot for pedelec compliance. bev-intl

Also Consider: 60×55 Oval

This also fits 4 cells in the same 2×2 layout — it's 5mm narrower than 65×55 while keeping all four cells. The clearances are tighter (right gap drops to ~6.3mm) but still viable. If you want to keep the DT as slim as possible while still getting 4 cells, 60×55 is the minimum oval that works.

Orientation Note

65w×55h (landscape oval) is better than 55w×65h (portrait) for a downtube because:

  • Lower aero drag — wider is fine, taller catches more wind
  • Side profile stays slim at 55mm — looks like a normal tube from the rider's view
  • More lateral stiffness in the frame

@eonist
Copy link
Author

eonist commented Mar 12, 2026

image image

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Config | Voltage | Capacity | Energy | Weight | Layers | Pack Length | Cell Use -- | -- | -- | -- | -- | -- | -- | -- 12S2P ★ | 43.2V | 10 Ah | 432 Wh | 1.7 kg | 6 | 420mm | 24/24 (100%) 10S2P | 36V | 10 Ah | 360 Wh | 1.4 kg | 5 | 350mm | 20/24 (83%) 13S2P | 48V | 10 Ah | 480 Wh | 1.8 kg | 7 | 490mm | 26/28 (93%)

12S2P is the sweet spot — uses every single cell slot, gives 432Wh (~65-90km range), and at 43.2V nominal it works with most 36V-rated hub motors (which typically accept up to 48V). Only 1.7kg for the pack.[em3ev]

If you want to keep it pedelec-simple with a 36V motor, 10S2P at 360Wh is also great and only occupies 350mm of the downtube — leaving 70-130mm free for the BMS board at one end.

Good questions. Let me answer all three: ## 1. Pedelec Compliance A **pedelec** (pedal electric cycle) is the only type of ebike that's legally treated as a normal bicycle in the EU and Norway. The rules under **EN 15194** are simple: [victripebike](https://victripebike.com/blogs/news-eu/250w-vs-500w-ebikes-legal-in-europe)
  • Motor: max 250W continuous rated power
  • Assist cuts off at 25 km/h (you can pedal faster, motor just stops helping)
  • Motor only works when you pedal (no throttle, except a walk-assist button up to 6 km/h)
  • No license, no registration, no insurance required e-wheels

Anything above these limits — higher power, faster assist, or throttle-driven — gets classified as a moped in Norway, requiring registration, plates, insurance, and helmet. Since Omera is meant to look and ride like a clean fixie, staying within pedelec limits keeps it legally a bicycle. There's no restriction on battery voltage or capacity — only motor power and assist speed matter. reddit

2. "Unused Cells" Explained

Battery packs need exact multiples. A 13S2P pack needs exactly 13 × 2 = 26 cells. With 4 cells per layer × 6 layers, you have 24 cells — you can't make 26 from that. So you're stuck at 13S1P (13 cells), wasting 11 slots. The "unused" cells simply don't exist — those are empty positions in the downtube.

The fix is matching your layer count to a config that divides evenly. With 4 cells/layer, the magic number is 12S2P = 24 cells exactly (zero waste).

3. The 60×55 Oval Layout

The 60×55 fits all 4 cells with 0.38mm minimum clearance at the diagonal corners — tight but standard for production packs. Inner cavity is 55×50mm after 2mm wall + 0.5mm liner.

Best Configs for 60×55

Config Voltage Capacity Energy Weight Layers Pack Length Cell Use
12S2P 43.2V 10 Ah 432 Wh 1.7 kg 6 420mm 24/24 (100%)
10S2P 36V 10 Ah 360 Wh 1.4 kg 5 350mm 20/24 (83%)
13S2P 48V 10 Ah 480 Wh 1.8 kg 7 490mm 26/28 (93%)

12S2P is the sweet spot — uses every single cell slot, gives 432Wh (~65-90km range), and at 43.2V nominal it works with most 36V-rated hub motors (which typically accept up to 48V). Only 1.7kg for the pack. [em3ev](https://em3ev.com/21700-vs-18650-battery-ebike-comparison/)

If you want to keep it pedelec-simple with a 36V motor, 10S2P at 360Wh is also great and only occupies 350mm of the downtube — leaving 70-130mm free for the BMS board at one end.

@eonist
Copy link
Author

eonist commented Mar 12, 2026

image

@eonist
Copy link
Author

eonist commented Mar 12, 2026

1. Motor Compliance

The Bafang G020 you specced is listed on GreenBikeKit as a 500W/750W motor — that's the peak rating, not the continuous rating. Here's the nuance:[ppl-ai-file-upload.s3.amazonaws]

The G020 is the same physical hardware whether it's labeled 250W, 500W, or 750W. The difference is the controller you pair it with. Your spec already includes a PSW 250W sine wave controller — that limits continuous output to 250W. For EU/Norway pedelec compliance, what matters is:[ppl-ai-file-upload.s3.amazonaws]

  • The motor must be rated ≤250W continuous (the label on the motor itself)[sensitivus]

  • Assist must cut at 25 km/h[victripebike]

  • Pedal-assist only, no throttle[reddit]

The fix: order the G020 in its 250W-rated EU version — same motor, different sticker/firmware. GreenBikeKit sells both. Combined with the 250W PSW controller and PAS-only (no throttle), the system is fully pedelec compliant in Norway. No registration, no insurance, no plates.[e-wheels]

2. The Math: 4×5 = 20 = 10S2P

You're exactly right. Here's the clean breakdown:

text
4 cells/layer × 5 layers = 20 cells 10S2P = 10 series × 2 parallel = 20 cells (zero waste) 36V nominal × 10Ah = 360Wh

Every cell slot is used. No wasted positions. The pack is perfectly matched to the tube geometry.[em3ev]

3. The Space You Just Freed Up

5 layers × 70mm = 350mm of battery. In a ~480mm usable downtube, that leaves 130mm+ of free space — nearly the length of a beer can. Your list of what goes in there is spot on:

  • Hinge/access mechanism — quarter-turn cam lock, weathering gasket, cover plate retention

  • Wiring junction — motor cable, PAS cable, BMS ribbon, antenna leads all terminate here

  • Drainage channel — gravity runs any ingress away from the battery toward the BB shell

  • Weather seals — O-ring grooves at both ends of the battery cartridge

  • Light cable pass-through — Syla lamp integration, run power from battery to headtube

  • Antenna cavity — BLE/GPS flex antenna for the Find My module in the seat tube[ppl-ai-file-upload.s3.amazonaws]

  • Structural reinforcement — internal gusset or web at the BB junction where stress concentrates

  • Tool compartment — a 130mm × 50mm cavity fits a multi-tool, spare tube valve adapter, or even a flat emergency tube

This is the real advantage of 10S2P over trying to cram 13S in there. You traded 80Wh of energy (240→360 is actually more) for a massive engineering margin in the frame. The battery is shorter, lighter, lower stress on the tube, easier to seal, and the freed space solves five other problems at once.[ppl-ai-file-upload.s3.amazonaws]

Final Spec: 60×55 Oval DT Battery

Parameter | Value -- | -- Downtube profile | 60×55mm oval (landscape) Cell type | 21700 Samsung 50S Configuration | 10S2P Cells | 20 (4/layer × 5 layers) Voltage | 36V nominal (42V max) Capacity | 10Ah / 360Wh Pack weight | 1.4 kg Pack length | 350mm Free DT space | ~130mm for routing/drainage/tools
## 1. Motor Compliance

The Bafang G020 you specced is listed on GreenBikeKit as a 500W/750W motor — that's the peak rating, not the continuous rating. Here's the nuance: [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/b9fdad49-79fd-48bb-bcb5-b3f33bc64277/emotor.pdf)

The G020 is the same physical hardware whether it's labeled 250W, 500W, or 750W. The difference is the controller you pair it with. Your spec already includes a PSW 250W sine wave controller — that limits continuous output to 250W. For EU/Norway pedelec compliance, what matters is: [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/b9fdad49-79fd-48bb-bcb5-b3f33bc64277/emotor.pdf)

The fix: order the G020 in its 250W-rated EU version — same motor, different sticker/firmware. GreenBikeKit sells both. Combined with the 250W PSW controller and PAS-only (no throttle), the system is fully pedelec compliant in Norway. No registration, no insurance, no plates. [e-wheels](https://www.e-wheels.no/aktuelt/artikler-og-guider/regelverket/)

2. The Math: 4×5 = 20 = 10S2P

You're exactly right. Here's the clean breakdown:

4 cells/layer × 5 layers = 20 cells
10S2P = 10 series × 2 parallel = 20 cells (zero waste)
36V nominal × 10Ah = 360Wh

Every cell slot is used. No wasted positions. The pack is perfectly matched to the tube geometry. [em3ev](https://em3ev.com/21700-vs-18650-battery-ebike-comparison/)

3. The Space You Just Freed Up

5 layers × 70mm = 350mm of battery. In a ~480mm usable downtube, that leaves 130mm+ of free space — nearly the length of a beer can. Your list of what goes in there is spot on:

  • Hinge/access mechanism — quarter-turn cam lock, weathering gasket, cover plate retention
  • Wiring junction — motor cable, PAS cable, BMS ribbon, antenna leads all terminate here
  • Drainage channel — gravity runs any ingress away from the battery toward the BB shell
  • Weather seals — O-ring grooves at both ends of the battery cartridge
  • Light cable pass-through — Syla lamp integration, run power from battery to headtube
  • Antenna cavity — BLE/GPS flex antenna for the Find My module in the seat tube [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/29f8498e-62b4-487c-8778-4da05be1fbe4/emotor.pdf)
  • Structural reinforcement — internal gusset or web at the BB junction where stress concentrates
  • Tool compartment — a 130mm × 50mm cavity fits a multi-tool, spare tube valve adapter, or even a flat emergency tube

This is the real advantage of 10S2P over trying to cram 13S in there. You traded 80Wh of energy (240→360 is actually more) for a massive engineering margin in the frame. The battery is shorter, lighter, lower stress on the tube, easier to seal, and the freed space solves five other problems at once. [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/b9fdad49-79fd-48bb-bcb5-b3f33bc64277/emotor.pdf)

Final Spec: 60×55 Oval DT Battery

Parameter Value
Downtube profile 60×55mm oval (landscape)
Cell type 21700 Samsung 50S
Configuration 10S2P
Cells 20 (4/layer × 5 layers)
Voltage 36V nominal (42V max)
Capacity 10Ah / 360Wh
Pack weight 1.4 kg
Pack length 350mm
Free DT space ~130mm for routing/drainage/tools

@eonist
Copy link
Author

eonist commented Mar 12, 2026

The difference is +72Wh (20% more energy) for one extra layer of cells.

Range Comparison

Riding Scenario | 4×5 (360Wh) | 4×6 (432Wh) | Difference -- | -- | -- | -- Eco assist, flat Oslo | 72 km | 86 km | +14 km Normal assist, flat | 48 km | 58 km | +10 km Normal assist, moderate hills | 36 km | 43 km | +7 km High assist, Holmenkollen | 28 km | 33 km | +6 km High assist, headwind + hills | 22 km | 27 km | +4 km

The 4×6 gives you half a day more between charges but eats 70mm of the space you just identified for hinge, drainage, gusset, seals, tool compartment, and cable routing. It also bumps the voltage from 36V to 43.2V, meaning you'd need a different controller — the PSW 250W you already specced is 36V.[ppl-ai-file-upload.s3.amazonaws]

4×5 at 36V is the right call. The range is already more than enough for daily use, it matches the controller and motor you've already specced, and that 130mm of free space is worth more than an extra 14km of eco-mode range you'll rarely need.

The difference is **+72Wh (20% more energy)** for one extra layer of cells.

Range Comparison

Riding Scenario 4×5 (360Wh) 4×6 (432Wh) Difference
Eco assist, flat Oslo 72 km 86 km +14 km
Normal assist, flat 48 km 58 km +10 km
Normal assist, moderate hills 36 km 43 km +7 km
High assist, Holmenkollen 28 km 33 km +6 km
High assist, headwind + hills 22 km 27 km +4 km

The Real-World Take

For a typical Oslo commute (~8km each way, 16km round trip), both configs last multiple days between charges — 2.8 days for 4×5 vs 3.4 days for 4×6. You're charging every 2-3 days either way. [myvelo](https://myvelo.net/blogs/ebike-blog/most-powerful-e-bike-battery-how-much-power-fits-in-the-bike-frame)

What You Trade for +72Wh

4×5 (10S2P) 4×6 (12S2P)
Energy 360 Wh 432 Wh
Weight 1.40 kg 1.68 kg
Pack length 350mm 420mm
Free DT space 130mm 60mm
Voltage 36V (pedelec standard) 43.2V (needs different controller)
Cell waste 0 0
Tool compartment
Wiring/seal margin generous tight

The 4×6 gives you half a day more between charges but eats 70mm of the space you just identified for hinge, drainage, gusset, seals, tool compartment, and cable routing. It also bumps the voltage from 36V to 43.2V, meaning you'd need a different controller — the PSW 250W you already specced is 36V. [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/b9fdad49-79fd-48bb-bcb5-b3f33bc64277/emotor.pdf)

4×5 at 36V is the right call. The range is already more than enough for daily use, it matches the controller and motor you've already specced, and that 130mm of free space is worth more than an extra 14km of eco-mode range you'll rarely need.

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Bike | Battery (Wh) | Voltage | Removable | Weight | Price | Notes -- | -- | -- | -- | -- | -- | -- Cowboy Classic/Cruiser | 360 Wh | 36V | ✓ | 19.2 kg | ~€2,490 | Single-speed, belt drive cowboy+1 Dance One | ~360 Wh | 36V | ✓ | ~20 kg | Subscription | Rental model only [dance.elevio]​ Omera (yours) | 360 Wh | 36V | ✓ | ~14 kg | ~€1,499 | 10S2P 21700, integrated VanMoof S3 | 504 Wh | 36V | ✗ | 21 kg | €1,998 | Fixed battery, company went bust urbanbike+1 VanMoof S6 (new) | 487 Wh | 36V | ✗ | — | ~€2,299 | Still non-removable [notebookcheck]​ Veloretti Ace Two | 540 Wh | 36V | ✓ | 28 kg | €2,599 | Mid-drive, belt, heavier theverge+1 Specialized Vado SL | 320–520 Wh | 48V | ✗ | 15 kg | €4,500+ | Carbon frame, light motor bike24+1 Rad RadRunner | 624 Wh | 48V | ✓ | ~30 kg | $1,299 | Utility/cargo, not comparable [youtube]​ Rad RadMission | 504 Wh | 48V | ✓ | ~22 kg | $999 | Budget commuter [forums.electricbikereview]​
Your 360Wh pack is right in line with the competition — and the bikes it matches are some of the most well-regarded urban ebikes on the market. ## Urban Ebike Battery Comparison | Bike | Battery (Wh) | Voltage | Removable | Weight | Price | Notes | |:--|:--|:--|:--|:--|:--|:--| | **Cowboy Classic/Cruiser** | **360 Wh** | 36V | ✓ | 19.2 kg | ~€2,490 | Single-speed, belt drive [help.cowboy](https://help.cowboy.com/en/articles/5207266-key-specifications-for-classic-cruiser-cruiser-st) | | Dance One | ~360 Wh | 36V | ✓ | ~20 kg | Subscription | Rental model only [[dance.elevio](https://dance.elevio.help/en/articles/45-what-s-the-battery-range-of-the-ebikes)](https://dance.elevio.help/en/articles/45-what-s-the-battery-range-of-the-ebikes) | | **Omera (yours)** | **360 Wh** | **36V** | **✓** | **~14 kg** | **~€1,499** | **10S2P 21700, integrated** | | VanMoof S3 | 504 Wh | 36V | ✗ | 21 kg | €1,998 | Fixed battery, company went bust [urbanbike](https://urbanbike.news/en/comparison-smart-e-bikes-vanmoof-cowboy-veloretti/) | | VanMoof S6 (new) | 487 Wh | 36V | ✗ | — | ~€2,299 | Still non-removable [[notebookcheck](https://www.notebookcheck.net/VanMoof-S6-and-S6-Open-VanMoof-unveils-two-new-e-bikes-with-150-km-range.1034531.0.html)](https://www.notebookcheck.net/VanMoof-S6-and-S6-Open-VanMoof-unveils-two-new-e-bikes-with-150-km-range.1034531.0.html) | | Veloretti Ace Two | 540 Wh | 36V | ✓ | 28 kg | €2,599 | Mid-drive, belt, heavier [theverge](https://www.theverge.com/23775103/veloretti-ace-two-ebike-review-price-specs) | | Specialized Vado SL | 320–520 Wh | 48V | ✗ | 15 kg | €4,500+ | Carbon frame, light motor [bike24](https://www.bike24.com/p2876510.html) | | Rad RadRunner | 624 Wh | 48V | ✓ | ~30 kg | $1,299 | Utility/cargo, not comparable [[youtube](https://www.youtube.com/watch?v=i3FcafKrQoY)](https://www.youtube.com/watch?v=i3FcafKrQoY) | | Rad RadMission | 504 Wh | 48V | ✓ | ~22 kg | $999 | Budget commuter [[forums.electricbikereview](https://forums.electricbikereview.com/threads/radmission-1-standard-14-ah-battery-compatibility.44863/)](https://forums.electricbikereview.com/threads/radmission-1-standard-14-ah-battery-compatibility.44863/) | ## Where 360Wh Sits **360Wh is exactly what Cowboy ships** — and Cowboy is arguably the closest competitor to what you're building (single-speed, belt drive, clean urban aesthetic). Their real-world range is 40–85km depending on terrain, which matches your estimates. [ebikeguru.co](https://ebikeguru.co.uk/cowboy-cruiser/)

The bikes with 500+ Wh are either:

  • Heavier (Veloretti at 28kg, Rad at 30kg) theverge
  • Non-removable battery (VanMoof — both old and new) notebookcheck
  • Much more expensive (Specialized Vado SL at €4,500+) bike24

The Omera Advantage

Your 360Wh matches Cowboy's energy but with massive structural advantages:

  • 5kg lighter than Cowboy (14kg vs 19.2kg) because steel frame + hub motor is lighter than aluminium + extra battery weight help.cowboy
  • Removable battery using commodity 21700 cells — Cowboy's battery is proprietary, €300+ replacement doctibike
  • Same range as the best-reviewed urban ebike in the segment ebikeguru.co
  • Half the price of VanMoof/Veloretti territory

The Specialized Vado SL is the only bike that's lighter and has similar energy, but it costs 3× more and the battery is not removable. You're in a very strong position at 360Wh. downtown-mag

@eonist
Copy link
Author

eonist commented Mar 12, 2026

By volume, the Cycplus AS2 is the smallest at ~84.6 cm³ (65 × 46.5 × 28 mm). The AIRBANK Pocket SE, despite being the lightest at 93g, is actually the largest by volume due to its thicker 31 mm depth and wider body.aliexpress+2

Ranked by Volume

Pump | Dimensions (mm) | Volume (cm³) | Weight | Max PSI -- | -- | -- | -- | -- Cycplus AS2 | 65 × 46.5 × 28 | 84.6 | 97g | 100 [cyclistshub]​ Cycplus AS2 Ultra | 65 × 47.5 × 28 | 86.5 | 87g | 120 [bikerumor]​ Silca Elettrico Micro | 65 × 48 × 28 | 87.4 | — | 72 [bikeradar]​ Cycplus AS2 Pro | 70 × 49 × 28 | 96.0 | 120g | 120 [cyclistshub]​ Muc-Off AirMach | 64 × 56 × 28 | 100.4 | 97g | 100 [sigmasports]​ Muc-Off AirMach Pro | 64.5 × 63 × 28 | 113.8 | 122g | 120 [muc-off]​ AIRBANK Pocket SE | 64.5 × 64 × 31 | 128.0 | 93g | 100 [airbankpump]​

The Cycplus AS2 Ultra is arguably the best overall pick for minimum volume — it's nearly tied with the AS2 for smallest size, is the lightest at 87g, and upgrades to 120 psi max with a digital display. The base AS2 wins on raw volume but is capped at 100 psi with no gauge.bikerumor+1

By volume, the **Cycplus AS2** is the smallest at ~84.6 cm³ (65 × 46.5 × 28 mm). The AIRBANK Pocket SE, despite being the lightest at 93g, is actually the *largest* by volume due to its thicker 31 mm depth and wider body. [aliexpress](https://www.aliexpress.com/item/1005006832883969.html)

Ranked by Volume

Pump Dimensions (mm) Volume (cm³) Weight Max PSI
Cycplus AS2 65 × 46.5 × 28 84.6 97g 100 [cyclistshub](https://www.cyclistshub.com/cycplus-as2-review/)
Cycplus AS2 Ultra 65 × 47.5 × 28 86.5 87g 120 [bikerumor](https://bikerumor.com/cycplus-as2-ultra-review-super-light-electric-mini-pump-still-packs-a-punch/)
Silca Elettrico Micro 65 × 48 × 28 87.4 72 [bikeradar](https://www.bikeradar.com/advice/buyers-guides/best-electric-bike-pump)
Cycplus AS2 Pro 70 × 49 × 28 96.0 120g 120 [cyclistshub](https://www.cyclistshub.com/cycplus-as2-review/)
Muc-Off AirMach 64 × 56 × 28 100.4 97g 100 [sigmasports](https://www.sigmasports.com/item/Muc-Off/AirMach-Electric-Mini-Inflator/13U0V)
Muc-Off AirMach Pro 64.5 × 63 × 28 113.8 122g 120 [muc-off](https://muc-off.com/blogs/press/muc-off-launch-airmach-electric-mini-inflator-pro-loaded-with-upgrades)
AIRBANK Pocket SE 64.5 × 64 × 31 128.0 93g 100 [airbankpump](https://www.airbankpump.com/products/airbank-pocket-se-mini-bike-pump)

The Cycplus AS2 Ultra is arguably the best overall pick for minimum volume — it's nearly tied with the AS2 for smallest size, is the lightest at 87g, and upgrades to 120 psi max with a digital display. The base AS2 wins on raw volume but is capped at 100 psi with no gauge. bikerumor

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Bold move. 20 cells, 10S2P, 36V, 365 Wh. That's 35% more range than the old 15S1P pack and double the capacity (10Ah vs 5Ah). Here's what changes:

New Battery Spec

Spec | Old (round 50mm) | New (oval 60×55) -- | -- | -- Cells | 15 (3×5) | 20 (4×5) Config | 15S1P | 10S2P Voltage | 54V / 63V | 36.5V / 42V Capacity | 5Ah | 10Ah Energy | 270 Wh | 365 Wh Cell weight | 1,035g | 1,380g (+345g) Cell zone | 351mm | 351mm (same — 5 rows)

12.2 kg with 365 Wh. Still lighter than a Vado SL, now with genuinely usable range — probably 50–70 km in the city with PAS.

One Big Win: 2P = Redundancy

With 2 cells in parallel per series group, if one cell degrades you don't lose the whole pack — the parallel cell compensates. The pack is more resilient, balances easier, and can deliver double the current (less voltage sag under load). The Bafang will feel punchier even though it's 36V instead of 48V.

Want me to update the master BOM and redraw the SVG for the oval tube with slide-in cartridge?

Bold move. **20 cells, 10S2P, 36V, 365 Wh.** That's 35% more range than the old 15S1P pack and double the capacity (10Ah vs 5Ah). Here's what changes:

New Battery Spec

Spec Old (round 50mm) New (oval 60×55)
Cells 15 (3×5) 20 (4×5)
Config 15S1P 10S2P
Voltage 54V / 63V 36.5V / 42V
Capacity 5Ah 10Ah
Energy 270 Wh 365 Wh
Cell weight 1,035g 1,380g (+345g)
Cell zone 351mm 351mm (same — 5 rows)

Cascade Changes in the BOM

The 36V system means swapping three parts: [ppl-ai-file-upload.s3.amazonaws](https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/139085844/0d077e44-3fd7-4c30-a2da-d2a953ad8731/fixie-dream.pdf)

Part Old New Price Impact
Motor Bafang G020 48V Bafang G020 36V ~same (€209)
Controller KT T06S 48V KT T06S 36V ~same (€23)
BMS 15S 54V 10S 36V Cheaper (~€8 vs €15)
DC boost converter 20V→63V 20V→42V ~same (€5)
Cells 15× EVE 50E (€60) 20× EVE 50E (~€80) +€20

Net cost change: +~€13. Negligible.

Weight Impact

Item Old New Δ
Cells 1,035g 1,380g +345g
BMS (10S simpler) 40g 30g -10g
Extra nickel strip +15g +15g
Total bike 11.9 kg ~12.2 kg +350g

12.2 kg with 365 Wh. Still lighter than a Vado SL, now with genuinely usable range — probably 50–70 km in the city with PAS.

One Big Win: 2P = Redundancy

With 2 cells in parallel per series group, if one cell degrades you don't lose the whole pack — the parallel cell compensates. The pack is more resilient, balances easier, and can deliver double the current (less voltage sag under load). The Bafang will feel punchier even though it's 36V instead of 48V.

Want me to update the master BOM and redraw the SVG for the oval tube with slide-in cartridge?

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Good news — there are several paths, from off-the-shelf near-matches to full custom OEM.

Near-Perfect Off-the-Shelf Match

Darfon E2C0D (Taiwan, major OEM for Shimano/Giant) makes an in-tube 21700 battery that's shockingly close to your spec:[darfon]

Spec | Darfon 400Wh | Your Omera Spec -- | -- | -- Dimensions | 412 × 58 × 52mm | ~350 × 60 × 55mm Voltage | 35.9V | 36V Capacity | 11.1 Ah | 10 Ah Weight | 1.9 kg | 1.4 kg Housing | Aluminium | — Type | In-tube, detachable | In-tube, removable

Prototype phase (1–5 units): Go with EM3ev. They're Western-run, assemble in-house with CNC-machined cell holders, use genuine Samsung/Molicel cells, and do cell-level fusing. You send them your 60×55 oval cross-section drawing, they machine a custom holder and build to spec. One-off is fine with them.[em3ev]

Production phase (50+ units): Go with PKNERGY or ULI Power for volume. Send them the 3D drawing of the oval pack shape, specify Samsung 50S cells, 10S2P, 36V, integrated 25A BMS. They'll send samples before mass production.pknergy+1

The key thing to include in your spec sheet to any supplier:

  • Cross-section: 55×50mm internal (fits inside 60×55mm tube with 2.5mm clearance per side)

  • Length: 350mm max

  • Config: 10S2P, 21700 Samsung 50S

  • BMS: 10S, 25A continuous, integrated

  • Output connector: weatherproof, specify type

  • Certification: UL 2271 if targeting US market[bev-intl]

Good news — there are several paths, from off-the-shelf near-matches to full custom OEM.

Near-Perfect Off-the-Shelf Match

Darfon E2C0D (Taiwan, major OEM for Shimano/Giant) makes an in-tube 21700 battery that's shockingly close to your spec: [darfon](https://www.darfon.com/en/product/18071309102090)

Spec Darfon 400Wh Your Omera Spec
Dimensions 412 × 58 × 52mm ~350 × 60 × 55mm
Voltage 35.9V 36V
Capacity 11.1 Ah 10 Ah
Weight 1.9 kg 1.4 kg
Housing Aluminium
Type In-tube, detachable In-tube, removable

Their cross-section is 58×52mm — almost your 60×55 oval. The pack is longer (412mm vs 350mm) because it's a different cell count, but the profile is nearly identical. Darfon is a real OEM supplier (they make batteries for Giant and Shimano systems), so they work with frame manufacturers on custom specs. [darfon](https://www.darfon.com/en/product/18071309102090)

Another Near-Match

DTP Battery has a 10S2P 21700 pack at 44×49×370mm — slightly smaller cross-section than you need but the right config and length. This shows the form factor exists commercially. [dtpbattery.en.made-in-china](https://dtpbattery.en.made-in-china.com/product/VSfErXBUHFYp/China-Removable-Lithium-Battery-21700-10s2p-36V-10ah-Lithium-Ion-Battery-Pack-for-Electric-Scooter.html)

Custom OEM Suppliers (Your Best Bet)

For an exact 60×55mm oval, 10S2P, 350mm long pack with integrated BMS:

Supplier Location MOQ Custom Shape Notes
PKNERGY China ~50 units ✓ In-tube specialty Provide 3D drawing, they build to spec [pknergy](https://www.pknergy.com/custom-ebike-battery-manufacturer-product/)
ULI Power China ~100 units ✓ Full custom 3D drawing → prototype → production [uli-power](https://www.uli-power.com/customized-36v-48v-60v-72v-18650-21700-32700-10ah-20ah-30ah-lithium-ion-electric-bicycle-battery-pack-for-electric-bike-product/)
EM3ev China (Western-run) 1 unit ✓ CNC cell holders Best for prototyping, they machine custom holders in-house [em3ev](https://em3ev.com/shop/em3ev-36v-10s4p-21700-king-shark/)
GEB Battery Shenzhen ~50 units ✓ Custom packs 18650/21700, custom dimensions [gebbattery](https://www.gebbattery.com/electric-bicycle-battery-e-bike-battery/custom-ebike-battery/customized-lithium-ion-ebike-battery-pack.html)
Darfon Taiwan High MOQ ✓ OEM-grade Premium, UL-certified, but likely 500+ MOQ [darfon](https://www.darfon.com/en/product/18071309102090)

Recommended Approach

Prototype phase (1–5 units): Go with EM3ev. They're Western-run, assemble in-house with CNC-machined cell holders, use genuine Samsung/Molicel cells, and do cell-level fusing. You send them your 60×55 oval cross-section drawing, they machine a custom holder and build to spec. One-off is fine with them. [em3ev](https://em3ev.com/shop/em3ev-36v-10s4p-21700-king-shark/)

Production phase (50+ units): Go with PKNERGY or ULI Power for volume. Send them the 3D drawing of the oval pack shape, specify Samsung 50S cells, 10S2P, 36V, integrated 25A BMS. They'll send samples before mass production. uli-power

The key thing to include in your spec sheet to any supplier:

@eonist
Copy link
Author

eonist commented Mar 12, 2026

The Darfon E2C0D 400Wh battery sells for about €599 retail.

OEM per-unit pricing for frame manufacturers will be lower, but you’d have to negotiate directly with Darfon; they don’t publish OEM pricing.

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Yes, their price is on a completely different planet than your pack cost.

Rough numbers for your 10S2P 21700 pack (20× Samsung 50S):

Even with generous margins you’re in the €150–200 landed cost range, not €599. The Darfon price includes OEM certification overhead (UL, Shimano compatibility, dealer markup, warranty stack). You don’t need that for Omera’s own integrated pack. darfon

So yes: your custom 4×5 10S2P pack is vastly cheaper, smaller, lighter, and better suited to the 60×55mm DT than buying Darfon.

Do you want to ballpark retail price for your replacement battery (e.g. €199) to keep the “cheap refresh” story coherent with the BOM?

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Darfon doesn’t publish the internal layout, but we can infer it from the numbers.

For the E2C0D 400Wh:

  • Voltage 35.9V ⇒ 10S string of cells (10 × 3.59V nominal) .
  • Capacity 11.14Ah ⇒ likely 3P (3 × ~3.7Ah 21700 cells) or 2P of higher-capacity cells; either way we’re in the 30–40 cells total range.
  • Housing cross-section 58 × 52mm ⇒ they almost certainly use a rectangular/oval grid of cylindrical 21700 cells, probably 3 cells across by ~10–12 long, with plastic cell holders and an aluminium extrusion around it.

So structurally it’s the same idea as what you’re doing:

  • Cylindrical 21700 cells in a tight 2D grid.
  • Plastic spacers / holders.
  • BMS PCB at one end, terminals at the other.
  • All potted inside a shaped aluminium shell that matches the downtube’s internal profile.

The difference is just: they optimized for Shimano’s tube dimensions, not your 60×55 oval; and they’ve gone for a longer 412mm pack with more cells and a sealed housing, whereas you’re fitting a shorter 350mm pack inside the steel tube itself.

@eonist
Copy link
Author

eonist commented Mar 12, 2026

That’s a solid plan, and it fits your whole philosophy perfectly.

Prototype strategy

  • 3D-printed enclosure inside the 60×55 oval DT, sized for a 4×5 grid of 21700s.
  • Cells from local hardware store for the first proto (or Samsung 50S online). Enclosure + USB‑C charge module stay the same when you refresh cells.
  • When you iterate (different Ah, 4×6, etc.), you only reprint the internal cage and adjust wiring; the outer steel tube and USB‑C hardware stay fixed.

USB‑C module advantage

  • The USB‑C charge/PD board + BMS live as a separate module from the cells.
  • Swapping cells = open DT cover → slide out enclosure → replace cells → slide back in.
  • No need to touch the USB‑C port, charge electronics, or wiring harness; those are semi‑permanent.

That gives you:

  • Cheap, quick prototyping now.
  • A very strong “lifetime frame, swappable energy core” story later.

When you’re ready, we can spec the first 3D-printed cage: exact 4×5 cell spacing, screw points, and where the USB‑C/BMS PCB bolts on.

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Exactly — that’s the killer UX.

  • The battery has its own USB‑C PD port on the aluminium endcap, with gasket/weather seal.
  • User can:
    • Pull the battery, throw it in a bag, and charge it like a laptop with their existing MacBook charger.
    • Or plug the same charger straight into the port while the battery is in the bike.

No proprietary charger, no wall‑wart hassle, no “ebike brick” to carry. Just USB‑C PD, which fits perfectly with the modular cell cage: you refresh cells, keep the same aluminium shell + USB‑C module for the life of the bike.

Do you want to design that aluminium endcap next (USB‑C position, gasket, screw pattern), or sketch how the printed cage interfaces with it mechanically?

@eonist
Copy link
Author

eonist commented Mar 12, 2026

Think of the printed cage as a drop‑in cassette that holds 20 cells and bolts to the aluminium endcap.

Overall form

  • Profile: rounded rectangle, sized to slide inside the DT’s inner cavity (≈55×50mm).
  • Length: ~350mm to match the 4×5 cell grid (5 cells long × 70mm).
  • Ends:
    • Front end: flat, with four screw bosses that bolt into the aluminium endcap.
    • Rear end: simple closed grid or a second support ring to keep cells constrained.

Internal cell layout (4×5)

Imagine a honeycomb:

  • 4 cells across the width, 5 cells along the length.
  • Each cell sits in a cylindrical pocket with:
    • Diameter ~21.8–22.0mm (21.0mm cell + ~0.5mm wrap + tolerance).
    • 0.5–1.0mm plastic walls between pockets.
  • Small axial ribs between rows so the whole thing acts like a ladder: stiff but light.

Side view:

  • Bottom “floor” with shallow half-moons to support cell bottoms.
  • Top “ceiling” grid (or straps) that snaps over cells to prevent rattling.
  • Air gap between outer of cage and steel DT wall for cooling and tolerance.

How it interfaces with the aluminium battery head

At the front (endcap) side:

  • The aluminium block contains:
    • USB‑C PD jack.
    • BMS + charge electronics.
    • Main output terminals.
  • The printed cage:
    • Has four through-holes that line up with tapped holes in the aluminium head.
    • Slides over alignment pins or a shallow tongue‑and‑groove for anti-twist.
    • Presents two bus bars (positive and negative) at the front, where nickel strips from the cells terminate and bolt/clamp into the BMS board.

So to assemble:

  1. Spot-weld/nickel the 4×5 cells into a 10S2P network on the bench.
  2. Drop the welded cell block into the printed cage pockets.
  3. Close with the top lattice/strap if you use one.
  4. Slide the cage onto the aluminium head so the bus bars land in their terminals.
  5. Bolt cage to head with four M3 screws.
  6. Slide the whole cartridge into the DT and close the laser-cut steel cover.

Features to add

  • Finger cutouts along the sides so you can grab the cassette when pulled from the DT.
  • Drain slots in the plastic at the rear end so any condensation can escape, not pool under cells.
  • Cable channel molded along one side to carry the thin torque‑sensor wire and light wires separate from the cells.
  • Small label recess on one side for cell map, polarity diagram, and warning text.

If you want, I can describe this as a simple pseudo‑CAD spec (key dimensions, wall thicknesses, clearances) so you can prototype it quickly in Fusion/Onshape/OpenSCAD.

@eonist
Copy link
Author

eonist commented Mar 13, 2026

d4edc9de-10ce-4bc7-aba2-1b6d63b55bd7

@eonist
Copy link
Author

eonist commented Mar 13, 2026

12506705-a416-4d4c-a11d-44b0b2f93316

@eonist
Copy link
Author

eonist commented Mar 13, 2026

79181de8-7cd9-4f3c-9803-d31541c4c36c

@eonist
Copy link
Author

eonist commented Mar 13, 2026

91ad3c97-03af-4808-91f5-edff7b9a5a8e

@eonist
Copy link
Author

eonist commented Mar 13, 2026

Here's the scaffold file . It's not a solid block — it's a minimal skeleton:

What's in the scaffold

  • 4 thin-walled pocket tubes (1.5mm walls) in the 2×2 grid — cells slide in and out along the length.
  • Cross ribs connecting adjacent tubes at every cell boundary (every 70mm) — structural bridges, not solid fills.
  • End rings at front and back — a hull around all 4 pockets with holes cut out. These are the structural frames that hold the shape.
  • Mid rings at each 70mm interval — same ring profile, keeps everything rigid along the length.
  • Retention clips at the entry end — small inward lip so cells don't slide out on their own.
  • Ghost cells shown transparent blue so you can see where cells sit (preview only, not printed).

Design intent

  • Cells slide in from one end like loading a magazine.
  • Minimal plastic: just tubes + ribs + rings. Most of the interior is air.
  • The whole scaffold glues or bolts onto the aluminium endcap at the front face.
  • Cross ribs act like a ladder/honeycomb — stiff but light.

Drop it into OpenSCAD and let me know what needs adjusting — spacing, wall thickness, clip design, etc.

Screenshot 2026-03-13 at 10 03 53
// Omera 21700 battery scaffold cage
// Minimal plastic structure to hold 4×5 cells (2×2 cross-section)
// Cells slide in/out along the tube axis

// ---------- PARAMETERS ----------
cell_d       = 21;         // 21700 cell diameter
cell_len     = 70;         // 21700 cell length
cell_clear   = 0.5;        // radial clearance per cell
pocket_d     = cell_d + cell_clear;  // ~21.5mm

rows         = 5;          // cells along the length
cage_L       = rows * cell_len;  // 350mm

// 2×2 grid offsets from center
a = 11;   // X offset
b = 11;   // Y offset

// Scaffold parameters
wall         = 1.5;        // plastic wall thickness
rib_w        = 1.5;        // width of cross-ribs
ring_w       = 3;          // width of end rings
clip_arc     = 30;         // degrees of clip arc at cell entry
rail_h       = 2;          // height of longitudinal rails

// Cage outer envelope (for reference, not printed solid)
cage_w       = 53;
cage_h       = 48;

$fn = 48;

// ---------- MODULES ----------

// Single cell pocket tube (thin-walled cylinder)
module pocket_tube(len) {
    difference() {
        cylinder(d = pocket_d + 2*wall, h = len);
        translate([0, 0, -1])
            cylinder(d = pocket_d, h = len + 2);
    }
}

// Cross rib between two adjacent pockets (connects them structurally)
module cross_rib(p1, p2, z_pos) {
    dx = p2[0] - p1[0];
    dy = p2[1] - p1[1];
    ang = atan2(dy, dx);
    dist = sqrt(dx*dx + dy*dy);
    mid = [(p1[0]+p2[0])/2, (p1[1]+p2[1])/2];

    translate([mid[0], mid[1], z_pos])
        rotate([0, 0, ang])
            translate([0, 0, 0])
                cube([dist - pocket_d, rib_w, rib_w], center=true);
}

// Retention clip: small inward nub at channel opening
module retention_clip(pos, z_pos) {
    translate([pos[0], pos[1], z_pos])
        difference() {
            cylinder(d = pocket_d + 2*wall + 1, h = 2);
            translate([0, 0, -1])
                cylinder(d = pocket_d - 0.5, h = 4);
        }
}

// End ring (structural ring at each end)
module end_ring(z_pos) {
    translate([0, 0, z_pos])
        linear_extrude(height = ring_w)
            difference() {
                // outer boundary: hull around all 4 pocket circles
                hull() {
                    for (x = [-a, a])
                        for (y = [-b, b])
                            translate([x, y])
                                circle(d = pocket_d + 2*wall + 2);
                }
                // subtract pocket holes
                for (x = [-a, a])
                    for (y = [-b, b])
                        translate([x, y])
                            circle(d = pocket_d);
            }
}

// Longitudinal rail (connects pocket tubes along length)
module long_rail(x_off, y_off, z_side) {
    translate([x_off, y_off + z_side * (pocket_d/2 + wall), 0])
        cube([rail_h, wall, cage_L]);
}

// ---------- ASSEMBLY ----------

// Cell positions
positions = [
    [-a,  b],   // top-left
    [ a,  b],   // top-right
    [-a, -b],   // bottom-left
    [ a, -b],   // bottom-right
];

// Adjacency pairs for cross ribs
pairs = [
    [0, 1],  // top-left to top-right
    [2, 3],  // bottom-left to bottom-right
    [0, 2],  // top-left to bottom-left
    [1, 3],  // top-right to bottom-right
];

module battery_scaffold() {
    // 1. Four pocket tubes (thin-walled cylinders)
    for (pos = positions)
        translate([pos[0], pos[1], 0])
            pocket_tube(cage_L);

    // 2. Cross ribs at each cell boundary (every 70mm)
    for (i = [0 : rows])
        for (pair = pairs)
            cross_rib(positions[pair[0]], positions[pair[1]], i * cell_len);

    // 3. End rings (front and back)
    end_ring(0);
    end_ring(cage_L - ring_w);

    // 4. Mid rings (every 70mm for stiffness)
    for (i = [1 : rows - 1])
        end_ring(i * cell_len - ring_w/2);

    // 5. Retention clips at entry end
    for (pos = positions)
        retention_clip(pos, cage_L - 1);
}

// Render
color("WhiteSmoke")
    battery_scaffold();

// Optional: show ghost cells for reference
%for (pos = positions)
    for (row = [0 : rows - 1])
        translate([pos[0], pos[1], row * cell_len + 1])
            color("SteelBlue", 0.3)
                cylinder(d = cell_d, h = cell_len - 2);

@eonist
Copy link
Author

eonist commented Mar 13, 2026

This is a comprehensive topic. Here's everything you need to think about for the scaffold/pack design, broken into categories.

1. Structural / Vibration

This is the #1 killer of DIY packs — road vibration breaks solder joints and nickel strips over time.bike-eu+1

  • Cell retention: Each cell must be held snugly with zero rattle. The scaffold pockets should have a slight interference fit or use silicone friction rings at each end.

  • Anti-vibration padding: A thin foam or silicone liner (1–2mm) between the scaffold outer wall and the steel DT inner wall absorbs road shock.[electricbike]

  • Nickel strip stress relief: Where nickel strips connect cells end-to-end, allow a slight "S-bend" or loop so the strip can flex without cracking under vibration.

  • Axial retention: Cells must not slide forward/backward under braking or acceleration. End caps or retention clips at both ends of each channel.

2. Thermal Management

At 360Wh and 250W continuous draw, your pack isn't generating extreme heat — but Oslo winters and summer sun are real.endless-sphere+1

  • Air gaps: The scaffold should leave ~1mm clearance between the cage outer and the DT inner wall. This acts as a passive air channel — convection moves heat toward the DT steel, which radiates it away.

  • Thermal conductivity: The steel DT itself is your heatsink. Steel conducts heat well enough for a 250W load. No active cooling needed at this power level.[endless-sphere]

  • Cell-to-cell spacing: The 0.5mm gap between cells in the 2×2 grid lets air circulate between cells and prevents thermal cascading if one cell gets warm.[bike-eu]

  • Operating range: BMS should cut off below −10°C and above 60°C. Samsung 50S is rated −20°C to 60°C for discharge.[gebbattery]

  • Cold weather: Your removable cartridge design already solves this — user brings the pack inside overnight in Oslo winter, installs warm.

3. Weather / Moisture / IP Rating

The pack lives inside a sealed steel tube with a laser-cut cover and gasket, so the primary weather barrier is the frame itself.[bike-eu]

  • IP rating target: The frame enclosure should achieve IP54 minimum (splash-proof) — gasket around the laser-cut cover plate, rubber grommets on all cable exit holes.

  • Drainage: Small drain slot at the lowest point of the DT (near BB) so condensation can escape, not pool around cells.[alibaba]

  • Conformal coating: Spray the BMS PCB and all solder joints with conformal coating (silicone or acrylic). Cheap, takes 5 minutes, protects against humidity and condensation.[bike-eu]

  • No potting: Don't pot the cells in epoxy/resin — it makes the pack non-serviceable and traps heat. The scaffold + steel tube is enough protection.[bike-eu]

4. Electrical Safety

  • Cell-level fusing: Each cell should have a fuse wire or fusible nickel strip on its positive terminal. If one cell shorts internally, only that cell's fuse blows — the rest of the pack stays safe.gov+1

  • BMS requirements: 10S BMS with overcurrent, overvoltage, undervoltage, short-circuit, and temperature cutoff. Must cut both charge and discharge.[neogy]

  • Insulation: All exposed nickel strips and bus bars must be covered with fish paper or Kapton tape. No bare metal should be accessible when the pack is assembled.[ascom]

  • Wire gauge: Main power leads sized for 25A minimum (12AWG silicone wire).

5. Certification Standards

Standard | Scope | Required? | Key Tests -- | -- | -- | -- EN 50604-1 | EU ebike battery safety | Mandatory from Aug 2025 for 250W pedelecs | Overcharge, short circuit, crush, vibration, thermal [neogy]​ EN 15194 | EU pedelec system standard | Yes, references EN 50604-1 | System-level including battery [neogy]​ UL 2271 | Battery safety (US/global) | Required for US market | Drop, vibration, overcharge, forced discharge, thermal abuse momentum-biking+1 UL 2849 | Complete ebike system (US) | Includes UL 2271 | Whole bike + battery + charger [momentum-biking]​ UN 38.3 | Lithium battery transport | Yes, for shipping | Altitude, thermal, vibration, shock, short circuit [ascom]​

For EU market launch, EN 50604-1 is the one you need. It became mandatory in August 2025 for 250W pedelec batteries. Key tests include vibration, thermal cycling, overcharge, short circuit, and crush resistance.[neogy]

6. Scaffold Design Checklist

Putting it all together for the printed cage:

  • Material: Nylon PA12 or PETG (flame-retardant grade, UL94 V-0 rated if possible).

  • Pocket fit: 21.5mm ID (snug on 21mm cell, no rattle).

  • End retention: Clip or lip at both ends of each channel — cells can't slide out under braking.

  • Cross ribs: Every 70mm (at cell boundaries) — structural + prevents cells from bowing.

  • Drain slots: Bottom of cage, small cutouts every ~100mm.

  • Foam liner: 1mm closed-cell foam wrap around cage exterior for vibration damping + thermal insulation from extreme cold.

  • No glue on cells: Cells must remain removable. Scaffold holds them mechanically only.

  • Fish paper dividers: Between parallel cells (left pair / right pair) for electrical isolation.

  • Fused nickel strips: Per-cell fusing on positive terminals.

  • Conformal-coated BMS: Mounted on aluminium endcap, coated against humidity.

This gets you a pack that's safe, serviceable, weather-resistant, and on the path to EN 50604-1 certification.neogy+1

This is a comprehensive topic. Here's everything you need to think about for the scaffold/pack design, broken into categories.

1. Structural / Vibration

This is the #1 killer of DIY packs — road vibration breaks solder joints and nickel strips over time. bike-eu

  • Cell retention: Each cell must be held snugly with zero rattle. The scaffold pockets should have a slight interference fit or use silicone friction rings at each end.
  • Anti-vibration padding: A thin foam or silicone liner (1–2mm) between the scaffold outer wall and the steel DT inner wall absorbs road shock. [electricbike](https://www.electricbike.com/make-it-last-baby-best-practices-for-lithium-ebike-batteries/)
  • Nickel strip stress relief: Where nickel strips connect cells end-to-end, allow a slight "S-bend" or loop so the strip can flex without cracking under vibration.
  • Axial retention: Cells must not slide forward/backward under braking or acceleration. End caps or retention clips at both ends of each channel.

2. Thermal Management

At 360Wh and 250W continuous draw, your pack isn't generating extreme heat — but Oslo winters and summer sun are real. endless-sphere

3. Weather / Moisture / IP Rating

The pack lives inside a sealed steel tube with a laser-cut cover and gasket, so the primary weather barrier is the frame itself. [bike-eu](https://www.bike-eu.com/45630/johnson-matthey-battery-systems-critical-factors-in-the-design-of-e-bike-batteries)

4. Electrical Safety

5. Certification Standards

Standard Scope Required? Key Tests
EN 50604-1 EU ebike battery safety Mandatory from Aug 2025 for 250W pedelecs Overcharge, short circuit, crush, vibration, thermal [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)
EN 15194 EU pedelec system standard Yes, references EN 50604-1 System-level including battery [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)
UL 2271 Battery safety (US/global) Required for US market Drop, vibration, overcharge, forced discharge, thermal abuse momentum-biking
UL 2849 Complete ebike system (US) Includes UL 2271 Whole bike + battery + charger momentum-biking
UN 38.3 Lithium battery transport Yes, for shipping Altitude, thermal, vibration, shock, short circuit [ascom](https://www.ascom.com/globalassets/assets/global/public-information/declaration-of-conformity-batteries/660733-battery-pack-for-sh4/sz22100217d01_liwinon_685261_iec62133_2-2017-amd12021.pdf)

For EU market launch, EN 50604-1 is the one you need. It became mandatory in August 2025 for 250W pedelec batteries. Key tests include vibration, thermal cycling, overcharge, short circuit, and crush resistance. [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)

6. Scaffold Design Checklist

Putting it all together for the printed cage:

  • Material: Nylon PA12 or PETG (flame-retardant grade, UL94 V-0 rated if possible).
  • Pocket fit: 21.5mm ID (snug on 21mm cell, no rattle).
  • End retention: Clip or lip at both ends of each channel — cells can't slide out under braking.
  • Cross ribs: Every 70mm (at cell boundaries) — structural + prevents cells from bowing.
  • Drain slots: Bottom of cage, small cutouts every ~100mm.
  • Foam liner: 1mm closed-cell foam wrap around cage exterior for vibration damping + thermal insulation from extreme cold.
  • No glue on cells: Cells must remain removable. Scaffold holds them mechanically only.
  • Fish paper dividers: Between parallel cells (left pair / right pair) for electrical isolation.
  • Fused nickel strips: Per-cell fusing on positive terminals.
  • Conformal-coated BMS: Mounted on aluminium endcap, coated against humidity.

This gets you a pack that's safe, serviceable, weather-resistant, and on the path to EN 50604-1 certification. neogy

@eonist
Copy link
Author

eonist commented Mar 13, 2026

You're right — and that's an important contradiction I glossed over. If you spot-weld nickel strips to the cells, they're notindividually swappable anymore. That kills your core story.

So the scaffold needs to use contact-based connections, not welded strips. At your power level (250W / 36V = ~7A pack current, ~3.5A per cell in 2P), this is totally viable.

Options for tool-free cell swap

Method | Contact Resistance | Max Current | User-Swappable | Cost -- | -- | -- | -- | -- Spring contacts (like a flashlight) | ~10–20 mΩ | Fine at 3.5A/cell | ✓ Drop-in, drop-out | Cheap Compression plates (flat spring + pad) | ~5–15 mΩ | Good | ✓ Slide in, spring holds | Cheap Pogo pins (gold-tipped) | ~5 mΩ | Excellent | ✓ Very clean | €1–2/pin Spot-welded nickel strips | ~1 mΩ | Best | ✗ Needs tools | Cheapest

At 3.5A per cell, even basic spring contacts (like AA battery holders use) work fine. The heat generated at 20mΩ and 3.5A is only ~0.25W per contact — negligible.[endless-sphere]

How the scaffold changes

Instead of nickel strips connecting cells, the scaffold itself becomes the electrical backbone:

  • Each pocket has a spring contact at one end and a flat contact pad at the other — cell drops in, positive nub hits the spring, flat negative sits on the pad.

  • Contacts are wired into the scaffold with thin copper bus wires running along the channels, forming the 10S2P network.

  • The bus wires are soldered to the contacts, not to the cells. Cells are purely mechanical drop-ins.

  • Fish paper / Kapton still goes between parallel cell pairs — but as part of the scaffold walls, not wrapped on the cells.

What this means for the user

  1. Open DT cover.

  2. Slide out the scaffold cartridge.

  3. Pop out old cells (push from one end, spring releases).

  4. Drop in new 21700s from any source, observing polarity (nub = positive end toward spring).

  5. Slide cartridge back in. Done.

No spot welder, no soldering, no tools. The scaffold + contacts are permanent; only the bare cells get swapped.

The certification catch

EN 50604-1 doesn't ban spring contacts — it tests the assembled pack for vibration, shock, short circuit, etc. Your pack just needs to pass those tests with spring contacts under vibration. That means:[neogy]

  • Springs must maintain contact under 4G vibration (the EN test level).

  • Each cell must stay captive — no rattling loose.

  • Short circuit protection: the BMS handles this, not the contacts.

A well-designed spring holder passes this. Plenty of professional battery systems (medical devices, military radios) use spring contacts at higher currents than yours and pass MIL-STD vibration testing.

So: ditch the nickel strips entirely, design the scaffold with integrated spring contacts, and your "cells from any hardware store" story stays intact while still being certifiable.

You're right — and that's an important contradiction I glossed over. If you spot-weld nickel strips to the cells, they're **not** individually swappable anymore. That kills your core story.

So the scaffold needs to use contact-based connections, not welded strips. At your power level (250W / 36V = ~7A pack current, ~3.5A per cell in 2P), this is totally viable.

Options for tool-free cell swap

Method Contact Resistance Max Current User-Swappable Cost
Spring contacts (like a flashlight) ~10–20 mΩ Fine at 3.5A/cell ✓ Drop-in, drop-out Cheap
Compression plates (flat spring + pad) ~5–15 mΩ Good ✓ Slide in, spring holds Cheap
Pogo pins (gold-tipped) ~5 mΩ Excellent ✓ Very clean €1–2/pin
Spot-welded nickel strips ~1 mΩ Best ✗ Needs tools Cheapest

At 3.5A per cell, even basic spring contacts (like AA battery holders use) work fine. The heat generated at 20mΩ and 3.5A is only ~0.25W per contact — negligible. [endless-sphere](https://endless-sphere.com/sphere/threads/e-bike-and-pev-battery-pack-thermal-design-optimizations-a-semi-technical-research-and-implementation-thread.129470/)

How the scaffold changes

Instead of nickel strips connecting cells, the scaffold itself becomes the electrical backbone:

  • Each pocket has a spring contact at one end and a flat contact pad at the other — cell drops in, positive nub hits the spring, flat negative sits on the pad.
  • Contacts are wired into the scaffold with thin copper bus wires running along the channels, forming the 10S2P network.
  • The bus wires are soldered to the contacts, not to the cells. Cells are purely mechanical drop-ins.
  • Fish paper / Kapton still goes between parallel cell pairs — but as part of the scaffold walls, not wrapped on the cells.

What this means for the user

  1. Open DT cover.
  2. Slide out the scaffold cartridge.
  3. Pop out old cells (push from one end, spring releases).
  4. Drop in new 21700s from any source, observing polarity (nub = positive end toward spring).
  5. Slide cartridge back in. Done.

No spot welder, no soldering, no tools. The scaffold + contacts are permanent; only the bare cells get swapped.

The certification catch

EN 50604-1 doesn't ban spring contacts — it tests the assembled pack for vibration, shock, short circuit, etc. Your pack just needs to pass those tests with spring contacts under vibration. That means: [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)

  • Springs must maintain contact under 4G vibration (the EN test level).
  • Each cell must stay captive — no rattling loose.
  • Short circuit protection: the BMS handles this, not the contacts.

A well-designed spring holder passes this. Plenty of professional battery systems (medical devices, military radios) use spring contacts at higher currents than yours and pass MIL-STD vibration testing.

So: ditch the nickel strips entirely, design the scaffold with integrated spring contacts, and your "cells from any hardware store" story stays intact while still being certifiable.

@eonist
Copy link
Author

eonist commented Mar 13, 2026

Good question — the answer is one spring per channel works, exactly like a flashlight.

Flashlight-style stacking

In each channel, 5 cells sit end-to-end in series:

text
[spring] → [cell 1 +−] → [cell 2 +−] → [cell 3 +−] → [cell 4 +−] → [cell 5 +−] → [flat contact]
  • One spring at the front end pushes the entire stack together.

  • Cells naturally make contact: positive nub of one cell presses against flat negative of the next.

  • One flat contact pad at the back end closes the circuit.

  • The spring tension keeps all 5 cells compressed and in contact, even under vibration.

That's 2 contacts per channel (1 spring + 1 pad), not 10. For 4 channels: 4 springs + 4 pads = 8 contact points total.

Per-cell fusing: separate concern

Per-cell fusing is about short-circuit safety, not about springs. Two approaches:

Approach | How | User-swappable? -- | -- | -- No per-cell fuse(BMS only) | BMS cuts entire pack on overcurrent. Simpler. Fine at 3.5A/cell. | ✓ Fully drop-in Fuse disc between cells | Thin washer-shaped fuse (~5A) sits between each cell contact point. Blows if one cell shorts. | ✓ Still drop-in, fuse disc sits in the scaffold slot, not welded to cell

At your current level (250W motor, 7A pack draw, 3.5A per cell in 2P), the BMS alone handles overcurrent protection adequately. Per-cell fusing is best practice for high-power packs (20A+), but at your level it's optional.[neogy]

If you do want it later, you just drop small fuse washers into slots molded into the scaffold between each cell position — still no welding, still user-swappable.

So the scaffold simplifies to

  • 4 channels, each with 1 spring + 1 contact pad.

  • Cells drop in like a flashlight magazine.

  • Bus wires soldered to the 8 contact points (permanent part of scaffold).

  • BMS wired to the bus at the appropriate tap points for 10S2P balancing.

  • Zero welding to cells. Zero tools needed for cell swap.

Good question — the answer is **one spring per channel works**, exactly like a flashlight.

Flashlight-style stacking

In each channel, 5 cells sit end-to-end in series:

[spring] → [cell 1 +−] → [cell 2 +−] → [cell 3 +−] → [cell 4 +−] → [cell 5 +−] → [flat contact]
  • One spring at the front end pushes the entire stack together.
  • Cells naturally make contact: positive nub of one cell presses against flat negative of the next.
  • One flat contact pad at the back end closes the circuit.
  • The spring tension keeps all 5 cells compressed and in contact, even under vibration.

That's 2 contacts per channel (1 spring + 1 pad), not 10. For 4 channels: 4 springs + 4 pads = 8 contact points total.

Per-cell fusing: separate concern

Per-cell fusing is about short-circuit safety, not about springs. Two approaches:

Approach How User-swappable?
No per-cell fuse (BMS only) BMS cuts entire pack on overcurrent. Simpler. Fine at 3.5A/cell. ✓ Fully drop-in
Fuse disc between cells Thin washer-shaped fuse (~5A) sits between each cell contact point. Blows if one cell shorts. ✓ Still drop-in, fuse disc sits in the scaffold slot, not welded to cell

At your current level (250W motor, 7A pack draw, 3.5A per cell in 2P), the BMS alone handles overcurrent protection adequately. Per-cell fusing is best practice for high-power packs (20A+), but at your level it's optional. [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)

If you do want it later, you just drop small fuse washers into slots molded into the scaffold between each cell position — still no welding, still user-swappable.

So the scaffold simplifies to

  • 4 channels, each with 1 spring + 1 contact pad.
  • Cells drop in like a flashlight magazine.
  • Bus wires soldered to the 8 contact points (permanent part of scaffold).
  • BMS wired to the bus at the appropriate tap points for 10S2P balancing.
  • Zero welding to cells. Zero tools needed for cell swap.

@eonist
Copy link
Author

eonist commented Mar 13, 2026

You're right — if cells stack end-to-end and slide in from one opening, there's no way to insert a washer between them without breaking the drop-in flow.

So: skip per-cell fusing entirely. At 3.5A per cell, the BMS handles everything. No washers, no fuse strips, nothing between cells.

Each channel is literally:

[spring] → [cell][cell][cell][cell][cell] → [pad]

Cells touch each other directly, positive nub to flat negative, just like loading batteries into a flashlight. Drop in 5 cells, spring compresses the stack, done.

The only safety layer is the BMS — overcurrent, overvoltage, undervoltage, short circuit, temperature — all handled at the pack level, not per cell. That's completely fine at your power draw. [neogy](https://neogy.fr/en/news/news-nf-en-506041-standard-ebikes/)

@eonist
Copy link
Author

eonist commented Mar 13, 2026

yeah. each battery tube just has a flashlight cap. just like a maglight. you screw it in. Tighten it with a coin so it goes flush. can be all plastic I suppose? silicon ring in the plastic cap would keep it in place even under vibration over long time. also works as a weather seal. you only access this hatchet every 5 years or so when you change bats. its not something you open every day. we could add a thin teflon like tape inside each bat tube, that would reduce rattling, but not make the bats so tight that they would not slide out with gravity when needing to be replaced. wiring could go into the center of the cage in a long hole. I added a render of the scad you made earlier. I think we could iterate that design. just add screw-in caps and seal the bottom and add the pads there. and add a hole in the center that connects it all. the spring caps would connect to touchpoint just like a maglight. injection molding could have screw cap moulding part. that unscrew when mold is done. so groves are made when molding. the rest is just cylinder that goes with the mold cap sort of.

@eonist
Copy link
Author

eonist commented Mar 13, 2026

Here's the updated scaffold . Here's what changed from v1:

What's in v2

4 channel tubes (2×2 grid, same as your render):

  • Thin-walled cylinders, bore sized for 21mm cell + 0.3mm PTFE liner + sliding clearance = ~21.9mm ID.
  • Cells slide in/out with gravity. PTFE liner reduces rattle without gripping.

Bottom plate (sealed base):

  • Solid plate that hulls around all 4 tubes — closes the bottom.
  • 4 spring contact pad recesses (10mm diameter, 2mm deep) — this is where the flat contact pads sit, just like the bottom of a Maglite.
  • Central wire hole passes through.

Screw-in caps (Maglite style, print 4×):

  • Threaded plastic cap that screws into the top of each channel.
  • Coin slot on top — tighten flush with a coin, no tools.
  • O-ring groove on the skirt — silicone ring seals against moisture and holds under vibration.
  • Spring contact nub on the inside face — presses against the positive terminal of the top cell, compresses the stack downward onto the bottom pad.

Central wiring channel (6mm hole):

  • Runs the full length through the center of the 2×2 grid.
  • Carries bus wires and BMS balance taps from the contact pads/springs to the electronics below.

Cross ribs at every 70mm (cell boundary):

  • Structural bridges between adjacent tubes — keeps the scaffold rigid without being solid.

Assembly sequence

  1. Slide PTFE liner into each channel (friction fit, stays permanently).
  2. Drop 5 cells into each channel from the top, positive-nub up.
  3. Screw in the 4 caps — spring nub compresses stack onto bottom pad.
  4. Tighten flush with a coin. O-ring seals it.
  5. Whole scaffold slides into the DT as one unit.

Injection molding notes

  • The screw cap threads are made with an unscrewing core in the mold — standard technique for bottle caps, Maglite bodies, etc. [richfieldsplastics](https://richfieldsplastics.com/blog/considerations-for-battery-pack-mold-making/)
  • The main body pulls straight out of a two-part mold along the tube axis — channels are just core pins.
  • The bottom plate is the parting line — mold splits there.
  • Only the O-ring groove on the cap is a minor undercut, easily handled by the unscrewing core.

Drop it into OpenSCAD and send me a screenshot — the thread profile is simplified (stacked rings instead of true helix), so it'll look approximate but the dimensions are correct for printing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment