π
<-

TI-z80 83PCE Edition Python: nouveau reset, plus besoin d'archiver!

New postby critor » 19 Aug 2019, 13:04

Parfois ta calculatrice graphique se bloque. Cela peut notamment arriver quand tu utilises des applications non officielles ou programmes en langage machine (compilés/assembleur), plus susceptibles de contenir des bugs.

Une seule façon de débloquer ta calculatrice dans ces cas-là, enfoncer le bouton reset (ou restart sur les Casio) présent au dos.

Nos calculatrices disposent de deux mémoires :
  • la mémoire de travail, liée à la puce RAM (mémoire vive volatile)
  • la mémoire de stockage, liée à la puce Flash (mémoire permanente)

Sur la plupart des modèles, tu ne perds pas ou quasiment pas de données au reset :
  • Par exemple sur les Casio Graph 25/35/75/90+E, le contenu de la mémoire de travail est automatiquement sauvegardé en mémoire de stockage à chaque extinction de la calculatrice (manuelle ou automatique après queques minutes d'inutilisation).
  • Sur TI-Nspire on retrouve la même sauvegarde automatique à chaque extinction, et tu peux également sauvegarder manuellement à tout moment en tapant
    ctrl
    S
    .
En cas d'utilisation du bouton reset tu ne perds donc rien ou pas grand chose, au pire juste ce qui a été saisi depuis le dernier allumage de la calculatrice. :)

Mais voilà, aucune sécurité similaire sur d'autres modèles pourtant très populaires, TI-82 Advanced et TI-83 Premium CE. Lorsque tu presses le bouton reset sur ces modèles, l'intégralité du contenu de la mémoire de travail est définitivement perdu. :mj:

Certes, tu as sur ces modèles la possibilité de protéger manuellement des données en les enregistrant non pas en mémoire de travail, mais en mémoire de stockage (dite mémoire d'archive sur ces modèles, et les données en question seront alors qualifiées d'archivées).

Mais cela empêche alors également de les utiliser (aussi bien en écriture qu'en lecture). :mj:

Texas Instruments avait certes commencé à s'attaquer à ce gros inconvénient sur TI-83 Premium CE avec la mise à jour 5.3.0, qui introduisait enfin la possibilité d'exécuter (lecture) les programmes enregistrés en mémoire de stockage. :)

Mais rien de tel n'avait été fait pour les scripts Python. Pour pouvoir exécuter tes scripts Python tu étais donc obligé(e) de les conserver en mémoire de travail, et donc tu perdais l'intégralité de tes scripts Python en cas d'utilisation du bouton reset. :mj:

11332Mais pour la rentrée 2019, Texas Instruments te sort une nouvelle édition de sa TI-83 Premium CE, la TI-83 Premium CE Edition Python.

Lors de notre premier test de ce nouveau modèle, nous notions qu'il bénéficiait d'une refonte majeure du matériel (nouvelle puce ASIC, nouvelle puce Flash, puce additionnelle dédiée au Python...).

Et bien Texas Instruments en a profité pour s'attaquer à ce dernier défaut de la TI-83 Premium CE. Désormais sur TI-83 Premium CE Edition Python, la simple pression du bouton reset n'efface plus la mémoire de travail ! Non tu ne rêves pas, tu retrouveras tous tes programmes et scripts Python, peu importe qu'ils soient archivés ou non ! :bj:

A l'international, les TI-84 Plus CE qui adoptent un matériel similaire à compter de la révision M bénéficieront de cette même amélioration. :)

Contrairement aux autres modèles, rien à voir ici avec la dernière extinction de la calculatrice, tu ne perds strictement aucune donnée, même pas celles saisies dans les dernières secondes précédant le reset ! :bj:

Malheureusement, cette nouveauté révolutionnaire dans la gamme des TI-82/83/84 vient également avec un inconvénient.

Si tu utilises des programmes en langage machine et es amené(e) à effectuer un reset pendant leur exécution, toutes les données temporaires qu'ils auront allouées en mémoire seront conservées.

Or le programme étant interrompu brutalement par le reset, il ne pourra donc pas nettoyer ces données, ce qui diminuera d'autant la capacité de ta mémoire de travail, originellement de 152K à vide. :(

Comme de plus ces programmes n'utilisent généralement pas le format de variable officiel pour les données temporaires, elles ne pourront pas non plus être nettoyées par les menus du système.

Pour récupérer l'intégralité de de la capacité de ta mémoire de travail après un plantage/blocage de programme en langage machine, tu devras donc effectuer un reset complet de la RAM, soit via le menu mémoire, soit en maintenant le bouton reset enfoncé pendant plus d'une seconde.

TI-Nspire Nouvel OS TI-Nspire CX II 5.1 rentrée 2019

New postby critor » 17 Aug 2019, 00:38

11458Ce vendredi Texas Instruments nous sort la version 5.1 de son système TI-Nspire, et comme déjà annoncé la mise à jour est uniquement pour les calculatrices TI-Nspire CX II.

De numéro de version complet 5.1.0.177, ce tout dernier système TI-Nspire a été compilé le 28 juin 2019.

11457L'installation de cette mise à jour sur calculatrice TI-Nspire CX II mettra à jour les partitions de démarrage BootLoader, OSLoader et Installer avec des images en version 5.1.0.104, compilées pour leur part le 9 avril 2019.


Une fois retiré de la page officielle des nouvelles fonctionnalités tout ce qui était déjà annoncé et donc présent dans la version 5.0, les nouveautés concernent essentiellement des raccourcis permettant d'améliorer la programmation en TI-Basic :
  • Le lancement d'un programme par le menu ou par le raccourci clavier :nsct: :nsr: copiait l'appel au nom du programme dans la ligne de saisie de l'application Calculs, ce qui pouvait échouer si cette ligne de saisie contenait déjà des caractères.
    Désormais le contenu éventuel de la ligne de saisie sera automatiquement effacé, ce qui fait que ça marchera dans tous les cas. :)
  • Il était déjà possible de commenter facilement la ligne courante d'un programme sans avoir à s'embêter à chercher/saisir le caractère nécessaire (©).
    Dorénavant ce même menu permettra également de décommenter tout aussi facilement la ligne courante, plus besoin de s'embêter à cibler puis effacer le caractère en question. :)
    De plus pour encore plus de rapidité, ce menu gagne également un raccourci clavier associé : :nsct: :nst: . :)
  • Enfin, cette fois-ci sur le logiciel TI-Nspire pour Windows/Mac, plus besoin de s'embêter à cliquer la touche calculatrice :nsme: pour dérouler toutes ces possibilités, nous avons enfin un raccourci clavier pour cela. :)

