Skip to content

[VR] Solved: HDMI, DP setup problems with MSI VR One and Oculus Rift Release Version (DP to HDMI)

We solved the connectivity problems of Virtual Reality (VR) backpacks provided by Schenker (XMG) and MSI. As it turned out the backpacks are used best in combination of an DP to HDMI adapter (capable to handshake: Display Port (DP v1.2) and HDMI (v1.3)). See the image for a working example.


[MAC OS X] EyeTV OSCAM + eyetvCamd + libusb + smartreader + smargo + USB + SSL + OS X 10.11.x + 64Bit + MAC OS X Oscam Server with USB support for external readers

OSCam with ssl, libusb support
– os x changed its ssl library support
– libusb must be installed for external usb cardreader support

1. I recommend “brew” to install openssl
1.1. /usr/bin/ruby -e “$(curl -fsSL”
1.2. brew install openssl
1.3. this will install openssl to /usr/local/Cellar/openssl/xxx/
1.4. as oscam will look for openssl in /usr/local/include and /usr/local/lib you are welcome to link or copy it there manually

2. download libusb from here
2.1 configure, make, make install it

3. build oscam with ssl and usb support
3.1. get scam sources here: svn checkout oscam-svn
I recommend to checkout revision 10009 as this particular oscam version is even capable to split/proxy an external non reshareable line and is very stable/freeze free at all
3.2. setup config:
make allyesconfig
make USE_LIBUSB=1 LIBUSB_LIB=”/usr/local/lib/ -lobjc -framework IOKit -framework CoreFoundation”
3.3. make install

4. configure oscam
4.1 by default config files are located at /usr/local/etc
4.2 simple example of a hd01 card with a cheap usb smartreader
4.2.1 oscam.conf
nice = -1
logfile = /usr/local/oscam/oscam.log
usrfile = /usr/local/oscam/oscamuser.log
cwlogdir = /usr/local/oscam/cw

port = 15000@1830:000000;
key = 01…14
keepalive = 1

httpport = 1337
httpuser = myusername
httppwd = mypassword
httpallowed =,,
in order to be able to locate and use the correct smartreader, as osx is not mounting it via /dev/tty.usb.*, nor it does by udev, you must look for it in OS Xs registy entries by: system_profiler SPUSBDataType, as a result you will use your findings this way: “device = Serial:Reader DDA21FB” but replacing it with your own serial number (DDA21FB) oscam.server
label = hdplus01
description = smartreaderhdplus01
protocol = smartreader
device = Serial:Reader DDA21FB
caid = 1830
boxkey = A7…7C
rsakey = BF…D5
detect = cd
mhz = 369
cardmhz = 368
ident = 1830:000000,003411,008011
group = 1
emmcache = 1,3,2
auprovid = 003411
ecmwhitelist = 1830:92

4.2.3 oscam.user
user = eyetvcamd
pwd = eyetvcamd
au = hdplus01
group = 1

5. you need to configure eyetvCamd
5.1 run eyetvCamd to create a server.plist at /Users/your-username/Documents/eyetvCamd/server.plist
you must add all your wanted oscam.conf newcamd ports according to your settings

6. Prebuilt binaries
Btw.: you are welcome to download and use my prebuilt oscam/libusb/openssl binaries/libraries for OS X 10.11.X,
but you must copy the libraries in/to its correct directories/locations
you can find the locations by with otool: otool -L oscam or otool -L libusb.a


[MAC OS X] FIX: TensorFlow Python 0.10.0rc0 ProtoBuf Error






Hi, if you have trouble to use Google’s TensorFlow Python API with MAC OS X:

  1. Uninstall all previous TensorFlow and ProtoBuffer installations:
    1. pip uninstall tensorflow
    2. pip uninstall protobuf
    3. brew uninstall protobuf
  2. Reinstall TensorFlow (Update URL to latest master):
    1. export TF_BINARY_URL=
    2. pip install –upgrade $TF_BINARY_URL
  3. Test TensorFlow (Python script):
    import tensorflow as tf
    hello = tf.constant(‘Hello, TensorFlow!’)
    sess = tf.Session()
    a = tf.constant(10)
    b = tf.constant(32)
    print( + b))


[MAC OS X] Fix missing libraries of an existing binary by adding correct @rpath rpath LC_RPATH commands to the executable

