{"id":20147362,"url":"https://github.com/gdsports/midiuartusb","last_synced_at":"2025-04-09T19:35:47.277Z","repository":{"id":130716340,"uuid":"122818815","full_name":"gdsports/MIDIUARTUSB","owner":"gdsports","description":"DIY MIDI UART DIN USB converter","archived":false,"fork":false,"pushed_at":"2021-12-02T02:36:31.000Z","size":407,"stargazers_count":37,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-23T21:35:41.450Z","etag":null,"topics":["32u4","arduino","din","itsy-bitsy","leonardo","midi","pro-micro","trinket-m0","usb-midi"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdsports.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":"2018-02-25T08:35:30.000Z","updated_at":"2025-03-06T07:18:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"af7324b2-dfc4-46de-b147-f143c49f5058","html_url":"https://github.com/gdsports/MIDIUARTUSB","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/gdsports%2FMIDIUARTUSB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FMIDIUARTUSB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FMIDIUARTUSB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FMIDIUARTUSB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdsports","download_url":"https://codeload.github.com/gdsports/MIDIUARTUSB/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248098358,"owners_count":21047423,"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":["32u4","arduino","din","itsy-bitsy","leonardo","midi","pro-micro","trinket-m0","usb-midi"],"created_at":"2024-11-13T22:28:43.367Z","updated_at":"2025-04-09T19:35:47.264Z","avatar_url":"https://github.com/gdsports.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MIDI UART USB converter\n\nBi-directional converter between MIDI USB and MIDI UART. There are many pages\nthat describe how to connect a UART port to DIN connectors so it is not covered\nhere.\n\nMaximum System Exclusive size is 1024 bytes. This can be bigger on SAMD boards\nwhich have more RAM.\n\nInstall MIDI Library (version 4.3.1) and MIDIUSB libraries using the Arduino IDE library\nmanager. MIDI Library version 5 and newer do not work with large SysEx.\n\nTested in 32u4 boards such as Arduino Leonardo, SparkFun Pro Micro, and Adafuit\nItsy Bitsy 32u4.\n\nTested on Arduino Zero, Adafruit Trinket M0, and Adafruit QT Py. It might work\non other SAMD21 boards. Either Arduino or TinyUSB stack can be used.\n\nTested on Raspberry Pi Pico using the TinyUSB stack and the [Earle Philhower\nArduino Core for RP2040](https://github.com/earlephilhower/arduino-pico). It might\nwork on other RP2040 boards.\n\n## Testing\n\nTested in with hardware loop back on UART Tx/Rx using SendMIDI and ReceiveMIDI.\n\nIn one command line window run receivemidi like this:\n\n$ receivemidi dev arduino\n\nIn another command line window run sendmidi with the test script\nreceivemidi.txt like this:\n\n$ sendmidi dev arduino file receivemidi.txt\n\nCompare the output of receivemidi (redirect output to a file) with the\nreceivemidi.txt test script.\n\n## Hardware\n\nAll of the following run MIDIUARTUSB.\n\nArduino Leonardo (32u4) with SparkFun MIDI shield. The buttons and pots are not\nused in this program.\n\n![Arudino Leonardo with SparkFun MIDI shield](https://github.com/gdsports/MIDIUARTUSB/blob/master/images/leonardo_midi.jpg)\n\nPro Micro (32u4) 5V with MIDI breakout board.\n\n![Pro Micro 5V with MIDI breakout board](https://github.com/gdsports/MIDIUARTUSB/blob/master/images/promicro_midi.jpg)\n\nAdafruit Trinket M0 (SAMD21) 3.3V with MIDI breakout board. Note the different\nresistor values on the MIDI board for 3.3V operation.\n\n![Trinket M0 3.3V with MIDI breakout board](https://github.com/gdsports/MIDIUARTUSB/blob/master/images/trinketm0_midi.jpg)\n\n## Options\n\nGround pin 2 to enable MIDI pass thru.\n\n## Trinket M0 firmware\n\nCompiled programs can be burned into the Trinket M0 just by dragging and\ndropping a UF2 file on to the Trinket M0 USB drive. There is no need to install\nthe Arduino IDE, source code, or USB serial device driver.\n\n* Download the UF2 file.\n* Plug in the Trinket M0 to the computer.\n* Double tap the Trinket M0 reset button.\n* When the TRINKETBOOT USB drive appears, drop the UF2 file on to the drive.\n* Wait until the Trinket M0 reboots.\n\n## References\n\nhttps://www.midi.org/specifications/\n\nhttp://www.usb.org/developers/docs/devclass_docs/midi10.pdf\n\nhttps://github.com/gbevin/ReceiveMIDI\n\nhttps://github.com/gbevin/SendMIDI\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsports%2Fmidiuartusb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdsports%2Fmidiuartusb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsports%2Fmidiuartusb/lists"}