Gamen met PS3 controller op Windows

Door Gtoniser op zondag 27 april 2014 14:48 - Reacties (15)
Categorie: Algemeen, Views: 3.062

Ik game tegenwoordig steeds vaker op mijn PC dan op m'n PS3 die toch wel erg oud aan begint te voelen. Daarnaast zijn spellen voor de PC vaak een stuk goedkoper en zien ze er vaak beter uit op de PC.
Echter zijn niet alle spellen zeer geschikt voor toetsenbord en muis. Spellen zoals Assassins Creed, The Witcher, Tomb Raider, etc, speel ik liever met een controller, op de bank, op de TV.
Met een Xbox controller is dit vrij simpel, daar is gewoon in Windows ondersteuning voor en veel spellen snappen de controls automatisch.
Met een PS3 controller, de DS3, is dat wat lastiger, maar als je weet hoe, is het ook vrij simpel.

Hier een korte tutorial, met de hoop dat meer tweakers dit nuttig vinden:

Stap 1: MotioninJoy
Om de controller te laten werken, heb je drivers nodig. Deze kun je krijgen door het programma MotioninJoy te downloaden van http://www.motioninjoy.com/download
Nadat je dit gedownload en hebt geÔnstalleerd, start je het programma op.
Je moet nu de DS3 controller verbinden via USB. Hierna kun je via het "Driver Management" de optie "Load Driver" kiezen, wat de driver installeert op die USB poort.
Als je meer info wilt voor deze stap, de installatie instructies staan op http://www.motioninjoy.com/wiki/en/install/latest

Stap 2: Better DS3
Het probleem met MotioninJoy is dat het:
- Een draak van een programma is
- Admin rechten nodig heeft
- De programma code iedere keer via het internet ophaalt in HTML vorm (dit is dus een groot security risk)

Gelukkig heb je het programma zelf niet nodig, er is namelijk een veel beter alternatief, genaamd Better DS3.
Dit kun je downloaden van deze site: http://betterds3.ciebiera.net/
Het programma heeft alleen de driver nodig van MotioninJoy, vandaar dat we dit eerst moesten installeren.
In Better DS3 kun je het profiel instellen voor je controller, de button mapping veranderen, en nog diverse andere instellingen aanpassen.
http://betterds3.ciebiera.net/bds3wp/wp-content/themes/responsive-child-theme/images/featured-image.png
Mijn beste ervaring is om de controller als Xinput profiel te laten werken, dit emuleert een Xbox 360 controller. Omdat ik de Assassins Creed serie veel op de PS3 heb gespeeld, vond ik het zelf handig om de L1 en L2 om te wisselen (net als de R1 en R2), omdat ik anders telkens de verkeerde knop indrukte :P

Stap 3: Draadloos gamen
De voorgaande stappen stellen je in staat om via USB met je DS3 te gamen. Op zich kun je hier stoppen, maar de beste ervaring heb je natuurlijk als er geen USB kabel constant aan je controller hangt.
Gelukkig kunnen we de DS3 ook draadloos laten werken.
Wat je nodig hebt is een Bluetooth adapter die minimaal versie 2.1 van de Bluetooth standaard ondersteunt en EDR ondersteuning biedt. Dit laatste is meestal niet het geval met de goedkopere dongles die je voor een paar euro/dollar in China bestelt.
Een Bluetooth dongle die compatible is kun je hier vinden: pricewatch: Sitecom CN-516 Bluetooth 2.1 USB Micro Adapter

Na het installeren van de Bluetooth driver via de MotioninJoy interface, kun je in Better DS3 de master host van je DS3 veranderen, zodat als je de controller aanzet hij verbinding met je PC maakt.
Om draadloos te spelen is het runnen van Better DS3 niet altijd nodig, voor USB wel. Zorg dus voordat je je game start je het programma hebt runnen.

Facebook dating

Door Gtoniser op dinsdag 16 april 2013 21:36 - Reacties (9)
Categorie: Algemeen, Views: 4.463

Facebook heeft iets nieuws: Open Graph search.
Waarbij het op vkontakte (de Russiche Facebook) al een tijdje mogelijk was om personen te zoeken en te filteren op werk/woonplaats/relatiestatus etc, is nu ook Facebook er mee bezig.

Bovenin je Facebook balk tik je "single women in Rotterdam" en voila, je krijgt een hele lijst.
http://static.trabot.net/external/tweakers/fb_open_graph.png

