{"id":20522861,"url":"https://github.com/anachrocomputer/pic32dds","last_synced_at":"2025-09-01T01:32:34.733Z","repository":{"id":70084962,"uuid":"166313355","full_name":"anachrocomputer/PIC32DDS","owner":"anachrocomputer","description":"Direct Digital Synthesis via an MCP4822 SPI DAC on a PIC32MX550F256L. Should also work on other PIC32MX chips with similar peripherals, e.g. PIC32MX250F256L. ","archived":false,"fork":false,"pushed_at":"2024-11-30T13:44:59.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-06T00:44:38.240Z","etag":null,"topics":["dac","dds","direct-digital-synthesis","mcp4822","pic32","pic32mx","spi"],"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/anachrocomputer.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-17T23:44:43.000Z","updated_at":"2024-11-30T13:45:02.000Z","dependencies_parsed_at":"2025-01-16T10:43:10.880Z","dependency_job_id":"772ffe9c-93eb-4f5d-b013-07fee56639e7","html_url":"https://github.com/anachrocomputer/PIC32DDS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anachrocomputer/PIC32DDS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FPIC32DDS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FPIC32DDS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FPIC32DDS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FPIC32DDS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anachrocomputer","download_url":"https://codeload.github.com/anachrocomputer/PIC32DDS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FPIC32DDS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273064342,"owners_count":25039259,"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-08-31T02:00:09.071Z","response_time":79,"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":["dac","dds","direct-digital-synthesis","mcp4822","pic32","pic32mx","spi"],"created_at":"2024-11-15T22:37:08.482Z","updated_at":"2025-09-01T01:32:34.727Z","avatar_url":"https://github.com/anachrocomputer.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Static Badge](https://img.shields.io/badge/MCU-PIC32MX-green \"MCU:PIC32MX\")\n![Static Badge](https://img.shields.io/badge/IDE-MPLAB_X_V6.20-green \"IDE:MPLAB_X_V6.20\")\n![Static Badge](https://img.shields.io/badge/BOARD-Reach_Dev_PCB-green \"BOARD:Reach Dev PCB\")\n\n# PIC32DDS #\n\nGenerate audio-frequency signals from an MCP4822 dual 12-bit DAC\nconnected via SPI to a PIC32MX550F256L.\nSPI2 clock at 2MHz, SPI3 clock at 1MHz.\nNew samples sent to DAC at 44.1kHz.\nSPI3 connects to an OLED display module, 128x64 pixel,\nbased on the SSD1306 chip.\nSYNC pin set HIGH at beginning of synthesised waveform cycle and LOW\nat the end.\n\nDAC connections:\n\n| Signal | Chip  | Name      | Pin | Chip    | Name | Pin |\n|--------|-------|-----------|-----|---------|------|-----|\n| SCK2   | PIC32 | RG6/SCK2  | 10  | MCP4822 | SCK  | 3   |\n| MOSI2  | PIC32 | RC13/SDO2 | 73  | MCP4822 | SDI  | 4   |\n| SS2    | PIC32 | RD9       | 69  | MCP4822 | CS   | 2   |\n\nOLED display connections:\n\n| Signal | Chip  | Name      | Pin | Chip    | Name | Pin |\n|--------|-------|-----------|-----|---------|------|-----|\n| SCK3   | PIC32 | RF13/SCK3 | 39  | SSD1306 | SCK  | 3   |\n| MOSI3  | PIC32 | RG8/SDO3  | 12  | SSD1306 | SDA  | 4   |\n| SS3    | PIC32 | RA0       | 17  | SSD1306 | CS   | 7   |\n| DC     | PIC32 | RG9       | 14  | SSD1306 | DC   | 6   |\n| RES    | PIC32 | RE8       | 18  | SSD1306 | RES  | 5   |\n\nDigital output:\n\n* SYNC RD0 pin 72\n\nDebugging LEDs on dev board:\n\n* LED1 RE6 pin 4\n* LED2 RE7 pin 5\n* LED3 RE1 pin 94\n* LED4 RA7 pin 91\n* LED5 RA6 pin 92\n\nPIC32 pin numbers are for the 100-pin package.\n\nLEDs light when the pin is pulled LOW.\n\n## PIC32 Toolchain ##\n\nMPLAB X V6.20 and 'xc32' V4.60.\nThese are not quite the latest versions,\nbut MPLAB X V6.20 is the last version to support my \"long obsolete\" ICD3 programmer.\n\n## PIC32 Programmer ##\n\nMicrochip ICD3.\nOther programmers should work, e.g. ICD4 or PICkit4.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanachrocomputer%2Fpic32dds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanachrocomputer%2Fpic32dds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanachrocomputer%2Fpic32dds/lists"}