{"id":33058913,"url":"https://github.com/CedarGroveStudios/AD9833_FeatherWing","last_synced_at":"2025-11-18T23:02:09.541Z","repository":{"id":139500651,"uuid":"198145133","full_name":"CedarGroveStudios/AD9833_FeatherWing","owner":"CedarGroveStudios","description":"Precision Waveform Generator FeatherWing","archived":false,"fork":false,"pushed_at":"2022-10-12T17:02:10.000Z","size":15829,"stargazers_count":14,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T21:12:33.875Z","etag":null,"topics":["ad9833","featherwing","kicad","oshpark","printed-circuit-boards","waveform-generator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CedarGroveStudios.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}},"created_at":"2019-07-22T04:11:10.000Z","updated_at":"2024-08-01T22:27:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"9487473d-f50a-4367-b089-75a9c15c0fd8","html_url":"https://github.com/CedarGroveStudios/AD9833_FeatherWing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CedarGroveStudios/AD9833_FeatherWing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedarGroveStudios%2FAD9833_FeatherWing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedarGroveStudios%2FAD9833_FeatherWing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedarGroveStudios%2FAD9833_FeatherWing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedarGroveStudios%2FAD9833_FeatherWing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CedarGroveStudios","download_url":"https://codeload.github.com/CedarGroveStudios/AD9833_FeatherWing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedarGroveStudios%2FAD9833_FeatherWing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285152380,"owners_count":27123462,"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-11-18T02:00:05.759Z","response_time":61,"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":["ad9833","featherwing","kicad","oshpark","printed-circuit-boards","waveform-generator"],"created_at":"2025-11-14T05:00:31.013Z","updated_at":"2025-11-18T23:02:09.534Z","avatar_url":"https://github.com/CedarGroveStudios.png","language":"Python","funding_links":[],"categories":["FeatherWings (Adafruit)"],"sub_categories":["FeatherWings (non-Adafruit)"],"readme":"### _A precision waveform generator FeatherWing_\n# AD9833_FeatherWing\n\n![Image of Module](https://github.com/CedarGroveStudios/AD9833_FeatherWing/blob/master/photos/Waveform_Generator_social.png)\n\n## Overview\nThe AD9833 Precision Waveform Generator FeatherWing is an Adafruit Feather-compatible module. The Waveform Generator produces an op-amp buffered sine, triangle, or square wave output with a practical frequency range of 0.5Hz to 100KHz with 0.1Hz resolution.  \n  * Frequency accuracy and stability is determined by the on-board 25MHz +/- 100ppm crystal oscillator (Abracon ASV-25.000MHZ-E-T).  \n  * Waveform Generator control is via the Feather SPI bus; chip select is provided by the D6 GPIO pin.  \n  *\tOutput signal peak-to-peak amplitude is adjustable with a maximum unipolar output of slightly less than 3.3 volts.  \n  *\tOutput can optionally be connected to the A2 analog input pin via an on-board jumper for real-time output signal monitoring.  \n  *\tThe wing derives its power from the host Feather's 3.3V power.  \n\nThe AD9833 Precision Waveform Generator FeatherWing was tested with a Feather M4 Express using CircuitPython version 4.1.0 rc-1. Example sweep generator code is provided in the repository (sweep example video: https://youtu.be/O1vMfLoCWzg). \n\nOSH Park project: https://oshpark.com/shared_projects/al6aPN0u\n\nRefer to the Analog Devices' AD9833 Waveform Generator data sheet for device control protocol details.\n\n![Fritzing Image](https://github.com/CedarGroveStudios/AD9833_FeatherWing/blob/master/photos/Waveform_Generator%20for%20fritzing.png)\n\n![FeatherWing Implementation Chart](https://github.com/CedarGroveStudios/AD9833_FeatherWing/blob/master/docs/FeatherWing_Implementation_Chart.png)\n\n## Primary Project Objectives\n1)\tGenerate useful waveforms in the audio frequency range\n  a.\tHighly accurate and stable absolute frequency: ±0.5Hz, 1000ppm  \n  b.\tModerately accurate waveform shape: 8-bit minimum  \n  c.\tFixed 3.0 volt peak-to-peak output, centered at 1.5 volts  \n2)\tImplement with CircuitPython code\n3)\tIncrease SPI communications knowledge\n4)\tImprove SMD soldering skills\n5)\tImprove conceptual knowledge  \n  a.\tSPI communications  \n  b.\tSwept frequency control  \n  c.\tDigital signal generation  \n  d.\tCircuitPython device drivers  \n  e.\tADSR envelope modulation (optional)  \n6)\tFabricate physical equipment  \n  a.\tWorkbench fixed and swept signal generator  \n  b.\tMIDI and CV controlled LFO and audio frequency Eurorack oscillator module  \n\n## Deliverables\n1)\tCustom FeatherWing PCB, M4 Express pinout\n2)\tFeatherWing Implementation Chart\n3)\tCircuitPython device driver\n4)\tCircuitPython examples and test code\n5)\tKiCAD schematic and board layout with Gerber code\n6)\tOSH Park public shared project page\n7)\tGitHub public repository page\n8)\tProject description and report\n9)\tWorkbench signal generator\n10)\tEurorack module\n## Concepts Learned\n1)\tSolder paste stencil was essential for successful SOT-23 and MSOP-10 component soldering\n2)\t10-bit waveform accuracy will be sufficient for most anticipated uses\n3)\tWaveform output amplitude was very stable from 0 to 250kHz\n4)\tOutput buffer op-amp gain-bandwidth product limit contributes significantly to high frequency roll-off but also smooths the digital feedthrough components of the waveform\n5)\tThe low peak of the waveform only reaches +150mV not 0V as anticipated\n6)\tWaveform generator DAC output filtering capacitance was listed incorrectly in the datasheet example; value used for manufacturer testing was correct\n7)\tSeparate analog ground on the PCB helped to reduce analog output digital noise\n8)\tADSR envelope generation will require additional circuitry (see https://github.com/CedarGroveStudios/AD9833_ADSR_FeatherWing for the full discussion of tests)\n9)\tOutput frequency change throughput of the CircuitPython example code (using the cedargrove_AD9833 library) is approximately 450usec, allowing for frequency sweep steps and modulation rates of \u003e 2k changes(steps) per sec\n10)\tCircuitPython driver code was simpler to create than anticipated  \n  a.\tCircuitPython SPI communications techniques are well-documented  \n  b.\tCommand register protocol was thoroughly explained in the device datasheet  \n  c.\tNon-typical clock polarity was the only issue to overcome  \n## Next Steps\n  * Finish the ADSR envelope generation tests and incorporate additional components in the v02 PCB design\n  *\tReplace the existing op-amp with higher gain-bandwidth version\n  *\tConsider a FeatherWing-sized dual-output version\n  *\tIncorporate the knowledge and experience gained in this project with the design of an Arbitrary Waveform Generator FeatherWing\n\n![Image of Test Setup](https://github.com/CedarGroveStudios/AD9833_FeatherWing/blob/master/photos/DSC05796%20combo.jpg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCedarGroveStudios%2FAD9833_FeatherWing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCedarGroveStudios%2FAD9833_FeatherWing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCedarGroveStudios%2FAD9833_FeatherWing/lists"}