Attention, une fois ta TI-Nspire CX II mise à jour en version 5.1, tu ne pourras plus réinstaller la version 5.0. :#non#:



Téléchargements :
Link to topic: Nouvel OS TI-Nspire CX II 5.1 rentrée 2019 (Comments: 0)

NumWorks La NumWorks réinventée avec la N0110 - rentrée 2019

New postby Admin » 06 Aug 2019, 17:54

La NumWorks, calculatrice graphique programmable en Python, de conception française et au code ouvert, fut lancée à la rentrée 2017.

Au cours de l'année scolaire 2018-2019, tous les autres constructeurs de calculatrices graphiques nous ont sorti de nouvelles éditions de leurs modèles phares :
  • Casio avec la Graph 35+E II qui remplace la Casio Graph 35+E
  • Texas Instruments avec la TI-83 Premium CE Edition Python qui remplace la TI-83 Premium CE
  • et les TI-Nspire CX II qui remplacent les TI-Nspire CX
  • Hewlett Packard avec la HP Prime G2 qui remplace la HP Prime (G1)
  • et même dans un certain sens Lexibook, avec l'Esquisse GCEXFR qui clone la Lexibook GC3000FR (soit en réalité la Truly TG206) tout en changeant quelques petites choses, et dont nous te parlerons prochainement

La NumWorks quant à elle avait déjà bénéficié d'une première révision matérielle pour la rentrée 2018 avec des changements esthétiques, au niveau du boîtier et du clavier. Toutefois, la référence du modèle était restée la même, N0100.

Cette fois-ci par contre pour sa révision matérielle de rentrée 2019 que nous venons de recevoir, la calculatrice NumWorks adopte apparemment une nouvelle référence, N0110. Référence effectivement indiquée dans le FCCID sur la tranche, 2ALWP-N0110, ainsi qu'à l'arrière de la boîte sur la représentation de la face arrière de la calculatrice.

Vu le changement de référence, il se pourrait donc bien que les changements ne soient pas juste cosmétiques mais bien plus croustillants cette année; nous allons donc découvrir ensemble la toute nouvelle édition NumWorks N0110 de la rentrée 2019.

En réalité moi-même puis Adriweb avons reçu successivement un échantillon chacun (merci !), de références différentes pour la nouvelle révision matérielle NumWorks de la rentrée 2019, afin notamment de préparer cet article :
  • un prototype qui portait la référence N0200
  • puis la version finalisée avec la référence N0110

Il s'agit de la même révision matérielle, la référence N0200 un temps envisagée n'ayant donc finalement pas été retenue pour nommer la révision matérielle de rentrée 2019.

Certaines illustrations qui vont suivre pourront ainsi porter la référence non finale N0200 qu'il faudra donc ignorer et remplacer par N0110.




Sommaire :




1) Déballage et tour d'observation :

Go to top

Commençons donc par ouvrir la boîte. Elle comprend donc la calculatrice, le guide de sécurité, le câble USB A ↔ USB micro-B de connectivité aux couleurs de NumWorks ainsi que, nouveauté, un autocollant NumWorks. :)

Et si tu as l'œil observateur, peut-être as-tu déjà remarqué ci-dessus plusieurs changements vu que la calculatrice est représentée sur la boîte. ;)

A priori la calculatrice NumWorks N0110 et son couvercle pèsent toujours 166g comme avant. Mais en réalité cela cache quelque chose d'intéressant :
  • la calculatrice seule a perdu du poids, passant de 136g à seulement 127g
  • le couvercle dans le même temps a gagné du poids, passant de 28g à 37g

En effet nous disposons d'un nouveau couvercle nettement plus épais et donc résistant bien mieux à la flexion lorsque l'on appuie dessus pour le retirer.

Les bosses latérales internes au couvercle sont également bien plus prononcées, ce qui permet de mieux surélever le couvercle et ainsi l'éloigner davantage de l'écran.

Deux changements permettant de bien mieux protéger l'écran contre les rayures dont ont pu souffrir des utilisateurs de la NumWorks N0100 ! :bj:

