EmStat Pico Firmware v1.6 : qu'est-ce qui a changé ?

La mise à jour 1.6 du micrologiciel pour l'EmStat Pico et les produits connexes comporte de nombreuses améliorations. Elle contient à la fois des corrections de bogues et de nouvelles fonctionnalités.

Comment mettre à jour le micrologiciel ?

Vous pouvez utiliser PSTrace pour mettre à jour le micrologiciel de manière pratique. PSTrace 5.12 (disponible via MyPalmSens) inclut le micrologiciel et vous informera automatiquement de la nécessité d'une mise à jour du micrologiciel.

Mise à jour du micrologiciel à l'aide de PSTrace Télécharger PSTrace

Si vous préférez mettre à jour le firmware de l'EmStat Pico sans PSTrace, téléchargez le firmware manuellement et utilisez ce tutoriel.

Téléchargement pour l'EmStat Pico

Les 10 principales améliorations

Ce micrologiciel pour EmStat Pico comprend de très belles améliorations et de nouvelles fonctionnalités. Dix ajouts sympathiques et utiles :

Création automatique d'un nouveau fichier pour chaque mesure

Créez un nouveau fichier nommé "measurement<count>.txt", où <count> est un compteur qui augmente pour rendre le nom de fichier unique.

file_open "measurement&i.txt" 2
file_close

Vous pouvez également créer un nom de fichier, basé sur une variable

e
var x
send_string "Starting script"
store_var x 5i ja
file_open f"script/file{x}&i" 2
set_script_output 3
on_finished:
cell_off
file_close

 

Noms de variables plus longs

L'époque où une variable ne pouvait comporter qu'un seul caractère est révolue. N'hésitez pas à déclarer des variables plus longues pour améliorer la lisibilité de votre code.

var potential
var current
var time
var under_score_is_ok

 

Contrôle de flux logiciel

Le contrôle de flux logiciel UART (XON/XOFF) augmente la fiabilité du transfert de données. Dans Tera Term, la configuration de la connexion ressemblera à l'image ci-dessous :

Contrôle des LED

Vous utilisez une application à faible consommation d'énergie et vous devez désactiver toutes les LED ? Ou vous voulez signaler quelque chose à l'utilisateur ? C'est désormais possible grâce à notify_led.

#Busy mode, enable both the RED and BLUE LED
notify_led 2

 

Commandes simplifiées du bipotentiostat

L'utilisation du bipotentiostat a été simplifiée. Les anciennes commandes fonctionnent toujours, mais pourraient être supprimées dans les futures versions du micrologiciel.

Changements :

  • Ajout de la commande `set_bipot_mode` (remplace `set_poly_we_mode`, qui devait être utilisée depuis le canal bipot)
  • Ajout de la commande `set_bipot_potential` (`set_e`, qui devait être utilisée depuis le canal bipot)
  • Ajout de l'argument optionnel `add_meas`.
  • Ajout d'un nouveau VarType `bb` (bipot current)
  • La commande `set_poly_we_mode` et le mode 5 de PGStat (poly_we) sont dépréciés au profit de la nouvelle commande `set_bipot_mode`.
  • L'argument optionnel `poly_we` a été supprimé au profit de `add_meas`.

Exemple d'un ancien code dans le firmware 1.3 :

e
var c
var p
var b
set_pgstat_chan 1
set_pgstat_mode 5
set_poly_we_mode 0
set_max_bandwidth 200
set_range ba 590u
set_autoranging ba 590u 590u
set_e 1
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -66150u -66150u
set_range ba 59n
set_autoranging ba 59n 590u
set_e -1
cell_on
meas_loop_lsv p c -1 1 10m 500m poly_we(1 b)
  pck_start
    pck_add p
    pck_add c
    pck_add b
  pck_end
endloop
on_finished:
  cell_off

Nouveau code avec le firmware 1.5 :

e
var c
var p
var b
set_pgstat_chan 0
set_pgstat_mode 2
set_bipot_mode 1
set_bipot_potential 1
set_max_bandwidth 200
set_range_minmax da -30000u -30000u
set_range ba 30n
set_autoranging ba 30n 300u
set_e -1
cell_on
meas_loop_lsv p c -1 1 10m 500m add_meas(0 bb b)
  pck_start
    pck_add p
    pck_add c
    pck_add b
  pck_end
