EmStat Pico Firmware v1.6: Was hat sich geändert?

Das Firmware-Update 1.6 für den EmStat Pico und verwandte Produkte enthält viele Verbesserungen. Es enthält sowohl Fehlerbehebungen als auch neue Funktionen.

Wie aktualisiert man die Firmware?

Sie können PSTrace verwenden, um die Firmware auf bequeme Weise zu aktualisieren. PSTrace 5.12 (verfügbar über MyPalmSens) enthält die Firmware und benachrichtigt Sie automatisch, wenn ein Firmware-Update erforderlich ist.

Firmware mit PSTrace aktualisieren PSTrace herunterladen

Wenn Sie es vorziehen, die EmStat Pico-Firmware ohne PSTrace zu aktualisieren, laden Sie die Firmware manuell herunter, und verwenden Sie diese Anleitung.

Herunterladen für den EmStat Pico

Top 10 Verbesserungen

Diese EmStat Pico-Firmware enthält einige sehr schöne Verbesserungen und neue Funktionen. Zehn nette und hilfreiche Ergänzungen:

Automatisches Erstellen einer neuen Datei für jede Messung

Erstellen Sie eine neue Datei mit dem Namen "measurement<count>.txt", wobei <count> ein Zähler ist, der sich erhöht, damit der Dateiname eindeutig ist.

file_open "measurement&i.txt" 2
file_close

Sie können auch Dateinamen erstellen, die auf einer Variablen basieren

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

 

Längere Variablennamen

Die Zeiten, in denen eine Variable nur aus einem Zeichen bestehen konnte, sind vorbei. Es steht Ihnen frei, längere Variablen zu deklarieren, um die Lesbarkeit Ihres Codes zu verbessern.

var potential
var current
var time
var under_score_is_ok

 

Software-Flusskontrolle

Die UART-Software-Flusskontrolle (XON/XOFF) erhöht die Zuverlässigkeit der Datenübertragung. In Tera Term sieht die Einrichtung der Verbindung nun wie in der folgenden Abbildung aus:

LED-Kontrolle

Sie betreiben eine Anwendung mit geringem Stromverbrauch und müssen alle LEDs deaktivieren? Oder wollen Sie dem Benutzer etwas signalisieren? Dies ist jetzt mit notify_led möglich.

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

 

Einfachere Bipotentiostat-Befehle

Die Verwendung des Bipotentiostaten wurde vereinfacht. Alte Befehle funktionieren noch, werden aber möglicherweise in zukünftigen Firmware-Versionen entfernt.

Änderungen:

  • Befehl `set_bipot_mode` hinzugefügt (ersetzt `set_poly_we_mode`, der vom Bipot-Kanal aus verwendet werden musste)
  • Befehl `set_bipot_potential` hinzugefügt (`set_e`, der vom Bipot-Kanal verwendet werden musste)
  • Optionales Argument `add_meas` hinzugefügt
  • Neuer VarType `bb` (Bipotstrom) hinzugefügt
  • Der Befehl `set_poly_we_mode` und der PGStat-Modus 5 (poly_we) wurden zugunsten des neuen Befehls `set_bipot_mode` veraltet
  • Veraltetes optionales Argument `poly_we` zu Gunsten von `add_meas`

Beispiel für alten Code in 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

Neuer Code mit 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

 

Genaue Zeitstempel

Sie möchten genau wissen, wann welche Messung stattgefunden hat?

Lesen, Senden, Ausgeben der aktuellen Zeit, wenn in Kombination mit der Ablic S-35390A RTC, wie sie im EmStat Pico Development Kit verwendet wird.

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}"

 

Array-Indizierung leicht gemacht

Der Zugriff auf Arrays ist jetzt einfacher.

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]


 

Verbesserte mathematische Funktionen

Steht der Strom aus Ihrem elektrochemischen Experiment in irgendeiner Beziehung zu einer Konzentration oder Menge eines bestimmten Biomarkers? Oder haben Sie eine Kalibrierungskurve? Eine Umwandlung von Strom in Menge ist erforderlich und mit den mathematischen Funktionen möglich.

Dieses Firmware-Update fügt auch die Power-Funktion hinzu, mit der Sie auch Quadratwurzelberechnungen durchführen können.

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

 