Si l'on se concentre sur la calculatrice maintenant, on note plusieurs choses.

Déjà, la vitre de protection de l'écran est nettement plus épaisse.

Niveau clavier on note enfin l'ajout du caractère pourcent (%) fort utile en Python. Toutefois, ce caractère a été ajouté en tant que fonction alphabétique de la touche d'effacement :
.
Nous comprenons bien qu'il n'y avait pas d'autre possibilité dans la partie supérieur du clavier où figurent les autres caractères spéciaux, mais nous trouvons cela fort embêtant qu'une touche aussi importante puisque l'on peut être amené à devoir corriger une saisie à tout moment, puisse ainsi être détournée de sa fonction principale. Particulièrement dans le contexte du Python où l'on sera très souvent en verrouillage alphabétique, il ne faudra pas oublier de désactiver ce dernier... Peut-être est-ce une simple question d'habitude.

Mais ce n'est pas tout. Au dos de la calculatrice on note une position différente du bouton reset, ce qui implique donc l'usage interne d'une toute nouvelle carte mère... ;)

Et en passant sur la NumWorks N0110 le bouton reset n'est plus à aller chercher dans le boîtier. Fini les mines de criterium (conductrices) que tu cassais dans ta calculatrice ! :bj:

Enfin, allons vérifier la version firmware à l'écran À propos de l'application Paramètres :
  • le prototype NumWorks N0200 non final est muni de la version 11.0.0
  • la calculatrice NumWorks N0110 finalisée est quant à elle munie de la version 11.1.0 bien évidemment un peu plus récente
Dans les deux cas, les fonctionnalités correspondent à la version 11.2.0 sortie récemment pour les NumWorks N0100, comme on le remarque aisément à l'absence de possibilités de calcul littéral.




2) Diode examen et recharge batterie :

Go to top

Autre témoin de changements matériels, la diode examen joue maintenant également le rôle de témoin de charge lorsque la calculatrice est branchée sur une alimentation USB.

La diode RVB restant alors allumée en orange, cela ne peut être confondu avec le signal du mode examen (rouge clignotant). De plus, cette fonctionnalité est désactivée une fois la calculatrice en mode examen, ce qui évite donc de parasiter le signal du mode examen en branchant par exemple une batterie USB externe.

Mais quelque chose qui est curieux, c'est que cette diode est bien faiblarde par rapport à celle des NumWorks N0100. La luminosité est bien plus faible que ce à quoi nous étions habitués, et les contours du disque dessiné par le faisceau sont également flous.

Tentons d'explorer ce mystère. Nous allons lancer le test usine pour pouvoir allumer les différents composants de la diode RVB. Pour cela il nous suffit dans l'application Paramètres d'accéder à l'écran À propos, de sélectionner FCC ID puis de taper
6
.

Et effectivement, voilà découvert le pot aux roses. Lorsque l'on éclaire la diode dans ses composantes les plus lumineuses, rouge, bleu et blanc, on note au dos un chemin lumineux qui traverse l'écran verticalement. Encore un signe qui plaide pour une toute nouvelle carte mère. En effet la diode n'est visiblement plus accolée à la tranche supérieure du boîtier. La carte mère probablement plus petite doit désormais s'arrêter en-dessous de l'écran, et c'est un guide qui conduit alors sa lumière jusqu'à la tranche supérieure.




3) Performances :

Go to top

La HP Prime G2 était récemment passée devant la NumWorks pour le titre de calculatrice graphique la plus performante. Est-ce toujours le cas ?

Prenons le script Python suivant, et adaptons-le dans le langage historique de chaque calculatrice programmable conforme pour les examens français 2020 :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def seuil(d):
  timed,n=hastime(),0
  start,u=0 or timed and monotonic(),2.
  d=d**2
  while (u-1)**2>=d:
    u=1+1/((1-u)*(n+1))
    n=n+1
  return [(timed and monotonic() or 1)-start,n,u]


L'appel seuil(0.008) s'exécute sur la NumWorks N0110 en seulement 0,498s : :bj:
  1. 0,498s : NumWorks N0110 (?)
  2. 0,688s : HP Prime G2 (32 bits : Cortex/ARMv7 @528MHz)
  3. 0,785s : NumWorks N0100 (32 bits : Cortex/ARMv7 @100MHz)
  4. 2,414s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz)
  5. 8,93s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  6. 12,24s : TI-Nspire (32 bits : ARM9/ARMv5 @120MHz)
  7. 18,67s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz)
  8. 20,92s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz)
  9. 50,77s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  10. 81,03s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  11. 101,1s : Casio Graph 35/75+E (32 bits : SH4 @29,49MHz)
  12. 117,29s : Casio Graph 25+E (32 bits : SH4 @29,49MHz)
  13. 120,51s : TI-83 Premium CE Edition Python (8 bits : eZ80 @48MHz)
  14. 196,79s : TI-83 Premium CE / TI-84 Plus CE-T (8 bits : eZ80 @48MHz)
  15. 260,41s : TI-82 Advanced / TI-84 Plus T (8 bits : z80 @15MHz)
  16. 607,91s : Casio fx-CP400+E (32 bits : SH4 @117,96MHz)
  17. 672,65s : Casio fx-92+ Spéciale Collège (8 bits : nX-U8/100 >1,5MHz - spécifications ancien modèle fx-92 Collège 2D+, non confirmées sur le nouveau)
  18. 738,75s : Lexibook GC3000FR (non programmable, estimation relative par comparaison des performances en tracé de graphes avec le modèle le plus proche technologiquement, la TI-82 Advanced)