Natuurlijk is dit niet echt bedoeld als dating functie, maar ik zie het er best nog wel voor gebruikt worden (of om te stalken natuurlijk, ze bestaan echt, mensen die je toevoegen als vriend, al je foto's gaan liken en je berichtjes sturen dat je er leuk uitziet in de hoop zo een date te regelen... gelukkig heb ik daar als man geen last van).
Personen die dichtbij je vriendenkring zitten (jouw vrienden of vrienden van je vrienden) komen bovenaan te staan.

Je kunt ook zoeken op dingen als "restaurants in Amsterdam", "music my friends like" of wat meer creepy dingen als "Photos of single women who live in Groningen". Alle publieke foto's zijn zichtbaar met Open Graph search, dus wellicht is dit een goede reden om je privacy instellingen nog eens langs te lopen ;)

Graph search is nog in limited beta, je kunt je hier aanmelden: https://www.facebook.com/about/graphsearch (meer info is daar ook te vinden).

Ben bieuwd wat iedereen ervan vindt! Groot success of de volgende stap in "alles van je staat op internet"?

Android en je privacy

Door Gtoniser op maandag 18 maart 2013 12:44 - Reacties (17)
Categorie: Algemeen, Views: 4.900

Laten we even voorop stellen dat ik een groot fan ben van Android. Als tweaker vind ik het geweldig dat ik alles met mijn telefoon kan doen en hem precies zo kan aanpassen als ik dat wil met custom roms en themes.
Toen ik echter afgelopen week wat aan het spelen was met mijn tablet en een test app installeerde via de Android SDK kwam ik ineens het volgende tegen in mijn LogCat:

code:
1
2
3
4
03-15 17:09:17.460: I/GetJar SDK [com.zeptolab.ctr.hd.google.paid](15588): CommManager: processesRequest() [thread:31729] [request:-1075312065] Starting Request -1075312065
03-15 17:09:17.460: D/GetJar SDK [com.zeptolab.ctr.hd.google.paid](15588): CommManager: processesRequest() [thread:31729] [request:-1075312065] Making a request to: 'https://rptuse20120814.getjar.com:443/user/devices/000203ec00000000009c4d82/apps/report_usage?version=20120401'
03-15 17:09:17.480: D/GetJar SDK [com.zeptolab.ctr.hd.google.paid](15588): CommManager: processesRequest() [thread:31729] [request:-1075312065] Sending POST data as part of the request [length: 584]:
03-15 17:09:17.480: D/GetJar SDK [com.zeptolab.ctr.hd.google.paid](15588): app_usage_data=%5B%7B%22usage_type%22%3A%22UNINSTALLED%22%2C%22app_metadata%22%3A%5B%7B%22value%22%3A%221.0%22%2C%22key%22%3A%22android.package.version_name%22%7D%2C%7B%22value%22%3A%22android%22%2C%22key%22%3A%22device.platform%22%7D%2C%7B%22value%22%3A%221%22%2C%22key%22%3A%22android.package.version_code%22%7D%2C%7B%22value%22%3A%22eu.sanoweb.webviewtest%22%2C%22key%22%3A%22android.package.name%22%7D%2C%7B%22value%22%3A%224.1.1%22%2C%22key%22%3A%22device.platform_version%22%7D%5D%2C%22tracking_metadata%22%3A%5B%5D%2C%22event_timestamp%22%3A%222013-03-15T16%3A09%3A17Z%22%7D%5D

Iets is dus blijkbaar mijn "Device usage" aan het syncen naar een server. Als we even urldecode over de data heen halen krijgen we de volgende JSON string:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ {
    "usage_type" : "UNINSTALLED",
    "app_metadata" : [ {
        "value" : "1.0",
        "key" : "android.package.version_name"
    }, {
        "value" : "android",
        "key" : "device.platform"
    }, {
        "value" : "1",
        "key" : "android.package.version_code"
    }, {
        "value" : "com.test.webviewtest",
        "key" : "android.package.name"
    }, {
        "value" : "4.1.1",
        "key" : "device.platform_version"
    } ],
    "tracking_metadata" : [],
    "event_timestamp" : "2013-03-15T16:09:17Z"
} ]
Bij het installeren van een app wordt dit ook verzonden naar de server.
Wat verder onderzoek laat zien dat dit afkomstig is van de app "Cut the Rope" van zeptolab. Maar waarom houdt dit bij welke apps ik installeer en verwijder?
De volgende pagina biedt uitkomst: https://developer.getjar....paign-tracking-analytics/
GetJar’s Pay-Per-Install program tracks App install events on the user’s device. These are events when the user visits the Google Play Store, downloads and installs the App on their phone. Since Getjar’s SDK is integrated into a Publisher’s application, it has the permission to listen to the ACTION_PACKAGE_ADDED system event. For more details of this event, please refer to the Android documentation here ACTION_PACKAGE_ADDED
Vanuit de developer documentatie komen we erachter dat dit via een "broadcast" aan alle apps wordt gestuurd bij een nieuwe install of uninstall.
Leuk natuurlijk, maar het lijkt me niet de bedoeling dat deze dingen naar diverse ad providers worden verstuurd.

Door de app op te zoeken in Google Play komen we bij de volgende privacy policy uit van ZeptoLab: http://www.zeptolab.com/pp.htm

Hier staat inderdaad in dat door het downloaden van een app je Zeptolab toestemming geeft om zo ongeveer alle "non-personal data" te verzamelen en te versturen naar third parties.
De apps die je installeert vallen blijkbaar ook onder Non-personal data.