endloop
on_finished:
  cell_off

 

Horodatage précis

Vous voulez savoir exactement quand une mesure a été prise ?

Lecture et envoi de l'heure actuelle, en combinaison avec le RTC Ablic S-35390A utilisé dans le kit de développement EmStat Pico.

var yr
var mo
var dy
var hr
var mn
var sn
rtc_get yr mo dy hr mn sn
send_string f"{yr} {mo} {dy} {hr} {mn} {sn}"

 

L'indexation des tableaux facilitée

L'accès aux tableaux est désormais plus simple.

e
# Make the 100-element array "a"
array a 100 
# initialize the array, fill them with 5
var index
store_var index 0i ja
loop index < 100i
  store_var a[index] 5 ja
  send_string f"Array[Index]: {index} = {a[index]}"
  add_var index 1i
  wait 10m
endloop
# The 11th element will be used as the argument.
set_e a[10i]


 

Fonctions mathématiques améliorées

Le courant issu de votre expérience électrochimique est-il lié d'une manière ou d'une autre à la concentration ou à la quantité d'un certain biomarqueur ? Ou disposez-vous d'une courbe d'étalonnage ? Une transformation du courant en quantité est nécessaire et possible grâce aux fonctions mathématiques.

Cette mise à jour du micrologiciel ajoute également la fonction de puissance, qui permet également d'effectuer des calculs de racine carrée.

e
#Take the square root of x and store the result in x .
var x
store_var x 2 ja
pow_var x 500m
send_string f"Square root of 2 is {x}"
wait 1
store_var x 4 ja
pow_var x 2
send_string f"4 to the power 3 is {x}"
wait 1

 

Détection des pics

Les pics dans les résultats de mesure sont souvent liés à la détection d'un certain élément ou biomarqueur. Une forme simple de détection des pics est possible dans MethodSCRIPT.

#Detect the two highest positive peaks in an input array, larger than 10e-6.
array indices 2
array heights 2
peak_detect data indices heights 0i 10u

Écriture de variables dans un fichier

MethodSCRIPT prend en charge l'interpolation limitée de chaînes de caractères, ce qui permet d'inclure les valeurs des variables dans une chaîne de caractères. Les chaînes interpolées sont désignées par la lettre f précédant immédiatement le guillemet ouvrant. Les variables à inclure dans la chaîne sont entourées d'accolades, par exemple {varname}.

#The following example demonstrates how to print the value of a MethodSCRIPT variable and store the result in a file:
file_open "measurement&i.txt" 2
var x
store_var x 10i ja
send_string f"x = {x}"
This will print the string x = 10
file_close

 

.

Comment utiliser les nouvelles commandes MethodSCRIPT dans ce micrologiciel ?

Pour obtenir une vue d'ensemble de toutes les commandes MethodSCRIPT disponibles dans ce micrologiciel, veuillez télécharger la documentation MethodSCRIPT.

Documentation de la méthodeSCRIPT

Les changements importants et leurs implications

Certains changements apportés au micrologiciel modifieront la fonctionnalité du code existant.

Plage de réglage

La fonction `set_range` ne sélectionne plus la plage actuelle, ce qui pouvait provoquer des avertissements de surcharge.

L'EmStat Pico Core émet un avertissement de surcharge si le courant dépasse 48 % (80 % de 60 %) d'une plage de courant. Auparavant, si vous régliez la plage de courant pour gérer par exemple 59 nA, la plage la plus basse de 100 nA était sélectionnée. Avec la nouvelle mise à jour, la sélection d'une plage de courant de 59 nA. De cette façon, vous n'obtenez pas immédiatement une surcharge lorsque vous attendez un courant de 59 nA.

Dans un MethodSCRIPT typique généré par PSTrace (5.11 ou plus ancien), vous verrez :

set_range ba 59n
set_autoranging ba 59n 590u

Pour que cette méthodeSCRIPT fonctionne de la même manière avec un micrologiciel plus récent, modifiez cette valeur pour qu'elle ne crée pas de surcharge, par exemple :

set_range ba 30n
set_autoranging ba 30n 300u

 

Sous-charge <4% au lieu de <2%

