"Life is short and ROM is full" #110

Open
opened this issue Sep 8, 2017 · 35 comments

parisseb commented Sep 8, 2017

 The title is a quote from W. Wickes that I believe applies here. Well, ROM is not yet full, but once the firmware is mature, it will probably not be far from full, if you consider what is missing if compared to calculators in the same price range: Solve application (equations, linear systems), Parametric (otherwise why is there a t on the x,n,t key) 2d input exact numeric computations vector/lists piecewise functions more complete applications application data available in other app, for example if I define f in Function, I want to be able to use it in Calc and Sequence save/retrieve application data exchange application data (connectivity kit?) Python UI Python modules (at least maths, random...) ... I hope that the calculator specs will soon be upgraded to at least 8M of flash so that the community can really add functionnality, for example like I did on the simulator https://tiplanet.org/forum/viewtopic.php?f=102&t=20445 (I believe there is also a problem with the current license that will prevent adding significative functionnalities, I will discuss it in another issue) or like a 3d grapher or whatever. More RAM would certainly not hurt, I'm curious to know how many recursions you can do on the device in a Python recursive program before the stack is exhausted. Consider a recurrent sequence u(n+1)=f(u(n)), it will be natural to program it like this in highschool: ``````from math import * def f(x): return cos(x) def u(n): if n==0: return 1.0 # u0 return f(u(n-1)) print(u(35)) ``````
Contributor

boricj commented Sep 8, 2017 • edited

 In my opinion, there is enough room in Flash to catch up functionality-wise with a TI-83 CE, but fitting a CAS even with #73 is at best a tall order. For the targeted segment, I think the tech specs are adequate. It's not meant to compete with the HP Prime and the latter is a bit overkill for high school anyways. What I would expect in a couple of years is a new model targeted at a higher segment but with the same codebase, something along the lines of: CPU-wise, either: A 400 MHz STM32H743VG with 1 MiB of RAM and 1 MiB of Flash (first choice, for the RAM) ; A 216 MHz STM32F765VG with 512 KiB of RAM and 1 MiB of Flash (second choice) ; An external NOR of at least 16 MiB ; For inter-calc connectivity, either: micro USB-AB (to interface easily with the current model) ; USB-C (at USB 2.0 speed) ; That should be enough to fit a CAS while having a shot at being cheaper than the CAS calculators currently on the market. It also would not necessarily obsolete the current model (with a slight price reduction), with one model targeted at high school and the other targeted at college. Releasing such a hypothetical higher-end model first (excluding the fact that the STM32H743VG is not released yet) would have most likely increased the unit cost outside of high school range while not having a firmware mature enough to justify it without investing more development time upfront.

Zezombye commented Sep 8, 2017 • edited

 I think there isn't enough flash for third-party apps; Casio calculators (FX-9860Gii) have 4 MiB of flash, which I find to be enough. Since the OS will possibly grow (with native apps such as CAS, physics, etc) maybe 5 or 6 MiB (I think there should be 1.5-2 MiB flash free for third-party apps). The current processor (100 MHz) is enough frequency for games (unless you want to make 3D games, but well) so no need to upgrade the frequency.
Author

parisseb commented Sep 8, 2017

 @boricj: Who speaks of a high model? The CPU is fast enough, the real limitation is memory : both ROM and RAM, but especially ROM. I would not be surprised if the firmware is about 900K before next back to school if/when missing features are implemented, in other words the ROM will be full (because you must keep some space for bug fixing). What kind of app do you want to develop then? As far as I understand, having 8MB of flash would cost less than 1\$ in hardware and would really allow third party app, like the giac CAS. Consider how attractive the calc would be if two French firmwares were available: one with a strongly reduced subset of CAS commands inside the Calc app targetted at the highschool, with what you have in the geogebra CAS window (they are using giac by the way:-)) This one could be advertised to make the difference with the TI83CE. one with full CAS command set, like khicas on the ti nspire, for students who will learn science at the University or in CPGE. 27 years ago, when W. Wickes wrote "Life is short and ROM is full", cheap ROM/RAM was not available in the same quantities as today and the Saturn CPU could only address 512K. Today, you are advocating for the same kind of restrictions for 1\$?
Contributor