La NumWorks N0110 rafle donc ainsi la tête du classement, plus performante que la HP Prime G2 qui ne sera donc pour sa part pas restée bien longtemps à cette place, surtout avec le retard d'une année qu'a subi sa disponibilité en France. La NumWorks N0110 serait donc en calcul dans les 1,57 fois plus performante que la NumWorks N0100, et dans les 1,38 fois plus performante que la HP Prime G2. Des différences tellement grandes qu'elles suggèrent non pas seulement une nouvelle carte mère, mais bien l'utilisation d'un tout nouveau cœur. ;)

Voici maintenant un test un peu plus visuel, non plus purement calculatoire mais graphique, avec le script Python suivant retranscrit ligne à ligne dans le langage historique de chaque machine :
Code: Select all
from kandinsky import *
def mb(n,w=320,h=222):
  for x in range(w):
    for y in range(h):
      z=0
      d=3.5*x/(w-1)-2.5-2.5j*y/(h-1)+1.25j
      k=0
      while k<n and abs(z)<2:
        k=k+1
        z=z*z+d
      t=int(255*k/n)
      c=color(int(t),int(t*0.75),int(t*0.25))
      set_pixel(x,y,c)
import kandinsky
def mandelbrot(W,H,N) :
for x in range(W):
  for y in range(H):
   z=complex(0,0)
   c=complex(2.7*x/(W-1)-2.1,-(1.87*y/(H-1)-.935))
   j=0
   while j<N and abs(z)<2:
    j=j+1
    z=z*z+c
   t=255*j/N
   kandinsky.set_pixel(x,y,kandinsky.color(int(t),int(.75*t),int(.25*t)))



On note là encore que la NumWorks N0110 (en bas à droite) reste la calculatrice la plus performante, battant aussi bien les deux HP Prime que la TI-Nspire CX II, et de loin dans ce dernier cas. Mais on peut noter que dans le contexte de ce test, c'était déjà le cas dans une moindre mesure de la NumWorks N0100.




4) Mémoire de stockage et mémoire de travail Python :

Go to top

Une fois les scripts préchargés effacés, le Workshop NumWorks reporte un espace de stockage de 16382 octets sur la NumWorks N0110, comme sur la NumWorks N0100.

Afin d'estimer la mémoire de travail Python on peut utiliser le script suivant :
Code: Select all
def sizeenv():
  s=0
  import __main__
  for o in dir(__main__):
    try:s+=size(eval(o))
    except:pass
  return s
def size(o):
  s,t=0,type(o)
  if t==str:s=49+len(o)
  if str(t)=="<class 'function'>":s=136
  if t==int:
    s=24
    while o:
      s+=4
      o>>=30
  if t==list:
    s+=64
    for so in o:s+=8+size(so)
  return s
def mem(v=1,r=1):
  try:
    l=[]
    try:
      l+=[r and 793+sizeenv()]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      if v:print("+",size(l))
      try:l[0]+=size(l)
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0

Là encore, la mémoire de travail offerte aux scripts Python par la NumWorks N0110 reste sur le même ordre de grandeur que pour la NumWorks N0100, dans les 16 Kio.

Si le nouveau cœur dispose de capacités mémoires accrues, ce qui est sûr c'est qu'à date l'édition N0110 du firmware ne les exploite pas.




5) Mode DFU et dumping :

Go to top

On peut maintenant tenter la connectivité de la NumWorks N0110 dans le contexte du boot. Mettons donc la calculatrice en mode DFU afin d'accéder à son firmware à l'aide de notre outil en ligne.

Petit changement bienvenu, le mode DFU ne se déclenche plus en faisant redémarrer la calculatrice (reset) avec une connexion USB. C'était en effet très embêtant dans le contexte d'une batterie à plat. En cas de batterie à plat, le démarrage de la charge correspondant à une mise sous tension la calculatrice effectuait un démarrage à froid, et déclenchait donc automatiquement le mode DFU (avec écran qui restait noir) en lieu et place du fonctionnement normal. Il faut maintenant faire redémarrer la calculatrice tout en maintenant la touche
6
pour enclencher le mode DFU, ce qui évitera désormais les activations involontaires et déroutantes. :bj:

Le mode DFU avait également le défaut de ne donner aucun signe de vie puisque n'allumant pas l'écran. On ne pouvait donc pas savoir si la calculatrice était allumée ou pas sans la connecter en USB. Autre changement appréciable donc, le mode DFU signale désormais son activation via l'allumage de la diode en rouge. :)

C'est visiblement toujours un STM32 BOOTLOADER associé qui est détecté, on resterait donc a priori sur la même famille de puces ASIC (processeur 32 bits Cortex/ARMv7).

Notre outil en ligne continue à lister 4 interfaces DFU pour la NumWorks N0110, mais avec plusieurs changements dont un d'importance par rapport à la NumWorks N100 :
  • Internal Flash : capacité réduite, ne faisant plus 4×16+1×64+7×128=1024 Kio mais comme sa description l'indique seulement 4×16+1×64+3×128=512 Kio désormais
  • Option Bytes : capacité augmentée de 16 à 48 octets
  • OTP Memory : capacité faisant apparemment toujours 528 octets, mais dont nous n'arrivons pas à récupérer le contenu à la différence des autres
  • Device Feature : capacité toujours de 4 octets

