{"id":15417035,"url":"https://github.com/blueandi/racinglaptimer","last_synced_at":"2025-10-28T13:35:14.971Z","repository":{"id":48640772,"uuid":"279384257","full_name":"BlueAndi/RacingLapTimer","owner":"BlueAndi","description":"Racing lap timer, based on a laser sensor.","archived":false,"fork":false,"pushed_at":"2025-04-16T20:38:40.000Z","size":1721,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-31T13:38:40.981Z","etag":null,"topics":["competition","cpp11","esp8266","esp8266-arduino","laptimer","laser","race","waveshare","wemos-d1-mini"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlueAndi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-13T18:41:04.000Z","updated_at":"2025-04-16T20:38:44.000Z","dependencies_parsed_at":"2024-01-04T00:57:00.476Z","dependency_job_id":"f6ae83e3-fb1f-4e00-ad1d-32d14b704a27","html_url":"https://github.com/BlueAndi/RacingLapTimer","commit_stats":{"total_commits":233,"total_committers":7,"mean_commits":"33.285714285714285","dds":0.7081545064377682,"last_synced_commit":"c311724c8bd4bd23ef7028965abbb13bdbbb7289"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BlueAndi/RacingLapTimer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FRacingLapTimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FRacingLapTimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FRacingLapTimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FRacingLapTimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlueAndi","download_url":"https://codeload.github.com/BlueAndi/RacingLapTimer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FRacingLapTimer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281447793,"owners_count":26503266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["competition","cpp11","esp8266","esp8266-arduino","laptimer","laser","race","waveshare","wemos-d1-mini"],"created_at":"2024-10-01T17:14:29.384Z","updated_at":"2025-10-28T13:35:14.937Z","avatar_url":"https://github.com/BlueAndi.png","language":"C++","readme":"# Racing Lap Timer\r\nA racing lap timer, based on a laser sensor.\r\n\r\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://choosealicense.com/licenses/mit/)\r\n[![Repo Status](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)\r\n[![Release](https://img.shields.io/github/release/BlueAndi/RacingLapTimer.svg)](https://github.com/BlueAndi/RacingLapTimer/releases)\r\n[![Build Status](https://github.com/BlueAndi/RacingLapTimer/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/BlueAndi/RacingLapTimer/actions/workflows/main.yml)\r\n\r\n![RacingLapTimer](./doc/screenshot.jpg)\r\n\r\n- [Racing Lap Timer](#racing-lap-timer)\r\n- [Motivation](#motivation)\r\n- [Initial Startup](#initial-startup)\r\n- [Electronic](#electronic)\r\n  - [Schematic](#schematic)\r\n- [Software](#software)\r\n  - [Preparation](#preparation)\r\n  - [IDE](#ide)\r\n  - [Installation](#installation)\r\n  - [Build Project](#build-project)\r\n  - [Update of the device](#update-of-the-device)\r\n    - [Update via usb](#update-via-usb)\r\n  - [Used Libraries](#used-libraries)\r\n  - [System Context](#system-context)\r\n- [Issues, Ideas And Bugs](#issues-ideas-and-bugs)\r\n- [License](#license)\r\n  - [Contribution](#contribution)\r\n\r\n# Motivation\r\nFor line follower competitions a racing lap timer shall be used. It doesn't only measure the lap time, it shows it nice via web interface, inclusive automatically result table generation.\r\n\r\n# Initial Startup\r\nIf the system starts up the first time, it will spawn a wifi access point with the SSID RacingLapTimer. Connect to it, it will request a password (default: \"let me in\").\r\nConfigure there the wifi network SSID/password to which the system shall later connect.\r\n\r\nAfter configuration, the system will try to establish a connection. If the connection is not successful, the access point will be spawned again. Otherwise the credentials will be stored to persistent memory and loaded the next time automatically.\r\n\r\n# Electronic\r\n\r\n* [Wemos D1 Mini (esp8266)](https://docs.platformio.org/en/latest/boards/espressif8266/d1_mini.html)\r\n* [Waveshare laser sensor](https://www.waveshare.com/wiki/Laser_Sensor)\r\n\r\n## Schematic\r\n\r\nSchematic files can be found [here](./doc/electronic/RacingLapTimer). These have been developed using KiCAD 6.\r\n\r\n### MCU\r\n![MCU](./doc/electronic/RacingLapTimer/SCH_MCU_v1_0.png)\r\n- Digital signal of laser sensor is connected to D1/GPIO_5 of the Wemos D1 Mini.\r\n- Power is supplied by USB 5V directly to the Wemos D1 Mini\r\n\r\n### Laser Power Supply\r\n![Power Supply](./doc/electronic/RacingLapTimer/SCH_POW_v1_0.png)\r\n- Laser module Vcc shall be 3.3V, because MCU is only 3.3V tolerant.\r\n- THT or SMD resistor options are provided. **DO NOT PLACE ALL RESISTORS**.\r\n\r\n### Laser Sensor\r\n![Power Supply](./doc/electronic/RacingLapTimer/SCH_Laser_v1_0.png)\r\n- Pin header for Waveshare Laser Sensor.\r\n\r\n## PCB \r\n### v1.0\r\n![PCBv1.0](./doc/electronic/RacingLapTimer/PCBv1_0.png)\r\n- It is recommended to give the Laser Sensor some kind of support in order to protect the pin header from breaking. The height of the support depends on the pin headers used.\r\n\r\n# Software\r\n\r\n## Preparation\r\nInstall the serial driver for the Wemos D1 Mini board. Find the latest drivers here: https://www.wemos.cc/en/latest/ch340_driver.html\r\n\r\n## IDE\r\nThe [PlatformIO IDE](https://platformio.org/platformio-ide) is used for the development. Its build on top of Microsoft Visual Studio Code.\r\n\r\n## Installation\r\n1. Install [VSCode](https://code.visualstudio.com/).\r\n2. Install PlatformIO IDE according to this [HowTo](https://platformio.org/install/ide?install=vscode).\r\n3. Close and start VSCode again.\r\n4. Recommended is to take a look to the [quick-start guide](https://docs.platformio.org/en/latest/ide/vscode.html#quick-start).\r\n\r\n## Build Project\r\n1. Load workspace in VSCode.\r\n2. Change to PlatformIO toolbar.\r\n3. _Project Tasks -\u003e Build_ or via hotkey ctrl-alt-b\r\n\r\n## Update of the device\r\n\r\n### Update via usb\r\n1. Connect the Wemos D1 Mini board to your PC via USB.\r\n2. Build and upload the software via _Project Tasks -\u003e Upload_.\r\n3. Build and upload the filesystem via _Project Tasks -\u003e Upload File System image_.\r\n\r\n## Used Libraries\r\n* [Arduino](https://github.com/esp8266/Arduino) - ESP framework.\r\n* [WifiManager](https://github.com/tzapu/WiFiManager) - ESP8266 WiFi Connection manager with fallback web configuration portal.\r\n* [WebSockets](https://github.com/Links2004/arduinoWebSockets) - A WebSocket Server and Client for Arduino based on RFC6455.\r\n\r\n## System Context\r\n\r\n![SystemContextDiagram](./doc/design/SystemContextDiagram.png)\r\n\r\n# Issues, Ideas And Bugs\r\nIf you have further ideas or you found some bugs, great! Create a [issue](https://github.com/BlueAndi/RacingLapTimer/issues) or if you are able and willing to fix it by yourself, clone the repository and create a pull request.\r\n\r\n# License\r\nThe whole source code is published under the [MIT license](http://choosealicense.com/licenses/mit/).\r\n\r\n## Contribution\r\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any\r\nadditional terms or conditions.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueandi%2Fracinglaptimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblueandi%2Fracinglaptimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueandi%2Fracinglaptimer/lists"}