How to turn a ~5€ A5-V11 pocket router into an XMPP chat-bot that lets you remotely access and control your home network from a smartphone — no port forwarding or dynamic DNS required.
Why the A5-V11?
In the quest for the cheapest off-the-shelf Linux hardware, the A5-V11 pocket router stands out — it consumes just ~0.3W, making it ideal for always-on IoT applications.
| CPU | 360 MHz MIPS (Ralink RT5350) |
| RAM | 32 MB SDRAM |
| Flash | 4 MB |
| Ethernet | 100 Mbit |
| Wi-Fi | IEEE 802.11b/g/n |
| USB | 1 port for peripherals |
| LEDs | Red and blue status indicators |
How it works
The custom a5v11-xmpp firmware strips down most router/Wi-Fi functionality to fit an XMPP chat client daemon (based on lib-gloox) that acts as a chat-bot. XMPP makes it easy to access your home network without tweaking your home router settings — no port forwarding or NAT configuration needed.
Keep this device connected to your home internet and "chat" with it from anywhere using the Xabber app on your smartphone.
Setup instructions
Step 1 — Create two XMPP/Jabber accounts (master and slave) on your favorite Jabber server as explained here. Add both accounts as friends so the XMPP server can pass messages between them.
Step 2 — Connect a CAT-5/6 cable between your PC and the A5-V11 router, then power it on.
Step 3 — Flash the stock firmware with the a5v11-xmpp image. Follow the step-by-step guide in this blog post (also see the OpenWrt wiki for general instructions).
Step 4 — Connect the A5-V11 router to your home router's network (internet).
Step 5 — Log in via SSH to host my-a5v11 (user: root, default password: brb0x).
Step 6 — Configure the XMPP login details:
echo "user: test-slave-account@xabber.de" >/etc/xmproxy/xmpp-login.txt echo "pw: chatbotpw" >>/etc/xmproxy/xmpp-login.txt reboot
Important: Replace the test account details with your own credentials. Also use passwd to change the default root password.
Step 7 — Install Xabber on your smartphone and log in with the master account.
Step 8 — You should see the A5-V11 router appear online in Xabber. Send help to get a list of available commands.
Use cases
1. Get your public IP — Send publicip and the chat-bot responds with your home router's public IP. No dynamic DNS needed.
2. I2C peripheral control — Connect an i2c-tiny-usb adapter to the USB port for controlling sensors, GPIO expanders, and other I2C devices:
shellcmd i2cdetect -r -y 0 # scan for I2C devices shellcmdresp # read the scan result shellcmd i2cset -f -y 1 0x3c 0x00 0xff b # set PCF8574 pins high
3. Sonoff relay control — Control Sonoff Wi-Fi relays running Tasmota firmware on your local network:
sonoff 192.168.1.10 on # switch ON sonoff 192.168.1.10 off # switch OFF sonoff 192.168.1.10 toggle # toggle sonoff 192.168.1.10 # read current state
4. Remote SSH commands — Trigger commands on other Linux machines via sshpass:
shellcmd sshpass -praspberry ssh -y pi@raspi-ip sudo reboot shellcmd sshpass -praspberry ssh -y pi@raspi-ip sudo poweroff shellcmd sshpass -praspberry ssh -y pi@raspi-ip omxplayer /tmp/video.mp4
5. Wake-on-LAN — Power on a PC that supports WoL:
shellcmd etherwake 00:00:DE:AD:BE:EF
SOURCE CODE
github.com/hackboxguy/lede-a5v11 — build instructions and sources
a5v11-xmpp.uimg — pre-built firmware image
4 comments:
Hello Albert, saw your video, it was fantastic. I am an undergraduate engineer, doing a project using open source electronics. My question to you is, with the help of this A5-V11-router will I be able to exchange messages between an arduino and smartphone?
Basically, what I am trying to achieve is creating a chat server between a smartphone and an arduino with wifi module.
Do you have any leads on this?
A great work indeed atleast to say. It Must get acknolwwedgemnt from us. Take a bow.
Excellent content with valuable information shared here. Whether you're a gamer or just curious about your mouse speed, the Mouse Clicking Test is worth checking out. It calculates your CPS score, records your total clicks, and helps users evaluate their clicking speed in a simple way.
Post a Comment