# One bike, three kinds of making

> The mechanical parts, embedded electronics, and little dashboard behind my electric bicycle conversion.

Canonical page: [One bike, three kinds of making](<https://devanmetz.com/blog/ebike-from-cad-to-dashboard/>)

Published: 2026-09-15

Updated: 2026-10-14

Tags: Hardware, CAD, Embedded

Project: [DIY Electric Bike](<https://devanmetz.com/portfolio/diy-electric-bike/>)

## In short

I combined mechanical design, printed parts, and an ESP32 dashboard in my belt-drive bicycle conversion. The bike is assembled, and I wrote prototype firmware to turn motor-controller readings into a display I can see while riding.

![A blue bicycle fitted with a custom motor mount, large rear pulley, belt drive, and electronics.](<https://devanmetz.com/_astro/ebike.2RbJRJf1_1fHioh.webp>)

The assembled bicycle conversion, showing the motor, belt drive, and frame-mounted electronics.

My [electric bicycle conversion](<https://devanmetz.com/portfolio/diy-electric-bike/>) combines a belt-driven motor, parts designed for the frame, and a small display for the controller’s readings. I worked through the mechanical fit in Fusion 360, a computer-aided design (CAD) tool, printed the mounts and pulley, then wrote the dashboard firmware, the software running on the ESP32, a small programmable computer.

## The model has to meet the frame 

The mechanical side includes a large rear pulley, a motor mount, and seat-tube clamps. Fusion 360 assemblies describe how the parts relate to the bicycle, while STL exports, files describing the surface of each part, turn individual shapes into something that can be fabricated.

The CAD assembly helped me check where the motor sits, where the belt runs, and how the mounts attach. On the assembled bike, those parts also have to share space with the actual frame, wheel, wiring, and fasteners.

## Give the controller a readable face 

The display uses an ESP32 and a TFT (thin-film transistor) screen, a small display. Its C++ sketch reads telemetry (measurements) from a VESC motor controller over UART, a serial data connection, and draws battery voltage, power, and speed. The code also includes addressable LED control, which lets the software set individual lights.

The data path is small enough to describe in one line:

**Motor controller → UART → ESP32 → TFT display**

That line crosses the boundary between the physical build and the software. The controller has measurements; the display gives those measurements a place the rider can see.

## What still needs checking 

The bike is assembled, but the dashboard firmware is a prototype. Its speed and distance calculations depend on this drivetrain’s wheel size, motor pole count (the number of magnetic poles), and pulley ratio (the relative sizes of the drive pulleys). I would check those constants against the hardware before using the sketch on another build.

The [project page](<https://devanmetz.com/portfolio/diy-electric-bike/>) shows the finished bike, CAD assembly, and dashboard. The public repository has the editable design, printable parts, and code.

[See the build photos](<https://devanmetz.com/portfolio/diy-electric-bike/>) or [explore the public project files](<https://github.com/DevanMetz/DIY-Mid-Drive-EBike>).

## Related reading

- [One simulated ride, the whole cycling cockpit](<https://devanmetz.com/blog/kickr-core-hub-simulator/index.md>)
- [The first sound from my printed violin](<https://devanmetz.com/blog/printed-violin-first-sound/index.md>)
- [A strategy game about the space between](<https://devanmetz.com/blog/goop-troops-supply-lines/index.md>)