boricj commented Sep 8, 2017

 I'm not the one who selected the parts for the NumWorks. I would've raised an eyebrow at the 1 MiB of Flash too. I maintain that it's enough to reach the level of functionality of a TI-83 CE (thus being both good enough and within price range of high schools), but I agree that with a NOR chip and maybe 320 KiB of RAM in order to fit a CAS it could've caused some serious disruption in the calculator market. The CPU upgrades for the hypothetical higher end model I've suggested would be more for their additional RAM rather than their additional speed. I assumed the simplest upgrade path possible without using an external SRAM chip. Obviously it's way too soon to contemplate a higher end model for now, but it's something I would expect down the line for the college market.
Contributor

adriweb commented Sep 8, 2017 • edited

 I'm not sure if everyone noticed, but the available numworks schematics do mention a Flash chip of 8 MB, the AT25SF641 ("64-Mbit, 2.7V Minimum SPI Serial Flash Memory with Dual I/O, Quad I/O and QPI Support"). It's not soldered on the current hardware, so maybe for a next revision? With that anyway, RAM will be the issue much faster than ROM - the STM32F765VG is better already (and, well, available), but using a STM32H743VG would be very nice. (Note that there's also a mention of an SD card, and in the source code as well)
Author

parisseb commented Sep 8, 2017 • edited

 I would not bet that it's possible to pack all the functionnalities of the ti83ce in 1M of flash. I've listed some features missing in my first post in this thread, but I forgot some apps that would take space: spreadsheet, geometry, physics, finance, conics... that's probably at least 300K. Moreover the Numworks will not get market share if it offers the same functionnalities for the same price as traditionnal calculators, because teachers have their habits. The current situation is even worse, price is a little bit higher for less functionnalities and less visibility (not sold in shops). The situation could be different with feature(s) that traditional calculator manufacturers offer only on high-end calculators.
Contributor

boricj commented Sep 8, 2017 • edited

 @adriweb I was aware of that. I doubt it will be populated in a future revision for the N0100 model. Otherwise, early buyers would (rightly) complain that they've been left out. Putting down traces for a Flash chip and microSD card holder is effectively "free". It has the advantage of not requiring special runs of PCBs when experimenting or making devkits. So prototyping my hypothetical higher end model would merely require populating different components on an existing production PCB, which is (relatively) cheap and fast. Even better, they could theoretically share the same PCB if it gets manufactured. It's not the first time we've seen that inside calculators (https://tiplanet.org/forum/viewtopic.php?t=16149). Placeholder traces are pretty common inside electronics in general. @parisseb App modularity (#73) and online building tool (#84) can lessen the pressure on Flash space. A student in série S has no use for a finance app for example, so s/he can leave it out. Ideally there would be no need to juggle apps, but NumWorks can't really recall its calculators to add the chip or tell people to solder it themselves... I agree that a calculator with CAS for less than a hundred euro would've been a TI-Nspire CX CAS killer. Whether or not they could've pulled that off within their development costs budget and time-frame while not pricing themselves out of range of most French high school students in the process is another story. I'd argue that given the numerous missing functionalities of the firmware at launch (and still ongoing), there's a lot of missing stuff to implement before even worrying about adding a CAS. Especially when Python support was implemented in August.
Author

parisseb commented Sep 8, 2017

 Forget about Finance if you want, that's not a big app anyway, spreadsheet, geometry are much bigger. At 80 euros with the current functionnalities compared to the TI83CE, the Numworks is not competitive for this back to school, the question is what they will offer for next back to school. During the next 9 months, I would of course recommend to complete the firmware (see my first post). But my point is that when it's done the flash will be (almost) full, therefore they will have to increase the flash, and I recommend 8MB (or more) in order to be able to port 3rd party app that could give an advantage against the competition : porting giac is not difficult once the memory is here, the hard work has already been done for other ARM ports, but more flash would certainly also interest other developpers (3d graph or geometry for example). And that should be decided as soon as possible, because the number of people having a 1MB flash "frozen" calculator would be smaller.

agucova commented Mar 15, 2018

 I think the ROM issue is clear, the advantages of adding the new chip are huge, enabling future-proofing for the project and allowing for some high-end features. On the other hand, I think the problem of past buyers is minor, and as @parisseb said, it's a decision that needs to be made better sooner than later, if we are to avoid it. And well, I don't think manufacturing cost is even worth mentioning.

daniel-jozsef commented Apr 20, 2018

 I saw a link to a forum where people added an 8Mib flash aftermarket to the empty footprint, and got it working (?), but I don't really know because it's all in French and I don't speak it. ;) Anyone with information on this (ie. modding the device to add the correct flash chip)?
Contributor

debrouxl commented Apr 21, 2018

 Your understanding is correct. The challenge for adding and using a Flash chip I/we started at TI-Planet was quickly won by zardam, who used the external 8 MB NOR Flash memory chip - the one mentioned in NumWorks' schematics - to hold a port of giac, bringing a solid CAS (also used in the high-end HP Prime) onto the NumWorks caIculator platform. Granted, the low amount of RAM provided by the NumWorks calculator's STM32F4 chip probably precludes the usage of really large matrices and some very complex symbolic computations, but those are well beyond high school usage, so it doesn't really matter in practice for the purpose of school usage by high-schoolers. Modding the device to add the correct Flash chip is a matter of soldering it onto the empty footprint, which, thanks to the 1.27mm pitch, doesn't require much in the way of special skills or soldering hardware. The unitary cost of the 8 MB NOR Flash chip is less than 1 USD / 1 EUR, and therefore lower in orders of, say, 10K chips at once. Including it would have raised the calculator's public price of 2 or 3 USD / EUR (or made NumWorks' margin thinner, but chances are that couldn't afford it), but fixed the main hardware deficiency of the calculator. I'm supposed to write a front-page news item (in both English and French, like all of our important news items) about this piece of great work on TI-Planet, but I still haven't done so...

daniel-jozsef commented Apr 21, 2018

 I'm quite curious about what actually using the flash ROM entails. :) Does the OS flashing process automatically make use of it, or does it need to be flashed separately from the main OS? (Is it even flashable through USB?) If separately, how can the main OS access it? Personally, I'm mostly interested in bringing more Python libraries to the device, which probably will need more rom.
Contributor

debrouxl commented Apr 21, 2018

 Yes, the external Flash memory is flashable through USB. And it's memory-mapped, so addresses from the internal Flash memory, the external Flash memory, the RAM, and the rest of the devices can be mixed freely in a single binary, using a special linker script.

agucova commented Apr 21, 2018

 I ordered an AT25SF641 for experimenting with mine, I'm looking forward to @debrouxl's article. For anyone looking for it, the challenge by TI-planet is here.
Contributor

debrouxl commented Apr 21, 2018 • edited

 Indeed, a lot more work can be done to make the OS binary smaller. See, for instance, #62 - which can't be integrated because of their counter-productive CLA (or my refusal to sign a CLA, depending on how you consider things) :) [EDIT: the comment to which this comment was replying disappeared.]

chocol4te commented Apr 22, 2018 • edited

 Sorry, I sounded presumptuous and unnecessary. Running sstrip takes a whole 46 bytes off the binary size, on top of strip and building without debug symbols, and that easily leaves enough space for a CAS ;) Problem solved!