La dernière version compilée du firmware NumWorks dépassant les 800 Kio, il est ici strictement impossible qu'elle rentre dans la mémoire Flash interne de la puce ASIC réduite à 512 Kio de capacité. :o

Cela voudrait-il dire que NumWorks a fait le choix de rajouter enfin une puce Flash externe, comme encouragé dès octobre 2017 par Lionel Debroux avec le challenge NumWorks++ ?

En tous cas cela y ressemblerait très fortement puisque l'image récupérée des 512 Kio de la Flash interne à la puce ASIC ne comporte qu'une minuscule portion de code utile :
  • 9212 octets utiles pour la version 11.0.0
  • 8720 octets utiles pour la version 11.1.0
De façon évidente le firmware n'est plus dans la Flash interne de la puce ASIC sur NumWorks N0110, donc oui on va considérer qu'il y a forcément une Flash externe.

Nous n'avons rien noté de spécial dans les images récupérées des autres interfaces, mais pour ceux qui souhaiteraient creuser elles sont téléchargeables en fin de test.




6) Flashing firmwares et compatibilités :

Go to top

Conséquence du point précédent, le mode DFU ne permet apparemment plus d'accéder directement au firmware sur la NumWorks N0110, ni en lecture ni en écriture.

Les firmwares officiels déjà compilés pour NumWorks N0100 que nous hébergeons font tous plus de 512 Kio et ne rentreront donc pas dans la Flash interne de la puce ASIC de la NumWorks N0110.

Pour ceux qui souhaitent pouvoir installer autre chose que la dernière version du firmware officiel, une ancienne version du firmware officiel (par exemple les versions 1.2.0 à 10.1.0 pour remettre le calcul littéral) ou bien une version modifiée, il faudra donc trouver une autre méthode. Dommage car notre outil en ligne avait vraiment l'avantage de la simplicité.

Toutefois grâce au convertisseur en ligne de ROMs Nintendo NES, il est possible de produire des firmwares NumWorks N0100 plus petits que 512 Kio, notamment quand on fournit une petite ROM et fait le choix de supprimer nombre d'applications intégrées. A la différence, ces firmwares modifiés peuvent donc rentrer dans la Flash interne de 512 Kio de la NumWorks N0110 à laquelle nous avons accès en DFU. Nous avons donc testé et donc non, ces firmwares ne fonctionnent pas sur NumWorks N0110. L'écran reste noir et la calculatrice n'est pas détectée en USB, bref le firmware ne s'amorce même pas correctement, probablement à cause de différences matérielles.

Mais comment fait NumWorks dans ce cas-là, la possibilité de récupérer la calculatrice en DFU étant essentielle pour le cas où le firmware serait endommagé ou absent et ne s'amorcerait donc pas correctement ?

Dans le cas de la NumWorks N0110, le mode de récupération offert par le Workshop NumWorks charge et exécute dans la calculatrice une image minimaliste qui s'occupera donc à son tour de recevoir le firmware complet et de l'écrire dans la Flash externe.

Cette image est visiblement chargée en mémoire RAM, puisqu'elle disparaît en cas de redémarrage de la calculatrice avant toute réception de firmware, aussi n'avons-nous pas pu cette fois-ci te la récupérer.




7) Matériel :

Go to top

Et bien puisque tous les éléments observés dans les points précédents nous renvoient au matériel, il est grand temps de s'y plonger et de répondre ainsi aux ultimes interrogations.

On note au passage que le boîtier nous semble bien plus solide, avec des vis de plus gros calibre cachées sous les 6 patins au dos, ainsi que des clips maintenant les 2 faces solidaires.

Effectivement, on confirme bien une nouvelle carte mère plus petite s'arrêtant sous l'écran sur la NumWorks N0110, et dont la lumière de la diode est conduite jusqu'à la tranche supérieure via un guide.

La NumWorks N0110 bénéficie également d'une nouvelle batterie, une PD295572, batterie LiPo (Lithium Polymère). Elle offre à la fois une tension inférieure, 3.7 Volts au lieu de 3.8 Volts, et une capacité inférieure, 1450 mAh au lieu de 1820 mAh.
Nous n'avons pas eu le temps de réaliser pour aujourd'hui des tests d'autonomie, mais sur ce genre de batterie sans marque il n'est pas certain que cette baisse nominale de 20% implique forcément une baisse d'autonomie de 20%, les protocoles de mesure variant fortement d'un constructeur à un autre, et par ailleurs des composants plus récents consomment généralement moins. En tout cas, la page des specs techniques indique la même durée en heure qu'avant :)

La NumWorks N0110 nous offre également un tout nouvel écran. Plus précisément on passe de TFT-LCD sur NumWorks N0100, à du IPS-LCD sur NumWorks N0110. Cela implique entre autres un bien meilleur angle de vision, avec des couleurs désormais quasiment plus altérées lorsque l'on regarde l'écran de biais ! :bj:

Penchons-nous pour finir sur la carte.

Comme sur la NumWorks N0100, on note que la broche d'identification USB n'est toujours pas connectée sur la NumWorks N0110, ce que l'on confirme au multimètre. Il ne sera donc toujours pas possible de faire fonctionner des périphériques USB (clavier, souris, clé, capteurs...).

