Skip to the content
4 layers90.5 × 81.3 mmBikeLightFinal, the printed circuit board in 3D

This project is a smart, battery-powered bike light system developed as part of the DTU course 34346 – Networking Technologies and Application Development for IoT.

Size
90.5 × 81.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
18
Nets
49
Pads
97
Tracks, vias
143, 26
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Aug 2025
Updated
24 Aug 2025

Overview

BikeLightFinal is an open-source printed circuit board by Thommimp, from the Thommimp/IoT-Bikelight repository on GitHub. It is a 4-layer board of 90.5 × 81.3 mm with 18 parts on 49 nets, routed with 143 tracks and 26 vias.

It is built around the ADXL345-EP. Its parts include 6 ICs, 5 resistors, 2 switches and 1 transistor. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

Smart Bike Light 🚲💡

This project is a smart, battery-powered bike light system developed as part of the DTU course 34346 – Networking Technologies and Application Development for IoT. It enhances bike safety and theft deterrence through live GPS tracking, narrowband NB-IoT communication, and LEDs that activate based on motion and ambient light. The system integrates with mobile and web apps for remote control and monitoring.

🚀 Getting Started

Follow these steps to set up and run the project:

  1. Clone this repo.
  2. Install required tools: ESP32 toolchain, KiCad, Xcode, Azure CLI, SolidWorks (for 3D parts).
  3. Flash the firmware from the firmware folder to the ESP32.
  4. Assemble the hardware using the schematic in the KiCad folder, or generate Gerber files and order the PCB.
  5. 3D print the bikelight using the files inside the Solidworkds folder.
  6. Clone the backend repo and deploy all the functions to Azure.
  7. Clone either the iOS app or the web app.
  8. Hold the bike light button for 5 seconds to pair it VIA Ble.
  9. Your bike light should now be working.

📦 Main Repo (This)

This repo contains:

  • Firmware for the ESP32 (firmware folder)
  • Custom PCB design files and schematic (Kicad_Schematic_PCB)
  • Communication code for NB IoT click and GPS module only (for testing purposes)
  • Code for testing the different electronic components (Electronics)
  • Documentation and reports
  • 3D-printed enclosure files

📱 iOS App Repo

The iOS app allows users to:

  • Pair their bike light via BLE
  • Check battery and location status
  • Switch modes remotely

The iOS Application can be found in the following repository: 👉 iOS App Github Repo

🌐 Web App

The web app provides:

  • Authentication and device association
  • Dashboard to view status, GPS, and change modes

☁️ Azure Backend Repo

  • Handles MQTT data via NB-IoT
  • Stores info in CosmosDB
  • Provides API endpoints to mobile/web apps

Both the web app and backend code are in the same repository: 👉 Web App and Azure GitLab Repo

For documentation on how to use the different azure functions look in 📎 Azure_API_Documentation.pdf

🔧 Features

  • Automatic light control based on motion
  • BLE for user pairing
  • NB-IoT for real-time narrowband IoT communication
  • GPS tracking
  • Multi-mode power states: Active, Parked, Storage
  • 3D-printed, splash-resistant enclosure

⚙️ Hardware

  • ESP32
  • NB-IoT 2 Click module
  • NEO-7N GPS
  • Battery monitor
  • Accelerometer + LDR
  • Rechargeable Li-ion battery
  • Custom PCB and 3D case

📄 Project Report

See full technical details in the report:
📎 BikeLight_project_report_2.pdf


This is a student project and not intended for production deployment.

🤝 Contributors

  • Thomas Møller Pedersen s224442
  • Tomas Ruiz Aybar s242887
  • Albert Saez Nunez s250445
  • Isabella Martınez Lopez s241889
  • Eric Santiso Robledo s250444
  • Matteo Italia s232440

Parts

18
QtyValueFootprintReferences
210Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3, R4
210KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R5
2~spo2_stuff:LightLight1, Light2
15Vspo2_stuff:BatteryBT1
1A1050spo2_stuff:PRR1
1ADXL345spo2_stuff:ADXL345U3
1ESP32spo2_stuff:ESP32U1
1L175-Aspo2_stuff:1575-AU2
1MAX17048spo2_stuff:MAX17048U5
1MCP1826Sspo2_stuff:MCP1826SU6
1NB_IoT_2_Clickspo2_stuff:NB IoT 2 ClickU4
1NMOSspo2_stuff:NmosQ1
1SW_DPST_x2spo2_stuff:SwitchSW1
1SW_Pushspo2_stuff:BTNSW2
1~spo2_stuff:Li-ion chargerCharger7

Similar boards

  • 4 layers42 × 42 mmHuvud, the printed circuit board in 3D

    Huvud

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    126 parts373GPL-3.0
  • 2 layers97 × 77.5 mmESPlant, the printed circuit board in 3D

    ESPlant

    CCHS-Melbourne/ESPlant

    Environmental Sensor Plant - solar WiFi gardening/meteorological sensor using ESP8266

    77 parts37
  • 2 layers65 × 56 mmBigp4ppa, the printed circuit board in 3D

    Bigp4ppa

    gcormier/bigp4ppa

    A Raspberry Pi 5-channel PWM, PT100 and ADXL345 board.

    28 parts28
  • 2 layers61.3 × 89.6 mmQuakeGuard PCB, the printed circuit board in 3D

    QuakeGuard PCB

    GiZano/QuakeGuard

    Distributed Earthquake Early Warning (EEW) system built on low-cost ESP32-C3 IoT sensors with Zero-Trust security, multi-node epicenter triangulation, and on-premise AI emergency reports.

    17 parts24AGPL-3.0
  • 2 layers184.2 × 71.2 mm2Pocket, the printed circuit board in 3D

    2Pocket

    ParksDevelopment/2Pocket

    Tiny 36 key keyboard for a competition

    95 parts22
  • 2 layers112 × 62 mmAtkeyboard, the printed circuit board in 3D

    Atkeyboard

    ccadic/atmega328kb

    Small computer KB for ATMEGA328P-AU

    80 parts10
  • 2 layers89.5 × 48 mmAvionics, the printed circuit board in 3D

    Avionics

    cuspaceflight/avionics14

    Designed to be compiled with the GNU ARM Toolchain - https://launchpad.net/gcc-arm-embedded

    115 parts4

Questions

How big is the BikeLightFinal PCB?

It measures 90.5 × 81.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the BikeLightFinal use?

18 parts, built around the ADXL345-EP. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the BikeLightFinal KiCad files?

From the Thommimp/IoT-Bikelight repository on GitHub, at the commit this page was made from: the board is Kicad_Schematic/BikeLightFinal.kicad_pcb and its schematic Kicad_Schematic/BikeLightFinal.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BikeLightFinal design in my own project?

Its repository states no licence, so its author keeps all rights: ask Thommimp before reusing the design.