Si les courants sont inférieurs à 4 % (la valeur précédente était de 2 %) de la gamme de courant sélectionnée, un avertissement de sous-charge de courant est émis, étant donné qu'une gamme de courant inférieure peut être appliquée. Une sous-charge entraînera des mesures avec une résolution et une précision faibles. Sélectionnez des gammes de courant inférieures, le cas échéant, pour augmenter la résolution et la précision du courant disponible.

Application d'un potentiel pendant l'hibernation

Avec le micrologiciel 1.3 ou une version inférieure, tous les réglages des canaux ont été effacés et les canaux ont été désactivés en mode hibernation.

Avec le firmware 1.5 ou plus récent, vous devrez éteindre manuellement une cellule et éventuellement mettre un canal en mode PGStat éteint.

  • Si vous laissez un canal en mode haute vitesse, le code d'erreur 0x4205 sera émis.
  • Si vous laissez un canal en mode basse vitesse, une tension de polarisation sera appliquée pendant l'hibernation. Ceci est utile pour les applications à faible consommation où, par exemple, une tension est appliquée et le courant est lu toutes les x minutes (voir Chronoampérométrie).

Amélioration de la synchronisation

La synchronisation des mesures a été améliorée et est plus précise par rapport au micrologiciel précédent.

Amélioration de la précision

L'étalonnage est ajouté pour améliorer la précision dans les modes de vitesse élevée et de portée maximale. Cette mesure n'aura pas d'effet sur les appareils déjà calibrés.

Journal des modifications du micrologiciel de l'EmStat Pico version 1.6

Changelog v1.6

  • Ajout des commandes MethodSCRIPT 1.8
  • sous-réseau
  • log_var
  • Ajout du chargement et de l'exécution de MethodSCRIPT à partir d'un fichier
  • Correction de `meas_loop_sie` qui réinitialise l'auto-ranging
  • Correction du blocage de la commande `hibernate` si aucun pull-up I2C n'était renseigné (OEM uniquement)

EmStat Pico firmware change log version 1.5

Version 1.5.00 :

  • Mise à jour vers MethodSCRIPT 1.7
  • Ajout du contrôle de flux logiciel UART (XON/XOFF). Il est maintenant recommandé d'utiliser le contrôle de flux logiciel pour tous les EmStat Pico.
  • Amélioration de la commande MethodSCRIPT d'hibernation pour permettre l'application d'un potentiel pendant l'hibernation
  • Possibilité supplémentaire de mesurer le canal poly WE RE par rapport à GND
  • Amélioration de la précision de la synchronisation
  • Mise à jour des détails de communication (vitesse de transmission UART et contrôle de flux)
  • Ajout de la commande `R` reverse pour VOLTAMÉTRIE CYCLIQUE
  • Registres ajoutés :
    • Configuration des périphériques
    • Registre des licences
    • MéthodeSCRIPT autorun
    • Limite du débit de données UART
    • Réinitialisation de l'instrument
    • Rôle multicanal
    • Date et heure du système
    • Configuration GPIO par défaut
    • Avertissement du système
    • Configuration du débit en bauds
  • Suppression de la commande `s` obsolète, utilisation de MethodSCRIPT hibernate à la place
  • Augmentation de la longueur maximale des lignes à 256
  • Modifications et ajouts de la méthodeSCRIPT :
    • Mise à jour des numéros de ligne pour inclure les commentaires
    • Mise à jour du comportement des commandes `pck_start`/`pck_add`/`pck_end`.
    • Ajout de versions masquées des commandes GPIO (`set_gpio_msk` et `get_gpio_msk`)
    • Commandes Mux : `mux_config`, `mux_get_channel_count`, `mux_set_channel`.
    • Opération modulo : `mod_var`
    • Modifier le _VarType_ d'une variable MethodSCRIPT : `alter_vartype`
    • Emettre des notifications à l'utilisateur en utilisant la LED de l'appareil : `notify_led`
    • Définir la direction du balayage pour la voltamétrie cyclique (VOLTAMÉTRIE CYCLIQUE) : `set_scan_dir`
    • Ajout de la commande `rtc_get`, permettant de récupérer la date et l'heure du RTC dans MethodSCRIPT
    • Utilisation plus facile de bipot
      • Ajout de la commande `set_bipot_mode` (remplace `set_poly_we_mode`, qui devait être utilisée à partir du canal bipot)
      • Ajout de la commande `set_bipot_potential` (remplace `set_e`, qui devait être utilisé depuis le canal bipot)
      • Ajout de l'argument optionnel `add_meas`.
      • Ajout d'un nouveau VarType `bb` (bipot current)
      • Suppression de la commande `set_poly_we_mode` et du mode 5 de PGStat (poly_we) au profit de la nouvelle commande `set_bipot_mode`.
      • Déclassement de l'argument optionnel `poly_we` en faveur de `add_meas`.
    • L'EmStat Pico utilise maintenant le RTC externe Ablic S-35390A pour la date et l'heure du système s'il est activé dans le registre de configuration du périphérique.
    • Ajout de la commande MethodSCRIPT `pow_var`.
  • `set_range` ne sélectionne plus la plage actuelle, ce qui provoque des avertissements de surcharge
  • L'impédance imaginaire `meas_loop_sie` ne renvoie plus de plage imprécise
  • Ajout de la prise en charge des chaînes interpolées (_f-strings_)
  • Ajout de la prise en charge de la syntaxe d'accès aux tableaux
  • Ajout de la prise en charge de l'auto-incrémentation des nombres dans les fichiers
  • Prise en charge des noms de variables à plusieurs caractères
  • La commande `set_autoranging` répond maintenant avec une erreur lorsqu'elle reçoit des entrées négatives
  • La commande `wait` MethodSCRIPT peut désormais être interrompue
  • Diverses corrections de bugs

