Changing ZTE MF823 4G modem IP address – web interface hacking

Here in Poland ZTE MF823 USB 4G modem is one of the most popular devices bundled with LTE data plans. I’ve got two of these – one from Play and the other from Plus GSM.

It’s one of those driverless modems which appear as a network interface (using cdc_ether driver under Linux) and have an embedded web server for management. This modem (?) also has a DHCP server and performs traffic routing with NAT.

Here comes my problem with the device. It assignes IP addresses from pool which collides with my home network ( and unfortunately, there is no option to change the IP address by using the web interface.

Continue reading

Code Recipe: Reading MSP430 power supply voltage level

While playing with solar cells and MSP430 Launchpad I needed to check if MCU’s power supply level is high enough to switch to higher clock speed and do some power-hungry stuff. As MSP430G2553 comes with built-in 10-bit analog-to-digital converter and precise 1.5V and 2.5V internal voltage references, the task was quite easy.

Continue reading

Building TP-LINK TL-WN725N WiFi USB Adapter driver for Raspberry Pi

UPDATE (2013-01-25): I’ve updated RPi firmware today and it seems that the latest kernel (3.6.11+) includes working driver for TL-WN725N. Instructions below are now obsolete/educational 😉

I’ve decided to replace TL-WN721N adapters with something smaller. After some research and tests with my old Debian laptop, I’ve bought two TP-LINK TL-WN725N 802.11n USB adapters.
In contrast to 721’s, they are smaller and are built on different chipset – Realtek RTL8188CUS.
Installation is not as easy as with Atheros-based adapters, because no kernel driver supports this chipset. Fortunately, Realtek provides open-source Linux drivers on their website.
So, let’s get started 🙂
Continue reading

Setting up hardware RTC in Raspbian

My Raspberries are expanded with DS3231 I2C realtime clock. It’s a very simple solution, as only required external component is a backup battery (crystal is integrated into the chip!). And it’s also claimed to be very accurate 🙂

By default, Raspbian installation uses “fake hwclock” to read previously stored date/time from file just before clock is synced by NTP client. We’re going to switch to “full” hwclock, first ensuring that our RTC is seen by kernel.
Continue reading