Release Pandora System Info


3.2 kernel complies with TI requirements, which are:


- at least OPP3 for 500+MHz


- at least OPP4 for 550+MHz


- at least OPP5 for 600+MHz
Is it good/save to use the Pandora at OPP3? I thought this helps to save power and keeps the Processor last longer? I have no experience with OPP so if you or TI say, that OPP5 all the time is fine, I'm OK with this. I just wanted to be on the save side. ^^
 
Last edited by a moderator:
Hi _wb_,


i recently started to use my pandora again (since i upgraded to latest Zaxxon).


I installed your app via the PNDManager by BZar and also started it, but all i saw was a tiny dialog window with almost no useful information to me. It said "run system info first", but i had no clue what i did wrong because that's what i did!


I thought this was an error on first run and tried to start it again, but still the same. Later then i killed PNDManager and checked the xfce menu for an entry of system info and saw that it contains two applications, the "mainapp" but also a "plot" app, the problem is that you start the plot app by default which ends up with the result that nothing works but this IMO useless dialog window.


That was very disappointing to me in the first moment, but then i started to check out why it acts like that and figured out two possible ways to improve your application.

  • Give more information to the user if he runs the plot app, like 1) tell him what is currently running and why he gets this error dialog 2) tell him what to do instead and how this should be done to get the correct result
  • (edit): You can or should restart the application into mainapp if the user runs plot first instead of mainapp on first use, so he doesn't have to do it by himself.
  • Fix your PXML, the mainapp should be the last <application> entry, so by default it starts what you would expect; I already tested this setup and it starts the system info by default if i run it from terminal (ie. $ pnd_run systeminfo.pnd)


I will definitely write a review about your application on Büchse and will provide a fixed PXML+PND if you don't update your repo version.


Thanks you that you share your work with us, it's really useful for many purposes


Greetings
 
Last edited by a moderator:
@büchse: _wb_ and me are currently updating the app. Public info will follow here.


Your suggestion is reasonable, I think _wb_ will likely integrate it into 0.5.


A distinctive icon for the plot app will help as well.
 
Last edited by a moderator:
Oh dear, down to 500mhz for me then. I thought I was running stably at 600, OPP3
 
Hi _wb_,


i recently started to use my pandora again (since i upgraded to latest Zaxxon).


I installed your app via the PNDManager by BZar and also started it, but all i saw was a tiny dialog window with almost no useful information to me. It said "run system info first", but i had no clue what i did wrong because that's what i did!


I thought this was an error on first run and tried to start it again, but still the same. Later then i killed PNDManager and checked the xfce menu for an entry of system info and saw that it contains two applications, the "mainapp" but also a "plot" app, the problem is that you start the plot app by default which ends up with the result that nothing works but this IMO useless dialog window.


That was very disappointing to me in the first moment, but then i started to check out why it acts like that and figured out two possible ways to improve your application.

  • Give more information to the user if he runs the plot app, like 1) tell him what is currently running and why he gets this error dialog 2) tell him what to do instead and how this should be done to get the correct result
  • (edit): You can or should restart the application into mainapp if the user runs plot first instead of mainapp on first use, so he doesn't have to do it by himself.
  • Fix your PXML, the mainapp should be the last <application> entry, so by default it starts what you would expect; I already tested this setup and it starts the system info by default if i run it from terminal (ie. $ pnd_run systeminfo.pnd)


I will definitely write a review about your application on Büchse and will provide a fixed PXML+PND if you don't update your repo version.


Thanks you that you share your work with us, it's really useful for many purposes


Greetings

Thanks for the report - I had no idea that the last application in the PXML is the "main" one, I assumed the first one would be "main".


I'll take your suggestions into account.


@porg: A separate icon for the plotting is not an option, you can only have 1 icon per PND. You can put different icons in the PXML, but in the menu, it ignores that and uses the image at the end of the PND file for each application.
 
Quick Fixes


Problem: If there is no "plots" directory in appdata, the sysinfo graphing tool fails (ristretto waits forever).


Solution: If there is no "plots" directory, sysinfo should create one if needed.


How did this happen: I just renamed one "plots" dir I wanted to keep as "plots-yyyymmdd", as I thought sysinfo will autogenerate a new one if needed.


Logging-info shall be shown until timeout regardless of panel switching


If you change the logging interval or state (start, pause, resume, stop), the logging-info-area is shown for $timeout seconds, in the current layout at the left bottom.


Current behavior: If you switch to another panel, it is hidden during the transition effect, and then shown again, and after the remaining $timeout hidden again. This is a confusing user experience. "Did the state change?", "Why, I only changed the view", etc.


Desired behavior: It should stay at the same position, and fade away after the $timeout, and show up again only if the interval gets altered or the logging state changes. Independent from the panel views and their transition effects. And the readability must be ensured also while the panel transition animation. Either as it does not collide with any panel content, or by placing a black background rectangle, beyond the text, but still above the panel content.


Plot file chose dialog: Shall start in descending order


This shows the newest log files on top, which is the most probable use case, as mosts users likely want to plot one of their newer logs.


One must just change the variable SortOrder in appdata/sysinfo/gtk-2.0/gtkfilechooser.ini to descending.


I think that would be a good default for PND delivery.


Plot templates: Create one which shows correlation between battery-capacity-drainage and usage


AFAIK the drain factors of the battery are:

  • to the largest extent: CPU, WiFi — which are logged by sysinfo
  • and to some extent: USB, Bluetooth, screen-brightness, loudspeakers — which are not logged (some of them could be tracked, some not at all because of their technical nature (i.e. loudspeaker drainage), AFAIK)
  • with little extent: RAM — is logged, but it is not a large power factor, or is it?


I am not familiar with gnuplot, thus I kindly ask you to supply one more well thought built-in plot template, which shows all that necessary correlations in a combined plot, which helps with performance troubleshooting and/or optimization.


It should clearly depict power consumption AND charging power, maybe calculate the difference value between them, so that power consumption is adjusted as an absolute value. Then we would have:

  • Power consumption absolute (adjusted from charging, sum of all power consuming Pandora parts)
  • Charging (what gets through the charging cable and circuitry into the battery)
  • Power consumption relative (battery current + charging current coming in - power consumption)


Then all the energy-draining factors can be clearly seen in correlation to Power-consumption-absolute.


And separately from this one can analyze mere charging issues itself.


Layout of panel "Network": Text block "Download" and "Upload" not aligned


I would prefer them aligned at the same height, meaning, that the Download text block moves closer to the bottom as well.


If you conceptually wanted them at a different height alignment (which I doubt), I would propose to put Upload higher than Download, as the word "up" is immanent in "Upload", the same with "down" in "Download".


Long Term


Panels "Network" and "Storage" seem to consume quite much CPU


If you jump from the panel "Help" to the panel "CPU", you can read in the young past of the graph that "Help" used very little CPU resources.


But if you jump from "Network" or "Storage" to "CPU" you can read, that they both use quite an amount of CPU. I can understand that for the "Network" panel, as it contains a frequently updated graph, but "Storage" just consists from pie charts and rectangular shapes, why does this use so much resources?


Maybe you could use some more resource-friendly drawing techniques? Btw, which ones do you use?


Possibility for comments

  • A new CSV column "Comment" is added to our logging format.
  • If the user presses the key command for commenting, i.e. "C" :
    the program remembers the current timestamp
  • a textfield overlay opens, user types i.e. "WiFi enabled. Running Chromium web apps".
  • ENTER closes the textfield.
  • the program retro-effectively writes the comment into the lcomment cell of the line with the closest timestamp to when the comment writing was started as this was the correlating moment.
    Alternative idea: Insert a new line with the real comment-start-timestamp, but then, this would break the regular intervals. Possibly a choice for the config file.
 
@porg: A separate icon for the plotting is not an option, you can only have 1 icon per PND. You can put different icons in the PXML, but in the menu, it ignores that and uses the image at the end of the PND file for each application

I also observed this with other multi-app PNDs: Alex the Alligator, Mupen, etc.


But AFAIR the Gnome game collection did show one dedicated icon per subapp.


I informed @skeezix, who is behind minimenu and also the PND specs. Maybe he can help us out here.
 
not read the thread ..


mmenu definately supports >1 app per pnd, since day-zero long ago.


It is possible the categories are being rejected and pushign the app into unknown, or the apps are being hidden by user preference (especially if they're using re-used unique-ids), or folder options are hiding them somewhere.. mmenu could well have bugs (I mean, it definately has some :) , but that layer is handled by libpnd and its pretty well established stuff. Still, 'recently' mmenu had the big change where it started using .desktop files instead of .pnd files for source of truth, so there could be an issue in that new code.. but my first suspicion would be the pnd having bad PXML.


ie: it works like .. pndnotifyd parses the pnd's and spits out the .desktop files, and later apps like xfce or minimenu would read the .desktops and find out what apps exist and how to run them; as far as mmenu is concerned (or should be, these days), one pnd with n-apps in it, is just n apps .. it doesn't care about the source pnd per se anymore (unless you flip config optiosn to make it go back to pnd-reading like it did before.)


That all said.. which firmware version is being discussed?


Maybe I should go read the thread? time is tight :)


Note that if you have the detail panel turned on (the right side of the screen in default skin), it shows in small font "app #0" sort of thing; in previous versions that would be app#0, app#1 and so on.. but nowadays, since its just using .desktop, it probably shows them all as app#0, since it just goes to the .desktop and gets the Exec= line to find out how to run the app, rather han using pnd-autodiscovery.


Testing, I dropped my old BattleJewels.pnd (which has 2 apps in it) onto SD, and it showed up with two icons.. so something is working right ;)


Let me read parts of this thread, maybe I can get a moment..
 
@skeezix: No necessity for reading the thread, except if you are interested in the monitoring utility sysinfo itself though. All what concerns the PND/icon issue was stated in that single post.
 
Waait, unless you're talking _icons_ ..


The pnd format as is only supports one icon, period; ie: a pnd is just an iso+PXML+icon


We originally wanted to go with zip, with possibly PXML being in zip-comment to make it easy to find (since zip-comment is just appended, same as we do now), but zip-fuse isn't suitable (eats up all your RAM.) We tried a few other containers, and in the end just went with simple pnd as you see it today.


As you can see, when you're appending _an_ icon, thats all you can do.. just one; we did fiddle with having a binary header that was a table-of-contents and so on to support multiple icons, but then your'e just reimplementing zip/etc, so we abandoned it (we were in a hurry.. we wanted a working firmware for shipping date and we didn't start working on this until about the shipping date .. who knew it woudl've all been delayed ;)


Originally, pnd's were single-app; it was only very late in the game I came up with the idea of many apps, and documentation links, and so forth..


So yeah, an app is one icon, but multiple applications.


Thats not minimenu, xfce too, and everything else.. its a pnd limitation.


(if you _unpack_ a pnd into a directory, if that still works, then multiple icons are supported.)


PXML supports multiple icons, but they're not used.


jeff
 
btw, if pnd_run (bin) is used, and no subapp ois specified (you're supposed to specify the subapp, otherwise its _undefined_), then it runs the 'first returned' application from the auto-discovery of the pnd-file.


I forget but I think to keep speed up, as the discovery works, it just _prepends_ to the discovery list (ie: tracing down a linked list is slower than inserting at the head), so that woudl make the last app returned as the first one.. but I didn't check the pnd_disco code to see.


I suppose we could invert the behaviour of pnd_run, or of pnd_disco, but not sure if that woudl break anything else that is used to existant behaviour....


jeff
 
Thanks for the clarifications, skeezix. I don't think you need to change anything in pnd_run, I'll just change the order in the PXML. The long-term fix would be to have an app selection dialog in PNDManager. And for the icons: there is no easy fix I guess. The long-term fix would be to allow multiple icons to be appended, but for now, I can live with 1 icon for both apps.


Actually, I'm now considering to make a separate PND for the plotting thing - just with a shared appdata directory. Only drawback would be that you can download the plotting thing without downloading sysinfo, so you have nothing to plot, and if you want both, you need to install 2 PNDs (and in the same /pandora structure or they can't share an appdata).

Quick Fixes


Problem: If there is no "plots" directory in appdata, the sysinfo graphing tool fails (ristretto waits forever).


Solution: If there is no "plots" directory, sysinfo should create one if needed.


How did this happen: I just renamed one "plots" dir I wanted to keep as "plots-yyyymmdd", as I thought sysinfo will autogenerate a new one if needed.

OK, easy fix.

Logging-info shall be shown until timeout regardless of panel switching


If you change the logging interval or state (start, pause, resume, stop), the logging-info-area is shown for $timeout seconds, in the current layout at the left bottom.


Current behavior: If you switch to another panel, it is hidden during the transition effect, and then shown again, and after the remaining $timeout hidden again. This is a confusing user experience. "Did the state change?", "Why, I only changed the view", etc.


Desired behavior: It should stay at the same position, and fade away after the $timeout, and show up again only if the interval gets altered or the logging state changes. Independent from the panel views and their transition effects. And the readability must be ensured also while the panel transition animation. Either as it does not collide with any panel content, or by placing a black background rectangle, beyond the text, but still above the panel content.

OK, should be easy.

Plot file chose dialog: Shall start in descending order


This shows the newest log files on top, which is the most probable use case, as mosts users likely want to plot one of their newer logs.