Nu vind ik dit nogal apart. Over het algemeen zeggen apps die je installeert natuurlijk niet zo veel over je persoon. Maar wat als ik een rooster app van een universiteit installeer? Weet je gelijk waar ik studeer. En een Bijbel of Koran app? Of een app van een datingsite?

Het is natuurlijk niet gegarandeerd dat GetJar deze informatie verzamelt en opslaat (immers het doel is volgens de site om te tracken of iemand een app installeert na aanleiding van een advertentie), maar dat alles wat ik doe met mijn tablet wordt verstuurt naar random derde partijen waar ik nog nooit van heb gehoord vind ik persoonlijk niet erg fijn.

Wat me het meest verbaast is nog wel dat er totaal geen permissies nodig zijn om deze "broadcasts" te ontvangen. Enkel internet permissie (wat iedere app vrijwel heeft) is voldoende om deze data naar een willekeurige server te versturen.
Wat mij betreft slaat Google hier toch wel behoorlijk de plank mis.
Ben benieuwd wat anderen hierover denken :)

Unbricking your router with a Raspberry Pi en

By Gtoniser on Sunday 24 February 2013 15:15 - Comments (6)
Category: Raspberri Pi, Views: 3.903

So one of my friends wanted to install a new firmware on his router (a Netgear WNR3500Lv2). Unfortunately he downloaded a wrong version and thus his router refused to boot. Bricked.

Now there are some tutorials on the internet on how to unbrick this router, one involves a USB-TTL cable and one uses a method which short circuits 2 pins on the mainboard.
The second method helped me out when I bricked my router, the Netgear WNR3500Lv1 (note the v1), but the v2 has a different chip layout and we could not find the right chip on his model.

The first method seems a bit less dangerous, but requires a USB-TTL cable, which I don't happen to have. What I do have is a Raspberry Pi, which has a serial port connection.

Getting started

- Raspberry Pi running Raspbian
- Some cables
- Broken WNR3500Lv2

I'm connecting to my RPi via SSH.
To be able to use the serial port we first need to disable the console login that the RPi automatically starts up on the serial port when booting.

This is done by commenting out the following line in /etc/inittab
change
code:
1
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
to:
code:
1
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


Now after rebooting the RPi, we can use the serial port for our own purposes.

Connecting the RPi to the router

The Raspberry Pi serial ports are on GPIO 14 and 15:
http://lavalink.com/wp-content/uploads/2012/04/raspberry-pi-serial_sm-241x300.jpg(source: lavalink.com)

We connect these ports to the RX and TX on the router (make sure the router is turned off!). We also connect the GND.
http://static.trabot.net/external/tweakers/rpi-serial-router-01_thumb.jpg(click)
From left to right: GND, RX, TX

Overview:
http://static.trabot.net/external/tweakers/rpi-serial-router-02_thumb.jpg(click)

I am using a breadboard here in between, you can ignore this and all the wires on it, the only reason I used it is because I didn't have any Female-Female cables. Connecting the RPi directly to the router is how it works.

Restoring the firmware

Now to get the serial interface working we use minicom. Install it first on the RPi with
code:
1
sudo apt-get install minicom

Then run minicom on the serial port of the RPi
code:
1
sudo minicom -b 115200 -o -D /dev/ttyAMA0

We are now connected directly to the router with our Raspberry Pi. Feeling like a hacker already?

Now power on the router while holding Ctrl + C in the terminal window:
http://static.trabot.net/external/tweakers/rpi-terminal.png

When this is done just execute the command
code:
1
tftpd
to start the tftp deamon.

Now what I did was connecting a laptop to the router with a static IP address (since I was using my main PC to control the Pi) so that we can reach the router on 192.168.1.1.
When this is done we can download the original firmware for the WNR3500Lv2 and push this to the router with tftp
code:
1
tftp -i 192.168.1.1 put FIRMWARE_FILE

After this the router rebooted and I could access the admin interface on 192.168.1.1 in my browser.

If you want to try this for yourself, the following guides can be helpful:
SSH connection to your RPi
Using the RPi serial port
http://www.myopenrouter.c...USB-TTL-Cable-on-Windows/ (step 9 and further explain how to put the firmware on the router)
http://www.myopenrouter.c...-A-Serial-Cable-on-Linux/ (explains how to use this method on linux, you could use this to push the firmware from your RPi)

De vuurwerkbom

Door Gtoniser op dinsdag 04 december 2012 14:18 - Reacties (16)
Categorie: Raspberri Pi, Views: 4.442

Rond sinterklaas is het altijd weer tijd voor sinterklaas surprises. Het idee kwam me dit jaar eigenlijk een beetje aanwaaien: mijn broertje vroeg namelijk een vuurwerkbon als kado.
Door expres de laatste letter verkeerd te lezen was mijn idee van een surprise al ontstaan.
Het uiteindelijke doel: een soort van 'countdown' tijdbom (uiteraard nep) die onschadelijk te maken is met behulp van een code/wachtwoord.

Lees verder »