Adding missing library path to an existing OS X binary:
For example: open tracker (see misses the correct relative @rpath:
otool -l /Applications/ | grep @rpath
name @rpath/QtWidgets.framework/Versions/5/QtWidgets (offset 24)
name @rpath/QtGui.framework/Versions/5/QtGui (offset 24)
name @rpath/QtNetwork.framework/Versions/5/QtNetwork (offset 24)
name @rpath/QtCore.framework/Versions/5/QtCore (offset 24)

Where @rpath is at:
Load command 28
cmdsize 56
path /Users/sthalik/dev/opentrack/build/install (offset 12)
Load command 29
cmdsize 56
path /Users/sthalik/Qt5.5.1/5.5/clang_64/lib (offset 12)

Wrong path set for local Qt’s libraries

In order to fix this: we should add a custom @rpath for all libraries not being deployed with the executable or being linked with libs only being locally available:
For example adding local Qt libs to opentracker.bin:
install_name_tool -add_rpath /Applications/Qt/5.5/clang_64/lib /Applications/

More generally speaking:
install_name_tool -add_rpath “absolute path to libs to be added to the executable” “absolute path to the executable”

Check the results:
otool -l /Applications/
Load command 32
cmdsize 48
path /Applications/Qt/5.5/clang_64/lib (offset 12)

[eyetvCamd] EyeTv eyetvCamd – ORF HD Fix patch source file for Mac OS < 10.7

eyetvCamd & EyeTV – ORF HD Fix (Mac OS < 10.7 (32bit)):
– Copy & Replace to eyetvCamd directory

Keep in mind:
– I am not able to verify this patch, as I am not willed to support Mac OS X< 10.7 (security reasons)
– There are major SSL changes from OS X 7 -> OS X 11

Download eyetvcamd-orfhd-patch

Mac OS X > 10.10 Users: eyetv-softcam-eyetvcamd-v2-01c-eyetv-mac-osx-10-11-32bit

[Arduino] Atmel32u4 Arduino – Smart card & Smartcard & Chipcard – Reader Library (ISO-7816) Protocol T1 T=1

Info: For those of you who are interested in building their own Arduino based smart card reader/writer interface with the commonly used T=1 protocol (see ISO-7816).

– See the hardware sketch in order to get a feeling for the hardware setup!
– Feel free to look at the Example.cpp to get into to my library with “ease”!
–  If you want to use a cpu timer as external clock, see the following:
* See Atmel32u4 – Specification at Page 90ff
* Frequency = Clock / (2 * N * (1 + OCR1A))
* N = Prescaler Factor: 1,8,64,256,1024
* 8Mhz:
* Frequency = 8/(2*1(1+OCR1A)) = 8/(2*(1+OCR1A))
* 1Mhz = 8/2*(1+3) //OCR1A = 3
* 2Mhz = 8/2*(1+1) //OCR1A = 1
* 4Mhz = 8/2*(1+0) //OCR1A = 0

Download: Smartcard7816T1Arduino



[EyeTV] Freezing solved: eyetvcamd + oscam + cccam (Proxy/Splitter)

Hey guys,

  1. Proxies: It took me quite some effort to test/verify all the buggy OSCam versions that are not capable of sharing key requests/answers free of freezers. The essence of my findings is that OSCam version 1.20 r 10009/10010 broke the possibility to split a single line into several “client lines”. This has to do with caching methods introduced in 1.20 r10000+.
    Easy fix: do not use OSCam 1.20 revision > 10000!
    Download LineSplitter
  2. Publish: As many of u ask me to publish sources of eyetvcamd (ORF HD Fix): I actually think about it, but I am still working on it… so for now there is no version I can give to you, wich will satisfy most of your needs… sorry about that :/


[EyeTV] Updated eyetvcamd version: v2.01c for MAC OSX 10.11+ (32bit)


Update1: ORF HD problems fixed with eyetvcamd 2.0c1
Update2: If you need help to setup eyetvcamd with EyeTV and OSCam see: Here

Because of eyetvcamd having several problems with the latest version of OS X I decided to spend my sunday in order to fix those:

First of all EyeTV 3.x is still a 32bit binary, so do not expect an eyetvcamd 64bit version as long as Elgato does not update its EyeTv software.
Second, Many of you ask for help because of crashes: I am glad to tell you that I absolutely have no crashes at all (OS X 10.11+, EyeTV 3.6.8, eyetvcamd 2.0c1) so get up to date 😉
Third, when it comes to ORF HD, I tried to do a “hacky quick fix”,  I could reproduce the fatal crash, as it has to do with the VIACCESS descriptors. But I am not able to test it in live mode, because I’ve got no ORF membership. So please feel free to test it and send in some bug reports, please.
Have fun!

Downloads: eyetvcamd201c 

[HACKS] uC & Arduino Library: Reverse engineering 433mhz signals of Velleman P8078 and Holtek HT46R01T3 or HT48R01T3, HT48RXX, HT48XXX (SmartHome, rf remote switch, low cost smart home)

[HACKS] uC & Arduino Library: reverse engineering 433mhz signals of Velleman P8078 and Holtek HT46R01T3 or HT48R01T3

I reverse engineered a 433mhz signal of the 4xR01T3v130 / 46R01T3v130 / 48R01T3v130 chips which are commonly used by Tevion (Aldi product in Germany). As I normally use an Arduino uC I hacked a small library that is capable to sniff the air for interesting packets.

The cause I needed to write it on my own and not using the various libs out there was: they just do not work (VirtualWire, RCSwitch, RemoteSwicth etc. etc.) as they are only for specific protocol types (called 1,2,3). I wanted to have a library that is capable to reverse EVERY 433mhz signal. That being said I proudly present my RxTx lib to you.

The basic principle behind it:
Measure the duration of changes of RX interrupts (high/low and low/high) and look for a so called “sync period” or “pausing duration”. These are steps you have to do manually.

//#include "RxTx.h"
//RxTx* rxtx;

If you found a proper sync period e.g. 36000 micro seconds you can sniff for packets:


If you found all the ranges/durations (e.g. min 200, max 400 for a short flank & min 500, max 700 for a long flank) you can decode the packets with:

//rxtx->SniffEstimatedPacketSize(36000, 200, 400, 500, 700, 35000, 40000); 

You will see something like: “SSLLSLSSLLSSLLSSLLSSLLSSLSLLSLSSLSLLSSLSLLSLSLSSLLSLSLSLSSLLSLSSLF”  which represents the chain of period lengths of your signal. Also keep in mind that you will start with a high flank. So the flank pattern is always something like: “101010101010101010101010101010101010101010101010101010101010101010″ this looks a little bit confusing, because it does not represent the data it only represents the state of the TX Pins output signal flank at a given time.


Holtek 48R01T3v130:
I decided to grab the signal directly from the DOUT to get exact signal patterns and tested them against the signals received by my XD-RF-5V RX unit.
IMG_2517 IMG_2518

The orange cable it connected to the DOUT of the 48R01T3v130 and pulled down with a 1kOhm resistor. I verified my reversed signals with a DSO



The reversed signals can then be send via a FST FS100A like this:

//char* off_c = new char[67];
//off_s.toCharArray(off_c, 67);
//rxtx->SendMessage(off_c, 600, 300, 36000, 4);



Arduino Lib: Download ArduinoRxTxLib


[MAC] OS X Update – Bootcamp has gone after osx upgrade/update – Repair bootcamp gap between GPT3 and GPT4

Broken BOOTCAMP in OS X 11 El Capitan
// To prevent from this issue: please do not update OS X if you did a manually resize operation on your already installed bootcamp, unless you did not backup your windows files. or change the way you resize your bootcamp partitition ti the following: backup your windows files, delete the bootcamp partitions with sox’s bootcamp helper – create a new (resized) bootcamp with bootcamp helper – update OS X!

// The following guide adresses MAC setups with a single disk
// If you have a multi disk setup you must adjust the disk<number> where windows and osx is installed at
// If you like me experience the problem that el capitan’s disk util does no longer show your BOOTCAMP partition and you are not able to boot to your windows this guide is for you
// Note: In my opinion technically the problem occurs because of the following: you installed osx than created a bootcamp partition used it, resized it (adjusting free space on the osx partition, resizing it and expanding disk space from windows): this is where the problem starts: osx is not aware of saving the new offsets to the windows partition being expanded. So if you update osx you will likely end in a partly overwritten/repartioned osx recovery partition breaking the offsets to the windows partition and its mbr.
// The following guide helped me to at least boot my BOOTCAMP again and used it as usual. But I highly recommend you to backup your windows files and reinstall your MAC from scratch, once you get it worling again!

// Look for anomalies
diskutil list
diskutil cs list
sudo fdisk /dev/disk0


// If this shows a gap between GPT3 and GPT4 you are right at this guide!
sudo gpt –v -r show /dev/disk0
// Something like
start size index content
0 1 MBR
34 6
40 5000 1 GPT PART
5000 10000 2 GPT PART
10000 200 3 GPT PART
10200 20000 // GAP WE NEED TO CLOSE
30200 20000 4 GPT PART

//1. So we will first serarch with TESTDISK ( for the correct offsets

So run a TESTDISK “Quicksearch” on the disk0 (where windows (mbr) and osx is/was at) – this could take 1hour depending on your disk’s size
If you have the results you should see a list of partiiton entries


By pressing “p” you can see the files stored on each partition
Try to find the partition with windows installed “System Volume Information” is a good indicator for this
If you have found the right partition note the offsets on top (e.g.):
start end size
12345 67891 55546

!!! Backup (Copy and paste) the output of ther terminal, as we NEED it later on! Especially the offset are important for the next step (here: 12345, 67891, 55546)!!



//2. We must rearrange the partitons correctly with the tool GPT FDISK (
In order to install gpt’s fdisk we must DISABLE os x’s CSR (Configuring System Integrity Protection – since el capitan)
– restart your mac press “cmd + r” boot into recovery mode – open terminal – type “csrutil disable” (without “”)
– restart your mac and install gpt fdisk

– run gpt fdisk: “sudo gdisk /dev/disk0”
– press “p” which prints the list of all partitions
– press “d” to enter delete mode of partitions
– press “4” to delete partition 4 – remember this is for the specific case noted above – adjust it to your own specific case, but normally you will only have 4 partitons because this is the allowed default with bootcamp and osx!

– press “n” to create new partition
– press “4” to select the number of the partition we want to create
– now we must enter th start point/offset of our bootcamp partition, this is the previously saved offset from our windows partition we found with testdisk
– now we must enter the size of our bootcamp partition leaded by a “+” sign as we want to add the size to our starting point, this is the previously saved offset from our windows partition we found with testdisk

– now we set the type to be a windows partition by typing: “0700”
– press “p” to again list all partitions and to monitor what will be written to the partition table (check our changes of correctness)
– press “w” to write our new gpt table
– press “y” to verify the writing of the gpt partition table



//3. Now we must recover/rebuild the mbr to be able to boot to windows again
if you restart at this point you will not be able to boot to windows, but you should see your bootcamp partition within diskutil
in order to get windows to boot agein we must consider th following steps: run gpt fdisk again:
– open terminal and run “sudo gdisk /dev/disk0”
– press “p” to list all your partitions, needed to be able to select all numbers of partitions that need to be added to the mbr
– press “r” to get into recovery mode
// this is confusing – press “o” to print current mbr setup
– press “h” to create new mbr setup
– type all partitions numbers, except EFI, that need to be added (osx, recover, bootcamp): if you have a default osx/bootcamp setup with a max of 4 partitions you should enter 2 3 4 (see output of step “p” to find your partition index numbers)
– press “y” to support grub bootloader too
– press enter to select default “AF” for gpt1
– press “n” to ignore osx from mbr, because mbr can only boot to windows
– press enter to select default “AB” for gpt2
– press “n” to ignore recover from mbr, because mbr can only boot to windows
– press enter to select defautl “07” for gpt3
– press “y” to add this partition as a bootable marked partition to the mbr
– press “o” to print current mbr setup (check if all changes are correct, there should be a kleene star* ath the windows partition gpt3, marking this as bootable partition)
– press “w” to write the changes to our newly created mbr
– press “y” to verify the writing of the mbr partition table
– reboot


//4. check if you can access COOTCAMP partiiton within osx
Check if you can boot to windows again

//5. Reactivate CSR
– ENABLE os x’s CSR (Configuring System Integrity Protection – since el capitan)
– restart your mac press “cmd + r” boot into recovery mode – open terminal – type “csrutil enable” (without “”)
– reboot