{"id":21431744,"url":"https://github.com/robotical/openwrt-hubplusconfig","last_synced_at":"2026-01-03T00:55:05.461Z","repository":{"id":48652201,"uuid":"132659617","full_name":"robotical/OpenWRT-HubPlusConfig","owner":"robotical","description":"Config scripts for GL750M Router-based Robotical Command Hub Plus","archived":false,"fork":false,"pushed_at":"2021-10-14T17:28:57.000Z","size":757,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T08:41:46.412Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://robotical.io/shop/sku/27","language":"HTML","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/robotical.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}},"created_at":"2018-05-08T20:12:19.000Z","updated_at":"2020-05-18T12:50:12.000Z","dependencies_parsed_at":"2022-08-31T23:51:17.717Z","dependency_job_id":null,"html_url":"https://github.com/robotical/OpenWRT-HubPlusConfig","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotical%2FOpenWRT-HubPlusConfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotical%2FOpenWRT-HubPlusConfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotical%2FOpenWRT-HubPlusConfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotical%2FOpenWRT-HubPlusConfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robotical","download_url":"https://codeload.github.com/robotical/OpenWRT-HubPlusConfig/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243944930,"owners_count":20372885,"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-11-22T23:14:23.859Z","updated_at":"2026-01-03T00:55:05.417Z","avatar_url":"https://github.com/robotical.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nGL750M Install \u0026 Configure\n===\n\n\nHardware Setup for Development Code\n-----------------------------------\n\n1. You need a SD card, with a single, Linux compatible partition on it like FAT or better, EXT4.\n2. Open a terminal and change directory to the SD card.\n3. Shallow Clone/copy the whole contents of this repo onto it, so that the `src` folder is in its\n   top level directory, like so:\n\n        git clone git@github.com:robotical/OpenWRT-HubPlusConfig.git ./ --depth=1 --recurse-submodules\n\n4. You may optionally need a private signing key, which isn't in git. It goes in the top level as `.signing.secret`\n5. Unmount then Remove the SD card from your computer and insert it into the Router.\n6. Turn the router on -- it'll take a couple of minutes to fully boot. You can tell it has booted\n   when all three front LEDs are lit.\n7. Whilst it is booting, put a Robotical sticker on it!\n8. Go to **\"Software Setup\"**\n\n\nHardware Setup for a  Release\n-----------------------------\n\n1. You need a SD card, with a single, Linux compatible partition on it like FAT or better, EXT4.\n2. Unzip the release ZIP onto the SD card, so that the top level directory of it has:\n    1. A single folder called by the release name e.g. `3.14.1`\n    2. The public signing key (hidden file) called `.signing.pubkey`\n4. Unmount then Remove the SD card from your computer and insert it into the Router.\n5. Turn the router on -- it'll take a couple of minutes to fully boot. You can tell it has booted\n   when all three front LEDs are lit.\n6. Whilst it is booting, put a Robotical sticker on it!\n7. Go to **\"Software Setup\"**\n\n\nSoftware Setup\n--------------\n\n1. Preferably Connect a computer using an ethernet cable, or connect to its WiFi network,\n   `GL-AR750-___ network` password `goodlife`\n2. Go to http://192.168.8.1 (the router's homepage)\n3. You should see the iNet GL first time setup thingy, asking you to choose a language. No need\n   to do anything there.\n4. ssh into the router: `ssh -o StrictHostKeyChecking=no root@192.168.8.1` (There should be no\n   root password). In Windows, you can use PuTTY to ssh.\n5. Once connected over SSH, **Set a root password**, this can be done like so: `passwd root -d \"martyrocks\"`.\n6. `cd` to the SD card, which is mounted at `/mnt/sda1`\n6. `cd` to main directory, which is at `/mnt/sda1/src` or `/mnt/sda1/\u003cversion\u003e` for a release.\n7. Run the web install scripts: `./install.sh`.\n8. Go back to http://192.168.8.1 and check that\n   * The page now shows the command hub homepage\n   * The link to ScratchX works and loads the extension properly\n9. The new SSIDs and WiFi passwords are set.\n10. Reboot the router and check that http://192.168.8.1 comes back up, that the SSIDs are now\n    `martyHubPlus-5G` and `martyHubPlus-2G` and the WiFi password `martyrocks` works. \n11. Fin!\n\n\nUsing your Hub\n--------------\n\nYou should usually use the hub in an **air gapped** manner, meaning it is not connected to the Internet\nand just presents a WiFi network.\n\nAlternatively, you can **connect the Hub to the internet** using an Ethernet cable into the **WAN** port\n(shown with a little Globe Icon), or via USB tethering through the USB-A port (this seems to work with\nsome but not all dongles or phones)\n\nYou may need or access the *OpenWRT* config page on the router, at\n[`http://192.168.8.1/cgi-bin/luci`](http://192.168.8.1/cgi-bin/luci)\n\nIf you want to connect your Hub to the Internet, we **strongly** recommend that you first:\n\n1. Change the WiFi password from the default `martyrocks`\n2. Change the SSH password too\n3. Treat the Hub and the Hub's WiFi network with the same level of scritiny and security\n   conscientiousness you would your own home router.\n\nIf using the Hub in a **Networked manner**, you can then use the 'normal' Scratch and Marty Programming\ninterfaces instead of the included ones. These online interfaces are more likely to be up-to-date.\n\nThe Hub also offers many other configuration options, including VPN, UoPnP, USB Storage Sharing and\nDDNS support.\n\n**If you connect your Hub to a newtork** you *must* ensure you have secured its config, changed its\npassword and are comfortable + understand that the hub could, if miscounfigured, cause problems.\n\n\nUpdating your Command Hub (Normal Edition)\n------------------------------------------\n\nTurn off the Hub, remove the SD card and insert it in to a computer. Copy the [update files](https://github.com/robotical/OpenWRT-HubPlusConfig/releases) onto\nthe SD card:\n\n       /hub-update.zip\n       /hub-update.zip.sig\n\nThen simply pop it back in the Hub and turn it back on. It should install the update on boot.\n\n\nUpdating your Command Hub (Development Edition)\n-----------------------------------------------\n\nYou can check what version of Hub software you're running by running `. /mnt/sda1/VERSION` on the hub.\n\n1. Remove the SD card from the Hub and plug it in to an internet-connected computer\n2. Change to the SD card top-level directory. \n3. Run the following command to fetch latest files:\n\n        git pull origin master --recurse-submodules\n\n    This will fetch the latest version of\n    [this repository](https://github.com/robotical/OpenWRT-HubPlusConfig)\n    and the linked Submodules (currently Scratch)\n4. If on a computer, eject the card, add it back to the hub and reboot, SSH in to it, `cd /mnt/sda1`\n4. Run the update script: `./update.sh`\n\n\nMaking a Release\n----------------\n\nThis is very similar to just cloning the repo, but with extra steps!\n\n1. Test that the hub works with this exact set of files! To do this you need to do a full reset and install.\n2. To check everything is working before making a release, copy the contents of `src/` onto the\n   SD card into a folder called `master/`, and also copy over `.signing.pubkey` to the top-level\n   of the SD card (*not* inside `master/`).\n3. Install from `master/install.sh` as you would any another release\n4. Once you've checked all is OK, you can proceed:\n5. Change `./VERSION` and increment the version number within. Take note of what the number is...\n6. Do what you can re. making updates painless, see `update.sh`\n7. Now make a new git tag with *just* the version number (1.1.0 shown as an example):\n\n        git tag 1.1.0\n\n8. Push this tag to `origin`\n\n        git push origin --tags\n\n9. This will add the tag on GitHub. Go find the tag, and open up the tag editor so we can turn\n   it in to a GithUb release. Sadly the auto-generated source zips *won't* include the Git Submodules\n   so a few steps are needed to make a working downloadable zip.\n10. To do this, run the `makerelease.sh` script:\n    \n        ./makerelease.sh\n        \n    It will ask you to enter the version number and will then put together a release zip.\n\n11. Now go look at \"Signing the Release\" so you can put together a full release.\n\n\n_**Troubleshooting**_\n\nIf you get \n\n```\n!   Submodule 'scratch3-gui' .git is a directory not a file, see README.md\n```\n   \nfrom the `makerelease.sh` script, then run the git command\n\n```\ngit submodule absorbgitdirs\n```\n\nWhich will remove the `.git` directory in the submodules and place it within the root-level\n`.git` dir. This prevents the release ZIP from including all of the git history, which is\nlarge!\n\n\n\nSigning the Release!\n--------------------\n\n***Note to the Causal Reader:** There's a private key that we have that for obvious\nreasons won't be shared... You can make your own by typing the following into a terminal\non the Hub* `usign -G -p ./.signing.pubkey -s ./.signing.secret`. *Obviously, don't share it.*\n\n\nYou have to do this bit from the command line on a hub, so as to have access to the `usign`\nutility. With the zip file copied onto the Hub, rename it to `hub-update.zip`:\n\n```\n$ cd /mnt/sda1/\n$ mv OpenWRT-HubPlusConfig-0.0.0.zip hub-update.zip hub-update.zip\n#                          ^^^ Replace with correct here\n```\n\nThen create a signature (this will take approx. 10 seconds) and then verify that it\nworks good (another 10s or so):\n\n```\n$ usign -S -m ./hub-update.zip -s ./.signing.secret\n$ usign -V -m ./hub-update.zip -p ./.signing.pubkey\n```\n\nThis will make a new file called `hub-update.zip.sig` which is the signature you need!\nRemember, you'll need to re-sign if you make *any* change to the zip.\n\nIt's easiest to then just turn the hub off and copy these over.\n\n\nStuff\n---\n\n#### Resetting a Hub\n\nDefault (factory) UCI Wireless Conf.\n\nYou can factory reset the hub by holding the reset button down (looks like a circular arrow)\nfor 15 seconds, until it starts flashing really quickly, then releasing.\n\n```\nwireless.radio0=wifi-device\nwireless.radio0.type='mac80211'\nwireless.radio0.channel='36'\nwireless.radio0.hwmode='11a'\nwireless.radio0.path='pci0000:00/0000:00:00.0'\nwireless.radio0.htmode='VHT80'\nwireless.radio0.doth='0'\nwireless.radio0.txpower='20'\nwireless.radio0.band='5G'\nwireless.radio0.disabled='0'\nwireless.default_radio0=wifi-iface\nwireless.default_radio0.device='radio0'\nwireless.default_radio0.network='lan'\nwireless.default_radio0.mode='ap'\nwireless.default_radio0.ssid='GL-AR750-194-5G'\nwireless.default_radio0.encryption='psk-mixed'\nwireless.default_radio0.key='goodlife'\nwireless.default_radio0.ifname='wlan0'\nwireless.radio1=wifi-device\nwireless.radio1.type='mac80211'\nwireless.radio1.channel='11'\nwireless.radio1.path='platform/qca953x_wmac'\nwireless.radio1.htmode='HT20'\nwireless.radio1.hwmode='11ng'\nwireless.default_radio1=wifi-iface\nwireless.default_radio1.device='radio1'\nwireless.default_radio1.network='lan'\nwireless.default_radio1.mode='ap'\nwireless.default_radio1.ssid='GL-AR750-194'\nwireless.default_radio1.encryption='psk-mixed'\nwireless.default_radio1.key='goodlife'\nwireless.default_radio1.wds='1'\nwireless.default_radio1.ifname='wlan1'\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotical%2Fopenwrt-hubplusconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotical%2Fopenwrt-hubplusconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotical%2Fopenwrt-hubplusconfig/lists"}