inital commit

Signed-off-by: s0me1newithhand7s <117505144+s0me1newithhand7s@users.noreply.github.com>
This commit is contained in:
s0me1newithhand7s 2025-09-10 20:26:51 +03:00
commit 5065633a38
No known key found for this signature in database
10 changed files with 467 additions and 0 deletions

1
.obsidian/app.json vendored Normal file
View file

@ -0,0 +1 @@
{}

1
.obsidian/appearance.json vendored Normal file
View file

@ -0,0 +1 @@
{}

33
.obsidian/core-plugins.json vendored Normal file
View file

@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": false,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}

175
.obsidian/workspace.json vendored Normal file
View file

@ -0,0 +1,175 @@
{
"main": {
"id": "88282d4d8dccd5aa",
"type": "split",
"children": [
{
"id": "ac0586f75fc1db45",
"type": "tabs",
"children": [
{
"id": "1f7200af8a2f6425",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "New tab"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "1d19d262cbb633ce",
"type": "split",
"children": [
{
"id": "5ee5a0f2f4e7c9a6",
"type": "tabs",
"children": [
{
"id": "d19ce695f7cb8a18",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "54f714ae8bb10b0d",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "059bff5b10a84cfb",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "209ef72b0a77bddb",
"type": "split",
"children": [
{
"id": "3d0e438c7bfa23e4",
"type": "tabs",
"children": [
{
"id": "dd7f001cd7d4eaa9",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks"
}
},
{
"id": "f573f7829c2a8eca",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links"
}
},
{
"id": "c02ccba9fda29cd6",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "839b605cd6fd7382",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"bases:Create new base": false
}
},
"active": "1f7200af8a2f6425",
"lastOpenFiles": [
"doc/cudy/TR3000.md",
"doc/content.md",
"doc/cudy/TR1200.md",
"README.md",
"Untitled.md",
"Pasted image 20250910161857.png",
"src"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 KiB

0
.trash/Untitled.md Normal file
View file

91
README.md Normal file
View file

@ -0,0 +1,91 @@
(if you have a better name pls create an issue xd)
<h1 align="center"> Project "Portable Router" </h1>
> [!WARN]
> i'm **NOT** responsible for the damage that this process could cause to your hardware. do this at your own risk and be prepared to debug, and debug a lot. in case you aren't familiar with basics of linux cli, OpenWRT / forks and networking - take your time, this will be hard. you have been warned.
---
### content
<details>
<summary> table of content </summary>
1. Disclaimer
2. Requirements
3. Current tested devices
4. Contribution
5. "But why?" or Reasons
6. P.S.
</details>
### structure:
in `doc/` we have `.md` files for routers tested;
in `src/` we have images and etc for text;
<h2 align="center"> Disclaimer </h2>
!!! **read WARN once more** !!! and this:
1. if you haven't tried OpenWRT / LEDE / etc - **read how to use it**. this repo **is not** a OpenWRT support forum!
2. if you have zero / close to zero experience in networking - **do your research first**. this repo **is not** a networking 101!
3. do **not** create issues like "Help my <routername> is bricked!" or "Will it work with <routername>?". do your research first! **OR**
4. if you want to **Contribute** - read how first!
5. and lastly - it's **not** a "budget-friendly router build"! (although some pocket-sized routers are cheap) it's all about **portable** routers.
<h2 align="center"> Requirements </h2>
mostly "Requirements" comes down to four things:
1. router itself
2. modem
3. power bank
4. SIM-card with internet
**however**, there are things to consider:
- your router **must** be on *OpenWRT* (or fork)
- your modem **must** support *mobile carrier aggregation*
- your power bank **must** provide enough power. e.g. my current setup w/ Cudy TR30 and Fibocom L850 consumes about 15W in a peak, that means my power bank must be at least 20W with PD on port
optionally, you can have:
- VPS for wg/proxy hosting
- switch for expanding amount of Ethernet ports
- USB extension cord
- Physical eSIM
<h2 align="center"> Current Tested Devices </h2>
| Image | Status | Link | Author |
| - | - | - | -|
| <img src="https://www.cudy.com/cdn/shop/files/TR1200.png" width="250"> | Working; Small amount of RAM and not so fast CPU, stable branch; | [Here](./doc/cudy/TR1200.md) | hand7s |
| <img src="https://www.cudy.com/cdn/shop/files/TR3000.png" width="250"> | Working; 128mb revision is preferred since it's on a stable branch; | [Here](./doc/cudy/TR3000.md) | hand7s |
<h2 align="center"> Contribution </h2>
to expand list above you need to:
1. create an issue with "add router" template
2. go trough testings (with help from community ofc)
3. fork **this** repo with branch's name of your router, e.g. `xiaomi_ax3200`
4. write an `.md` in `doc/` directory in a respected directory, e.g. `doc/cudy/TR3600.md`
5. add your router to [this](./doc/content.md) `.md`
6. open a PR!
<h2 align="center"> But.. Why? </h2>
this is a healthy question considering whole idea, but you might misunderstood why i've started this in a first place.
most of ISPs are garbage. anywhere in the world you'll pay a lot for bare minimum, sometimes even [security holes](https://youtu.be/TFolQUeWoog?si=tX3JFeQKcmBawhtt) in your ISP, and even if you pay premium - stability still an option, not a requirement. one day i said "enough" and got into this project.
yet, mobile carriers not all rainbows and unicorns - various prices, various features, questionable contracts. but you can easily swap mobile carrier since it's just a SIM (or, if you'll buy physical eSIM, just a carrier) and not a whole big process of changing ISP, and way cheaper. and you are **NOT** forced to use crappy ISP hardware.
and there are more benefits:
1. you can use Modem as your backup / second ISP via [mwan](https://openwrt.org/docs/guide-user/network/wan/multiwan/mwan3)
2. you can use PPR (yes, it's a PPR in a short) as a second / backup router itself
but the main feature for this project - being **off-grid**.
having this little thing in you backpack and giving yourself a part of private internet with your **own** rules (WG, OVPN, Proxy, Provider) anywhere in the world (with right setup). just pull this thing out of backpack and use it in a public cafe and use your internet by cable for your laptop. or Wi-Fi, if you brave enough. you can even have a working WIRED internet while driving / on a train, if you catch a signal. and if signal is GOOD - aggregation kicks in. possibilities are numeros.
in general, you *could* try this with any branded router and random USB modem stick, but idea of PPR is not only "Router + Modem". it's a "efficient portable router on a OpenWRT firmware with USB modem that supports mobile carrier aggregation".
i hope this answers question "why".
<h2 align="center"> P.S. </h2>
huge thanks to [Askhat](https://github.com/Askhalion) for helping me with this
[![staaaaars](https://api.star-history.com/svg?repos=s0me1newithhand7s/PortableRouterProject=Date)](https://www.star-history.com/#s0me1newithhand7s/PortableRouterProject&Date)

6
doc/content.md Normal file
View file

@ -0,0 +1,6 @@
<h2 align="center"> Current Tested Devices </h2>
| Image | Status | Link | Author |
| ---------------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------- | ------ |
| <img src="https://www.cudy.com/cdn/shop/files/TR1200.png" width="250"> | Working; Small amount of RAM and not so fast CPU, stable branch; | [Here](./doc/cudy/TR1200.md) | hand7s |
| <img src="https://www.cudy.com/cdn/shop/files/TR3000.png" width="250"> | Working; 128mb revision is preferred since it's on a stable branch; | [Here](./doc/cudy/TR3000.md) | hand7s |

79
doc/cudy/TR1200.md Normal file
View file

@ -0,0 +1,79 @@
<h1 align="center"> Cudy TR1200 </h1>
```Sh
.______ __
| |.--.--.-- | |.--.--.
| ---|| | | _ | || | |
|______||_____|______||___ |
. OpenWrt firmwares |_____|
```
[OpenWRT page](https://openwrt.org/toh/cudy/tr1200)
<img src="https://www.cudy.com/cdn/shop/files/TR1200.png" width="500" align="center">
| Name | Spec |
| --------- | ------------------------------------------- |
| CPU | MediaTek MT7628AN x 1 @ 580 Mhz (MIPS) |
| ROM | 16MB SPI NAND |
| RAM | 128MB DDR3 |
| WLAN | MediaTek MT7613BEN (Wi-Fi 5) |
| UBS | + (2.0) |
| Power | PD 10W via USB Type-C |
| LAN | 2x 1Gpbs MT7628AN |
| Dimension | 15 by 15 by 10 cm |
| | |
## Short Description
entry-level thing:
- only Wi-Fi 5 and 1Gbps
- 10 watts is crazy
- USB 2.0 *might* not be enough for chonky modems
- 16MB of ROM is not enough (u-boot layout might help)
- 1 MIPS core is not enough
- yet, RAM is plenty
- small
## How2
1. OpenWRT Transition
1. update [stock firmware](https://www.cudy.com/pages/download-center/tr3000-1-0) to latest version
2. use special [Cudy Intermediary OpenWRT firmware](https://drive.google.com/drive/folders/1BKVarlwlNxf7uJUtRhuMGUqeCa5KpMnj?usp=sharing&pli=1) to sysupgrade to OpenWRT
3. download latest stable build for your OpenWRT of choice (for e.g. https://firmware-selector.openwrt.org/?version=24.10.2&target=mediatek%2Ffilogic&id=cudy_tr3000-v1)
4. do whatever you need to setup OpenWRT for you **before** next step, do **not** forget about backups
2. Fibocom L850 Support
1. ssh to your router
2. you need to update (still a) `opkg` via `opkg update`
3. you need to install `modemmanager` and `luci-proto-modemmanager` via `opkg install modemmanager luci-proto-modemmanager`
4. now reboot
5. after reboot you'll need to execute `AT+GTUSBMODE=7` in a modem shell and then reboot once more
6. and now you can setup connection via `modemmanager` !
3. Fibocom L850 alternative way
1. instead of `modemmanager` we could use `openwrt.132lan.ru`'s packages and script.
2. `opkg update` before everything
3. now `wget -O /tmp/add.sh http://openwrt.132lan.ru/packages/24.10/packages/add.sh` and then `sh /tmp/add.sh`
4. now we need to `opkg update` once more
5. after that `luci-app-modeminfo`, `modeminfo`, `modeminfo-serial-xmm`, `modeminfo-serial-fibocom`, `luci-proto-xmm`, `xmm-modem`, `atinout` and `luci-app-atinout` will be available to install via `opkg install luci-app-modeminfo modeminfo modeminfo-serial-xmm modeminfo-serial-fibocom luci-proto-xmm xmm-modem atinout luci-app-atinout`
6. now reboot
7. after that you'll be able to use `Intel XMM Cellular` as an Interface!
## Optional
> [!WARN]
> 16MB of ROM
1. WireGuard:
1. `opkg update`
2. for cli-only `opkg install kmod-wireguard wireguard-tools`
3. for luci usage `opkg install kmod-wireguard wireguard-tools luci-proto-wireguard`
4. reboot
5. now you'll be able to use `Wireguard` as an Interface!
## Caveats
- no heatsink
- USB 2.0 is not powerful enough for dual USB setup (USB thumb drive + USB Modem)
- 16MB of ROM (3rd time is a charm)
---

81
doc/cudy/TR3000.md Normal file
View file

@ -0,0 +1,81 @@
<h1 align="center"> Cudy TR3000 </h1>
```Sh
.______ __
| |.--.--.-- | |.--.--.
| ---|| | | _ | || | |
|______||_____|______||___ |
. OpenWrt firmwares |_____|
```
[OpenWRT page](https://openwrt.org/toh/cudy/tr3000)
<img src="https://www.cudy.com/cdn/shop/files/TR3000.png" width="500" align="center">
## Table of hardware
| Name | Spec |
| --------- | ------------------------------------------- |
| CPU | MediaTek MT7981BA x 2 @ 1.3 GHz (Cortex-A53)|
| ROM | 128MB (or 256MB) SPI NAND |
| RAM | 512MB DDR3 |
| WLAN | MediaTek MT7976CN (up to Wi-Fi 6) |
| UBS | + (3.0) |
| Power | PD 15W via USB Type-C |
| LAN | 1x 2.5Gbps RTL8221B, 1x 1Gpbs MT7981BA |
| Dimension | 15 by 15 by 10 cm |
| | |
## Short Description
little agile monster of networking (imho):
- 2.5gbps is nuts
- Wi-Fi 6 is nuts
- ONLY 15 watts for whole router
- small
- MTK chipset, and even good one
- decent amount of ROM (you can use u-boot layout for more ROM btw)
- and 256MB version, comming soon(tm) on a stable OpenWRT (but you can build your own)
## How2
1. OpenWRT Transition
1. update [stock firmware](https://www.cudy.com/pages/download-center/tr3000-1-0) to latest version
2. use special [Cudy Intermediary OpenWRT firmware](https://drive.google.com/drive/folders/1BKVarlwlNxf7uJUtRhuMGUqeCa5KpMnj?usp=sharing&pli=1) to sysupgrade to OpenWRT
3. download latest stable build for your OpenWRT of choice (for e.g. https://firmware-selector.openwrt.org/?version=24.10.2&target=mediatek%2Ffilogic&id=cudy_tr3000-v1)
4. do whatever you need to setup OpenWRT for you **before** next step, do **not** forget about backups
2. Fibocom L850 Support
1. ssh to your router
2. you need to update (still a) `opkg` via `opkg update`
3. you need to install `modemmanager` and `luci-proto-modemmanager` via `opkg install modemmanager luci-proto-modemmanager`
4. now reboot
5. after reboot you'll need to execute `AT+GTUSBMODE=7` in a modem shell and then reboot once more
6. and now you can setup connection via `modemmanager` !
3. Fibocom L850 alternative way
1. instead of `modemmanager` we could use `openwrt.132lan.ru`'s packages and script.
2. `opkg update` before everything
3. now `wget -O /tmp/add.sh http://openwrt.132lan.ru/packages/24.10/packages/add.sh` and then `sh /tmp/add.sh`
4. now we need to `opkg update` once more
5. after that `luci-app-modeminfo`, `modeminfo`, `modeminfo-serial-xmm`, `modeminfo-serial-fibocom`, `luci-proto-xmm`, `xmm-modem`, `atinout` and `luci-app-atinout` will be available to install via `opkg install luci-app-modeminfo modeminfo modeminfo-serial-xmm modeminfo-serial-fibocom luci-proto-xmm xmm-modem atinout luci-app-atinout`
6. now reboot
7. after that you'll be able to use `Intel XMM Cellular` as an Interface!
## Optional
1. WireGuard:
1. `opkg update`
2. for cli-only `opkg install kmod-wireguard wireguard-tools`
3. for luci usage `opkg install kmod-wireguard wireguard-tools luci-proto-wireguard`
4. reboot
5. now you'll be able to use `Wireguard` as an Interface!
2. OpenVPN:
1. not recommended since no official kmod for OVPN (yet)
## Caveats
none
---
p.s.
my current setup lmfao