Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ali1234

Pages: [1] 2
1
Gemini PDA - Hardware / Swollen battery
« on: June 05, 2019, 05:01:39 pm »
Today I was looking at my Gemini and I noticed that the battery has swollen to the point where the back cover is bulging out and it won't close properly because the keyboard can't move down. It closes if I take the back cover off. The battery has also become partially unstuck due to now being round instead of flat.


 [ Invalid Attachment ]

2
Gemini PDA - Hardware / Request: sample photos with rear camera
« on: June 08, 2018, 11:04:07 am »
Quote from: bzd
@ali1234 do we know which cameras that firmware supports, or is it only for this one camera?


The RPi firmware supports a couple of different OmniVision cameras - the original one and the upgraded one. There are also several clone cameras which are compatible with the firmware but of course the RPi Foundation does not support them.

None of this is really relevant for Gemini as the firmware is written for the VideoCore processor which the Gemini does not have.

3
Gemini PDA - Linux / Gemini kernel repository with grafted history
« on: June 07, 2018, 03:18:00 pm »
    [/li]
The Gemini kernel release from Planet has no git history. I spent the past week writing some software to correct this problem.

The result is a repository where unmodified files are linked back to their original upstream history. This covers about 90% of the files in the repository.

The process is mostly automated and was done like this:
  • Export the Planet kernel source to a tarball, extract it, and remove the nested directory.
  • Clone upstream repositories: linux-stable, linux-stable-rc, linux-next, linux-next-history, android-common, android-mediatek.
  • Run 'gitxref <path/to/upstream/repo> <path/to/tarball/directory>' It does the following:
    • For every file in the tarball, find a list of upstream commits containing that exact file.
         
    • For all the found commits, count how many tarball files they exactly match.
         
    • Print out the commit with the most matching files.
         
    • For every remaining commit, count how many matching files they have, excluding the files that match the already printed commit.
         
    • Repeat until there are no matched files left.
  • Check out the upstream commit that has the most files in common with the tarball.
  • Copy the tarball over it.
  • Make a temporary commit of the resulting work dir, including new files: 'git add *; git commit -a'
  • Get the sha1 of the tree of the commit you just made: 'git cat-file -p HEAD'
  • Manually create a merge commit listing every matching upstream commit as a parent, and referring to the tree of the temporary commit: 'git commit-tree -p <parent sha1> -p <parent sha1> ... <tree sha1>'
The result is this: https://github.com/ali1234/linux-gemini/tre...d075f04d4f7065a

This should be considered a proof of concept. There may be errors in the merge. There may also be more upstream repositories which would be candidates for merging in order to produce a smaller diff. There may even be a better approach to the whole thing. Suggestions are welcome, here or in github issues.

4
Gemini PDA - Hardware / Request: sample photos with rear camera
« on: June 07, 2018, 02:51:03 pm »
Quote from: bzd
Quote from: joepirello
Interested in this as well. Really wish they went with a flagship level camera add-on, I would've gladly paid for it.

Yep me too.  Given that it's a modular add-on, I wonder if there's a possibility of an alternative better camera being used?  Not exactly flagship level, but the RPi has an 8MP camera these days, but I don't know if it has a binary only kernel module.

It doesn't even have that. The camera is driven directly by the videocore firmware which is a 100% proprietary RTOS - it doesn't even run on the same CPU as Linux. It is then exposed to Linux through the MMAL interface.

5
Gemini PDA - Android / Cast Control More Accessible
« on: June 07, 2018, 10:28:02 am »
Quote from: jamiefixt
Hi there,

I've been using my Gemini for a couple of weeks and getting used to it. Love it. However I would like to be able to switch cast on and off directly from the settings bar at the top or from somewhere else a bit more accessible. Currently there's a lot of button pushing to get to it and toggle it. Anyone got any suggestions? I'm using the device for presentations and trying to reduce fiddle factor.

Cheers, Jamie.

Open the top drawer drawer by swiping down, then swipe down again. Then press the pencil icon at the top. Now you can drag the cast icon into the main drawer.

6
Gemini PDA - General Discussion / Keep screen on
« on: June 07, 2018, 07:46:25 am »
Quote from: smapmap
A feature I really loved about my Psion 5mx was the option to keep the screen on if the power cable is attached.

I've found an app called Screen On in the Play Store, which does this very thing. Very handy!!

You can also just enable developer mode and turn it on through the developer options menu.

7
Quote from: Ifanafi
Daily gathering bits and pieces of do's and don'ts here.

Read your post, and I wonder why disable the sim 2 esim?

Is that necessary...?

Ifanafi

Quote from: jutleys
Why does the network NO SERVICE and the signal bar still show up after its been disabled for the sim 2 esim?

If you don't disable it it says "EMERGENCY CALLS ONLY" instead.

8
Gemini PDA - Android / Pointless (but fun) app idea
« on: May 25, 2018, 11:57:14 am »
Quote from: ali1234
I have not figured out how to take over the voice button yet.

