Marcin Barabasz

imagination is more important than knowledge… A. Einstein


Leave a comment

Cheap WIFI Switch review (KK-SP3)

20150625_22135520150625_22141020150625_22142020150625_221349

This time I would like to share my experience of a cheap Chinese wifi switch that i bought on Ebay for approx. 16$, plenty of sellers offer it. It is advertised to be able to operate from mobile phone via dedicated app. I was really hoping I wouldn’t need to use it for anything more than configuring connection to my home wifi:).

After receiving the package after few weeks from ordering I was really surprised how good it actually looked. The only drawback was the need to use power switch adapter – but it is not that bad since it is hidden under the switch when plugged in.

After connecting the switch to my home wifi using dedicated android app (There is a manual included). I could indeed turn the device connected on and off – it did it’s job pretty well, but that was not a main purpose I bought this device.

After a little googling I was able to connect to it via ssh.

username: root; password: p9z34cCapture

It turned out that it is actually powered by Linux koven 3.10.26 – very nice indeed – always good to see some familiar interface. This distribution is of course very limited to fit this small device but anyway great to have another Linux device at home.

The next thing was to be able to interface the switch over some well recognized channel- like REST for example.

Here is how I did it (from linux prompt):


mkdir /www/cgi-bin

chmod 755 cgi-bin

Download a cgi script from link and put it to cgi-bin directory.

After that you should be able to control the switch with using:

http://192.168.1.13/cgi-bin/relay.cgi?on

http://192.168.1.13/cgi-bin/relay.cgi?off

(replace 192.168.1.13 with the ip of your kankun)

Using this few small steps I can now utilize this switch in my home automation solution. It will be a topic of a separate post so stay tuned.


Leave a comment

Cheap home surveillance camera

Very cheap way to implement home surveillance camera.

All you need is:

– old Android phone

– home wifi router (I assume this should already be in every apartament)

– access to some free DNS service (I use http://www.noip.com/free)

 

Install application from Google Play

https://play.google.com/store/apps/details?id=com.pas.webcam

The configuration is very straight forward. Assuming your phone is configured to use your home WIFIyou should be able to access your streaming right away – just type on your computer the address (something like 192.168.1.xx:8080) and after selecting desired streaming technology you should see your stream. The next step would be to forward traffic from your router to your android phone:

Configure port forwarding on your router

There is a great page that will help you do that – I don’t want to write my own tutorial if something that great is available http://portforward.com/english/routers/port_forwarding/default.htm Just find your router brand and model and follow the steps. IP Webcam by default works on port 8080 so you need to forward your android phone ip port 8080 to some external port on your router like 8081 for example. The problem at this point is that you would need to know  your routers external IP address to access it from internet. Of course you could check the ip on one of the pages http://whatismyipaddress.com/ or better http://www.moanmyip.com/ but that is typically changing (depending on your ISP of course). To get access to your router from internet you need to:

Configure your router to register on one of the free DNS services

This way you will be able to access your camera IP Webcam from anywhere. Here is good link that should get you started http://www.tp-link.com/en/article/?faqid=419 of course if you are using different router brand the configuration will be slightly different, but the principle should remain the same.

Assuming your domain will be something like “myself.no-ip.com” your camera should be available under myself.no-ip.com:8081

 

enjoy


22 Comments

Kindle remote page turner

Today I would like to write few words about a somewhat strange project I did. The need came from the fact that I was quite ill lying in bed for substantial amount of time with problems to move because of sores. I wanted to read something on my Kindle. I found it quite irritating to be forced to move my hand every minute or so to turn the page. I almost immediately thought, come on, there must be a smarter way to do it, and I came up with an idea of a remote page turner for kindle.

But how could that be done? One obvious choice is solenoids mounted on page switchers – but, hey, its the 21st century already. That would not be cool at all. So, the next choice is to hook up to the kindle’s usb port, but the problem is that the kindle works as a slave, not as a host – attaching any HID devices to its usb port is not really possible. USB is out of the picture. After searching the internet, I found that Kindle also has a serial interface. Unfortunately, it is not available unless you open it and solder the port yourself (even though I have done things like that in the past I certainly didn’t want to do it now) there has to be another way of approaching this problem. And finally I got it. WIFI 🙂 – Why didn’t I think of it in the beginning?

Ok, so WIFI, but how can I connect to my kindle using WIFI? Tt is the kindle that connects to the router. Maybe it would be possible to somehow connect (via ssh) to kindles IP address and send commands that way. That was the idea, but, as it turned out it wasn’t that straight forward after all – but doable! 🙂 after figuring out different bits and pieces I was able to ssh to my kindle from a pc great! That’s a big step. Sending commands that would imitate keystrokes should not be that hard since it’s all Linux under the hood. Few internet searches later I got the answer:

[root@kindle root]# echo "send 193" > /proc/keypad
[root@kindle root]# echo "send 191" > /proc/keypad

Et voila – those are the commands for turning pages forward and back respectively. I still I need a pc to connect to my kindle via ssh and send those commands. It doesn’t bring me any closer to the goal of being able to turn pages remotely, or at least without any large movements. The solution was to write an android app that does all that, and the actual remote would be a wired audio remote attached to my Samsung’s headhones. After maybe an hour of searching the internet, and another half hour of actual coding, I had an Android app in place and ready to operate. It is very rough and could probably be improved in almost every aspect, but it does its job perfectly. I can now lie in bed holding my wired remote between my fingers and read my kindle – isn’t that awesome?

There is still the possibility to go completely wireless with something like a bluetooth camera shutter, but I think that the first solution is good enough.

 P1200942 P1200940

Here you can see the assembled piece in action:  http://youtu.be/hb3-mywNwF4

Android application code available there: https://github.com/mbarabasz/KindleTurn

Steps:

1. Jailbreak Kindle

2. Install USBNetwork update

3. Enable SSH over WIFI

4 Test out commands to turn pages via usb link

5. Write Android app to listen to remote commands and send commands to Kindles ssh server

Links:

ssh lib for java

http://wiki.jsch.org/index.php?Manual%2FExamples%2FJschExecExample

kindle rooting and getting access to its ssh

http://wiki.mobileread.com/wiki/Kindle4NTHacking#Debricking_.2F_Un-demoing_.2F_Flashing_firmware

http://www.turnkeylinux.org/blog/kindle-root

http://blog.joschika.tk/2012/03/01/kindle-4nt-ssh-over-wifi/

http://members.ping.de/~sven/kindle.html

http://www.shatteredhaven.com/2012/11/1337365-ssh-on-kindle-4-usbnetwork-hack.html

UPDATE (17/08/2014):

Just few days ago I finally received my remote shutter for Android and iOS. It is a pretty cool device even if used for its original purpose. As stated in the previous post I was intending to at some point to “go completely wireless” and having remote shutter would make it possible. So here we go:

This is exactly how my device looks like. I bought it on ebay for just over 3$ with free shipping (it took almost one month to arrive but still it is a good deal).

remote_shutter

After connecting device to my phone over bluetooth (which was dead easy, just pair devices) it was recognized as a bluetooth keyboard. I opened my camera app and it worked straight away I was able to take pictures with it (small android buttoe n). Of course I was curious about the bigger button, it would be cool to use it as FORWARD in this project where as the small one would fit for PREVIOUS perfectly. When pressed in home screen it is putting volume up – brilliant.

After quick modification of Android app I wrote, changing the keys that should turn the pages and adding possibility to modify kindle’s ip, kindle’s username, and kindle’s password. I was good to go for a first test. It worked!

As for the usage – it works pretty much perfectly, it is quick and reliable. The range is sufficient as you still need to see the Kindle, so1m is more than enough (I haven’t tested it but it should do at least 5m). There is one remark I need to make thou: The shutter turns itself to power preservation mode after around one minute from last usage – this means you need to read at least one page per minute to keep it up, which shouldn’t be a problem for a typical person. Pressing the button after that time takes around 3s to reconnect and then turns the page, I think it is acceptable.

The modified code can be found in github. At some point I am planning to put it to Google Play (even got developers account for that purpose), I am a little concerned thou since getting this setup to work requires few extra steps and some basic understanding. Stay tuned.

Wireless version in action: http://youtu.be/DCK1khQHFfE