Archive for the Android Category

Not idea-L

Posted in Android, Jetbrains IDEA, kotln on July 21, 2019 by asteriondaedalus

So.

I have been doing some kotlin courses, to get over the hump.

I have been running Jetbrain’s IDEA on my PC and that has been smooth.

I thought I would set it up on my Debian 10 laptop, as I need feign being social with the wife as I can tinker while we sit in the vicinity of one another.

Tribulations then.

  • IDEA installed.
  • No SDK reported when creating a kotlin project!
  • Option to add SDK via JB SDK bin addin.
  • JB SDK bin adding installed fine.
  • When running JB SDK bin addin, it kept failing with not enough memory.
  • Bumped up memory.
  • Kept failing.
  • Went searching for JDK via SDK widget.
  • Found opensdk V8.
  • Restart saw IDEA fail to start with error that class path could not be found.
  • Found info on NET that config and system directories need to be deleted to recover and got back up and running.
  • There was a link provided to Oracle’s JDK under the pesky SDK setup box.
  • Downloaded and installed Oracle JDK (V12).
  • Oracle JDK V12 came up in SDK box next restart – so did error that class path was kaput.
  • Ran SDK installer again. No errors this time. Without having fidgeted with memory. Great mystery – wooooooooooooooooo (using ghostly warbling voice).
  • Pulled down V11. SDK widget prompts me to choose between V12 and V11. Chose V11.
  • Now setup!

However, no clear cut reason SDK installer did not work first pass.

No real point pointing to Oracle JDK if, when installed, it breaks. Certainly reported same message that openjdk did raise.

No real clarity why, if openjdk V8 was already installed, it didn’t turn up in SDK selection. It would have sat outside the JB SDK install mechanism in the same way the Oracle JDK V12 did.

No curiosity in me to “solve” any left over mysteries. Don’t feel I have learnt any lessons then.

Kotlin compiles – through very slowly on this clunky old laptop.

So close!

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

I installed GnuRoot Debian on my MANN phone.

mann

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

Cyclops!

Cyclops!

Measy

Voila!

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

Cyclops!

Cyclops!

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.

Upgrading game pad – 2

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

Had to laugh.

Installed QPython on the JXD 7800 to find it includes twisted and pygame already – or at least the androidafied version  oh, and Kivy.

Can’t loose.

Will have a look at getting SPADE and potentially PROFETA working also.

Upgrading game pad

Posted in Android, Python RULES!, The downside of Opensource on April 8, 2014 by asteriondaedalus

So, the game pad my friend gave me for use as a wireless terminal from my robotics projects but alas the wifi on it appears to have died.

The JXD S7800B I ordered to replace it turned up.

JXD S7800B

JXD S7800B

Quad Core 7″ with joysticks.

I started poking around for java examples to use the joysticks then I came across PGS4A!

Seems not to want to install on my C: drive for some reason.  Tried a wild left of field thing and deleted it and re-installed on D:.  Of course, it turned out installer was buggy and would keep trying to part install, break, re-install past but not all the way, break … yawn.  I worked out it wasn’t renaming directories it was to use as progress flags.

We’ll see, as PGS4A purports to have python hooks into joysticks.  No matter if it doesn’t work I suppose but would be good.