{"id":20147335,"url":"https://github.com/gdsports/xymodem","last_synced_at":"2025-04-09T19:35:54.170Z","repository":{"id":130716454,"uuid":"163553919","full_name":"gdsports/XYmodem","owner":"gdsports","description":"Arduino XYMODEM file transfer protocol","archived":false,"fork":false,"pushed_at":"2018-12-31T05:12:19.000Z","size":98,"stargazers_count":17,"open_issues_count":1,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T21:35:42.789Z","etag":null,"topics":["accessible","adafruit","adafruit-circuit-playground","adaptive-technology","arduino","key-macro","keyboard-shortcuts","launcher","xmodem","ymodem"],"latest_commit_sha":null,"homepage":null,"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-12-30T01:46:46.000Z","updated_at":"2024-07-02T21:23:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"b17fe2d8-8505-475c-9256-9862325a283d","html_url":"https://github.com/gdsports/XYmodem","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%2FXYmodem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FXYmodem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FXYmodem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdsports%2FXYmodem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdsports","download_url":"https://codeload.github.com/gdsports/XYmodem/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248098382,"owners_count":21047429,"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":["accessible","adafruit","adafruit-circuit-playground","adaptive-technology","arduino","key-macro","keyboard-shortcuts","launcher","xmodem","ymodem"],"created_at":"2024-11-13T22:28:39.033Z","updated_at":"2025-04-09T19:35:54.161Z","avatar_url":"https://github.com/gdsports.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XMODEM and YMODEM for Arduino\n\nXMODEM and YMODEM file transfer protocols for Arduino, Adafruit, and Teensy.\n\n* Reliable method to transfer binary files into SPI Flash and SD.\n* Supports YMODEM 1K blocks, batch mode, and CRC.\n* Supports XMODEM 1K blocks and CRC.\n* Works with SD and Adafruit SPI and QSPI Flash FAT file systems.\n* Only receive is implemented so far.\n* Tested boards: Teensy 3.6 with SD card, Adafruit Metro M4, Adafruit\nCircuit Playground Express.\n\n## Examples\n\n### rxymodem\n\nSimple demo of receiving files using YMODEM in continous receive mode.\n\n### fatfscli\n\nA simple command line interface to FAT file systems. This is very useful for\nmanaging SPI Flash. Unlike SD card, SPI Flash cannot be removed and managed on\na computer. Any terminal program such as TeraTerm and minicom may be used. The\nArduino serial monitor is not recommended. If it must be used, change the\nline ending to CR.\n\n#### Print file and directory names.\ndir and ls are synonyms. [dirname] is optional. Defaults to working directory.\n\n     dir [dirname], ls [dirname]\n\n#### Print working directory.\npwd and cd (no parameter) are synonyms.\n\n     pwd, cd\n\n#### Change working directory.\nIf no dirname is specified, prints the working directory. If full path\nis not specified the working directory is used.\n\n     cd \u003cdirname\u003e\n\n#### Make directory.\nMultiple levels may be specified. E.g. mkdir\ndir1/dir2/dir3. If full path is not specified the working directory is used.\n\n     mkdir \u003cdirname\u003e\n\n#### Remove directory and ALL files and subdirectories.\n\nWorks like \"rm -rf\" so be careful. If full path is not specified the\nworking directory is used.\n\n     rmdir \u003cdirname\u003e\n\n#### Remove file.\ndel and rm are synonyms. If full path is not specified the working\ndirectory is used. No wildcards.\n\n     del \u003cfilename\u003e, rm \u003cfilename\u003e\n\n#### Print file contents.\ntype and cat are synonyms. If full path is not\nspecified the working directory is used. Use the terminal program logging or\nASCII file capture to save the contents to a computer file.\n\n     type \u003cfilename\u003e, cat \u003cfilename\u003e\n\n#### Read from Serial port and write to a file.\nTerminate with ^D. If full\npath is not specified the working directory is used.\n\n     capture \u003cfilename\u003e\n\nE.g. Run \"capture params.json\". In the terminal program, send the contents\nof an ASCII file. Use copy and paste or ASCII upload feature of the terminal\nprogram. Close the file by pressing ^D. Examine the file using \"cat\nparams.json\".\n\n#### Receive YMODEM batch mode.\nThe sender may send 0 or more files including\nfile names. rb receives and creates the files.\n\n     rb\n\n#### Receive one file using XMODEM.\nThe XMODEM protocol does not allow the\nsender to send the filename. Do not use XMODEM unless YMODEM is not available.\nThe XMODEM protocol also pads files to multiples of 128 bytes.\n\n     rx \u003cfilename\u003e\n\n### CircuitPlaygroundExpress\n\nDemonstrate using a CPX as USB keyboard macro board. The key macro processor is\nprovided by the [keymouse_t3](https://github.com/gdsports/keymouse_t3) library.\nThe key macros are read from a file named KEYMACRO.TXT stored in SPI Flash.\n\nThis library makes it possible to send the KEYMACRO.TXT file from a computer\nusing YMODEM. The user does not need to install and use the Arduino IDE to\nchange the key macros. The only program require is a terminal program such as\nTeraTerm or minicom.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsports%2Fxymodem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdsports%2Fxymodem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdsports%2Fxymodem/lists"}