{"id":13766928,"url":"https://github.com/sethitow/mbed-pinetime","last_synced_at":"2025-05-10T22:31:30.633Z","repository":{"id":53530624,"uuid":"223539986","full_name":"sethitow/mbed-pinetime","owner":"sethitow","description":"Pinetime Firmware based on Arm MbedOS.","archived":false,"fork":false,"pushed_at":"2021-03-25T23:23:43.000Z","size":3870,"stargazers_count":16,"open_issues_count":5,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-17T02:34:20.111Z","etag":null,"topics":["mbed","pine64","pinetime"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sethitow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-23T06:04:05.000Z","updated_at":"2024-07-15T14:53:27.000Z","dependencies_parsed_at":"2022-09-21T04:01:08.301Z","dependency_job_id":null,"html_url":"https://github.com/sethitow/mbed-pinetime","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethitow%2Fmbed-pinetime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethitow%2Fmbed-pinetime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethitow%2Fmbed-pinetime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethitow%2Fmbed-pinetime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sethitow","download_url":"https://codeload.github.com/sethitow/mbed-pinetime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253492529,"owners_count":21916959,"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","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":["mbed","pine64","pinetime"],"created_at":"2024-08-03T16:01:02.630Z","updated_at":"2025-05-10T22:31:28.432Z","avatar_url":"https://github.com/sethitow.png","language":"C","funding_links":[],"categories":["Projects by Operating System"],"sub_categories":["MbedOS"],"readme":"![Animated GIF of Pinetime demo](media/pixel-painting.gif)\n\n# Getting Started\n\n\u003e These instructions are macOS centric right now, but the Mbed toolchain will work on Mac, Windows, and Linux. Improvments to these instructions are welcome. \n\nInstall the arm-eabi-none toolchain\n```\nbrew tap PX4/homebrew-px4\nbrew install PX4/homebrew-px4/gcc-arm-none-eabi-63\n```\n\nOptionally, install `nrfjprog`\n```\nbrew cask install nordic-nrf-command-line-tools\n```\n\nCheckout all submodules `git submodule update --init --recursive`.\n\nInstall all the Python packages required for Mbed. Your options are:\n- Install from the Pipfile. `pipenv install`\n- Install from Mbed requirements.txt `pip install -r modules/mbed-os/requirements.txt`\n\nTo use the Makefiles, you must set the environment variable `MBED_PINETIME_PATH` to the root of the repository. If anyone has ideas on how to not need this or otherwise improve the build system, let me know.\n\n\n\n# Development Notes\n\n- [x] BMA421 Accelerometer\n- [-] HRS3300 Heart Rate Sensor\n- [x] Hynitron CST816S Touch Pad\n- [-] Sitronix ST7789V LCD Driver\n- [x] Macronix SPI Flash\n- [x] Vibrator\n- [x] LED backlight\n- [x] ADC Battery Voltage Sense\n- [ ] Physical button\n\n### I2C \n00\u003e 0x15 Touchpad\n- Only responds after a touch event.\n- At 100khz, Limit of read from register 0x00 after a touch event is 190-195ish bytes. This is probably due to the chip going back to sleep.\n\t\n00\u003e 0x18 ACK Accelerometer\n- BMA421 -- Not a public avalible chip, therefore no publicly availible drivers.\n- Similar to BMA423\n- Seems to require binary blob on startup (chip firmware?)\n\t\n00\u003e 0x44 ACK HALS3300 Heart Rate Sensor\n- Datasheet is OK\n- Resolution was set to 16bits 0x08\n- Gain was set to 1 0x02\n\n### SPI\nFlash:\n- SPI flash is now working with Mbed SPIF driver\n- Needed to be \"reset\" by letting the battery die\n- 4194304 bytes\n\nDisplay:\n- Display needs mode 3 SPI?\n- https://www.allaboutcircuits.com/technical-articles/spi-serial-peripheral-interface/\n- Got it sort-of working with Mbed ports of the Adafruit GFX libraries. \n- Still work to be done here\n\nI can't get the physical button to work for the life of me. Someone please help 😂\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethitow%2Fmbed-pinetime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsethitow%2Fmbed-pinetime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethitow%2Fmbed-pinetime/lists"}