Niveau puces, on note :
  • À l'emplacement U1, à la place de la STM32F412 de la NumWorks N0100, la NumWorks N0110 nous offre une STM32F730V8.
    C'est-à-dire que l'on reste sur un coeur Cortex/ARMv7, à la différence que nous passons d'un Cortex-M4 cadencé à 100 MHz, à désormais un Cortex-M7 cadencé à 216 MHz ! :bj:
    Par contre pour la Flash interne à cette puce, oubliés les 1 Mio de la NumWorks N0100, ce ne serait pas non plus du 512 Kio comme supposé plus haut, mais apparemment seulement du 64 Kio. Peut-être pour ça que le test de notre firmware allégé n'a pas marché, il était en effet quand même plus gros que ça.
    Niveau mémoire de travail maintenant, on reste sur du 256 Kio de SRAM.
  • Et comme dans 64 Kio de Flash interne il ne rentre pas grand chose, on note à l'emplacement U4 une puce Flash externe, plus précisément une Adesto AT25SF641, comme par hasard l'une des deux puces utilisées pour le le challenge NumWorks++, offrant 8 Mio de capacité.
    Globalement, on passe donc de 1 Mio de Flash sur la NumWorks N0100 à 8,0625 Mio sur la NumWorks N0110 ! :bj:




Conclusion :

Go to top

Après avoir chamboulé le marché avec la calculatrice graphique qui "fait aimer les Maths" pour la rentrée 2017, et après avoir été brièvement dépassé en performances par la HP Prime G2, NumWorks t'offre à nouveau pour la rentrée 2019 la calculatrice graphique la plus performante du marché ! :bj:

Mais ce n'est pas tout. Bouton reset désormais externe qui évitera de casser et laisser des mines de criterium dans sa calculatrice, nouveau couvercle qui évitera de rayer l'écran quand on le retire, plus de déclenchement automatique déroutant du mode DFU (avec écran restant noir) en cas de batterie déchargé... Nous ne pouvons que féliciter à nouveau NumWorks qui semble avoir été à l'écoute de tous les moindres retours de ses utilisateurs ! :bj:

NumWorks avait déjà été très productif niveau mises à jour sur les années scolaires 2017-2018 et 2018-2019, pas moins de 15 mises à jour publiées soit en moyenne une toutes les 6 semaines (contre au mieux 0 à 2 par an et par modèle chez la concurrence), une grande réactivité et pertinence par rapport aux actuelles évolutions des programmes scolaires dans le cadre de la réforme du lycée et du BAC.
Mais voilà avec plus de 800 Kio pour le dernier firmware NumWorks N0100, la limite de 1024 Kio de Flash commençait à s'approcher dangereusement, et on aurait pu craindre des mises à jour moins fréquentes ou moins intéressantes.
A priori il n'en sera rien, avec désormais 8 Mio de Flash sur la N0110 NumWorks vient de faire sauter la limite, nous avons hâte de voir ce que les prochaines mises à jour vont bien pouvoir donner maintenant qu'il n'y a plus à se préoccuper de la taille du firmware ! ;)

Nous avons également hâte de voir ce que la communauté NumWorks va pouvoir faire de ces 8 Mio de Flash. Quid de porter le moteur programmable de calcul formel Xcas/KhiCAS comme déjà fait pour HP Prime, TI-Nspire, Casio Graph 35+E II et Graph 90+E ? ;)

Se pose par contre la question des anciennes NumWorks N0100, qui avec seulement 1 Mio de Flash ne pourront plus un jour ou l'autre bénéficier de toutes les dernières nouveautés. Selon le le challenge NumWorks++, il est possible de leur rajouter la puce Flash externe manquante, mais cela risque de ne pas suffire pour que le Workshop NumWorks leur envoie un firmware compatible et le programme bien dans la Flash externe, puisque c'est donc le workshop ici qui détecte le type de calculatrice et choisit le firmware approprié. Il reste donc des outils à inventer à la communauté NumWorks. ;)


Téléchargements :

NumWorks Challenge NumWorks++: résumé / wrap up...

New postby Lionel Debroux » 31 Jul 2019, 23:02



En octobre 2017, j'avais lancé le Challenge NumWorks++, visant à réaliser une modification matérielle relativement simple de la calculatrice NumWorks (modèle "N0100"), en l'occurrence l'ajout d'un chip de Flash externe sur l'emplacement de la carte mère prévu par NumWorks pour cet usage, et la réalisation de logiciel tirant parti de ce nouveau chip. Adriweb avait d'ailleurs écrit la news avec moi.
In October 2017, I had launched the NumWorks++ Challenge, aiming at making a relatively simple hardware mod of the NumWorks calculator ("N0100" model), i.e. the addition of an external Flash chip on the pins suitably provided by NumWorks for this usage, and the making of software leveraging this new chip. Adriweb wrote the news item with me.

