Installing PyQT on Windows with Visual Studio



  • Visual Studio 2010 or later
  • QT for Visual Studio
  • Python 2.7 or 3

Installation Instructions

  1. Download latest Windows source SIP package from here and extract to some directory
  2. Run “Visual Studio Command Prompt” (which includes nmake in PATH)
  3. Run the following from within extracted directory:
  4. Download PyQT source code package from here extract to some directory
  5. Add qmake.exe path to PATH variable, e.g.:
  6. Run the following from within extracted directory:

  7. You are done!

read more

Cross compiling collectd for ARM device


The following procedure will compile collectd package for AsusWRT router RT-AC56U (based on Broadcom BCM4708 ARM Cortex-A9 Dual-Core CPU).


You will need Broadcom toolchain available in asuswrt-merlin package.

Build process

 Get binaries

In my case the following didn’t worked (probably as a result of some bug):

Good luck!

Organic Trust: The Need For Generic IoT Security Paradigm

Untitled (Small)

The Need For Trust

As IoT propagates deeper into our lives, security mechanisms must be standardized to provide a clear and transparent view into how secure each and every connected device truly is. One of the show stoppers for mass adoption of consumer IoT products, is the lack of a convenient way for end users to estimate if a certain product can be considered safe and can be trusted for daily use.

One example is the connected camera market, which suffers from a lack of trust following few widely known security breaches, including a hack of Trendnet in 2012, which exposed sleeping babies and children and prompted an FTC investigation, as well as Insecam, a Russian site that linked to 73,000 unsecured security camera locations across 256 countries and was shut down by authorities this past November.

read more

Configuring Eclipse for ASUSWRT cross-compile

The following tutorial applies for Broadcom based Asus routers (e.g. RT-AC56U, RT-AC87U, etc.).

  • No recompilation of router software is required.
  • No need to set environment variables or to create Symlinks (as required by asuswrt tutorials)


  • Eclipse CDT installed (I use latest Eclipse Luna)
  • Clone asuswrt-merlin or download official Asus GPL source (e.g. RT-AC56U)

Configuring Eclipse project

  1. Open new C project with “Cross GCC” toolchain (you can use Hello World template)
  2. Set Cross compiler settings to:
  3. Finish project creation
  4. Go to Project properties => C/C++ Build => Settings
  5. Under Cross GCC Compiler:
    1. Under Includes sub-menu, add the following includes
    2. Under Optimization sub-menu set “Optimization Level” to “-O3”
    3. Under Miscellaneous sub-menu set “Other flags” to

    read more

Flysky Arduino Transmitter for V911/V929/V939/V949/V959 Quadrotors

Following my previous post about reverse engineering Flysky TX, generous help from Deviation TX and several evenings with Logic and Scope, I wrote an Arduino library that currently tested on Arduino Due and Arduino Pro Mini 8Mhz – both of them working with 3.3v levels. I tried this code with Arduino Mega 2560 and level converters, but failed at this stage.

The library can be found here

I removed A7105 module from V929 transmitter and connected it as the following

Arduino Pro Mini

read more

Arduino Due / SAM3X8e information for developers

I found the documentation of this platform is very limited and lacking, so I decided to collect the available information in one resource.

Chip datasheet describing the whole functionality in very low level manner (registers instead of functions).

SAM3X-Arduino Pin Mapping

DACC (Digital to Analog Converter Controller)



Reverse engineering WLToys V911/V929/V939/V949/V959 FlySky protocol

I am trying to control the WLToys V929 with Arduino instead of the original transmitter. This is the whole information I found regarding this particular protocol

[28/07/2014] – Find here my working Arduino library

FlySky protocol information

A great free book about reverse engineering

I haven’t seen a really great book about reverse engineering for a long time, until I bumped into “Reverse Engineering for Beginners” by Dennis Yurichev.

I think this 700 pages free book covering recent popular technologies like x64 code and ARM CPU, might be a great resource not only for beginners and not only for reverse engineers, but also for advanced developers (PC and embedded) looking to optimize their software and willing to know how decent hackers think.

The book contains:

read more

Unpublished facts about charging Samsung Galaxy smartphones


I collected some officially unpublished technical facts about charging Samsung Galaxy phones (maybe some of you will find it useful). Those of you experiencing charge problems when using car USB adapter /power bank/USB tethering should read it

  1. If you charge the phone from PC USB, it will NOT draw more than 500mA (USB current by standard). It means that even if your USB port can provide more than that, the phone will not draw it. This is why you might experience that your battery is actually discharging (even though it shows you charging icon) when you connect your laptop to the internet through USB tethering.
  2. The phone detects that it can draw more than 500mA when USB data pins are shortened (this is how it knows that charger is connected). Standard Samsung chargers (1A or 2A), are responsible for shorting those pins. This is why you can use the same USB cable for charging with high Amps  and for transferring data.
  3. Some of you might have experienced that if you connect 3’rd party USB charger like car USB adapter or “power bank”, the phone is not charging at all or charging very slow (even if the charger can provide 1 or 2 amps. This happens because data pins are not shortend or even disconnected and charger or phones terminates charging process (It happend to me with Galaxy S3 and China power banks and car adapters bought from Aliexpress) . To solve this issue, you should use a special charging cable (which does data pin shortage) instead of regular USB data cable.
  4. You phone will probably not charge if you use special (or bizarre) cables like this one, providing USB host (for connecting USB devices to your phone) and additional USB port for connecting charger. I have not yet found a solution for this case.

read more