EmStat Pico firmware change log version 1.1 to 1.3

Version 1.3.05 :

  • Correction : Arrêt des techniques essayant de rattraper le retard après une commande de mise en attente
  • Bugfix : Fixer le drapeau d'avertissement de timing qui n'est pas activé dans SWV.
 

Version 1.3.04 :

  • Correction : Erreurs de mesure du SIE sur Ch1 et DC

Version 1.3.03 :

  • Mise à jour de la version de MScript pour éviter les conflits avec la version 1.3.01 avec les scripts stockés dans flash

Version 1.3.02 :

  • Correction : i2c_write et i2c_read référence incorrecte à var a

Version 1.3.01 :

  • Correction : file_open mode 1 (append) échouait lors de la création d'un fichier

Version 1.3.00 :

  • Ajout de la prise en charge de la mémoire de mesure embarquée Sensit BT
  • Changement du système de fichiers pour les EmStat Pico utilisant des cartes SD pour le stockage en système de fichiers personnalisé à partir de FAT32
  • Amélioration de la prise en charge de différentes cartes SD
  • La fraction d'acquisition de PAD et LSV était de 12,5 %, ajustée à 25 % pour être cohérente avec les autres appareils et techniques PalmSens.
  • Réduction de l'overhead de toutes les techniques de 1/8ème de l'intervalle de technique
  • La fraction d'acquisition est configurable par le biais de MethodSCRIPT
  • Amélioration de la détermination du courant pendant le SIE lorsqu'un potentiel continu est appliqué
  • Ajout de VT_TEMPERATURE à MethodSCRIPT, permettant d'échantillonner le capteur de température interne de l'uC
  • Remplacement de set_cr par set_range Commande MethodSCRIPT qui accepte n'importe quel type de variable (set_cr déprécié mais toujours disponible)
  • Remplacement de set_pot_range par set_range_minmax Commande MethodSCRIPT qui accepte n'importe quel type de variable (set_pot_range déprécié mais toujours disponible)
  • Ajout d'un type de variable à la commande MethodSCRIPT set_autoranging (ancienne version dépréciée mais toujours disponible)
  • Mise à jour de la commande de version avec 2 chiffres supplémentaires représentant le "patch"
  • Ajout d'un mode de communication à sécurité intégrée avec le CRC
  • Ajout d'une commande pour limiter le débit de données de sortie UART afin de prévenir les débordements de tampon sur l'hôte.
  • Réduction du courant de court-circuit en mode basse consommation à 20 mA maximum
  • Ajout de la commande fs_put pour stocker des fichiers (texte uniquement)
  • Les commandes fs_* qui renvoient des données répondent désormais par un ack 'n' avant de renvoyer les données.
  • VOLTAMÉTRIE CYCLIQUE n'enregistrait pas toutes les données de sortie dans un fichier lorsque le stockage de fichiers était activé
  • Correction du VOLTAMÉTRIE CYCLIQUE qui saute le dernier point du dernier balayage
  • Ajout d'une protection (non) verrouillable pour la mémoire non volatile
  • Fixation de l'heure du premier point dans les mesures temporelles
  • Ajout d'une mise en veille lorsque l'appareil est inactif afin d'économiser de l'énergie
  • Ajout d'un CRC pour vérifier le MethodSCRIPT stocké dans la mémoire non volatile.
  • Amélioration de la validation de la technique pour la VAN/DPV
  • Ajout des fonctions de l'opérateur bitwise à MethodSCRIPT
  • Ajout d'un cast vers/depuis les fonctions float/int à MethodSCRIPT
  • Correction d'un délai involontaire entre les transferts I2C
  • Ajout d'un délai de 5 secondes aux commandes
  • Le potentiel déclaré de SWV n'est pas conforme à la théorie.
  • Le SIE répond plus rapidement à une commande d'abandon.
  • Remplacement de la commande "cali" par la commande "register
 