It seems this is not possible because the voice button intent is generated by a patch to the core android framework. It is delivered directly to com.pripla.gemini.voiceassistant package by a hardcoded lookup. To override it, an app would need to have this package name. It would not be possible to install such an app on the stock firmware, because this app is already built in.

So changing the voice assistant button action isn't possible without rooting.

9
Gemini PDA - Android / Pointless (but fun) app idea
« on: May 24, 2018, 06:39:09 pm »
Quote from: Charlie Stross
I suddenly realized that the Gemini has 5 lid LEDs. And of course the Google Voice button.

All I want now is a simple app that monitors the voice button and, when it's pressed (big clue: I have no use for the voice button -- I use mine as a PDA) flashes the LEDs to emulate a binary watch, displaying first the hour (in 24 hour format) and then, a second later, the minute past the hour. So that when my Gemini is closed I can use it as a very bulky, pointless, binary watch.

Anyone know if enough of the APIs are exposed to make this possible?

LED API: https://www.oesf.org/forum/index.php?showto...st&p=286028

I have not figured out how to take over the voice button yet.

10
Gemini PDA - Hardware / Wireless LED
« on: May 24, 2018, 12:10:55 pm »
Quote from: Ifanafi
For the benefit of non-techies like me, might you explain how to "call" - NotificationManager.openLed(6, ...) - to activate the sixth LED, please?

This is how Android app developers can make it light up.

See https://www.oesf.org/forum/index.php?s=&...st&p=286028

11
Gemini PDA - Hardware / Wireless LED
« on: May 24, 2018, 03:46:22 am »
The sixth LED can be lit by calling NotificationManager.openLed(6, ...)

 [ Invalid Attachment ]

12
Gemini PDA - Hardware / Keyboard ghosting
« on: May 23, 2018, 01:47:39 pm »
The Gemini keyboard seems to not have any diodes to prevent ghosting. For example with UK keymap if you press any three of the keys E, R, O, 0, then the fourth key will also be triggered. This can be confirmed to be a hardware bug by running "adb getevent /dev/input/event2" and holding down E, R, and O.

https://deskthority.net/wiki/Rollover,_blocking_and_ghosting provides an explanation of why ghosting happens.

There are many combinations of keys which do this. The most annoying is probably SHIFT, 9, 0, C, which is easily triggered if you try to type "()" because you are writing code...

13
Quote from: Sunyavadin
The call wasn't an unknown number, it was my partner's phone which I was making use of for testing purposes. The most commonly called of my contacts.

Found the problem. Phone numbers that start with 07 or 08 are numerically larger than a Java 32 bit int.

I have released a fix on Github and the Google PLay internal test channel.

I don't think there are any more bugs so I have published it to the release channel on Google Play, however this will take "a few hours" (assuming it passes).

14
Quote from: Ifanafi
Indulge my ignorance about this thread.

I gather the Gemini's LEDs are meant for eventual configuration to alert one to, say a phone call or text message and whatever.

Currently that functionality is in limbo waiting on PC to complete post-deliveries to backers.

What do you mean by "Luckily Java has reflection, so it is not a problem for third-party utilities."?

Have you made a work-around to get the limbo LEDs functioning as intended?

Thanks.

Ifanafi

When you build an Android app you have to use the Android API. For example the Notification Manager API is documented here: https://developer.android.com/reference/and...ficationManager

When you download the Android SDK it includes a list of every API call. If you try to use a method which is not in the API, your app will not compile.

What Planet have done to make the LEDs work is change the Android Notification manager and add a new method called openLed. You will not find that method in the above documentation. In LEDison they call it like a normal API method:

[div class=\'codetop\']CODE[/div][div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
NotificationManager nm = context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.openLed(led, r, g, b, 0)
[/div]

If you try to compile that code with the normal Android SDK it will just generate an error because it does not know about the openLed method.

However, Java has something called reflection, which means that code can inspect itself at run time. This means you can get a list of methods on an object dynamically. We can ask the Notification Manager for the openLed function at run time, without needing the SDK to be aware of it. The following example is equivalent to the above except it will compile in the standard SDK:

[div class=\'codetop\']CODE[/div][div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
NotificationManager nm = context.getSystemService(Context.NOTIFICATION_SERVICE);
Method method = nm.getClass().getMethod("openLed", int.class, int.class, int.class, int.class, int.class);
method.invoke(nm, led, r, g, b, 0);
[/div]

So using reflection we can call non-standard Planet API additions without needing to have access to their patched version of the SDK.

15
Quote from: Sunyavadin
Alas, I installed it, authorised it, and then tried to take a call, and every time I do this I get a message upon receiving the call that "aledxander has stopped working". No lights, no nothing.

Was it an unknown number? I don't know what parseInt does if you give it an empty string.

ADB logs would be helpful.

edit: I have uploaded a new release on github which should not crash on unknown numbers. It won't display any pattern for them as they are treated as 0.

Pages: [1] 2