{"id":19195243,"url":"https://github.com/quartiq/queenmod","last_synced_at":"2026-06-17T03:31:27.825Z","repository":{"id":38316942,"uuid":"138760710","full_name":"quartiq/queenmod","owner":"quartiq","description":"MTS/WMS prototype/testbed with STM32 and Rust","archived":false,"fork":false,"pushed_at":"2022-06-07T06:10:14.000Z","size":71,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-27T16:49:52.653Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/quartiq.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":"2018-06-26T15:54:46.000Z","updated_at":"2022-07-16T06:17:38.000Z","dependencies_parsed_at":"2022-08-17T16:05:24.406Z","dependency_job_id":null,"html_url":"https://github.com/quartiq/queenmod","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/quartiq/queenmod","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quartiq%2Fqueenmod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quartiq%2Fqueenmod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quartiq%2Fqueenmod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quartiq%2Fqueenmod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quartiq","download_url":"https://codeload.github.com/quartiq/queenmod/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quartiq%2Fqueenmod/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34433085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"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":[],"created_at":"2024-11-09T12:09:14.555Z","updated_at":"2026-06-17T03:31:27.802Z","avatar_url":"https://github.com/quartiq.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QUEEN WMS modulator/demodulator\n\n* nucleo64 stm32f446\n* rust\n\n# Design\n\n## Modulation\n\n* GPIO PA15 square phase modulation ~100 kHz\n* has zeros at even harmonics (dick-effect)\n* maximum power in the relevant sidebands (especially given fixed amplitude,\n  not fixed rms power), zero carrier, zero even harmonics\n\n## Detection\n\n* PA0 ADC input\n* sample rate ~1 MHz\n* DMA\n\n## Demod, filtering\n\n* frequency shifted rectangular window\n* has zeros at multiples of the modulation (especially 2f/3f/dick-like effect)\n* highest gain\n* lowest noise bw\n* scallopping loss not problematic\n* sidelobes not problematic\n* demodulation IQ or higher orders, or square, or dc/zero/avg\n\n## IIR filtering\n\n* anything goes\n\n## Output\n\n* DAC output PA4, PA5\n\n# Build\n\n## Features\n\n* **itm**: use the ITM cell for debugging output\n* **simd**: use DSP SIMDs for MACC\n* **bkpt**: place breakpoints around the ISR for timing\n\n## Commands\n\n```\nrustup override add nightly\nrustup install nightly\nrustup target add thumbv7em-none-eabi\n\ncargo install itm  # features=itm\nmkfifo itm.fifo  # features=itm\nopenocd -f stm32f446-nucleo64.cfg\ncargo run --release\nitmdump -f itm.fifo\n```\n\n# TODO\n\n* ADC1,2 should be interleaved\n  * use 15 sample+acquisition cycles, 17+x sample interval\n  * use either\n    * continuous mode with DDS\n    * alternate trigger mode and a 1/n trigger from TIMx, TIMx synced to TIM2\n* maybe:\n  * interpolate DAC samples\n  * DMA double buffer write to DAC with TIMy, TIMy synced to TIM2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquartiq%2Fqueenmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquartiq%2Fqueenmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquartiq%2Fqueenmod/lists"}