Erkennung von Spitzenwerten

Peaks in den Messergebnissen beziehen sich oft auf den Nachweis eines bestimmten Elements oder Biomarkers. Eine einfache Form des Peak Detecting ist in MethodSCRIPT möglich.

#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

Variablen in eine Datei schreiben

MethodSCRIPT unterstützt eine begrenzte Interpolation von Zeichenketten, so dass die Werte von Variablen in eine Zeichenkette aufgenommen werden können. Interpolierte Zeichenketten werden durch den Buchstaben f unmittelbar vor dem Anführungszeichen gekennzeichnet. Variablen, die in die Zeichenkette aufgenommen werden sollen, sind von geschweiften Klammern umgeben, z. B. {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

 

.

Wie verwendet man die neuen MethodSCRIPT-Befehle in dieser Firmware?

Um einen Überblick über alle in dieser Firmware verfügbaren MethodSCRIPT-Befehle zu erhalten, laden Sie bitte die MethodSCRIPT-Dokumentation herunter.

MethodSCRIPT-Dokumentation

Einschneidende Veränderungen und ihre Auswirkungen

Einige Änderungen an der Firmware werden die Funktionalität des bestehenden Codes verändern.

Bereich festlegen

Die Funktion "set_range" wählt nicht mehr den aktuellen Bereich aus, was zu Überlastungswarnungen führen konnte.

Der EmStat Pico Core gibt eine Überlastungswarnung aus, wenn der Strom mehr als 48 % (80 % von 60 %) eines Strombereichs beträgt. Wenn Sie bisher den Strombereich so eingestellt haben, dass er z. B. 59 nA verarbeiten kann, wurde der niedrigste Bereich von 100 nA ausgewählt. Mit dem neuen Update wird nun ein Strombereich von 59 nA ausgewählt. Auf diese Weise erhalten Sie nicht sofort eine Überlastung, wenn Sie einen Strom von 59 nA erwarten.

In einem typischen MethodSCRIPT, das von PSTrace (5.11 oder älter) erzeugt wird, sehen Sie:

set_range ba 59n
set_autoranging ba 59n 590u

Damit dieser MethodSCRIPT auch mit der neueren Firmware funktioniert, ändern Sie ihn z. B. auf Werte, die keine Überlast erzeugen:

set_range ba 30n
set_autoranging ba 30n 300u

 

Unterlast <4% statt <2%

Wenn die Ströme unter 4 % (bisher 2 %) des gewählten Strombereichs liegen, wird eine Unterlastwarnung ausgegeben, da ein niedrigerer Strombereich verwendet werden kann. Eine Unterlast führt zu Messungen mit geringer Auflösung und Genauigkeit. Wählen Sie niedrigere Strombereiche, falls verfügbar, um die verfügbare Stromauflösung und -genauigkeit zu erhöhen.

Anlegen eines Potentials während des Winterschlafs

Mit Firmware 1.3 oder niedriger wurden alle Kanaleinstellungen gelöscht und die Kanäle im Ruhezustand abgeschaltet.

Mit Firmware 1.5 oder neuer müssen Sie eine Zelle manuell ausschalten und optional einen Kanal in den PGStat-Modus ausschalten.

  • Wenn Sie einen Kanal im Hochgeschwindigkeitsmodus belassen, wird der Fehlercode 0x4205 ausgelöst.
  • Wenn Sie einen Kanal im Niedriggeschwindigkeitsmodus belassen, wird während des Ruhezustands eine Vorspannung angelegt. Dies ist nützlich für Anwendungen mit geringem Stromverbrauch, bei denen z. B. alle x Minuten eine Spannung angelegt und der Strom gemessen wird (siehe Chronoamperometrie).

Verbesserte Zeitplanung

Das Timing der Messungen wurde verbessert und ist genauer als bei der vorherigen Firmware.

Verbesserte Genauigkeit

Die Kalibrierung wird hinzugefügt, um die Genauigkeit in den Modi für hohe Geschwindigkeit und maximale Reichweite zu verbessern. Diese Funktion ist bei bereits kalibrierten Geräten nicht wirksam.

EmStat Pico Firmware-Änderungsprotokoll Version 1.6

Änderungsliste v1.6

  • MethodSCRIPT 1.8 Befehle hinzugefügt
  • Subarray
  • log_var
  • Laden und Ausführen von MethodSCRIPT aus Datei hinzugefügt
  • Behoben: `meas_loop_eis` setzt Auto-Ranging zurück
  • Hibernate"-Befehl hängt nicht mehr, wenn keine I2C-Pullups vorhanden sind (nur OEM)

EmStat Pico Firmware-Änderungsprotokoll Version 1.5

Version 1.5.00:

  • Aktualisiert auf MethodSCRIPT 1.7
  • UART-Software-Flusskontrolle (XON/XOFF) hinzugefügt. Es wird nun empfohlen, die SW-Flusskontrolle für alle EmStat Pico zu verwenden.
  • Verbesserter Befehl hibernate MethodSCRIPT, um die Anwendung eines Potentials während des Ruhezustands zu ermöglichen
  • Zusätzliche Möglichkeit zur Messung des Poly-WE-Kanals RE gegen GND
  • Verbesserte Zeitgenauigkeit
  • Aktualisierte Kommunikationsdetails (UART-Baudrate und Flusskontrolle)
  • Umkehrbefehl "R" für CV hinzugefügt
  • Hinzugefügte Register:
    • Peripheriekonfiguration
    • Lizenz-Register
    • MethodSCRIPT Autorun
    • UART-Datenrate begrenzen
    • Gerät zurücksetzen
    • Mehrkanalige Rolle
    • Systemdatum und -uhrzeit
    • Standard-GPIO-Konfiguration
    • System-Warnung
    • Konfiguration der Baudrate
  • Veralteter `s`-Befehl wurde entfernt, stattdessen MethodSCRIPT hibernate verwenden
  • Die maximale Zeilenlänge wurde auf 256 erhöht.
  • MethodSCRIPT Änderungen und Ergänzungen:
    • Zeilennummern aktualisiert, um auch Kommentare zu berücksichtigen
    • Verhalten der Befehle `pck_start`/`pck_add`/`pck_end` aktualisiert
    • Maskierte Versionen der GPIO-Befehle hinzugefügt (`set_gpio_msk` und `get_gpio_msk`)
    • Mux-Befehle: `mux_config`, `mux_get_channel_count`, `mux_set_channel`
    • Modulo-Operation: `mod_var`
    • Ändern des _VarType_ einer MethodSCRIPT-Variable: `alter_vartype`
    • Ausgabe von Benutzerbenachrichtigungen über die Geräte-LED: `notify_led`
    • Einstellen der Scan-Richtung für zyklische Voltammetrie (CV): `set_scan_dir`
    • Mit dem neuen Befehl `rtc_get` können Datum und Uhrzeit der RTC innerhalb von MethodSCRIPT abgefragt werden
    • Vereinfachte Verwendung von bipot
      • Befehl `set_bipot_mode` hinzugefügt (ersetzt `set_poly_we_mode`, der vom Bipot-Kanal verwendet werden musste)
      • Neuer Befehl `set_bipot_potential` (ersetzt `set_e`, der vom bipot-Kanal aus verwendet werden musste)
      • Optionales Argument `add_meas` hinzugefügt
      • Neuer VarType `bb` (bipot current) hinzugefügt
      • Der Befehl `set_poly_we_mode` und der PGStat-Modus 5 (poly_we) wurden zugunsten des neuen Befehls `set_bipot_mode` veraltet
      • Veraltetes optionales Argument `poly_we` zu Gunsten von `add_meas`
    • Der EmStat Pico verwendet nun die externe Ablic S-35390A RTC für das Systemdatum und die Systemzeit, wenn dies im Peripheriekonfigurationsregister aktiviert ist.
    • MethodSCRIPT-Befehl `pow_var` hinzugefügt
  • `set_range` wählt nicht mehr den aktuellen Bereich aus, was zu Überlastungswarnungen führt
  • `meas_loop_eis` imaginäre Impedanz gibt keinen unklaren Bereich mehr an
  • Unterstützung für interpolierte Strings (_f-strings_) hinzugefügt
  • Unterstützung für Array-Zugriffssyntax hinzugefügt
  • Unterstützung für automatisch inkrementierende Zahlen in der Datei hinzugefügt
  • Unterstützung für mehrstellige Variablennamen hinzugefügt
  • Der Befehl `set_autoranging` reagiert nun mit einem Fehler, wenn negative Eingaben gemacht werden
  • Der Befehl `wait` MethodSCRIPT ist jetzt abbrechbar
  • Verschiedene Fehlerbehebungen

EmStat Pico Firmware-Änderungsprotokoll Version 1.1 bis 1.3

Version 1.3.05:

  • Bugfix: Stoppt Techniken, die versuchen, nach einem Haltebefehl aufzuholen
  • Bugfix: Zeitwarnungsflagge in SWV nicht gesetzt.
 

Version 1.3.04:

  • Bugfix: EIS-Messfehler auf Ch1 und DC

Version 1.3.03:

  • Aktualisierte MScript-Version, um Konflikte mit 1.3.01 mit in Flash gespeicherten Skripten zu vermeiden

Version 1.3.02:

  • Bugfix: i2c_write und i2c_read falsche Referenz auf var a

Version 1.3.01:

  • Bugfix: file_open mode 1 (append) schlug beim Erstellen einer Datei fehl

Version 1.3.00:

  • Unterstützung für Sensit BT Onboard-Messwertspeicher hinzugefügt
  • Dateisystem für EmStat Pico's, die SD-Karten zum Speichern verwenden, wurde von FAT32 auf ein eigenes Dateisystem geändert
  • Verbesserte Unterstützung für verschiedene SD-Karten
  • PAD und LSV hatten einen Erfassungsanteil von 12,5 %, der auf 25 % angepasst wurde, um mit anderen PalmSens und -Techniken übereinzustimmen
  • Reduzierung des Overheads aller Techniken um 1/8 des Technikintervalls
  • Konfigurierbarkeit der Erfassungsfraktion durch MethodSCRIPT
  • Verbesserte Strommessung während der EIS, wenn ein Gleichstrompotential angelegt wird
  • VT_TEMPERATURE zu MethodSCRIPT hinzugefügt, um den internen uC-Temperatursensor abzufragen
  • Der Befehl set_cr wurde durch den Befehl set_range MethodSCRIPT ersetzt, der jeden Variablentyp akzeptiert (set_cr ist veraltet, aber weiterhin verfügbar)
  • Der Befehl set_pot_range wurde durch den MethodSCRIPT-Befehl set_range_minmax ersetzt, der jeden Variablentyp akzeptiert (set_pot_range ist veraltet, aber weiterhin verfügbar)
  • Variable Type zu MethodSCRIPT set_autoranging Befehl hinzugefügt (alte Version veraltet, aber immer noch verfügbar)
  • Aktualisierter Versionsbefehl mit 2 zusätzlichen Ziffern für "Patch"
  • Ausfallsicherer Kommunikationsmodus mit CRC hinzugefügt
  • Befehl zur Begrenzung der UART-Ausgangsdatenrate hinzugefügt, um Pufferüberläufe auf dem Host zu verhindern
  • Reduzierter Kurzschlussstrom im Energiesparmodus auf maximal 20 mA
  • Befehl fs_put zum Speichern von Dateien hinzugefügt (nur Text)
  • fs_*-Befehle, die Daten zurückgeben, antworten jetzt mit einem ack 'n', bevor sie Daten zurückgeben.
  • CV speicherte nicht alle Ausgaben in einer Datei, wenn die Dateispeicherung aktiviert war
  • Behoben: CV überspringt letzten Punkt des letzten Scans
  • Zusätzlicher (un)abschließbarer Schutz für nichtflüchtigen Speicher
  • Festgelegter Zeitpunkt des ersten Punktes bei zeitbasierten Messungen
  • Zusätzlicher Ruhezustand, wenn das Gerät im Leerlauf ist, um Strom zu sparen
  • CRC zur Überprüfung des im nichtflüchtigen Speicher gespeicherten MethodSCRIPT hinzugefügt
  • Verbesserte Technikvalidierung für NPV/DPV
  • Bitweise Operatorfunktionen zu MethodSCRIPT hinzugefügt
  • Cast zu/von Float/Int-Funktionen zu MethodSCRIPT hinzugefügt
  • Unbeabsichtigte Verzögerung zwischen I2C-Übertragungen behoben
  • Timeout von 5 Sekunden für Befehle hinzugefügt
  • Das festgestellte Potential von SWV stimmt nicht mit der Theorie überein
  • Das EIS reagiert schneller auf einen Abbruchbefehl
  • Der Befehl "cali" wurde durch "register" ersetzt.
 

Version 1.2:

  • Befehl get_time MethodSCRIPT hinzugefügt
  • Hibernate-Befehl MethodSCRIPT hinzugefügt
  • Möglichkeit zur Verwendung von binären oder hexadezimalen Zahlen in MethodSCRIPT hinzugefügt
  • Integer-Zahlen hinzugefügt (nützlich für gpio-Funktionen und Schleifen)
  • Befehl zum Aufrufen des Bootloaders über das normale Protokoll hinzugefügt
  • Befehle get_gpio, set_gpio_pullup und set_gpio_cfg hinzugefügt
  • SD-Karten-Unterstützung hinzugefügt (Möglichkeit zum Speichern der MethodSCRIPT-Ausgabe und Dateibrowser-Befehle hinzugefügt)
  • MethodSCRIPT-Befehl zum Abbrechen hinzugefügt
  • If-, else-, elseif- und endif-MethodSCRIPT-Befehle hinzugefügt
  • Breakloop-Befehl MethodSCRIPT hinzugefügt
  • Neue MethodSCRIPT-Variablentypen zur Verwendung im Befehl "meas" MethodSCRIPT hinzugefügt
  • MethodSCRIPT Unterstützung für bitweise Operatoren in booleschen Vergleichen hinzugefügt
  • MethodSCRIPT-Befehle timer_start und timer_get hinzugefügt
  • set_int, await_int MethodSCRIPT-Befehle hinzugefügt
  • MethodSCRIPT-Benutzer I2C-Unterstützung hinzugefügt
  • MethodSCRIPT-Unterstützung hinzugefügt, um festzulegen, welche Metadaten in Messpaketen gesendet werden sollen
  • Unterstützung für MethodSCRIPT-Arrays hinzugefügt
  • Der Befehl meas_loop_eis MethodSCRIPT verwendet jetzt set_cr, wenn der automatische Messbereich ausgeschaltet ist (wird weiterhin ignoriert, wenn der automatische Messbereich aktiviert ist).
  • Optionaler Befehl nscans MethodSCRIPT für CV für Mehrfach-Scans ohne überlappende Punkte hinzugefügt
  • Unterstützung für Sensit BT hinzugefügt
  • Optimierte Kalibrierungsroutinen für Hochgeschwindigkeits-DACs und externe Widerstände

Version 1.1:

  • Kombinierter pgstat-Modus hinzugefügt, um einen Dynamikbereich von bis zu 2,6 V zu ermöglichen
  • Möglichkeit zur Anwendung von Standby-Potenzial auf inaktive Kanäle hinzugefügt
  • BiPot-Funktionalität hinzugefügt (nur niedrige Geschwindigkeit)
  • PAD-Technik hinzugefügt
  • Unterstützung für EIS-Automatisierung hinzugefügt
  • Behobene Kanaleinstellungen wurden nach EIS-Messung nicht wiederhergestellt
  • Die Befehle 'e' und 'r' werden nun mit einem 'n' quittiert, bevor das MethodSCRIPT ausgeführt wird.
  • Zusätzliche Leerzeichen im Skript können hinzugefügt werden
  • Es wurde die Möglichkeit hinzugefügt, Messungen in einer Datei zu speichern (es fehlt noch die Möglichkeit, Daten abzurufen)
  • Skript kann jetzt im Flash-Speicher gespeichert werden
  • Hinzufügen der Ausführung von gespeicherten Skripten aus Flash, mit einem Befehl oder beim Starten
  • Unterstützung für HW-Revision 1.1, es gibt keinen funktionalen Unterschied zwischen den HW-Revisionen

Version 1.1

  • Fehler behoben: 2 x Timer-Wartezeit für die meisten Techniken: CV,DPV,LSV,NPV,OCP,SWV
  • NICHT beteiligte Techniken: CA,EIS,PAD