Plusieurs personnes se sont lancées publiquement dans le challenge, aux 4 coins du monde. En France, plus particulièrement, Jean-Baptiste Boric et Damien "zardam" Nicolet. Ces personnes ont donc reçu par courrier un exemplaire des chips de Flash NOR QSPI Adesto AT25SF641 de 8 MB (le modèle suggéré par les schémas officiels de NumWorks) et Winbond W25Q128JV de 16 MB, à pinout compatible, que nous avions achetés pour ce challenge, et se sont mises au travail…
Several persons, over the world, took on the challenge. In France, there were especially Jean-Baptiste Boric and Damien "zardam" Nicolet. Therefore, these persons were mailed two QSPI Nor Flash chips, and started working with them: 1 x Adesto AT25SF641 of 8 MB (the model suggested by NumWorks' official schematics) and 1 x Winbond W25Q128JV of 16 MB, whose pinout is compatible. We had bought the chips for this challenge…

Trois (!) semaines plus tard, zardam disposait d'un firmware permettant de flasher le chip externe, comme il l'annonçait par ici. Seulement quelques semaines supplémentaires plus tard, toujours le même zardam avait produit une version patchée du firmware NumWorks de l'époque, comportant un build du puissant moteur CAS "giac" de Bernard Parisse (bien connu ici parce qu'il est à la base de Xcas, le logiciel des HP Prime G1 et G2 depuis le début, KhiCAS sur TI-Nspire et Casio, etc.), qui s'exécute depuis la Flash externe ajoutée sur la calculatrice. Une partie du firmware, en gros le code de NumWorks avec quelques modifications de zardam, s'exécute toujours depuis la Flash interne, grâce au script linker adéquat.
Three weeks later (!), zardam had a firmware able to flash the external chip, as he announced here. By only several weeks later, the same zardam had produced a patched version of the contemporary NumWorks firmware, featuring a build of the powerful "giac" CAS engine by Bernard Parisse (well known here because it's the foundation of Xcas, the HP Prime G1 and G2 firmware from the beginning, KhiCAS on the TI-Nspire and Casio calculators, etc.), running from the external Flash chip added to the calculator. Part of the firmware, basically NumWorks' code with several modifications by zardam, keeps running from the internal Flash memory, thanks to the appropriate linker script.

Voici la vidéo réalisée par zardam, présentant une version antérieure de son code, qui n'activait pas encore le mode QSPI qui a quadruplé la vitesse de lecture de la Flash (donc c'est nettement plus rapide maintenant):

