Personal portable 3G router

A battery-powered router with enough features to be unique. WiFi, wired, 3G+ anything I'll need from OpenWRT on it.

Similar projects worth following
Hello, Hackaday guys! I'm starting a small project after a long break, and I've decided to make build log articles as I go through it. As much as being another exercise in documenting and writing, it's also definitely worth sharing and I'm sure you'll enjoy it.

This project is my need of Internet everywhere I go expressed in hardware. I could have taken a 3G battery-powered Huawei router I have in a drawer, but let's be honest - it sucks. It's full of vendor lock-in, tricky to get OpenWRT on and otherwise not suitable. If I'm gonna build my own, I'm gonna make it do everything I'd need on the go - from FTP to PXE. Oh, and there's a couple of things I keep in mind that you'll be surprised about...

This project is also an effort to support Black Swift board - a tiny OpenWRT board developed in Russia which was funded using IndieGoGo. I like this project and therefore I think it needs a highlight.

I'm building a custom 3G router for all my Internet needs. It's going to be portable, with battery backup enough to get through about half a day with more or less active 3G usage, able to be charged using 5V, so any USB socket would do if I needed network access and it was discharged... As well as any barrel plug charger from 5V to 12V - I could unplug someone's router to charge mine =D

It'll be powered by Black Swift board, an SD-card sized AR9331 development board, running OpenWRT. It's going to have some additional features, such as support of many kinds of USB devices, file, printing and music servers, some additional services, such as transparent VPN connection and ad-blocking proxy and, generally, whatever I manage to code in and connect to the board.

Some technical specs:

  • Black Swift board - AR9331 board with DDR2 memory and built-in WiFi, as well as 2 Ethernet ports available on breakout connectors.
  • Li-ion battery, 2x 18650 in a custom holder. Configuration: 1s2p, 3.7V, 4000mAh
  • Built-in step-down DC-DC to power it from all kinds of voltages, such as 9 or 12 volts. I'll use 5.5x2.5 socket for that, as it's one of the most popular barrel plug standarts.
  • USB 3G modem (for now, just a usual dongle, later I plan on getting a miniPCI-E card, I guess they're more power-efficient and otherwise optimised.)
  • USB hub - 4 ports for various devices, could be extended to 7 ports later if necessary
  • USB-UART connected to the BSB UART for easy debugging - just take the cable, plug it in your laptop and see the boot logs
  • Arduino to offload some pin-wiggling and power management tasks
  • Possibly, Bluetooth for sync,audio and stuff =)
  • IR receiver for control
  • RGB LED for diagnostics and status indication
  • DTMF generator with a speaker as original approach to diagnostics =)
  • Available USB ports for both charging and connecting devices
  • DS1307 RTC with battery backup - I have plenty of these ICs, would have been a shame not to stuff it in =)
  • LED lamp for searching, reading and hacking.
  • ...more things already being planned =)

I'm gonna fit it all in a small case you can see on the picture. It's a case which probably was a case for an old USSR transformer PSU for some piece of tech, could even have been a radio =) Anyway, this is a nice case, as it allows me to make a prototype and change it on the go, yet keep it relatively small and portable. I like how this case limits me yet fuels my imagination on how I can do things more efficiently.

Current state of the project:


gobi 1000 firmware files - see