Version 1.2 :

  • Ajout de la commande get_time MethodSCRIPT
  • Ajout de la commande MethodSCRIPT d'hibernation
  • Possibilité d'utiliser des nombres binaires ou hexadécimaux dans MethodSCRIPT
  • Ajout de nombres entiers (utiles pour les fonctions gpio et les boucles)
  • Ajout d'une commande pour entrer dans le bootloader à partir du protocole normal
  • Ajout des commandes get_gpio, set_gpio_pullup et set_gpio_cfg
  • Ajout de la prise en charge de la carte SD (ajout de la possibilité de stocker la sortie MethodSCRIPT et ajout de commandes pour le navigateur de fichiers)
  • Ajout d'une commande d'abandon de la MethodSCRIPT
  • Ajout des commandes if, else, elseif et endif MethodSCRIPT
  • Ajout de la commande MethodSCRIPT breakloop
  • Ajout de nouveaux types de variables MethodSCRIPT à utiliser dans la commande MethodSCRIPT "meas".
  • Ajout de la prise en charge par MethodSCRIPT des opérateurs bitwise dans les comparaisons booléennes
  • Ajout des commandes MethodSCRIPT timer_start et timer_get
  • Ajout des commandes set_int, await_int MethodSCRIPT
  • Ajout d'un support I2C pour l'utilisateur MethodSCRIPT
  • Ajout de la prise en charge de MethodSCRIPT pour spécifier les métadonnées à envoyer dans les paquets de mesures.
  • Ajout de la prise en charge du tableau MethodSCRIPT
  • La commande MethodSCRIPT meas_loop_sie utilise désormais set_cr lorsque l'autoranging est désactivé (elle est toujours ignorée lorsque l'autoranging est activé).
  • Ajout de la commande optionnelle nscans MethodSCRIPT pour VOLTAMÉTRIE CYCLIQUE en cas de balayages multiples sans points de chevauchement.
  • Ajout de la prise en charge de Sensit BT
  • Routines d'étalonnage optimisées pour le convertisseur numérique-analogique à grande vitesse et les résistances externes

Version 1.1 :

  • Ajout d'un mode pgstat combiné pour permettre une gamme dynamique allant jusqu'à 2,6V
  • Ajout de la possibilité d'appliquer le potentiel de veille à un canal inactif
  • Fonctionnalité BiPot ajoutée (vitesse lente uniquement)
  • Ajout de la technique PAD
  • Ajout de la prise en charge de l'autorange du SIE
  • Correction des paramètres des canaux non restaurés après une mesure SIE
  • Les commandes "e" et "r" sont désormais accompagnées d'un "n" avant l'exécution de la MethodSCRIPT.
  • Ajout de la possibilité d'ajouter des espaces dans les scripts
  • Ajout de la possibilité d'enregistrer les mesures dans un fichier (il manque encore la possibilité de récupérer les données)
  • Possibilité d'enregistrer le script dans la mémoire flash
  • Ajout de l'exécution de scripts stockés à partir de flash, avec une commande ou au démarrage
  • Prise en charge de la révision HW 1.1, il n'y a pas de différence fonctionnelle entre les révisions HW.

Version 1.1

  • Bug corrigé : 2 x le temps d'attente pour la plupart des techniques : VOLTAMÉTRIE CYCLIQUE,DPV,LSV,NPV,OCP,SWV
  • Techniques NON concernées : CA, SIE, PAD