{"id":16521558,"url":"https://github.com/cyphunk/rs232enum","last_synced_at":"2025-10-03T12:45:40.919Z","repository":{"id":1117638,"uuid":"988558","full_name":"cyphunk/RS232enum","owner":"cyphunk","description":"When you are presented with pins that you suspect provide Serial but  you do not have access to the documentation.  Connect your Arduino  to all of the pins (limited by the number of Ditial pins you have on  your board) and this sketch will try every possible pin combination  and baud rate to determine RX/TX. It will also try to send wakeup  characters to stimulate the line, such as a carriage return or other  txpatterns that you add. This code sends data using a custom  SoftwareSerial library. ","archived":false,"fork":false,"pushed_at":"2019-02-21T10:15:50.000Z","size":19,"stargazers_count":89,"open_issues_count":1,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-03T19:13:50.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://deadhacker.com/tools","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/cyphunk.png","metadata":{"files":{"readme":"README.txt","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":"2010-10-14T23:34:10.000Z","updated_at":"2025-01-31T01:50:19.000Z","dependencies_parsed_at":"2022-08-16T12:05:16.658Z","dependency_job_id":null,"html_url":"https://github.com/cyphunk/RS232enum","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cyphunk/RS232enum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphunk%2FRS232enum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphunk%2FRS232enum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphunk%2FRS232enum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphunk%2FRS232enum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyphunk","download_url":"https://codeload.github.com/cyphunk/RS232enum/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphunk%2FRS232enum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272988919,"owners_count":25026961,"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":[],"created_at":"2024-10-11T16:56:57.531Z","updated_at":"2025-10-03T12:45:40.846Z","avatar_url":"https://github.com/cyphunk.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":" RS232enum\n When you are presented with pins that you suspect provide Serial but\n you do not have access to the documentation.  Connect your Arduino\n to all of the pins (limited by the number of Ditial pins you have on\n your board) and this sketch will try every possible pin combination\n and baud rate to determine RX/TX. It will also try to send wakeup\n characters to stimulate the line, such as a carriage return or other\n txpatterns that you add. This code sends data using a custom\n SoftwareSerial library. \n      For the Parallel scans interpreting the return data would not be\n reliable. Instead the software just gives a good indication of \n active lines (parallel scan) and specifically serial lines that \n respond to wakeup patterns / stimulation (active parallel and active\n per pin scans). Where reports indicate likely serial the user should\n then plug up a serial cable and confirm with terminal software on\n their workstation using the indicated baud rate and wakeup patterns.\n\n Further documentation: http://deadhacker.com/tools/\n \n SETUP:\n 1. set pins[] to the arduino pins being used for the scan\n 2. set pinnames[] to the names for each pin (that better relate to\n    your target)\n 3. set baudrates[] to a list of baudrates we should use when\n    sending txpattern wakeup signals on the TX line\n 4. (optional) set txpatters[] to desired stimulation patterns\n 5. (optional) if your board does not have enough memory uncomment\n    the \"#define SHRINK\" line. Note: \"information\" function will be\n    disabled as a result\n 6. (optional) set Arduino CPU to 8MHZ if using 3.3v logic\n\n USAGE:\n -  load sketch and attach to arduino at 115200 baud\n -  type '?' or 'help' for command information\n\n TESTING:\n -  \"clienttest.py\" included with the code can be run for a virtual test.\n    execute the script and connect your arduino to the RX/TX lines of your\n    workstation. clienttest.py only prints out on the serial line when it\n    receives a carriage return (at its baudrate)\n\n AUTHORS \u0026 CODE BRANCHES:\n cyphunk  http://github.com/cyphunk/RS232enum/\n\n DEVELOPER NOTES:\n -  pfmt() = local printf()\n -  ppgm() = print() which uses the FLASH memory of the board. Some \n    boards have limited SRAM so we use the FLASH ram where possible.\n -  Supports up to 64 pins atm (because report buffer stores pin state\n    in 2 byte bit array)\n -  the arduino IDE tries to silently build and include function prototypes\n    from companion sketch files, however it doesn't work when you return\n    or have as arguments non standard arduino types. Hence, sometimes we\n    we declare them, and sometimes not\n -  As of Arduino 1 the softserial delay required per baudrate definitions.\n    Don't ask why. This means that only common buadrates are supported.\n    Perhaps it was always this way. Also, with the new changes I did not\n    test if older Arduino versions worked so just use Arduino \u003e= v1\n This code is public domain, abuse as you wish and at your own risk\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyphunk%2Frs232enum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyphunk%2Frs232enum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyphunk%2Frs232enum/lists"}