daniel-jozsef commented Apr 22, 2018

 Soldering a chip on board might be beyond the comfort zone of many, but personally, I consider that a pretty basic mod... and it gives us a load of ROM. BTW @debrouxl why are you reluctant to sign the CLA? Is it protest against the use of CC-ND, or do you have a general distaste toward CLAs that allow companies to dual-license contributors' code?
Contributor

debrouxl commented Apr 23, 2018

 Yeah, if the Flash ROM's pitch were smaller, the mod would be harder. I've never done 1.27mm soldering myself (only 2mm and 2.54mm), but 1.27mm is supposed to be within the reach of any soldering iron without a thick / damaged tip, and supposed not to require the use of flux. Me not signing the CLA is a protest against both the use of CC-ND and the use of a CLA. Even if I do understand their business goals / worries, and I do know that if I were in their shoes, I might even temporarily side with them. As noted in #62, some of the optimizations appeared in epsilon's main (at least public) source code after they appeared in #62.

chocol4te commented Apr 23, 2018 • edited

 @debrouxl Can we just start making PRs against your fork? Also, I’d be happy to set up a non-profit ROM upgrade service, I have a rework station and could install the chip for anyone who wants it :)
Contributor

debrouxl commented Apr 23, 2018

 It's probably better not to make PRs against my fork in its current state, because it's quite bitrotten by now... it's two releases behind at the time of this writing.
Contributor

debrouxl commented May 17, 2018

 Make that three major releases behind, now that 1.5.0 has been tagged. But the main reason why I stopped working on Epsilon still holds, though there's still a glitter of hope that the situation is going to be improved, see #38 .

gagarine commented Aug 26, 2018

 Why not bring it to 1Go of flash? Then you can start uploading images, slides and such. In a lot of school smartphone are banned. Having a device where you can exchange and preview files (PDF, pptx, ebook) would be super handy for kids and teachers. I think we should just allow smartphone and computer in class, but it's not the case. So numworks can be a "no wifi" and locked down smartphone... (school like to lock down kids capabilities). When I was at school I had used a palm for my calendar but now it will be certainly not allowed :(.

