{"id":13423332,"url":"https://github.com/dotcypress/ula","last_synced_at":"2025-04-04T11:12:07.802Z","repository":{"id":152814469,"uuid":"627094231","full_name":"dotcypress/ula","owner":"dotcypress","description":"μLA: Micro Logic Analyzer for RP2040","archived":false,"fork":false,"pushed_at":"2023-11-12T01:47:33.000Z","size":2235,"stargazers_count":739,"open_issues_count":12,"forks_count":58,"subscribers_count":17,"default_branch":"main","last_synced_at":"2024-10-14T14:19:13.834Z","etag":null,"topics":["embedded","logic-analyzer","rp2040","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotcypress.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-12T19:15:15.000Z","updated_at":"2024-10-13T20:28:12.000Z","dependencies_parsed_at":"2023-11-12T02:29:58.018Z","dependency_job_id":"74fe8507-0b58-4a53-9e0b-228d79582dc9","html_url":"https://github.com/dotcypress/ula","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotcypress%2Fula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotcypress%2Fula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotcypress%2Fula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotcypress%2Fula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotcypress","download_url":"https://codeload.github.com/dotcypress/ula/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166168,"owners_count":20894654,"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":["embedded","logic-analyzer","rp2040","rust"],"created_at":"2024-07-31T00:00:31.118Z","updated_at":"2025-04-04T11:12:07.786Z","avatar_url":"https://github.com/dotcypress.png","language":"Rust","readme":"# μLA: Micro Logic Analyzer\n\nSUMP/OLS compatible logic analyzer firmware for [RP2040](https://en.wikipedia.org/wiki/RP2040) based boards.\n\n## Features\n\n* 16 channels\n* 100 MHz sampling rate, 1 sample per sys tick\n* 200 KB sample memory\n* Fast triggers using PIO\n* Input channels mapped to GPIO 0-15\n\n## Supported hardware\n\n* [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico)\n* [uPico](https://github.com/dotcypress/upico)\n* Virtually all RP2040 based boards with USB connection and GPIO 0-15 available\n* Bring your own RP2040 hardware with proper frontend and protection\n\n## Installation\n\n1. Download latest firmware build from [Releases page](https://github.com/dotcypress/ula/releases)\n2. Hold the BOOTSEL button while connecting your board to the computer\n3. Copy firmware file downloaded earlier to the RPi-RP2 disk\n4. Use PulseView of SigrokCli to connect to probe\n5. Enjoy\n\n## Client software\n\n### PulseView\n\n\u003cimg al=\"uLA: Micro Logic Analyzer\" width=\"800\" src=\"docs/pulseview.png\"\u003e\n\n[PulseView](https://sigrok.org/wiki/PulseView) is a Qt based logic analyzer GUI for sigrok.\n\nSelect `Openbench Logic Sniffer \u0026 SUMP compatible` protocol when connecting to μLA.\n\nProtocol selection         |  Connect window\n:-------------------------:|:-------------------------:\n\u003cimg alt=\"uLA: Micro Logic Analyzer\" src=\"docs/pulseview_protocol.png\"\u003e | \u003cimg alt=\"uLA: Micro Logic Analyzer\" src=\"docs/pulseview_connect.png\"\u003e\n\n### SigrokCli\n\n[SigrokCli](https://sigrok.org/wiki/Sigrok-cli) is a command-line frontend for sigrok.\n\nScan for devices\n```\n$ sigrok-cli -d ols:conn=/dev/tty.usbmodem_ula_1 --scan\n\n  The following devices were found:\n  ols - uLA: Micro Logic Analyzer with 16 channels: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n```\n\nSample two 10 MHz square waves with 90° phase shift\n```\n$ sigrok-cli -d ols:conn=/dev/tty.usbmodem_ula_1 \n    -O ascii:charset='_`\\/'\n    --config samplerate=100m\n    --samples 70\n\n  libsigrok 0.5.2\n  Acquisition with 16/16 channels at 100 MHz\n  0:``\\____/`````\\___/`````\\___/`````\\___/`````\\___/`````\\___/`````\\___/``\n  1:____/`````\\____/````\\____/````\\____/````\\____/````\\____/````\\____/````\n  2:______________________________________________________________________\n```\n\n## Building firmware\n\n1. Install rustup by following the instructions at https://rustup.rs\n2. Install Cortex-M0, M0+, and M1 (ARMv6-M architecture) target: `rustup target add thumbv6m-none-eabi`\n3. Install LLVM tools: `rustup component add llvm-tools-preview`\n4. Install cargo-binutils: `cargo install cargo-binutils` (Note: on some Linux distros (e.g. Ubuntu) you may need to install the packages build-essential, gcc-arm-none-eabi, libssl-dev and pkg-config prior to installing cargo-binutils)\n5. Install elf2uf2: `cargo install elf2uf2-rs`\n6. Clone this repo: `git clone git@github.com:dotcypress/ula.git \u0026\u0026 cd ula`\n7. Hold the BOOTSEL button while connecting your board to the computer\n8. Flash microcontroller: `cargo run --release`\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or\n  http://www.apache.org/licenses/LICENSE-2.0)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n","funding_links":[],"categories":["Firmware projects","Projects","Rust"],"sub_categories":["WIP"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotcypress%2Fula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotcypress%2Fula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotcypress%2Fula/lists"}