Bref, des fonctionnalités plus proches de celles d'une calculatrice haut de gamme dans le corps d'une calculatrice de milieu de gamme, grâce à l'ajout d'un circuit coûtant moins d'1€ à l'unité (pour le chip de 8 MB) dans ce modèle conçu par le fabricant pour monter en gamme. le processus de soudage d'un circuit au pas de 1.27mm étant habituellement considéré comme faisable, même sans grande expérience, tant qu'on dispose d'un fer à souder avec une pointe dans un état correct. La performance est plutôt bonne pour le milieu de gamme, grâce au Cortex-M4 32 bits à 100 MHz utilisé par NumWorks - d'autant que contrairement à l'eZ80 à ~48 MHz des TI-84 Plus CE / TI-83 Premium CE (micro-architecture beaucoup moins efficace par cycle d'horloge et réalisant des opérations moins avancées que les ARM), le Cortex-M4 des calculatrices NumWorks n'est pas ralenti par des waitstates, car la RAM, les bus mémoires et les mémoires Flash peuvent fonctionner à 100 MHz.
Here's the video made by zardam, showcasing an older version of his code, which didn't enable the QSPI mode which quadrupled the Flash memory bandwidth (so it's much faster now):

Well, to sum up, this is a feature set closer to that of a higher-end calculator, in the body of a mid-range calculator, thanks to the addition of a < 1 USD/EUR chip (for the 8 MB one) into that model designed by the manufacturer for upgradability. The process for soldering a 1.27mm (50 mil) pitch chip is usually considered doable, even with limited experience, as long as the soldering iron's tip is in a decent state. The performance is rather good for a mid-range calculator, thanks to the 32-bit Cortex-M4 running at 100 MHz used by NumWorks - all the more unlike the ~48 MHz eZ80 powering the TI-84 Plus CE / TI-83 Premium CE (much less efficient micro-architecture per clock cycle, which performs less advanced operations), the NumWorks calculators' Cortex-M4 processor speed isn't hampered by waitstates, as the RAM, the memory bus and the Flash memories can run at 100 MHz.

zardam a donc clairement gagné le challenge, dès novembre 2017 :bj:
Un an plus tard, il a posté un résumé de certains éléments techniques et procédures dans un article sur son blog: modifications matérielles et logicielles réalisées, et la façon de les compiler et installer.
Je dois donc lui présenter mes excuses pour avoir pris beaucoup trop de temps, malgré un certain nombre de relances par d'autres membres de l'équipe, pour écrire, en partie à l'occasion de congés d'été, cet article promis dans la news annonçant le défi (sans indication de durée il est vrai, mais ce n'est pas une raison valable :P). A vrai dire, je ne pensais pas que quelqu'un s'en emparerait et produirait aussi rapidement un tel résultat... j'avais tort :)
All in all, zardam clearly won the challenge, as early as November 2017 :bj:
A year later, he posted a summary of several technical notes and procedures in an article on his blog: hardware and software changes, and the way to build and install them.
Therefore, I need to apologize to him for taking way too much time, despite multiple pings by other staff members, to write, partially during summer holidays, the article promised in the news item announcing the challenge (without giving a timeline, granted, but that's not a valid reason :P). To tell the truth, I didn't expect that anyone would raise up to the challenge and would produce such a result so quickly... I was wrong :)

Résumons et commentons certaines parties de son travail:
  • le premier programme permettant de flasher le chip externe de Flash se base sur deux éléments principaux de logiciel open source: libopencm3, une librairie pour gérer divers microcontrôleurs à base de coeurs ARM Cortex-M et leurs périphériques sans avoir à tout réinventer soi-même à partir de la datasheet et des éventuels exemples fournis par le fabricant, et Flashrom, auquel il faut fournir les paramètres et commandes du chip de Flash s'ils ne font pas encore partie de la banque de données standard du programme, mais qui s'occupe de tout (effacement de blocs, écriture, etc.) à partir de ces paramètres. zardam a eu bien raison d'utiliser ces briques de construction logicielle, d'autant qu'à l'époque, le firmware officiel NumWorks ne fournissait pas encore de capacité de communication USB: elle est arrivée 5 mois plus tard, dans la version 1.4 d'avril 2018.
  • zardam a implémenté un bootloader offrant le multi-boot dans un mini-firmware, pour permettre le basculement d'un firmware à un autre (y compris de quoi flasher une partie de la Flash interne du microcontrôleur à partir de la Flash externe) sans devoir passer par un ordinateur. Bonne idée, cela peut être utile dans certaines configurations de test qu'il devait rencontrer.
  • il semble que l'activation du mode QSPI de la Flash externe (pour plus de vitesse) avec le programme qu'il a fait ne doive être réalisée qu'une fois. C'est important, il pense que c'est en le faisant plusieurs fois qu'il a grillé le microcontrôleur principal STM32 de sa calculatrice, il a dû le remplacer. Cette opération de remplacement du chip principal est nettement plus difficile que le soudage du chip de Flash externe, car le pas des pattes est plus fin et les pattes sont beaucoup plus nombreuses. NdT: Il paraît que l'utilisation de flux de soudage aide.
Let's summarize, and comment on, several parts of his work:
  • the initial program for flashing the external chip ls based on two main pieces of open source software: libopencm3, a library for handling a variety of microcontrollers based on ARM Cortex-M cores and their devices without having to reinvent the wheel from scratch from the datasheet and code examples provided by the manufacturer (if any), and Flashrom, which needs to be given the Flash chip's parameters and commands if they're not part of the standard database of the program yet, but which takes care of everything (block erases, block writes, etc.) from these parameters. zardam totally did the right thing using these software building blocks, all the more at the time, NumWorks' official firmware didn't provide a USB communication ability yet: it came up 5 months later, in the 1.4 version released in April 2018.
  • zardam implemented a multi-boot-capable bootloader in a mini-firmware, so that the calculator can be switched from a firmware to another (including something to reflash the internal Flash chip from the external Flash chip) without having to be connected to a computer. It's a good idea, it can be useful in some testing configurations which were probably relevant to him.
  • it seems that the QSPI mode of the external Flash chip (for higher speed) with the additional program he made needs to be done only once. This is important, he thinks that doing it multiple times is the reason why fried his calculator's main STM32 microcontroller. He had to replace it, and the process for replacing the main chip is much harder than soldering the external Flash chip, as the pitch is finer and there are many more pins. Translator's note: it appears that using soldering flux can help.

Si vous voulez utiliser votre calculatrice NumWorks comme cobaye pour répliquer le travail de zardam, et ainsi la faire monter en gamme pour un très faible coût et un risque limité, basez-vous sur son billet de blog, qui détaille, comme déjà indiqué, les différentes étapes de la construction des images et du flashage :)
Peut-être que quelqu'un sera intéressé par la mise à jour de l'intégration firmware NumWorks <-> giac vers la version actuelle du firmware NumWorks ? ;)

Une nouvelle fois, bravo à zardam pour son travail :)

Liens externes utiles :
If you want to use your NumWorks calculator as a testbed for replicating zardam's work, thereby upgrading it at a very low cost and a limited hardware risk, use his blog's article, which lists, as already mentioned, the steps for building images and flashing the calculator :)
Maybe someone will be interested by upgrading the NumWorks firmware <-> giac integration to the current version of the NumWorks firmware ? ;)

Once again, congratulations to zardam for his work :)

Useful external links:
Link to topic: Challenge NumWorks++: résumé / wrap up... (Comments: 5)

TI-z80 Adaptive Parkour, jeu de plateforme TI-83 Premium CE

New postby critor » 28 Jul 2019, 13:52

11399Ce week-end, nous te présentons une nouvelle possibilité de te distraire sur ta TI-83 Premium CE, avec Adaptive Parkour par slimeenergy.

Ce jeu de plateforme a en effet l'originalité de t'offrir une toute nouvelle dimension de gameplay, avec la possibilité de choisir toi-même les caractéristiques de ton avatar, à travers la répartition de ses couleurs RVB :
  • taille (bleu)
  • vitesse (vert)
  • saut (rouge)

Et bien sûr, la résolution de chacun des 23 tableaux du jeu nécessitera des caractéristiques différentes. Arriveras-tu à l'ultime tableau ? ;)

Pour fonctionner correctement, Adaptive Parkour a besoin des bibliothèques C téléchargeables ci-dessous. Mais rien de bien compliqué, il suffit juste de transférer le fichier :)


Téléchargements :

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3077 utilisateurs:
>3069 invités
>1 membre
>7 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)