LAX18 commented Aug 26, 2018

 @gagarine Here is the problem. You said it yourself; It would not be allowed. Even though this stuff would be allowed at my school, due to technology ignorance, at most other schools, this would be discovered and banned. What school wants to have students able to put a google doc with notes on their calculator? This would actually drive sales down, as more schools become aware and ban them. To be fair, TI has delt with this problem, and somehow retains their credibility, partly due to their monopolization of the graphing calculator market and well know design. I do not think that Numworks, a relatively new calculator company, would be able to survive this. I do, however, support more storage so thats that. I just do not want to see Numworks fail as a result of extra features.

gagarine commented Aug 27, 2018 • edited

 What school wants to have students able to put a google doc with notes on their calculator? It's why you have an exam mode that restrict the capabilities of the machine.

LAX18 commented Aug 27, 2018

 I suspose thats true, but TI has struggled with that in the past, calculator communties finding exploits. If there is a foolproof way to do it, I say go for it.

gagarine commented Aug 29, 2018 • edited

 @LAX18 no need for exploits, you can simply flash your devices. You can also mod it by changing the hardware (https://zardam.github.io/post/raspberrypi-numworks/ ). And so on. I remember doing program in BASIC on my ti-89 especially to solve question at the test. I learn a lot more by doing that, that simply learning a "math recipe". Cheating is super easy even at university. Peoples are pretending it is not. But this is simply not true and tone of peoples are cheating all the time. The true is I really don't care. I think tests without access to a computer and internet are mostly bullshit, but that's another subject.

133794m3r commented Mar 23, 2019

 On the topic, I don't know why they don't update the SOC to the one posted above that has 512KiB of RAM version that has double the per clock performance of the current mcu. The ROM is the biggest issue for me as 1MiB is insanely low. It has put me off from buying this calc to replace my old and trust TI-84+ SE which has 2MiB of ROM available to the system so why this one wouldn't have included a small flash chip is beyond me. If they'd release a + version that increased the cost to account for the new chips I'd buy it immediately.

agucova commented Mar 23, 2019 • edited

 I would too, it's only a logical decision. Given it is open source, one of their main selling audiences *are* tinkerers, and *we need* more flash. Even for other uses.
Contributor

boricj commented Mar 23, 2019 • edited

 You can add more Flash, but you have to bring out the soldering iron. The easiest option is to solder a NOR chip (part U7 on the schematics), or you can swap out the MCU with a pin-compatible one from the STM32 family. In order to use the extra flash you'd have to mod the firmware a bit, but it has already been done. While I agree better technical specs would've been better (a sub-100€ CAS calculator in France would've been an outright revolution), ultimately NumWorks is in the calculator business, not decked-out evaluation kits. Given the market segment, price point and feature set targeted, two years later the current MCU still does the job and yet has a fair amount of wiggle room left over for future improvements. I'm still convinced they'll eventually release a follow-up model, targeted at the high-end with CAS and better specs for higher education. At least motivated people can (and did) mod the NumWorks calculator in that regard, unlike the competition, notably fitting giac in a NOR chip and running a CAS on the platform. I also believe it's time for fully homebrew, third-party firmwares. Epsilon is a nice and lean calculator firmware, but it's a bit too good at its job and we could use another firmware with different design choices that's more convenient for some types of mods...
Author

parisseb commented Mar 24, 2019

 Le 23/03/2019 à 22:35, Jean-Baptiste Boric a écrit : I'm still convinced they'll eventually release a follow-up model, targeted at the high-end with CAS and better specs for higher education. At least motivated people can (and did) mod the NumWorks calculator in that regard, unlike the competition, notably fitting giac in a NOR chip and running a CAS on the platform. "Unlike the competition" is incorrect. Anyone with a Casio Prizm can install my giac port (the KhiCAS addin), without doing any hardware modification, installation is as easy as copying a file on a USB key: https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicasen.g3a
Contributor

 I think he was talking about the possibility to mod the hardware of the/a calculator in a relatively easy way.

133794m3r commented Mar 24, 2019 • edited

 How hard is it to swap out the MCU then? I always thought that all MCU's are done with BGA and it's damned near impossible for a hobbyist to do on their own. Edit: The upgrade was of course talking about including the BOM to the calc and a modest price bump on top of that. If it was less than 120USD I'd still buy it in a heart beat as I am still supporting open source hardware/software. P.S. I am specifically looking at the numworks to follow me through college until I get my doctorate. Like my trusty ti-84+ SE followed me through highschool into trig, prob & stats, and pre-calc. I want a calculator that will last for a super long time and is priced well.
Contributor

debrouxl commented Mar 24, 2019

 The NumWorks calculator uses a processor with LQFP, and AFAIK, this is intentional, because that package type is much easier to solder / desolder than BGA is. I never soldered such small pitch parts myself, but still. Several weeks ago, I looked for and listed newer, more powerful but more expensive STM32F4, -F7 and -H7 LQFP100 parts at https://ti-pla.net/p239753 . The respective pinouts of these newer parts seemed to be compatible with each other (TBC). However, I didn't check thoroughly whether this pinout is compatible with the STM32F412VGT6's pinout, let alone check whether the MMIO ranges of the devices common to the STM32F412VGT6 and the other parts are located at the same addresses and contain compatible devices, so I don't know whether there's any suitable drop-in replacement for the chip bought by NumWorks before the newer, stronger chips became available. Also, note that none of these parts features more than 2 MB of Flash memory, which hinders the availability of a full-featured version of giac. But as I wrote above nearly a year ago, less than 1 USD will buy you a single 8 MB Adesto NOR Flash chip with 1.27mm pitch mentioned in NumWorks' schematics, which you can easily solder on the appropriate pads of NumWorks calculators' standard PCB. zardam had made a special fork of the then-current version of NumWorks' firmware, in which giac and a small UI for it were integrated. The process of flashing the external chip was fairly annoying, but that could be improved. Last time I checked, another 16 MB NOR Flash chip with the same pinout was less than 3 USD. I didn't find NOR Flash chips offering 32+ MB of memory with that 8-pin, 1.27mm pitch layout, but 16 MB of RAM is already plenty for a calculator targeting high school and a bit beyond that... as a matter of fact, only the highest end calculators from the best-known manufacturers beat that.
Contributor

boricj commented Mar 24, 2019

 Another thing to note is that the only real reason to swap the MCU would be to increase internal RAM. Increasing Flash is far easier through soldering an external NOR chip and the 100 MHz Cortex-M3F is plenty fast. Adding external chips will also increase battery consumption. I am not aware of anyone who did the swap, but it'd rank it as an intermediate-level soldering task requiring decent equipment. To get back at your question, I'm not familiar with the U.S. education system, but the NumWorks calculator is primarily targeted at high-school both in features and technical specs. There are ways to make it punch above its weight, but how much depends on how far you are willing to tinker with it. There's plenty of software and electrical engineering to learn by practice while doing so (and you won't be alone in this adventure), but if you just want an off-the-shelf high-end calculator then you should look elsewhere for the time being.

133794m3r commented Mar 25, 2019 • edited

 The numworks will work on pretty much all standardized tests in the USA except for one that I know of at this time, and that is the TEAS for people going into a nursing/allied health related field because for that test they only let you have a basic four-function calculator. The ACT/SAT(the primary use cases) it should be fine as it has an exam mode where it is locked down. For TI/Casio calcs all you had to do was to factory reset them in front of the proctor(guy who is giving the test) to be able to use them on the test. As far as the current draw between the two MCUs I'd say that they are very similar as the new one is on a newer process and thus can get away with more Mhz/mW plus with a faster cpu it means that the CPU will be idle more of the time, and most of the power draw of any device like this one will be from the screen and primarily the backlight of said screen. As far as me tinkering that is fine to do, I'd rather have something that works and can grow with me rather than something that's super locked down. The new MCU would be the one for 512KiB of ram so that things are more comfortable and the flash would be to fit CAS software on it. I'd like to support open source software/hardware whenever possible but my soldering skills are basically at the basic replacing a cap level. P.S. I mostly want a calculator that I can program on and run for lack of a better word simulations on that will be fast enough for some quick stuff and maybe more advanced things in the future. The most advanced programs I ran on my TI-84+SE was ones to calculate what my grandpa's blood sugar would be in x minutes based upon how many carbs he had, what types of carbs they were weighted for proportionality, the time to digest those carbs/get them into the blood stream, how much insulin was given including the wave pattern that was done/it's duration, and the background insulin he was getting at that time. Nothing too complex but still I'd like to have been able to do it all in one shot instead of running multiple programs and had it run a lot faster. P.P.S I'm going to medschool after Associates in Nursing and will be doing PA-C or DNP, and I don't know what the minor/second degree will be at this time but I'd like to have something that I can fully utilize for at least a decade to come.