{"id":15415864,"url":"https://github.com/davidje13/relish-signal-strength","last_synced_at":"2025-06-28T13:37:13.643Z","repository":{"id":151511267,"uuid":"58403210","full_name":"davidje13/relish-signal-strength","owner":"davidje13","description":"Signal strength poller for Relish 4G routers","archived":false,"fork":false,"pushed_at":"2016-05-09T19:44:00.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T13:21:11.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/davidje13.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":"2016-05-09T19:43:55.000Z","updated_at":"2020-12-18T19:34:57.000Z","dependencies_parsed_at":"2023-05-18T18:31:01.714Z","dependency_job_id":null,"html_url":"https://github.com/davidje13/relish-signal-strength","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"761a53997171b2ea624df37d31fac190194c09dd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidje13/relish-signal-strength","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidje13%2Frelish-signal-strength","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidje13%2Frelish-signal-strength/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidje13%2Frelish-signal-strength/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidje13%2Frelish-signal-strength/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidje13","download_url":"https://codeload.github.com/davidje13/relish-signal-strength/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidje13%2Frelish-signal-strength/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262438717,"owners_count":23311201,"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":[],"created_at":"2024-10-01T17:10:03.249Z","updated_at":"2025-06-28T13:37:13.601Z","avatar_url":"https://github.com/davidje13.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Relish Signal Strength\n===\n\nThis is a quick script which helps when finding the best location for a 4G router (specifically the Gemtek 4G router provided by Relish). It polls an unauthenticated informational endpoint which the router provides, parses the data, and displays the key statistics. Unfortunately it's still quite a manual chore to test many locations.\n\nDependencies\n===\n\nThe project is Python 3 (tested on 3.5), and requires the `requests` package (`npm install requests`).\n\nUsage\n===\n\nStart polling with:\n\n    python main.py\n\nThis will poll every half-second (the router appears to update values approximately once per second), and print key values to the terminal (stdout). You can stop it at any time using the normal Ctrl+C key combination. It expects to find the router at its default address: http://192.168.15.1/\n\nDescription of output\n---\n\nThe most important values for signal strength are the CINR0/1 values (Carrier to Interface+Noise Ratio, measured in dBm - decibel-milliwatts). The router contains 2 antenna, with CINR0 corresponding to the first and CINR1 the second.\n\nDue to the use of MIMO (Multiple-Input and Multiple-Output) in the 4G standard, it is best to get **both** CINR0 and CINR1 as high as possible (i.e. balanced). For example, a result of 12/14 is likely to be better than 3/17. This can usually be accomplished by turning the router slightly.\n\nA third column is also provided; \"Combination\". This has no real meaning, but can be used as a quick reference when checking multiple locations, as it varies less with rotation. It represents the euclidean distance from 0,0 to CINR0,CINR1 after accounting for the logarithmic scale (the full formula is equivalent to `log10(sqrt((10^CINR0)^2+(10^CINR1)^2))`). It's a formula I've pulled from thin air and somebody with more knowledge of signal processing could certainly produce a better formula for this task.\n\nThe combination value roughly corresponds to the signal strength displayed on the router. It has the advantage of being more fine-grained and visible even when the router's display isn't, but will have slightly more latency in its updates.\n\nThe final 3 columns are rolling window averages of the first 3 columns. Currently they are the average of the past 10 samples (5 seconds).\n\nTips for finding a good signal\n---\n\n* Use a long extension lead so that you can move the router around without switching it off and on repeatedly (it takes a long time to switch on and find a signal)\n* Start this polling script and keep it running (you can stop and restart it whenever you want to, but you don't need to)\n* Good candidate locations are places with a good line-of-sight out of the building\n* Signal strength varies dramatically with small changes to location (even 5cm can make a big difference sometimes), and can vary with time too (e.g. due to the weather)\n* Large containers of water (e.g. You) can have a big impact on the signal, so you may need to try standing in more than 1 location\n* It's a good idea to check at least 4 directions (e.g. N/E/S/W) in each location. Checking 8 is better.\n* For each candidate location \u0026 direction, wait for 5 seconds then check the averaged Comb value (far-right column)\n* Once you have found the best location (largest Comb value in a practical location), turn the router until CINR0 and CINR1 are reasonably well balanced\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidje13%2Frelish-signal-strength","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidje13%2Frelish-signal-strength","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidje13%2Frelish-signal-strength/lists"}