Probleme mit DigiKeyboard Library

Hallo,

ich möchte mit meinem Attiny85 Digispark so was ähnliches wie ein Rubber Ducky machen aber die libery funktioniert nicht. Ich bekomme immer diese Fehlermeldung:

In file included from c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:16:0,
                 from C:\Users\King\AppData\Local\Temp\.arduinoIDE-unsaved202473-19808-11w3yep.nkj7j\sketch_aug3a\sketch_aug3a.ino:1:
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:479:26: error: variable 'usbDescriptorDevice' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorDevice[];
                          ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:485:33: error: variable 'usbDescriptorConfiguration' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorConfiguration[];
                                 ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:491:29: error: variable 'usbDescriptorHidReport' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorHidReport[];
                             ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:497:27: error: variable 'usbDescriptorString0' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorString0[];
                           ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:503:31: error: variable 'usbDescriptorStringVendor' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringVendor[];
                               ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:509:31: error: variable 'usbDescriptorStringDevice' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringDevice[];
                               ^
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:515:37: error: variable 'usbDescriptorStringSerialNumber' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringSerialNumber[];
                                     ^
In file included from C:\Users\King\AppData\Local\Temp\.arduinoIDE-unsaved202473-19808-11w3yep.nkj7j\sketch_aug3a\sketch_aug3a.ino:1:0:
c:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:40:73: error: variable 'usbDescriptorHidReport' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PROGMEM char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] = { /* USB report descriptor */
                                                                         ^

exit status 1

Compilation error: exit status 1

Könnt ihr mir dabei bitte helfen?

Setze mal die Fehlermeldung in einen Übersetzer, wenn Du der Sprache nicht mächtig bist. Dann weist Du, was Dir der Compiler sagen will.
Evtl. ist das ein sehr alter Code, da war der Compiler noch nicht so kritisch.
Ansonsten wäre ein Link zur Lib hilfreich.

Gruß Tommy

was für ein übersetzter?

hier ist der link zur lib: DigisparkArduinoIntegration/libraries/DigisparkKeyboard at master · digistump/DigisparkArduinoIntegration · GitHub

Entweder den Google-Translater oder besser Deepl
Du musst erst mal verstehen, was der Compiler Dir sagt, um Abhilfe zu schaffen.

Gruß Tommy

ok ich versuche es

ich versteh das nicht da steht was mit: must be const, um mittels 'attribute((progmem))' in den schreibgeschützten Bereich zu gelangen

Im Progmem (Flash) können nur konstante Daten liegen. Also muss ein const vor die Deklaration. z.B.:

const char usbDescriptorDevice[];

An der Lib wurde ja auch seit 11 Jahren nix gemacht. Da hast Du einige Arbeit vor Dir.

Gruß Tommy

ok das versuch ich dann morgen zu machen.

der Digispark Core funktioniert einwandfrei. Ich habe hier den 1.6.7 laufen.

Welches Board hast du ausgewählt?
Probier mal den Beispiel-Sketch
DigisparkKeyboard/Keyboard

Welche Fehlermeldung bekommst du mit dem?

ich habe das board Digispark(default-16.5mhz),den digispark core 1.6.7 und diesen code verwendet: (beim beispielcode ist das gleich)

#include "DigiKeyboard.h"
void setup() {
}

void loop() {
 DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
 delay(100);
 DigiKeyboard.print("https://www.youtube.com/watch?v=dQw4w9WgXcQ");
 DigiKeyboard.sendKeyStroke(KEY_F11);
 for (;;) {
 }
}

die fehlermeldung hab ich schonmal reingeschrieben.(ist die gleiche)

kannst du mir mal bitte die digisparkkeyboard libery schicken

vermutlich ist deine Core Installation nicht korrekt.

Geh mal in die Einstellungen und stell ein

File / Preferences / Compiler Warnings = ALL

und kopier die Vollständige Fehlermeldung raus.

das ist keine "library" das ist eine Board-Definition.

du legst unter "Additional Baords Manager URLs" einen Link auf die Digispark Installation:

und dann installierst du das zusätzliche Board mit dem Board Manager

In file included from C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:13:0,
                 from C:\Users\King\AppData\Local\Temp\arduino_modified_sketch_474138\sketch_aug04a.ino:1:
c:\users\King\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
 #warning "This file has been moved to <util/delay.h>."
  ^~~~~~~
In file included from C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:16:0,
                 from C:\Users\King\AppData\Local\Temp\arduino_modified_sketch_474138\sketch_aug04a.ino:1:
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:479:26: error: variable 'usbDescriptorDevice' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorDevice[];
                          ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:485:33: error: variable 'usbDescriptorConfiguration' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorConfiguration[];
                                 ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:491:29: error: variable 'usbDescriptorHidReport' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorHidReport[];
                             ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:497:27: error: variable 'usbDescriptorString0' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char usbDescriptorString0[];
                           ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:503:31: error: variable 'usbDescriptorStringVendor' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringVendor[];
                               ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:509:31: error: variable 'usbDescriptorStringDevice' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringDevice[];
                               ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/usbdrv.h:515:37: error: variable 'usbDescriptorStringSerialNumber' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 int usbDescriptorStringSerialNumber[];
                                     ^
In file included from C:\Users\King\AppData\Local\Temp\arduino_modified_sketch_474138\sketch_aug04a.ino:1:0:
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:40:73: error: variable 'usbDescriptorHidReport' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PROGMEM char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] = { /* USB report descriptor */
                                                                         ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '161' from 'int' to 'char' inside { } [-Wnarrowing]
 };
 ^
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '224' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '231' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '149' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '129' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '149' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '129' from 'int' to 'char' inside { } [-Wnarrowing]
C:\Users\King\OneDrive\Dokumente\Arduino\libraries\DigisparkKeyboard/DigiKeyboard.h:59:1: error: narrowing conversion of '192' from 'int' to 'char' inside { } [-Wnarrowing]
exit status 1
Fehler beim Kompilieren für das Board ATtiny85 (Micronucleus / DigiSpark).

das ist die komplette fehlermeldung

das hab ich schon

So wie ich @noiasca verstanden habe es geht um das

ja ich hab dort diesen link eingegeben

Und danach hier dein Board gesucht

aktiviere auch die "Show verbose output during: compilation" und zeig noch mal die Fehlermeldung