x-xz - 46.55 MB - 02/06/2022 at 05:58


  • Case limitations

    Arya09/23/2016 at 19:24 0 comments

    So, I've got all the necessary components:

    • 2 Hanrun magjacks for Ethernet functionality
    • Mini PCI-E modem for 3G
    • Mini PCI-E to USB breakout with SIM slot
    • HC-SR05 ultrasonic sensor
    • A small flash drive for extroot&storage

    I've actually been using this router for a couple of months. The limiting factor, however, was that I didn't manage to make it both create a network and connect to one. Thus, it was useless, though functioning. I also managed to re-design it a couple of times, making it a little nicer each time. However, it still needs to be finished.

    I've tried to make one more attempt with making MagJack breakouts, essentially, SMT-deadbugging all the passives onto the jack itself and making a small 3D-printed insert to hold it all in the place designed for it. The insert turned out to be OK, however, the result turned out ot be horrible - the case wasn't meant for that, that's for sure. In the end of my tinkering, it just broke and that was the end of my efforts for that day.

    So far, the case has been a nice limitation. However, it's time to remove it from the equation by... Drawing the exact same case in 3D and printing it, with all the holes and necessary features done already. It will also make the project much more repeatable (save for the fact that it uses a devboard that's impossible to get from anywhere nowadays). This could also be an excellent opportunity to try one of those free CAD packages.

    Stay tuned~!

  • Why existing power management sucks

    Arya02/05/2016 at 16:42 0 comments


    Today I'm going to tell you about Alice's power management and power structure. As for today, it is like this:

    It's pretty simple and mostly made of ready-to-go modules. This is one of my beliefs - projects like this are better if they're modular (modules are presumed to be easily available though). This reduces human error, decreases total effort necessary to build the thing for all the others and can serve as a learning material. In this case, I'll try to ensure this is a good learning material for anybody that'd like to build his own thing - or maybe even replicate my project. Now, with these intentions in mind, I'll start describing what I've constructed.


    First of all, Lithium-ion batteries. This is an excellent power source, not as scalable as others but you can build your own thing pretty easily. Research is the key though. Once you know, i.e. that you can't simply hook a Li-ion cell to a PSU to charge it, what PCM means and what it protects from, as well as acquire all the components necessary, there's one more widely available type of power source in your arsenal. For Li-ion, there's still a lot of theory behind not burning your house, so DO YOUR HOMEWORK BEFORE.
    The magnets trick is a nice one.

    I've got a lot of 18650 elements from laptop batteries, so I've decided to make them hot-swappable in addition to being chargeable while in the device. This way, I can minimise downtime in case of batteries getting flat and no power source being nearby - I tend to carry 18650 cells with me, as this isn't the only project powered by them =). The case limits me to 2 18650 cells, and 2s1p configuration would be tricky since I need balancing for charging them in a way other than out of the device - I don't have any balance charging modules that'd be as easy to use, and I couldn't use 5V to charge the battery without overcomplicating my setup, so paralleling cells is the way to go.

    I don't need to (and I really shouldn't) solder wires to the batteries, so I needed a holder. However, all the pre-made holders are either bulky, expensive or both. I've made my own holders before, all you need is 2 pieces of metal - and a way to hold them tightly against the battery poles. Now I advise against these spring-loaded contacts you typically can salvage out of cheapest battery holders if you don't have a really tightly packed enclosure in which they can be securely fixed. In other words, don't use them if at least one of your contact groups has at least one axis of freedom.

    I've bought a battery holder with nice flat yet strong contacts (spring-loaded also take more place) and embedded them in my case with hot glue and a couple of wires. Simple and takes less space than anything you can buy.

    A CR123 holder, AKA the only one a local shop had that had this type of contacts and wasn't too expensive.

    For charging and protection, I'm using the following module:
    Disregard "5V-", it's GND. Battery GND is not GND, though, it goes through the protection module, so you shouldn't short it with GND.

    Charging+protection module based on TP4056 IC. It's a linear Li-ion charger, only meant for 1sXp configurations and capable of handling no more than 1A (current configurable with R3), but that's enough for me since total capacity is about 3-4Ah (they've been salvaged from a laptop battery, after all). I also don't mind the heat issue, it doesn't have much heat-sensitive components around. It takes around 5 hours to charge from totally discharged batteries to full charge.

    There's a difference between a module with protection and without. If you're building a simple charger and there's no consumer of the battery connected to it, you should be OK with an unprotected module. If it's a device, you want the cell protected so you get the module that includes protection. Both are useful so I try to keep enough of both types for all the chargers and devices I might build.

    Once that's sorted out, we need a power input for charging. Since I've already defined that it needs to be 5V capable, there's a MicroUSB socket sticking out the case which, conveniently enough, is the socket on the charger board - I can simply make a hole for it, so that's what I did. It's in parallel with the IN pads on the charger board, and in parallel with the...

    Read more »

  • Announcement

    Arya01/28/2016 at 00:42 0 comments

    What I'm going to do:

    • Make a battery charging/monitoring/DC-DC setup that's not too complicated and yet safe to use with Li-ion - in progress
    • Assemble the thing. Write some sample code, as well as Arduino firmware test.
    • Set up Python on my board and do some benchmarks to understand whether it fits the board and whether it works fast enough.
    • Make some user-friendly scripts to automate things, such as USB auto-mount with additional actions, SMB/NFS share creation for new partitions, printer hotplug and so on
    • Automate some time-consuming repetitive tasks, such as uploading packages and firmwares on the board for testing
    • Learn to assemble my own packages and firmware binaries, try to support the infrastructure for other users, too
    • Try to set up IR receiver on GPIO with LIRC - this was a big struggle for me when I last tried doing it with OpenWRT, I wasted a couple of days
    • Assemble and test SPI flash programmer prototype which uses Raspberry Pi, it can be used for ISP on Pro boards and programming of desoldered chips of Basic boards - just in case I mess up the bootloader =)
    • Try to learn some C/C++ writing drivers for stuff I'll be connecting (I've always got Python in case driver writing appears too complicated =) )
    • Later, make a new hardware revision with more electronics on a custom-made PCB, more batteries and a better case, preferably wearable on a belt, though not necessarily.

    Here are some photos to show you what it looks like now with power input and management stage in the making, finished and re-made again after finding some problems:

    (Masking tape to be removed soon)

View all 3 project logs

Enjoy this project?



Craig Hissett wrote 09/24/2016 at 00:04 point

This is great man! I'd love a portable network like this!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates