The charging part does have to have tight control over how much current to be drawing internally, however that does not necessarily mean that information is exposed outside the charge controller in a more granular way.

No, it isn't possible. In fact, the "voltage" displayed in the diagnostic menu is just the same steps roughly translated over. The battery charging/detection hardware doesn't have fine control of the levels exposed anywhere that the OS could tap into.

The steps roughly correspond to High, medium, low, empty, "I'm about to shut off", "I'm shutting off". Sometimes the time between 5-6 can be a few seconds, but most of the time it is shorter. The time between 4-5 can be minutes, or seconds. It is not very precise at the low levels.

For your emulator, calculator and connkit. Easiest way to get them is to use the check for update mechanism in the emulator or connkit. Don't have a Prime and just want to try it out? ftp://ftp.hp.com/pub/calculators/Prime/ for the windows virtual calculator installer.

What Has Changed?

Wireless now supports up to two antennas per PC (30 calculators per antenna). Wireless performance has been improved. Various quality and user experience enhancements have been made.

Primary focus of this release was greatly enhancing wireless robustness and communication in general.

Actual release notes hidden below.

Spoiler For Release Notes:

Quote

HP Prime – Release Notes -------------------------

Description ----------- This release of the Prime Calculator firmware and associated PC software delivers significant new features and fixes outstanding issues. This document is not a complete list of all changes, but highlights specific items. All users of the HP Prime calculator are encouraged to upgrade for the best possible experience.

Primary focus in this release was enhancements to communication and wireless.

New Functionality (Connectivity Kit) ------------------------------------ User interface refined and improved. Much more reliable and capable communication. Multiple antennas supported for wireless communication. Progress bars are now shown for individual units during transfer data transfer. Much nicer "firmware update" window - adds support for detection of multiple units and more ways to receive prompts for updating units. Now possible to send a single item from one unit to everyone in the class in a single step. Improvements to screen monitoring.

New Functionality (Calculator Software) --------------------------------------- Added lower/upper optional inputs in cumulative probability functions. Binomial arguments now consistently ordered. Add ability to mix and edit CAS functions inline as part of larger programs - #cas to start a block, and #end to end it. New variables Notes and Programs created to allow programatic access. Geometry variables Instruction and DelInstruction provide programatic access to geometry constructions. Much faster scrolling in large notes, programs and equations. There is now an "Info" menu key in the memory manager. It reports free ram and available storage. VARS menu now has a "system" group which contains general system variables. TOff variable introduced. It is a millisecond value with minimum of 5s. TIME was renamed to TEVAL to avoid confusion with Time variable. Also now shows up in the catalog. SERIAL and VERSION commands introduced. Added an implicit_diff command to simplify implicit differentiation steps. Improved help throughout system and connected it in more places.

New Functionality (Virtual Calculator) -------------------------------------- Japanese user interface turned on for menus. There is now an "Info" menu key in the memory manager. It reports used ram and available storage.

Resolved issues and changes excluding CAS ----------------------------------------- 1. Resolved potential issue pasting formatted text into notes. 2. Improved cursor positioning when working with very large notes or programs. 3. Resolved issues with style selection in note editor. 4. Resolved issue using large font in inference table view. 5. Resolved issue storing into some inference variables from the command line. 6. Improved spreadsheet to allow loading old format without issue. 7. Resolved issue where plotfunc in command line could blink while help was open. 8. Resolved issue with vector use involving MAKELIST and list2mat. 9. Resolved issues with printing some messages from the CAS. 10. Resolved issue where connectivity kit did not allow an empty password for exam mode. 11. e^t^2 not printing with parens making it appear wrong. As part of fix, removed superscript 2 character from [x^2] key. Now does ^2 instead. 12. Resolved some issues with various FILLPOLY inputs. 13. Resolved issue with Send button not showing up on the emulator when selected to communicate with a calculator. 14. Resolve issue in connectivity kit where menu cut/copy/paste were not always working in some places. 15. Improved poll response to prompt for verification on single send, or with missing responses. 16. Resolved issue with digit grouping making equations appear strangely in a few locations. 17. Resolved an issue where [a b/c] could hide a negative sign. 18. Resolved issue with using matrix store notation M1(5,1) on a vector. 19. Resolved many issues in INPUT command. Also, chooser indexes in INPUT command were 0 based instead of 1. 20. Introduced "Fit" variable in 2var statistics to programmatically control fit line removal. 21. Resolved issue involving SetFreq. 22. Resolved issue using built in function variables in makelist. ex: MAKELIST(F1,X,1,5,1) 23. Brought back OS version on help about screen. 24. Improved color choosers through system so initial color selection matches the current selection. 25. Improved first boot screen. 26. Resolved issue with REGRS command and trig fit. 27. Some "NIST" group went and changed the definition of Faraday. 28. Resolved issues with alphabetical app sorting. 29. Switched to have fsolve in CAS->solve menu instead of less capable nSolve command. 30. Improved the exam mode password/time screen to show remaining time better. 31. Improved sleep to avoid the calculator from sleeping while streamer is connected and active. 32. Resolved issue where terminal scrolling could hang system. Also added a titlebar on the terminal. 33. Resolved issue with E+5/ interpreted as (E+5)/ instead of E+5/ 34. Removed ` from catalog. (auto eval quote) 35. Resolved issue with program dialog box and digit grouping. 36. Resolved memory issue in parser when using ICON keyword. 37. Resolved issue where a matrix stored by M2:=M1 in home edited both M1 and M2. 38. Resolved issue with digit grouping in solve application preventing solving with numbers >1000. 39. Resolved issue with kinetic scrolling and editors. 40. Enlarged size of advanced graphing memory so more scrolling can happen before redraw is needed. 41. Resolved issue where define F1=..., F2=d F1(X) / X=X in symb, PLOT view, and then exit could cause undesirable effects. 42. Resolved display issue where DMS value -1<x<0 was not showing negative sign. 43. Improves Function app/Plot/Fcn/Root reports for some functions that jump over zeros. 44. Resolved issue where STRING function was not working well with 4 or more parameters. 45. Resolved issue where DRAWMENU was not able to use pictures as sources

Resolved issues and changes in CAS ---------------------------------- 1. Improved simplify handling of surd/nthroot 2. concat now accepts more than 2 arguments 3. Fix for int(1/x^2,x,0,inf) 4. Fix for fisher_cdf(5,6,2.1,∞) 5. Changes for arcLen - support for curves having more than one arc and for points instead of parameter values for boundaries 6. Additional checks for low accuracy integrals by gaussian quadratures to avoid Romberg method, example int(1/sqrt(1-x^6),x,0,1.) 7. Improves multiple integrals like int(int(int(sqrt(x^2+z^2),z,-sqrt(y-x^2),sqrt(y-x^2)),y,x^2,4),x,-2,2) 8. Fix for desolve(y''=1/x^2) 9. Fix for sign, for example sign(sin(6283185307179586/1000000000000000)) 10. Fix for int((1-x)^(2/3)*x^(1/3),x,0,1) 11. Fix for expand(x*2.9e-13+6.3e-13) 12. Enables new syntax for substitution in expression like f:=x^2+1; f(x=1) 13. int(1/sqrt(1+x^3),x,0.0,∞) now returns an approximate answer 14. Fix for (f)solve(((3.068E-3/(0.118+1.001E-5*X))-(((1+2.126E-5*X)/(1+8.506E-5*X))-(0.3+2.55E-5*X)))=0,X); 15. Setting default arg to 0 in piecewise to make limit work 16. Added support for complex numbers in pmin 17. Fix for limit((-9x^69+x^47+10)/(-7x^69+x^46+10),x=inf) 18. Remove autosimplification after 'reorder' 19. Fix for limit(surd(3^x+5^x,x),x,inf) 20. Fix for solve(6e-34*f=g,f) 21. Sort proot output 22. If taylor or series have polynom as optional last arg, the order_size term is removed (shortcut for convert(series(...),polynom) to series(...,polynom)) 23. Improve warning for some ode that can not be solve explicitly 24. Fix for int(x²/(9+x^6),x,-inf,inf), int(1/(x^2 + 6*x + 12),x,-inf,inf) 25. Fix for trigtan(sin(x)/cos(x)) and for cSolve(x^4-1=3) 26. SVD warnings for exact/symbolic matrices 27. Fix for GD:=line(y=(4859/2500*ln(20)+631/125+(-4859/100000*ln(20)-631/5000)*x)):;GG:=plotfunc(1.301*ln(x)+3.406,x,-50,50):;single_inter(D,G); 28. Changed ihermite to return a list 29. Simplification of conj(conj()), conj(re()) and conj(im()) 30. median({1,2,3,4}) returns 2.5 31. rsolve now handles homographic recurrences if the fixed point has multiplicity 2 32. Computation of Beta(x,y) if x>0, y>0 and x+y is integer, recognition of integrals solvable by Beta, e.g. int(x^(1/3)*(1-x)^(2/3),x,0,1) 33. If partfrac optional 2nd argument is a sqrt, does partial fraction expansion with factorization over this field extension 34. Fixes for rootof (root selection and i with rootof) 35. Improves arg and evalc for pow of complex numbers 36. Fixes solve with piecewise containing a sqrt 37. Fix for solve(x^5=-1) 38. laplace now switches to exact mode 39. Fix for piecewise in regroup and solve 40. Fix order for regroup (fraction/monomials) 41. Fix for SVD 42. Fix for string(matrix), sum(sin(n*x)/n^2,n,1,inf), fsolve in degree mode without interval/guess 43. Fix for Groebner basis and fix for comparing 2 symbolic complexes having the same imaginary part 44. Improves some simplifications like abs(exp(i*x)+1) and some integrals of periodic function over a period 45. Avoid rootofs for some factorizations 46. Change for product/sum, e.g. for product(n,n,1/2,3,1/2) 47. Calls exact on limit arguments 48. Change piecewise printing to CASE 49. Fix for int(exp(-x)/(1+x^2),x,0,inf) 50. Fix complexroot(x^3+8,1e-5,0,2+2*i) 51. Fix for solve(sin(x)=sin(2x)) 52. Accept = instead of - in zeros and czeros 53. Call normal on inverse of matrix 54. Fix for int(abs(sin(x)-cos(x-1)),x,0,3) 55. fsolve now returns itself if the equation has more than 1 var, making commands like fsolve(int(fsolve(x^5+x=y,x,1e-14),y,0,t)=1/3,t=1.0) possible 56. Improve detection of polynomial equation by fsolve. If fsolve has only one solution in a polynomial equation, returns the solution instead of a list of one solution 57. Fix printing of ()^.5 (was incorrectly printed as sqrt()) 58. Fix for int(1/surd(x-1,5),x,1,33) 59. Fix for desolve(y''+1/(x+1)=0,x,y) 60. Make resultant with 0 return 0 61. Fix for ifactor(373196531) 62. Fix for SVD of matrices having more columns than rows 63. Make sorta/sortd work with complex numbers (sorting by real parts) 64. Changed number of Pollard-rho tries for ifactor(2^101+5), removed some optimizations that seems to fail in some rare occurrences 65. Integration - small improvement recognizing f(u)*u' pattern 66. pmin now accepts sqrt and other algebraic extension of Q 67. round([a,b],c) fixed 68. Make limit(exp(-1/x^2)/x,x=0) work 69. Fixed iquorem to behave like iquo+irem with negative integers 70. Fix for int(frac(x),x,-1,2), int(frac(x),x,0,6.4) 71. Fix for int(sqrt((t-5*cos(t))^2 + (6*cos(1+sin(t)))^2),t,0,3) 72. Fix for factor(3*a*cos(sqrt(3)*ln(-x)/2)-b*sin(sqrt(3)*ln(-x)/2)-sqrt(3)*a*sin(sqrt(3)*ln(-x)/2)+sqrt(3)*b*cos(sqrt(3)*ln(-x)/2)) 73. Fix for sum_riemann(1/sqrt(n^2+k^2),[n,k])[/q][/q][/q]

During the splash screen the calculator is probably initialized. That takes some time. Even if you could get rid of the splash screen it will probably take the same amount of time before the calculator is ready to use.

Yup, you are correct. Rather then display a black screen, it had do *something* else you'd have time that nobody knew the calc was doing anything. Hence the marketing people wanted a logo...

So how do you plan to distinguish lists from block braces? The primary reason we decided to go with the begin/end instead of { } was due to confusion and potential conflicts.

I think your matrix/list results will change dramatically if you have much larger lists and matrices.

The reason why is that a matrix has a single type and constant sizing of each object. It can encode things in a much more efficient way since you do not have an identifier for each number. In a list, each number will be much larger since the type of the object much be encoded as well as the size to the next object.

In short, a matrix should be much faster once you have more then a very small number of objects to jump over since it is a direct index due to all objects being known. It will also be much smaller then an equally sized list.

A string should also overtake a list for much the same reason. The comment in the release notes about "string"[n] avoiding memory copy was because previously you had to call a function to get a specific character ( MID("ABCDE",3,1) vs "ABCDE"[3] IIRC). Thus your string would get copied unnecessarily.

I am not surprise about the IFTE and MAKELIST being the fastest.

You've actually just stepped your foot into one of the oldest and most contentious differences between the HP philosophy and TI. The answer of "1" here is actually incorrect in a limited precision device. What?!?!?!?

The reason is due to one fact that you hinted at. When calculations are done in limited precision machines (12 digits for user usage in the case of Prime) you CANNOT represent certain numbers. 1/9 is going to be .111111111111..... repeating out to infinity. HOWEVER, these machines cannot represent and infinite number of digits. So if you break you input up into multiple steps, you can discover something interesting.

On any calculator but an HP machine, try typing 1/9. Now do Ans*9. You will see 1.

Now try doing 1/9, but this time you will COPY the exact display shown you into your input (.111111111111111*9) or similar and then evaluate. You will see .999999... out to the end of the display. So what is going on?

This is what is known as "guard digits". Most calculators keep a few extra digits around that are not shown to the user. If you chain the calculations together they can help, but they in essence cause the displayed results to be different depending on how you entered the numbers.

The HP philosophy has always been "the number shown in full precision will be the same no matter how you do the problem, and will always be fully accurate to the extent possible within the limited display of the device".

Now as you have discovered, in the CAS the result is always 1. The reason for this is the numbers in CAS *are* EXACT objects that CAN represent infinite precisions. Therefore a result of 1 is the correct answer no matter to which philosophy you adhere.

There is something very powerful in the way we designed Prime - there is a LOT of research into what is known as pedagogy, use of correct mathematical thinking, and using correct mathematical language. When students are using Prime, it is constantly pushing them to think about questions like "am I trying to see numerical representations, graphical representations, or symbolic representations. Am I solving things in an exact way, or in an approximate way?" By pushing you to make these internal questions, you are actually pushing your thinking in a mathematical way and changing the way you think about math and problem solving!

There is a LOT of research into this area and Prime was designed taking that into account. While there are some warts still as Omnimaga alluded to, there are a LOT of educators, professors and similar who are very excited because they can see clearly that it was designed using this research and recognize the power and benefit of such an approach.

The exact reason it returns "Error: X/0" instead of just undefined is again due to this idea that we are pushing the way you think. In approximate HOME, this is a clear answer that indicates what is going on. In the CAS, you actually receive a +/-Inifintiy - not plain infinity! That is actually what is known as a complex inifnity. No other handheld calculator returns this! It actually IS the correct result. However, since the TI CAS calcs return "undefined" (which is correct, simply just not as correct as possible) people are used to seeing that.

Complex infinity in a single x/y plane can be thought of as a divergence tending towards infinity in both directions. Is it undefined? Not really - it is actually very *well* defined and using that definition can be very useful in many advanced math concepts. Simply returning "undefined" is a result that avoids the need to start thinking and talking about more "advanced" things.

Since we are trying to push the boundaries of thinking and encourage more exact mathematical thinking however...

A gentle reminder to people about the hpprgm extension and others in use in the calculator - these are not plain text files!

I've seen several people now post files labeled with an hpprgm extension when in fact they are plain text. Please remember that hpprgm files are in fact BINARY files and not meant for editing with a text editor. While you can open an exe with a text editor, making changes will cause problems and most likely crashes. The same WILL happen if you are manually tweaking hpprgm files.

When the format changes as new features are added, your programs will confuse people as they try to load them and they fail. The fact that you can currently open them and they seem to show plain text primarily does not mean you should go ahead and edit things.

You have been cautioned and please remember this! For the sake of people in the future getting totally perplexed as to why things aren't working, I'd ask you to keep your plain text source files as source, and only have the hpprgm extension on files that were generated by HP software (or some other specialty program).

We don't have any issues with giving out information about the files, but you can be pretty certain the format will be changing as things get added. The program file format is far from ready to lock everything down permanently yet. You pretty much have everything of interest right now correct. There is not any arm functions or calls saved in the file. I'd recommend just keeping out of the object table at the moment as those will be the most likely to change. The source area is probably pretty safe.

Save Total Size // save descriptor info Save All Vars/Exports //saves the names for use in accessing things Save the source //as described

I haven't checked for certain, but your "optional" headers might just be the HP Objs encoded. Reals, lists, etc. That is probably what you are seeing I would guess.

Minor correction here... I don't think there was anyone not hired or being paid by HP that was fixing or changing anything in the 50g ROM. That was quite a bit before my time, but I am pretty sure that is correct.

There were other situations where you could inadvertently get an extra END inside a subroutine and it wouldn't be complained about, but would be very confusing when tracing through and you'd discover that they weren't paired up. We basically made it slightly stricter to avoid extra END words - especially as I suspect automatic indenting and similar would really not like that.