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 192.168.0.0/24 pool which collides with my home network (192.168.0.0/22) 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

Barometric pressure sensor, Raspberry, Python and things in the works

After a few weeks of waiting, I’ve finally received two breakout boards with BMP085 barometric pressure sensors.

These little chips can run from as low as 1.8V to 3.6V, and measure atmospheric pressure within a 300-1100hPa range, as well as temperature within -40 – 85C range.
They provide a standard I2C interface, so connecting them to Raspberry Pi, Arduino, MSP430 Launchpad etc. is quite easy.
You can get these sensors from Sparkfun, Adafruit (~$20) or (like I did) from Dealextreme (~$8).

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