Archiv verlassen und diese Seite im Standarddesign anzeigen : RobotLoader 2.3a
Hallo,
es gibt eine neue RobotLoader Version 2.3b (EDIT: Version 2.3a aus dem Beitrag hier gelöscht, da noch ein kleiner Fehler vorhanden war).
Download hier:
http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip
Der RobotLoader kann jetzt auch über die Kommandozeile benutzt werden und somit z.B. direkt aus einer IDE heraus aufgerufen werden!
Die Benutzung ist sehr einfach.
Unter Windows kann die neue robotloader_cmd.exe
verwendet werden, dann ist der Aufruf folgendermaßen:
robotloader_cmd.exe -h
um eine kurze Hilfe anzuzeigen.
Programm laden:
robotloader_cmd.exe -port=USB0 -hex=<DATEI>.hex
Programm laden und starten:
robotloader_cmd.exe -port=USB0 -hex=<DATEI>.hex -s
Programmspeicher löschen:
robotloader_cmd.exe -port=USB0 -e
Programm starten:
robotloader_cmd.exe -port=USB0 -s
Board Info abrufen (und Reset ausführen):
robotloader_cmd.exe -port=USB0 -id
Unter Linux ist der Aufruf nicht ganz so kurz, es muss
hier noch der Library Pfad und das JAR mit angegeben werden sowie
mit Parameter -c der Kommandozeilen Modus aktiviert werden.
z.B. so:
java -Djava.library.path="./lib" -jar RobotLoader_lib.jar -c -port=/dev/ttyUSB0 -id
oder bei 64 Bit:
java -Djava.library.path="./lib/linux_x64" -jar RobotLoader_lib.jar -c -port=/dev/ttyUSB0 -id
Aber das sollte kein Problem sein wenn man es mit einem Script aufruft.
Der Modus ist neu und noch wenig getestet, ich bitte daher um Feedback!
Die meisten anderen Neuerungen betreffen das WLAN Modul.
MfG,
SlyD
TrainMen
13.06.2012, 16:52
Also einfach V1.5 mit V2.3a austauschen geht bei mir schon mal nicht.
Wenn ich den Loader mit der Base verbinde ist alles Ok nur wenn ich ihn mit der M32 verbinde bekommen bei der V2.3a ein Meldung über einen "Unknown Bootloader Error" und dann einen Timeout.
Lösungsvorschläge ?
mfg TrainMen
Ich füge hier mal noch das Logfile ein
RobotLoader log file
SystemLogger started at: Sat Jun 16 14:48:03 CEST 2012 (1339850883437)
JVM System Information:
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Programme\Java\jre6\bin
java.vm.version = 20.8-b03
java.vm.vendor = Sun Microsystems Inc.
java.vendor.url = http://java.sun.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) Client VM
file.encoding.pkg = sun.io
sun.java.launcher = SUN_STANDARD
user.country = DE
sun.os.patch.level = Service Pack 3
java.vm.specification.name = Java Virtual Machine Specification
user.dir = D:\Projekt RP6\Loader Neu
java.runtime.version = 1.6.0_33-b03
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs = C:\Programme\Java\jre6\lib\endorsed
os.arch = x86
java.io.tmpdir = C:\DOKUME~1\gosy\LOKALE~1\Temp\
line.separator =
java.vm.specification.vendor = Sun Microsystems Inc.
user.variant =
os.name = Windows XP
sun.jnu.encoding = Cp1252
java.library.path = .;.\lib
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot Client Compiler
os.version = 5.1
user.home = C:\Dokumente und Einstellungen\gosy
user.timezone = Europe/Berlin
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = Cp1252
java.specification.version = 1.6
java.class.path = RobotLoader_lib.jar;lib\jd2xx.jar;lib\RXTXcomm.jar ;lib\comm.jar
user.name = gosy
java.vm.specification.version = 1.0
sun.java.command = de.dsh.rp6loader.Init
java.home = C:\Programme\Java\jre6
sun.arch.data.model = 32
user.language = de
java.specification.vendor = Sun Microsystems Inc.
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode, sharing
java.version = 1.6.0_33
java.ext.dirs = C:\Programme\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java \lib\ext
sun.boot.class.path = C:\Programme\Java\jre6\lib\resources.jar;C:\Progra mme\Java\jre6\lib\rt.jar;C:\Programme\Java\jre6\li b\sunrsasign.jar;C:\Programme\Java\jre6\lib\jsse.j ar;C:\Programme\Java\jre6\lib\jce.jar;C:\Programme \Java\jre6\lib\charsets.jar;C:\Programme\Java\jre6 \lib\modules\jdk.boot.jar;C:\Programme\Java\jre6\c lasses
java.vendor = Sun Microsystems Inc.
file.separator = \
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = windows
sun.cpu.isalist =
JVM Memory Information:
Free: 14408344 (14070 Kb)
Max: 259522560 (253440 Kb)
Total: 16252928 (15872 Kb)
Initializing...
RobotLoader Version: 2.3a
Last build: 01.06.2012
Loading Configuration...
Done!
Global->loadLocalizedText
Loading Board Library...
Done!
OS:WIN
Initializing native communication library: JD2XX
--> USB0 | FT232R USB UART | A7004UO7
--> USB0 | FT232R USB UART | A7004UO7
UDP listener on 55555 active!
Add Connection Entry: 192.168.10.171:2000
TERMINAL: RobotLoader Serial Terminal
TERMINAL: - type ".help" for command list!
NETWORK TERMINAL: RobotLoader Network / WIFI Terminal
NETWORK TERMINAL: - type ".help" for command list!
Loading File List...
Done!
Loading File List Network...
Done!
Loading WIFI Configuration...
Done!
Init.2 done.
Global->Enabling log panel...
RobotLoader is ready to go.
Message (Sat Jun 16 14:48:21 CEST 2012) : RP6Main.actionPerformed: CONNECT
Trying to open port: USB0 | FT232R USB UART | A7004UO7
--> USB0 | FT232R USB UART | A7004UO7
Portlist: USB0 | FT232R USB UART | A7004UO7
USB0 | FT232R USB UART | A7004UO7 open @38400baud
Device info: --> Desc: FT232R USB UART
Device info: --> ID: 67330049
Set Comport...
Baudrate is set to: 38400
OK!
Try to get ID...
Data start...
Bootloader active "[RP6BOOT]"
Connected to target!
Connected to target 2!
Target ID received:
RP6: Board ID 2, Firmware Version 1.4, Board Rev.: 3
["RP6 Control", 2, MEGA32, 0, 30720, true]
Board Memory: 0 to 30720
TERMINAL:
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
TERMINAL:
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
Exception in thread "Thread-5" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicScrollPaneUI.installLi steners(Unknown Source)
at javax.swing.plaf.metal.MetalScrollPaneUI.installLi steners(Unknown Source)
at javax.swing.plaf.basic.BasicScrollPaneUI.installUI (Unknown Source)
at javax.swing.plaf.metal.MetalScrollPaneUI.installUI (Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JScrollPane.setUI(Unknown Source)
at javax.swing.JScrollPane.updateUI(Unknown Source)
at cls.ar.b(Unknown Source)
at cls.ar.a(Unknown Source)
at cls.ar.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
Finished 0ms
FEHLER (1) ||| Timeout: Der Mikrocontroller hat nicht geantwortet!
Sind Sie sicher, dass das Kabel richtig angeschlossen ist und
der Roboter angeschaltet ist?
Sind die richtigen USB Treiber installiert
und wurde der richtige Port gewählt?
Ich habe noch ein Java Update gemacht, aber keine Änderungen
Hallo,
es wurden seit Version 1.5h natürlich zig Sachen geändert, das M32 hatte ich vor ein paar Wochen zuletzt getestet.
Ich bin gerade unterwegs, schau es mir dann nächste Woche mal an.
MfG,
SlyD
TrainMen
14.06.2012, 14:52
Hallo,
ja Danke, hat ja keine Eile.
Dein Text liesst sich ja so als wenn zwischen der Version 1.5h und V2.3a noch jede menge veröffentlichte Versionen existieren.
Mir sind keine bekannt, gibt es da welche ?
mfg TrainMen
Hallo,
die 2.0 wurde mal im AREXX Forum veröffentlicht, ist aber nur eine Testversion gewesen.
Der Versionssprung auf 2.0 kam von den ganzen Netzwerk Erweiterungen da hielt ich das für gerechtfertigt.
Dann zwei interne und sprung auf 2.3 wegen Kommandozeile.
Achja hatte ich oben noch vergessen zu erwähnen man kann die Terminal Tabs jetzt in separate Fenster abdocken im View Menü.
MfG,
SlyD
TrainMen
15.06.2012, 00:29
Hallo,
na klar ist das so ok, soweit waren mir die Versionen auch bekannt. Es las sich eben nur anders. Ich dachte mir ist da was entgangen.
Haben denn andere auch ein Problem wie von mir oben beschrieben?
mfg TrainMen
Hier auch mein erster Test des RobotLoaders 2.3a mit Win 7 64-bit:
Der RP6Loader startet grundsätzlich mit Exception-Meldungen, die sich auch nicht ignorieren lassen.
(Übrigens: Das macht auch gelegentlich bei mir die Version 1.4c, aber nur einmalig nach dem Programmstart. Danach kann man das erfolgreich ignorieren!)
Macht man das Exception-Log-Fenster klein, kann ich mich sowohl mit der M32, als auch mit der RP6 Base verbinden.
Das hält aber nur bei der Base an, bei der M32 kommen nach dem erfolgreichen Verbinden weitere Exceptions und schließlich eine Timeout-Meldung.
Hallo Dirk,
> startet grundsätzlich mit Exception-Meldungen,
da musst Du mir schon die Logdatei (im Ordner <robotloader>/logfiles ) schicken. Kann ja alles mögliche sein.
Die Meldungen enthalten meistens Infos mit denen man was anfangen kann...
> gelegentlich bei mir die Version 1.4c
Auch mit RobotLoader 1.5h?
MfG,
SlyD
Hallo SlyD,
Leider ist kein Logfile im Unterordner /logfiles oder in einem der anderen Unterordner nach Beenden des RobotLoaders.
Das Exception-Log-Fenster weigert sich ja, die Ausgabe mit Copy-Paste rauszuziehen.
Ich habe den Verdacht, dass die Windows-Firewall oder mein Virenscanner dahinter steckt (die Firewall hatte sich beim allerersten Start des RobotLoaders 2.3a einmal gemeldet, dann nicht wieder...).
Ich teste weiter ...
P.S.: Wie komme ich elegant an das Logfile?
OK dann passiert das allerdings sehr sehr früh beim Starten wenn noch kein logfile erzeugt wurde. Mach doch bitte einfach mal ein zwei Screenshots davon wo man das wichtigste von der Meldung erkennen kann...
radbruch
16.06.2012, 19:09
Hallo
Wie auch schon die 2.0er Vorversion scheint auch die Version 2.3 bei mir zu funktionieren (zumindest startet sie normal). Vielleicht komme ich am We dazu noch ein paar Tests zu machen. Vor allem die Kommandozeile finde ich super. Ich versuche das mal in Bascom und in LunaAVR einzubinden.
Gruß
mic
Ah danke! Wie dort direkt in der ersten Zeile der Fehlermeldung zu sehen ist, kann er auf die Logdatei nicht zugreifen.
Die wurde beim RobotLoader in ein separates Verzeichnis verschoben (ist dann einfacher in Linux ein .deb daraus zu bauen, wollte ein Anwender gerne machen s. AREXX Forum).
Probiers doch mal mit Admin Rechten zu starten und ggf. im Virenscanner Ausnahmen für den RobotLoader hinzuzufügen falls das geht (oder nur mal kurz deaktiviren, testen obs dann geht).
MfG,
SlyD
So, nach vielen Tests:
1. Virenscanner -> unschuldig
2. Win 7 Firewall -> unschuldig
3. RobotLoader als Administrator ausführen -> Muss sein (sonst Log-Datei gesperrt)
4. RP6Base -> jetzt klappt alles
5. M32 -> Kann verbinden, dann kommt es aber zum Timeout (ohne dass man etwas machen muss)
RobotLoader log file
SystemLogger started at: Sat Jun 16 20:54:59 CEST 2012 (1339872899614)
JVM System Information:
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files (x86)\Java\jre6\bin
java.vm.version = 20.6-b01
java.vm.vendor = Sun Microsystems Inc.
java.vendor.url = http://java.sun.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) Client VM
file.encoding.pkg = sun.io
sun.java.launcher = SUN_STANDARD
user.country = DE
sun.os.patch.level = Service Pack 1
java.vm.specification.name = Java Virtual Machine Specification
user.dir = C:\Program Files\RobotLoader
java.runtime.version = 1.6.0_31-b05
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs = C:\Program Files (x86)\Java\jre6\lib\endorsed
os.arch = x86
java.io.tmpdir = C:\Users\Dirk\AppData\Local\Temp\
line.separator =
java.vm.specification.vendor = Sun Microsystems Inc.
user.variant =
os.name = Windows 7
sun.jnu.encoding = Cp1252
java.library.path = .;.\lib
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot Client Compiler
os.version = 6.1
user.home = C:\Users\Dirk
user.timezone = Europe/Berlin
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = Cp1252
java.specification.version = 1.6
java.class.path = RobotLoader_lib.jar;lib\jd2xx.jar;lib\RXTXcomm.jar ;lib\comm.jar
user.name = Dirk
java.vm.specification.version = 1.0
sun.java.command = de.dsh.rp6loader.Init
java.home = C:\Program Files (x86)\Java\jre6
sun.arch.data.model = 32
user.language = de
java.specification.vendor = Sun Microsystems Inc.
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode, sharing
java.version = 1.6.0_31
java.ext.dirs = C:\Program Files (x86)\Java\jre6\lib\ext;C:\Windows\Sun\Java\lib\ex t
sun.boot.class.path = C:\Program Files (x86)\Java\jre6\lib\resources.jar;C:\Program Files (x86)\Java\jre6\lib\rt.jar;C:\Program Files (x86)\Java\jre6\lib\sunrsasign.jar;C:\Program Files (x86)\Java\jre6\lib\jsse.jar;C:\Program Files (x86)\Java\jre6\lib\jce.jar;C:\Program Files (x86)\Java\jre6\lib\charsets.jar;C:\Program Files (x86)\Java\jre6\lib\modules\jdk.boot.jar;C:\Progra m Files (x86)\Java\jre6\classes
java.vendor = Sun Microsystems Inc.
file.separator = \
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = windows
sun.cpu.isalist = pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
JVM Memory Information:
Free: 14311472 (13976 Kb)
Max: 259522560 (253440 Kb)
Total: 16252928 (15872 Kb)
Initializing...
RobotLoader Version: 2.3a
Last build: 01.06.2012
Loading Configuration...
Done!
Global->loadLocalizedText
Loading Board Library...
Done!
OS:WIN
Initializing native communication library: JD2XX
--> USB0 | RP6 USB Interface | ARQ0SWPU
--> USB0 | RP6 USB Interface | ARQ0SWPU
UDP listener on 55555 active!
Add Connection Entry: 192.168.10.171:2000
TERMINAL: RobotLoader Serial Terminal
TERMINAL: - type ".help" for command list!
NETWORK TERMINAL: RobotLoader Network / WIFI Terminal
NETWORK TERMINAL: - type ".help" for command list!
Loading File List...
Done!
Loading File List Network...
Done!
Loading WIFI Configuration...
Done!
Init.2 done.
Global->Enabling log panel...
RobotLoader is ready to go.
Message (Sat Jun 16 20:55:18 CEST 2012) : RP6Main.actionPerformed: CONNECT
Trying to open port: USB0 | RP6 USB Interface | ARQ0SWPU
--> USB0 | RP6 USB Interface | ARQ0SWPU
Portlist: USB0 | RP6 USB Interface | ARQ0SWPU
USB0 | RP6 USB Interface | ARQ0SWPU open @38400baud
Device info: --> Desc: RP6 USB Interface
Device info: --> ID: 67330049
Set Comport...
Baudrate is set to: 38400
OK!
Try to get ID...
Data start...
Bootloader active "[RP6BOOT]"
Connected to target!
Connected to target 2!
Target ID received:
RP6: Board ID 2, Firmware Version 1.4, Board Rev.: 3
["RP6 Control", 2, MEGA32, 0, 30720, true]
Board Memory: 0 to 30720
TERMINAL:
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
TERMINAL:
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
Finished 0ms
ERROR (1) ||| Timeout: The target has not responded!
Are you sure the cable is properly connected and target has power?
Are the correct USB Drivers installed
and did you select the correct Port?
Message (Sat Jun 16 20:56:01 CEST 2012) : RP6Main.actionPerformed: CONNECT
Set Comport...
Baudrate is set to: 38400
OK!
Try to get ID...
Data start...
Bootloader active "[RP6BOOT]"
Connected to target!
Connected to target 2!
Target ID received:
RP6: Board ID 2, Firmware Version 1.4, Board Rev.: 3
["RP6 Control", 2, MEGA32, 0, 30720, true]
Board Memory: 0 to 30720
TERMINAL:
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: 9
at cls.aK.a(Unknown Source)
at cls.h.jd2xxEvent(Unknown Source)
at jd2xx.JD2XX.dispatchEvent(JD2XX.java:699)
at jd2xx.JD2XX.run(JD2XX.java:739)
at java.lang.Thread.run(Unknown Source)
TERMINAL:
Finished 0ms
ERROR (1) ||| Timeout: The target has not responded!
Are you sure the cable is properly connected and target has power?
Are the correct USB Drivers installed
and did you select the correct Port?
radbruch
16.06.2012, 23:39
Das funktioniert ja schon mal sehr gut:
http://radbruch.bplaced.net/rp6/pics/Robotloader2_3a_mit_LunaAVR_klein.png (http://radbruch.bplaced.net/rp6/pics/Robotloader2_3a_mit_LunaAVR.png)
http://forum.myluna.de/viewtopic.php?f=3&t=24#p94
Gruß
mic
Hallo,
so habe den kleinen Fehler korrigiert, es gibt nun Version 2.3b - bitte nochmal probieren:
http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip
Version 2.3a habe ich mal aus dem Startposting rausgelöscht.
@Dirk:
Teste mal ob es immer noch die Fehlermeldung beim starten unter Win7 ohne Admin Rechte gibt.
Mindestens sollte nun eine normale Fehlermeldung erscheinen...
MfG,
SlyD
TrainMen
18.06.2012, 16:36
Hallo,
upps, das ist immer noch die 2.3a
*gnampf* dieser blöde WYSIWYG Text Editor im RN - der Text war die neue Version, der Link zeigte aber noch auf die alte - nur konnte man so auf Anhieb nicht sehen :roll:
Korrigiert.
TrainMen
18.06.2012, 16:47
Hi,
Perfekt, keine Exception-Meldungen mehr und kein Timeout bei mir. Super. Danke für die schnelle Lösung.
mfg TrainMen
@SlyD:
Jetzt funktioniert alles, auch die Verbindung zur M32, wenn man als Administrator startet.
Was auch jetzt gut ist: Sonderzeichen ab Ascii 160 sind jetzt ANSI-konform, d.h. nicht mehr (ANSI + 1).
Wenn man nicht Administrator-Rechte hat, erscheint das leere Exception-Log Fenster beim Start. Wenn man das nicht beachtet, kann man normal weiter arbeiten.
Klickt man irgend etwas (Ignore z.B.) im Exception-Log Fenster an, hängt sich der Loader beim Klick auf das Schließen-Symbol auf und muss mit dem Task Manager geschlossen werden.
@SlyD:
Ich habe mal versucht, den RobotLoader durch ein "Tool" im PN2 (WinAVR) über Kommandozeile zu starten.
Eigenschaften:
Name: [RobotLoader] Upload
Command: C:\...\robotloader_cmd.exe
Folder: %d
Parameters: -port=USB0 -hex=%n.hex
Dabei gibt es 2 Probleme:
1. Scheitert es immer an Rechten der Benutzerkontensteuerung. Da der Loader in Windows als unsicheres Programm eingestuft wird, muss man letztlich die niedrigste Stufe wählen mit entsprechenden Gefahren durch andere Programme.
2. Beseitigt man das Problem 1, klappt es leider immer noch nicht mit folgender Textmeldung im PN2:
> "C:\Program Files\RobotLoader\robotloader_cmd.exe" -port=USB0 -hex=RP6Control_LCD.hex
java.lang.NoClassDefFoundError: de/dsh/rp6Loader.Init
Caused by: java.lang.ClassNotFoundException: de.dsh.rp6loader.Init
at java.net.URLClassLoader$1.run(Unknown Source)
...
Exception in thread "main"
Gibt es Lösungen dafür?
Hallo Dirk,
ich schau mir das mit den Rechten mal genauer an sobald ich mal wieder Zeit dafür habe.
Aber das kann noch dauern.
Zu Punkt 2:
Das liegt schlicht an Folder: %d
Die .exe ist ja nur ein etwas besseres Startscript sozusagen. Es wird dann in dem Projektverzeichnis gestartet und
findet dann natürlich nix vom RobotLoader.
Du musst stattdessen den Pfad zur hex Datei mit %d anpassen, dann klappt das problemlos (hier bei mir jedenfalls).
MfG,
SlyD
@SlyD:
Zu 2:
Danke!
Wegen der Zeile "C:\Program Files\RobotLoader\robotloader_cmd.exe" -port=USB0 -hex=RP6Control_LCD.hex dachte ich, dass der RobotLoader in SEINEM Verzeichnis startet.
Müßte ich dann Folder leer lassen und den Pfad zur hex in Parameters ergänzen?
Ja genau Folder leer lassen und
-port=USB0 -hex=%d%n.hex
als Parameter verwenden.
MfG,
SlyD
PS:
Wenn man mit dem RP6 WLAN Modul arbeitet und das Programm normal per USB Interface in den Controller lädt,
kann man z.B. eine Netzwerk Verbindung mit PuTTY zum Modul aufbauen und hat dann ein Terminal wo man den Port nicht schließen muss
um sich die Ausgaben anschauen zu können. Das kann nützlich sein wenn man einfach nur ein wenig an der Programmlogik arbeitet
ohne das der RP6 herumfährt.
Parameter dann so wählen: -port=USB0 -hex=%d%n.hex -s
Dann wird das Programm nach dem Upload automatisch gestartet.
So, meine 4 Tools im PN2 für den RobotLoader funktionieren jetzt:
Name: [RobotLoader] Upload
Command: C:\Program Files\RobotLoader\robotloader_cmd.exe
Folder:
Parameters: -port=USB0 -hex=%d%n.hex
Name: [RobotLoader] Upload & Start
Command: C:\Program Files\RobotLoader\robotloader_cmd.exe
Folder:
Parameters: -port=USB0 -hex=%d%n.hex -s
Name: [RobotLoader] Clear Memory
Command: C:\Program Files\RobotLoader\robotloader_cmd.exe
Folder:
Parameters: -port=USB0 -e
Name: [RobotLoader] Get ID
Command: C:\Program Files\RobotLoader\robotloader_cmd.exe
Folder:
Parameters: -port=USB0 -id
Ich habe mal mit den "Tools" weiter getestet:
Teilweise kommt in Win7 64bit die Fehlermeldung im PN2 aus meinem Post vom 20.6. (Punkt 2) auch jetzt noch.
Ich kann nicht genau sagen, unter welchen Bedingungen.
Wenn sie aber NICHT kommt, gibt es einen Kommentar im PN2-Ausgabefenster wie: "Die Aktion benötigt erweiterte Rechte." (oder ähnlich).
Ich teste weiter ...
Thorben W
17.02.2013, 13:05
Hallo ich habe das Problem auch (Win7 64 bit) beim neusten Robotloader aber mit der Fehlermeldung das kein Java 1.6 oder neuer installiert ist.
Es ist aber Java 1.7 garantiert installiert
Ein Logfile gibt es noch nicht.
Thorben W
hallo allerseits,
würde das einbinden auch bei code:blocks ide unter linux (ubuntu) funktionieren?
oder soll ich lieber die funktionierende 1.4.c verwenden (ohne einbindung in code:blocks...)
hallo,
also, das einbinden als "werkzeug" in code:blocks hat einwandfrei funktioniert, im terminal zeigt sich allerdings ein eventuelles treiber/betriebssystem (linux?) problem:
3V3 Voltage: 2.6V
ADC 3V3: 532
TOUCHED!!!
ADC Touch: 537
Temperature: 23.4°
RTC: 12:00:00 10.01.2013
Temperature: 20.8°
BAT Current: 0.0mA
BAT Voltage: 7.4V
SERVO Volt.: 5.0V
VCC Voltage: 5.1V
das "Â" in der anzeige der temperatur...
woran könnte das liegen?
Ripper121
17.04.2013, 13:25
UTF8 codierung des textes und UNICODE Terminal?
hat jemand eine idee wie ich das in linux einstellen kann? Der terminal im loader ist ja nicht der terminal von linux, oder SlyD?
Hallo,
erstmal bitte die Version von der Website verwenden die in diesem Thread ist natürlich veraltet.
Aktuell ist die 2.4a:
http://arexx.com/rp6/downloads/RobotLoader_20120924.zip
Dann poste bitte den Code der diese Ausgabe erzeugt (nur die eine Zeile mit dem Zeichen).
writeString_P("°_° ^_^\n");
klapt hier problemlos sowohl mit Win7+Ubuntu.
MfG,
SlyD
hi,
der 2.4.a loader startet problemlos von code:blocks aus. Kann ich irgendwie die im 2.3. bereits eingefügten hexfiles in die 2.4. version übernehmen, oder muss ich alles von hand neu eintragen?
Du kannst aus dem config Ordner die Dateien "files.cfg" und "files_net.cfg" kopieren (RobotLoader vorher schließen!).
MfG,
SlyD
[QUOTE=SlyD;577572]
Dann poste bitte den Code der diese Ausgabe erzeugt (nur die eine Zeile mit dem Zeichen).
writeString_P("°_° ^_^\n");
/QUOTE]
so ganz genau weiss ich jetzt nicht was du möchtest: was soll ich mit der codezeile machen?
;) Du sollst damit gar nix machen.
Du solltest den Code herzeigen der diese Ausgabe die Du gepostet hast produziert.
Das was ich gepostet habe funktioniert hier problemlos. (ich nehme mal an es geht um das ° Grad Zeichen.)
MfG,
SlyD
hi,
ja, es geht um das gradzeichen. Hier der code, komplett, da ich nicht weiss, was für dich wichtig ist:
/*
* ************************************************** **************************
* RP6 ROBOT SYSTEM - RP6 CONTROL M32 Examples
* ************************************************** **************************
* Example: RP6Control MultiIO
* Author(s): Dirk
* ************************************************** **************************
* Description:
* In this example we show a first test for the MultiIO Project Board.
*
* ################################################## ##########################
* The Robot does NOT move in this example! You can simply put it on a table
* next to your PC and you should connect it to the PC via the USB Interface!
* ################################################## ##########################
* ************************************************** **************************
*/
/************************************************** ***************************/
// Includes:
#include "RP6ControlLib.h" // The RP6 Control Library.
// Always needs to be included!
#include "RP6I2CmasterTWI.h" // Include the I2C-Bus Master Library
/************************************************** ***************************/
/************************************************** ***************************/
// Include our new "RP6Control MultiIO library":
// (This is the library for accessing the MultiIO Project Board!)
#include "RP6Control_MultiIOLib.h"
/************************************************** ***************************/
/**
* Write a floating point number to the UART.
*
* Example:
*
* // Write a floating point number to the UART (no exponent):
* writeDouble(1234567.890, 11, 3);
*
* The value of prec (precision) defines the number of decimal places.
* For 32 bit floating point variables (float, double ...) 6 is
* the max. value for prec (7 relevant digits).
* The value of width defines the overall number of characters in the
* floating point number including the decimal point. The number of
* pre-decimal positions is: (width - prec - 1).
*/
void writeDouble(double number, uint8_t width, uint8_t prec)
{char buffer[width + 1];
dtostrf(number, width, prec, &buffer[0]);
writeString(&buffer[0]);
}
/************************************************** ***************************/
// I2C Error handler
/**
* This function gets called automatically if there was an I2C Error like
* the slave sent a "not acknowledge" (NACK, error codes e.g. 0x20 or 0x30).
* The most common mistakes are:
* - using the wrong address for the slave
* - slave not active or not connected to the I2C-Bus
* - too fast requests for a slower slave
* Be sure to check this if you get I2C errors!
*/
void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR --> TWI STATE IS: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}
/************************************************** ***************************/
// Main function - The program starts here:
int main(void)
{
initRP6Control(); // Always call this first! The Processor will not
// work correctly otherwise.
initLCD(); // Initialize the LC-Display (LCD)
// Always call this before using the LCD!
setLEDs(0b1111);
mSleep(500);
setLEDs(0b0000);
writeString_P("\n\nRP6Control Multi IO Selftest 1!\n");
// IMPORTANT:
I2CTWI_initMaster(100); // Initialize the TWI Module for Master operation
// with 100kHz SCL Frequency
// Register the event handler:
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);
setLEDs(0b1111);
// Write a text message to the LCD:
showScreenLCD("################", "################");
mSleep(1500);
showScreenLCD(" RP6Control M32", "Example Program");
mSleep(2500);
showScreenLCD(" RP6 Multi IO", " Selftest 1");
mSleep(2500);
clearLCD();
setLEDs(0b0000);
// ---------------------------------------
uint8_t onoff = 0;
uint16_t servopos = SERVO1_LT;
startStopwatch1();
// IMPORTANT:
multiio_init(); // MultiIO init!!!
//setServoPower(1); // Servo power ON!
// ----------------------------------------------
// Set RTC once (battery empty or not existing:
/* rtc_time.second = 10;
rtc_time.minute = 39;
rtc_time.hour = 15; // 12:00
rtc_date.weekday = R_TH;
rtc_date.day = 04;
rtc_date.month = 04;
rtc_date.year = 2013; // Do, 28.3.2013
DS1307_write();*/
// Remove this, if RTC is set and running!!!
// ----------------------------------------------
// EEPROM test:
writeString_P("\nWriting 128 to EEPROM address 5:\n");
I2C_EEPROM_writeByte(5, 128);
mSleep(500);
writeString_P("Done!\n");
writeString_P("\nReading EEPROM address 5:\n");
uint8_t tmp = I2C_EEPROM_readByte(5);
mSleep(500);
I2C_EEPROM_writeByte(5, 0);
writeString_P("Done!\n");
writeString_P("EEPROM address 5 content: ");
writeInteger(tmp, DEC);
writeString_P("\n");
// Buzzer test:
buzzer(330);
mSleep(200);
buzzer(330);
mSleep(200);
buzzer(330);
mSleep(1000);
buzzer(330);
mSleep(200);
buzzer(330);
mSleep(200);
buzzer(330);
while(true)
{
if(getStopwatch1() > 3000) // 1000 = 1s
{
if (onoff) onoff = 0;
else onoff = 1;
// Buttons ADC test:
clearLCD();
pressedMultiIOButtonNumber = getMultiIOPressedButtonNumber();
setCursorPosLCD(0, 0);
writeStringLCD("Button: ");
writeIntegerLCD(pressedMultiIOButtonNumber, DEC);
setCursorPosLCD(1, 0);
writeStringLCD("ADC: ");
writeIntegerLCD(adcButtons, DEC);
// 3V3 voltage sensor ADC test:
v3v3 = measure3V3();
writeString("\n3V3 Voltage: ");
writeDouble(v3v3, 4, 1);
writeString("V\nADC 3V3: ");
writeInteger(adc3v3, DEC);
// Touch sensor ADC test:
touch = getTouch();
if (touch) writeString("\nTOUCHED!!!");
else writeString("\nNOT touched.");
writeString("\nADC Touch: ");
writeInteger(adcTouch, DEC);
// Temperature sensor test:
temperature = TCN75_measure(); // Measure
writeString("\nTemperature: ");
writeDouble(temperature, 5, 1);
writeString("°\n");
// Servo controller test:
// LEDs:
if (onoff) {
setMultiIOLED1(1);
setMultiIOLED2(0);
setMultiIOLED3(0);
setMultiIOLED4(1);
}
else
setMultiIOLEDs(0b0110);
// Servo 1:
setServo(1, servopos);
servopos += 10;
if (servopos > SERVO1_RT) servopos = SERVO1_LT;
// RTC test:
DS1307_read();
writeString("RTC: ");
writeIntegerLength(rtc_time.hour, DEC, 2);
writeString(":");
writeIntegerLength(rtc_time.minute, DEC, 2);
writeString(":");
writeIntegerLength(rtc_time.second, DEC, 2);
writeString(" ");
writeIntegerLength(rtc_date.day, DEC, 2);
writeString(".");
writeIntegerLength(rtc_date.month, DEC, 2);
writeString(".");
writeIntegerLength(rtc_date.year, DEC, 4);
writeString("\n");
// Voltage & current sensor test:
LTC2990_measure();
writeString("Temperature: ");
writeDouble(tint, 5, 1);
writeString("°\n");
writeString("BAT Current: ");
writeDouble(cbat, 6, 1);
writeString("mA\nBAT Voltage: ");
writeDouble(vbat, 4, 1);
writeString( "V\nSERVO Volt.: ");
writeDouble(vservo, 4, 1);
writeString( "V\nVCC Voltage: ");
writeDouble(vcc, 4, 1);
writeString("V\n");
// MultiIO shutdown:
if (pressedMultiIOButtonNumber == 4) {
writeString("\nPress button 1 for MultiIO SHUTDOWN");
writeString("\nor any other button to continue!!!\n");
do {
mSleep(1);
releasedMultiIOButtonNumber = checkMultiIOReleasedButtonEvent();
task_I2CTWI();
} while (!releasedMultiIOButtonNumber);
if (releasedMultiIOButtonNumber == 1) {
writeString("\nPlease wait for MultiIO SHUTDOWN...\n");
multiio_shutdown();
mSleep(3000);
writeString("\nThe MultiIO now is in SHUTDOWN MODE!!!\n");
mSleep(1000);
writeString("\nRESET the M32 microcontroller now...\n\n");
while(true) {};
}
}
setStopwatch1(0);
}
task_I2CTWI();
}
return 0;
}
Was passiert denn mit
writeChar('\n');
writeChar(176);
writeChar(167);
writeChar(186);
writeChar('\n');
?
(bin grad nicht in der Nähe eines Roboters zum Testen also musste mal schauen ob das klappt)
Bei 176 sollte eigentlich ein Gradzeichen kommen.
Falls es damit klappt könnte es evtl. daran liegen in welchem Format Dein Text-Editor das abspeichert.
Welchen verwendest Du? Nimm mal nen anderen oder versuch die Zeichencodierung umzustellen.
MfG,
SlyD
soll ich den code im terminalfenster des loaders eingeben?
in code:blocks kann ich diese dateicodierungen einstellen: ASCII(ISO-8859-1), UTF-7, UTF-8, UTF-16, UTF-32 - keine der eistellung hat das ° zeichen einwandfrei gebracht...
als text-editor zum abspeichern der texte verwende ich gedit (kopieren von der webseite und abspeichern)
dort habe ich keine einstellungen was die codierung betrifft gefunden...
> soll ich den code im terminalfenster des loaders eingeben?
Teste es doch einfach - brauchst mich nicht um Erlaubnis zu bitten ;)
Ich meinte aber eigentlich im Programm testen natürlich weil das ausschließt das es ein Problem mit dem Texteditor ist ;)
Kannst natürlich mal probieren ALT+ die genannten Codes übern Nummernblock einzutippen und schauen was im Terminal und im Text Editor angezeigt wird.
Das ° Zeichen ist btw. nicht im ursprünglichen ASCII Code enthalten sondern in den Erweiterungen... ist alles historisch gewachsen und führt manchmal zu
solchen Probleme wie hier.
Du kannst auch mal in einer Schleife alle 255 Werte übers Terminal ausgeben lassen und schauen ob irgendwo das richtige Zeichen dabei ist.
ich habe jetzt den code um deine 5 zeilen ergänzt (endlich verstanden was du wolltest...):
// Temperature sensor test:
temperature = TCN75_measure(); // Measure
writeString("\nTemperature: ");
writeDouble(temperature, 5, 1);
writeString("°\n");
writeChar('\n');
writeChar(176);
writeChar(167);
writeChar(186);
writeChar('\n');
// Servo controller test:
die ausgabe
vorher:
3V3 Voltage: 3.1V
ADC 3V3: 645
NOT touched.
ADC Touch: 0
Temperature: 22.3°
RTC: 12:00:07 28.03.2013
Temperature: 22.8°
BAT Current: -174.4mA
BAT Voltage: 8.2V
SERVO Volt.: 5.0V
VCC Voltage: 5.1V
nachher:
3V3 Voltage: 3.1V
ADC 3V3: 637
NOT touched.
ADC Touch: 0
Temperature: 22.8°
°§º
RTC: 12:00:06 28.03.2013
Temperature: 22.4°
BAT Current: -174.4mA
BAT Voltage: 8.1V
SERVO Volt.: 5.0V
VCC Voltage: 5.1V
habe dabei mit den gleichen einstellungen gearbeitet wie vorher. Was sagt mir das ergebnis?
Hallo,
> Was sagt mir das ergebnis?
Das Du:
writeString("°\n");
durch:
writeChar(176); // Degree
writeChar('\n');
ersetzen kannst. Dann sollte es funktionieren.
MfG,
SlyD
hi SlyD,
ja, es funktioniert, danke für die hilfe...
allerdings ist es etwas unbefriedigend, weil wir hier an symptomen rumgedoktert und nicht an ursachen gearbeitet haben. Sollte das programm (testprogramm der neuen I/O platine von fabqu und dirk) geändert werden, muss ich es wieder anpassen :-(
Hi inka,
letztlich kann man Darstellungsprobleme von Sonderzeichen auf verschiedenen Plattformen kaum verhindern.
Wir könnten bei den Demo-Programmen nur auf Sonderzeichen verzichten und statt ° z.B. Grad schreiben.
ja, das stimmt - leider...
das mit dem ausweichen auf text in solchen fällen wäre eine überlegung...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.