One must just change the variable SortOrder in appdata/sysinfo/gtk-2.0/gtkfilechooser.ini to descending.


I think that would be a good default for PND delivery.
Thanks for figuring out how to change the file chooser behavior - indeed a good default.

Plot templates: Create one which shows correlation between battery-capacity-drainage and usage


AFAIK the drain factors of the battery are:

  • to the largest extent: CPU, WiFi — which are logged by sysinfo
  • and to some extent: USB, Bluetooth, screen-brightness, loudspeakers — which are not logged (some of them could be tracked, some not at all because of their technical nature (i.e. loudspeaker drainage), AFAIK)
  • with little extent: RAM — is logged, but it is not a large power factor, or is it?
RAM usage should not have any impact on power. Screen brightness, I could log that, because it is easy to log and it has a huge impact on power. I don't think there's an easy way to check USB activity, I don't know about bluetooth, sound is probably also tricky. SD card activity probably also has some impact but nothing huge. Basically screen brightness and cpu are the big things, wifi/bt and sound add something noticeable to that, and the rest is not very noticeable (except of course power-hungry USB devices if you use those).

I am not familiar with gnuplot, thus I kindly ask you to supply one more well thought built-in plot template, which shows all that necessary correlations in a combined plot, which helps with performance troubleshooting and/or optimization.


It should clearly depict power consumption AND charging power, maybe calculate the difference value between them, so that power consumption is adjusted as an absolute value. Then we would have:

  • Power consumption absolute (adjusted from charging, sum of all power consuming Pandora parts)
  • Charging (what gets through the charging cable and circuitry into the battery)
  • Power consumption relative (battery current + charging current coming in - power consumption)


Then all the energy-draining factors can be clearly seen in correlation to Power-consumption-absolute.


And separately from this one can analyze mere charging issues itself.
I'm not sure if I really understand what you mean here. Something like the power/cpu graph that shows how many Watts are consumed together with the cpu usage?

Layout of panel "Network": Text block "Download" and "Upload" not aligned


I would prefer them aligned at the same height, meaning, that the Download text block moves closer to the bottom as well.


If you conceptually wanted them at a different height alignment (which I doubt), I would propose to put Upload higher than Download, as the word "up" is immanent in "Upload", the same with "down" in "Download".

The vertical alignment of download and upload was done that way to make sure that if you resize the window, the text doesn't overlap even if you make the window quite narrow. But maybe I should focus on the full-screen layout, and not care too much about resized windows in strange shapes...

Long Term


Panels "Network" and "Storage" seem to consume quite much CPU


If you jump from the panel "Help" to the panel "CPU", you can read in the young past of the graph that "Help" used very little CPU resources.


But if you jump from "Network" or "Storage" to "CPU" you can read, that they both use quite an amount of CPU. I can understand that for the "Network" panel, as it contains a frequently updated graph, but "Storage" just consists from pie charts and rectangular shapes, why does this use so much resources?


Maybe you could use some more resource-friendly drawing techniques? Btw, which ones do you use?

Storage takes more cpu because drawing circles/pie charts involves much more math than drawing rectangles or lines. I could replace the pie charts with rectangles to make it more efficient. Or make the refresh rate lower. It is currently quite high because it's nice if it reacts fast if you remove an SD card or if the RAM memory usage is changing. But usually a slower refresh rate would be OK for relatively static information like that.


The pie charts are drawn with SDL_gfx, and this is not a very well-implemented library in terms of efficiency. But I don't know anything better.

Possibility for comments

  • A new CSV column "Comment" is added to our logging format.
  • If the user presses the key command for commenting, i.e. "C" :
    the program remembers the current timestamp
  • a textfield overlay opens, user types i.e. "WiFi enabled. Running Chromium web apps".
  • ENTER closes the textfield.
  • the program retro-effectively writes the comment into the lcomment cell of the line with the closest timestamp to when the comment writing was started as this was the correlating moment.
    Alternative idea: Insert a new line with the real comment-start-timestamp, but then, this would break the regular intervals. Possibly a choice for the config file.
Maybe the comments could go in a separate file, as long as there's an easy way to see the comments together with the data (the plots), that would be fine. So maybe I should figure out how to annotate plots with comments in gnuplot.
 
btw, if pnd_run (bin) is used, and no subapp ois specified (you're supposed to specify the subapp, otherwise its _undefined_), then it runs the 'first returned' application from the auto-discovery of the pnd-file

Thanks for the hint. That's exactly the solution for my problem: Starting "System Info" from the "Warlock Bar". pnd_run -1 works (now).
 
Distributing as 2 PNDs to overcome the PND limitations in the meantime. Why not! A hint "You need the sysinfo" at the "sysinfo plot" app repo page will suffice.


Would make it more complete as a troubleshooting/optimization utility if sysinfo would log:

  • screen brightness (could this value also be used to determine "screen off" from closed lid or the idle timeout, if not then please also track this)
  • wifi link up/down ("downloaded bytes 0" alone by itself is ambiguous. Can mean "link up but no traffic at that time" or "link totally down).
  • power modes (I am not so tech-savvy, is this synonymous with the OPP levels?, then probably just log the OPP level)



Graph which makes correlations clear. I am not that electro-physics savvy either. What I meant is that I would like to clearly see:

  • How much energy is used by the entire Pandora system (all its components)?
  • How much energy comes into the Pandora (from the charger cable, through the charging circuitry, into the battery)?
  • How much battery capacity does my Pandora have currently?



As far as I understand "power" in your logs is the sum of "charging in - system usage" (sorry for my unprecise wording, I know it no better, and even less in English), so comparing logs from periods with the charger connected to those from periods with the charger unconnected is hard, because you have to do that graph correction in your mind.


I suggested that you log the adjusted values (=net values), so that my 3 questions can be answered in one graph, which shows that correlations properly.


Text block "Download" and "Upload" not aligned. As responsive design is worthy, this is a good approach. Just put the "up" above the "down", then it's also metaphorically correct.


Drawing performance You are the development expert here.


From my interaction design standpoint I can say, that the storage chart needs maybe at most an update per each 1-2 secs. Maybe 3-5secs. I don't know the use cases, how often one looks for ram usage changes...? Other users, what do you say to this?


One naive idea for the drawing algorithm, but I have no idea wether that would really improve performance: Maybe you could use a double buffer. 2 rectangles (height == graph-height, width=graph-display-width) with a bitmap texture to which the graph is constantly updated. The rectangles constantly move to the left. If rect-1 touches the left end of the graphing area (=Y-axis), its texture is not updated anymore. Now the graph is updated to rect-2's texture. rect-1 now only moves to the left with its texture unchanged until its right border hits the Y-axis. Then rect-1 and rect-2 change their roles. And so on.


Comment functionality


I strongly propose that the comments go into the same CSV file. Why? Compatibility & simplicity! You can use this with any arbitrary software. If its separated, then you need special software or manual pasting. The additional few bytes per line are negligible. I suggest that the comment is the rightmost column. If there is no comment then it is just an unpadded ";". If there is a comment it is as long as it takes (will be around 20-40 chars for most comments). If the user attempts inserting the separating character ";" then no input happens. Linebreak shall not be possible in the comment (as the CSV format would need escaping then, too complicated) Pressing ENTER just finishes the comment.


It would also be cool if comment markers could be seen in the CPU and network graph as a "C" at the X-axis and/or a thin white vertical line. Then you can set markers for specific key test moments, and monitor/compare them on the graph of the young past (last ~ 10mins). And on the plots they should be as well of course. To not explode the plot layout, their length must be limited. If longer than that show them as "This is a long comment with m..."
 
One more idea: Custom singular log/comment events


I once suggested that if you proceed logging, the first log event shall be taken immediately and then the interval causes the next log event, if logging is not paused manually before that happening. If this is indeed implemented the following would be possible:

  • You start a new log file with "L", and immediately pause it with "P". Then you only log at the moments you desire by pressing "P" twice quickly (first proceed, which causes a singular log event, then pause until your next desired continuation or singular log). Of course your consecutive "P" presses must be faster than the duration of 1 interval, otherwise that would also cause a log event.
    Even more suited would be a designated key for this, "I" (mnemonic "instant" or "isolated" log), which would spare you having to press "P" twice. The log-info-area should then read "Logged once at hh:mm:ss. Logging now paused."
[*]Imagine the current functionality (no "I" instant log function yet), and a long enough logging interval set (~30 secs), you could press "P" (proceed), then "C" to start a comment, type your comment, ENTER to finish your comment, and another "P" (pause) to prevent another log.

  • The improved version of this (like "I" is the improved "PP") would be: If logging is paused and you press "C", a timestamp-at-comment-start is taken immediately, you type your comment, finish it with ENTER, and then a line with the timestamp-at-comment-start and the comment itself is written. The info area tells us: "Logged with comment at hh:mm:ss. Logging now paused."
 
Last edited by a moderator:
Back
Top