Feb 222015



When you plug it in, dmesg should report a new device. Here is my ouput of dmesg and lsusb -v.

Usage on the command line


Get it on Arch Linux:

sudo pacman -S i2c-tools
sudo modprobe i2c-dev

Detect I2C devices:

i2cdetect -l

check detailed capabilities of device 3 ( /dev/i2c-3 ):

sudo i2cdetect -F 3

Till Harbaum’s testapp:

sudo rmmod i2c_tiny_usb
cd ~/Downloads/i2c_tiny_usb/testapp
sudo ./i2c_usb


Jan 222015

Today I’m launching my own “What’s My IP” service. By accessing the address http://whatsmyip.reliable-ict.de you will get a text-only response containing only your (external) IP. This can be very useful to check if your internet connection works at all, to check IPv4/IPv6 connectivity, or to update your dynamic DNS entry.

On Linux, you can get the IP in the Shell with curl (for example):

curl -s http://whatsmyip.reliable-ict.de

You could then parse the address into a shell variable and use it in your shell script:

IP=$(curl -s http://whatsmyip.reliable-ict.de)
echo $IP

The service is IPv4 and IPv6 enabled (by default). In addition there are IPv4-only and IPv6-only counterparts available.

Jan 202015

Login / Web Interface


  • Web UI Address: http://aircard.hotspot/
  • Web UI IP Address:
  • Default Admin Password: webadmin
  • Web address for shared microSD card: http://aircard.hotspot/dav//

Short Specs

  • Supports up to 100 Mbps download, up to 50 Mbps upload (LTE Category 3)
  • LTE 800/1800/2100/2600
  • HSPA+/HSPA 900/2100 MHz
  • Dual band 2G
  • WiFi 802.11 b/g/n
  • Dimensions: 97.5 mm x 57 mm x 15.7 mm
  • Weight: 108 g
  • Package Contents: AirCard 762S Mobile Hotspot, Quick Start Guide, USB Cable, A/C Charger
  • Other Features:
    • WPS Button (WiFi Protected Setup)
Jan 062015

I bought the TFA 30.3155 (9.579 kbps).


If you build your own JeeLink-like stick from an Arduino (Nano) and a RFM12B module, use a voltage divider of 4.7k / 10k on the input lines (MOSI, SCK, SS) of the RFM12B. They are not 5V tolerant!

Jan 062015

Here are the steps required to install FHEM on Arch Linux:

# We start by updating our system first:
pacman -Syyu
# We install 'make':
pacman -S make
# Now we create the user / group:  fhem / fhem
groupadd fhem
useradd \
  --system \
  --create-home --home /opt/fhem \
  --gid fhem \
  --groups uucp \
  --shell /bin/false \
# We switch to that newly created user and change to its home directory:
su -s /bin/bash fhem
# We download FHEM, unpack it and change into the unpacked folder:
curl -O http://fhem.de/fhem-5.6.tar.gz
tar -xf fhem-5.6.tar.gz
cd fhem-5.6
# Now we are ready to 'install' FHEM:
make install

Here is the output of that last make install command:

Jan 032015


Key parameters for ATSAM3X8E

Parameter Value
Flash (Kbytes): 512 Kbytes
Pin Count: 144
Max. Operating Frequency: 84 MHz
CPU: Cortex-M3
no. of Touch Channels: 32
Hardware QTouch Acquisition: No
Max I/O Pins: 103
Ext Interrupts: 103
Quadrature Decoder Channels: 2
USB Transceiver: 1
USB Speed: Hi-Speed
USB Interface: Host, Device
SPI: 4
TWI (I2C): 2
CAN: 2
LIN: 3
SSC: 1
Dec 272014

By default, the OpenWrt images ship with only US regdomains for WiFi. This is annoying if you live anywhere outside the United States. Here are two different ways to fix this:

  • Patch an OpenWrt installation of an official binary distribution of OpenWrt: http://luci.subsignal.org/~jow/reghack/
  • Compile your own image and set CONFIG_ATH_USER_REGD=y: In menuconfig press [/] and type REGD. This will search all the menu items and display the path to reach it.

After following one of those steps you should be able to set the regulatory domain using the option country DE in /etc/config/wireless or via iw reg set DE (check via iw reg get).

Oct 302014

For my home office, I needed a way to organize my cables, equipment and switches efficiently. The way I decided to go was to attach the equipment to my desk. In a first step, I created a rack to be attached below the back side of the desk. It served me well to move my switch and a line of power sockets there. The cables are out of my way and out of my sight. In the following step, I was planning and building a connector panel in the form of a desk-edge rack. See below for details.

Oct 302014

I want to run popcount on a large set of 144-byte-long bytearrays. Doing so in Python can be a pita! First, I was using the naive approach with bin(b).count('1') but it was very slow. I did some research on the internet for faster algorithms and I found some. But running an algorithm on a single byte and on a larger set of bytes (Python 3 type bytes with len() = 144) is a different story. So I decided to do some benchmarks with different algorithms: