Archive for the Android Category

So close!

Posted in Android, Linux, The downside of Opensource on December 31, 2015 by asteriondaedalus

I installed GnuRoot Debian on my MANN phone.


It is ruggedized etc. and the IP67 rating means you can get it wet – it is rated to 1meters for 30minutes.  (That is assuming the Chinese manufacturer is honest, I have another so called IP67 phone that leaks like a sieve.)

I bought it because it has a Qualcomm Snapdragon MSM8212 Quad-Core which means I can use some of the libraries Qualcomm have for graphics including tag recognition etc.

It is also much cheaper than Samsung.  My Samsung S4 shattered the other month when it flexed in my back pocket as I sat into my car seat.

In any event.

Some small amount of work to get the ssh working (so I can work from by Tera Term or Cygwin on my PC).

First one must install SSH into the GNURoot Debian environment with:

apt-get install ssh-server

Then install vi into the GNURoot Debian with:
apt-get install vi

Then on the phone one needs to edit (make sure you make a backup copy of “sshd_config” first:

vi /etc/ssh/sshd_config

You can do this either on the phone with an X session or use VNC Viewer to do this (more conveniently) from your PC.

The default root password for the XWindow session is “gnuroot” (not in documentation … well there is no documentation, it turned up as an aside when the GNURoot Debian vendor was responding to another ssh problem).

Here we aim to jump the port from 22 to 2222 by editing sshd_config to read:

Port 2222

Turn off privileged separation by editing sshd_config to read:

UsePriviledgeSeparation no

So far so good.

Now from either Tera Term or your Cygwin terminal (and remembering we are running from port 2222, try to connect).  If you are running from cygwin console it is apt to type:

ssh -p 2222 root@<your phone IP address>

Yep.  Nope.

We get a connection.  We are asked for a password.  However, for what ever reason the password for the ssh sessions is so far UNKNOWN.  It isn’t gnuroot, root, password, and it isn’t “” I can tell you.


BOOF working on Processing for Android!

Posted in Android, Processing, Vision on July 31, 2015 by asteriondaedalus

A little work and a little sweat and the help of Peter Abeles (the author of BOOFCV) and BOOFCV can compile in Processing for Android.

The fix is to break into the boofcv_dependencies.jar and delete the xmlpull entry under: boofcv_dependencies/org

The reason, the library is already being pulled in from somewhere else in the build and the build is not smart enough to ignore a replicated library and simply cracks up.

Simple fix.

Too early to know whether there will be any side effects – perhaps now in Java mode of the Processing IDE, since this fix appears to correct a problem in the Android mode.

In any event, we can move on with the experiments. I have quite a few android based toys with cameras after all.

JXD S7800B

JXD S7800B

water proof phone

android webcam





Posted in Android, Processing, Vision on July 20, 2015 by asteriondaedalus

Okay, so a little fiddling and changing a couple of set parameters and I have code running on my Samsung S2 that will unwrap a Bloggie lens.

Based on code by Flong but running against camera and not a saved image.

Now a bit of work to port ideas from roborealm to turn this into an obstacle avoidance sensor.  Will have to find or code related image processing in Processing or Java.  Although, might have found the best library in BOOF!  BOOF has processing library (already just now installed on my machine), camera calibration, structure from motion (OMG!), Fiducials (read Markers) (OMG!).

So, ready, steady GO!

Ah ha! moment

Posted in Android, Python RULES! on July 23, 2014 by asteriondaedalus

I am having a problem with python libraries in QPython as I found that libraries seem to be visible to the script menu but not to the console.  The libraries were not turning up where I was expecting so I poked around using AndroZip which has a search function.

I worked out that, as I hadn’t put SD cards into any of my newer Android devices, the libraries were going into a cache that essentially was pretending to be the SD card.  For whatever reason, only the script menu could see the libraries at that location.  The QPython team promise they will look into fixing that but there is no reason for me not to bulk out my devices with SD cards.

I’ll buy a swag of SD cards this weekend and try uninstalling and then re-installing everything.

Python Agents, SPADE and QPython

Posted in Android, Open Source can be professional, Python RULES! on July 13, 2014 by asteriondaedalus
Gotta love open source ... sometimes

Gotta love open source … sometimes

So, I pulled together PyDev and a mystical FTP plugin (from general tools under Indego) to get access to my Android devices when writing QPython code.  I tried a couple of FTP servers on Android (including the neat FTP server that comes with QPython) but there was a road block.

The default port for FTP appears to be 21 and the Eclipse FTP plugin doesn’t let you change this.

The FTP server built into QPython will let you set the port to 21 (it defaults to 2121) but it won’t start.  Android won’t let you run ports below a certain level without root permission.

A couple of other FTP servers I downloaded had the same problem until I came across FTPDroid which allows use of port 21 if you have root access – which comes with by JXD S7800B and I have also rooted my old Galaxy Samsung SII, so all good.

Additionally, I had a little problem (sorted by QPython authors) with missing modules that stopped installing SPADE into QPython but that all appears good as I had a couple of agents running on the JXD S7800B with the server on my PC.  So, code above is me hacking SPADE agents on an Android device running QPython.

Now that’s an idea!

Posted in Android, Arduino, Sensing, Vision on May 2, 2014 by asteriondaedalus


Feast your eyes!

The beautiful accidents right.

The GripGo base, once I ripped the suction cup off (broke off without actually any resistance) was a couple of millimeters in diameter larger than a circular “ledge” on the back of the indoor rover so a liberal smear of epoxy and voila!!  An adjustable mount for my old Samsung SII.

Do notice the omnidirectional lens on the top.  That is a “spare” that turned up.  Cost $60 but came with an old knock about bloggie which I will find some other use for.

Unfortunately the second bloggie fell through, the poor dear at the other end of the interweb was too dull to know how to mail something interstate – oddly, this one comes from twice as far away.  Can’t fathom it but there are still Luddites around.

Anway, I have two of these lens as well as the “periscope” version (that I am waiting on the USB catheter camera).  So, plenty if you ask me.

I will need to get a student copy of Matlab to use a fancy calibration library which looks like it lifts any distortion out of the image once it is unwrapped.  Even if that falls through, a simple wall detector will allow this beast to avoid bumping into walls – we hope … mwahahahahaha!

Recall the phone runs S4A and Python so while the application will be in C++ or Android it can ping a socket with steering directions – or that is the plan.

Beauty is that the adjustable holder allows other configurations when other algorithms and vision approaches are being played with.

Nope, same Rover.

Nope, same Rover.

Is Memcached for me?

Posted in Android, Python RULES! on April 26, 2014 by asteriondaedalus

I found a windows version of memcached and also a python library that talks to memcached.

So, I suspect I can get memcached going on the beagle[board|bone], and of course the other two linux boxes on the network.

But I might need to see how to get it going on my Android devices as a daemon so that I can use it with S4A python.

This will need some thinking as daemons are not really something easily built to run on Android (apparently) so likely needs an Android service (which no one seems to have written yet).  Most likely too much of a problem as a web search has found naught, not a sausage, no even close.  There are Java clients that might port but still need daemon/service running.

Likely needs some other system to span everything.   Might get away with an RPC call from the S4A devices to a server but that defeats the purpose of a decentralized cache.