Brainstorm Microgranny (Arduino) Update - helft mir auf die Sprünge

MacroDX

MacroDX

Hat ein Bild mit Robotern wo aufm Mond rumlaufen
Hallo Bastelgemeinde. Ich habe bisher mit Arduino nix gemacht, würde aber gerne
A) die Firmware von meiner Microgranny updaten.
B) Versuchen, an der Firmware rumzuschrauben. Obwohl ich jetzt von Audioprogrammierung nicht so viel Ahnung habe, würde ich gerne versuchen das ganze dahin zu Trimmen, das Grains, unabhängig von der gewählten Grain Size, immer einen Nulldurchgang suchen. Das gekrispel bei dem Ding geht mir nämlich auf den Sender und deswegen benutze ich es nur als simplen Sampleplayer.

Jetzt weiss ich nicht genau, wie ich am besten Anfang. Ich hab ein STK500 Board, was ja ein JTAG Interface hat. Das bringt mich hier aber glaub ich nicht weiter.
So wie ich da verstanden habe, braucht man dazu ein FTDi TTL Interface. Hierzu jetzt meine Fragen
A) Kann ich mir einfach so einen beliebigen USB->TTL FTDi Adapter zulegen?
B) Welche IDE würde ich am besten verwenden, um die Sourcen und die Hardware zusammenzubringen?

Danke euch
 
Zuletzt bearbeitet:
Okay, der erste Versuch ist schonmal gescheitert. Hab mir die angegebenen Git Sourcen gezogen. Daraus dann den Sketch microGranny2_5_novelocity in der Arduino IDE geöffnet.
Compiler meldet zuerst, dass er SDFatUtil.h nicht finden kann. Die gibt´s zumindest mal im subfolder "utility" von SD Lib. File einfach mal rüberkopiert.
Jetzt moniert er 'prog_uint16_t' has not been declared.
Wenn ich dasselbe mit dem microGranny2_5 sketch mache, dann heißt es 'SD2Card' does not name a type.

Das Zeugs lässt sich mit den zur Verfügung gestellten Angaben in keiner Version kompilieren. Ich halte mich jetzt einfach mal für zu dumm und freue mich auf Hilfestellung :)
 
Also, um erstmal die v2.5 auf mein Teil zu bekommen war mir das Arduino Zeugs zu viel Gehassel. Glücklicherweise sitz auf dem Board ein stinknormaler ATmega328 im DIL Package. Also hab ich den rausgefummelt und über mein STK500 mittels Atmel Studio programmiert. Die kompilierten Sourcen findet man als Hex im Production Repo von bastl.
Hat einwandfrei funktioniert, zumindest nachdem ich mein Board wieder passend gejumpert hatte.

Meinem Vorhaben am Sourcecode rumzudoktern hilft das aber erstmal nicht. Zumindest habe ich aktuell noch keinen Plan, wie sich die Arduino Sketche so zusammensetzen. Wenn ich mir die Library FIles aber so angucke drängt sich mir der GEdanke auf, dass ich "einfach" auch ein CPP Projekt im Atmel Studio draus erstellen könnte.
 
Um das github projekt zu nutzen musst du, wie in der readme beschrieben, die library WaveHC aus dem git repo installieren. Die readme verkinkt die arduino doku zum installieren von libraries, da musst du die anleitung für die manuelle installation befolgen, also das verzeichnis WaveHC aus dem git projekt in den library ordner der arduino ide kopieren.
 
Um das github projekt zu nutzen musst du, wie in der readme beschrieben, die library WaveHC aus dem git repo installieren.
Danke. Ja, die WaveHC Lib hatte ich tatsächlich noch nicht installiert.
Allerdings liegt das Hauptproblem wohl in der Library SdFat. Man müsste eventuell die genaue Version kennen, die verwendet wurde. Ausserdem habe ich noch was gefunden zu dem Thema des include von SdFatUtil.h: https://forum.arduino.cc/t/sdfatutil-no-such-file/520227

Hier mal beispielhaft zwei Fehlermeldung meines Kompilats:

...\Arduino\libraries\WaveHC/SdReader.h:46:29: error: expected identifier before numeric constant
#define SD_CARD_ERROR_CMD0 0X1

...\Arduino\libraries\SdFat\src/SdCard/SdCardInfo.h:89:30: note: in expansion of macro 'SD_CARD_ERROR_CMD0'
#define SD_CARD_ERROR(e, m) SD_CARD_ERROR_##e
 
Nur mal der Vollständigkeit halber:
Diese Repository https://github.com/standuino/microGranny habe ich folgendermaßen kompiliert bekommen:
  • Die Library WaveHC ins Library Verzeichnis kopieren
  • neueste Version von SDfat über die IDE installieren
Dann muss man noch ein paar Änderungen im Code vornehmen, da dieser anscheinend mit einer wesentlich älteren Version der Arduino IDE geschrieben wurde:
  • #include <pgmspace.h> -> #include <avr/pgmspace.h>
  • alle Zeilen die mit PROGMEM beginnen müssen verändert werden
    PROGMEM prog_uint16_t -> PROGMEM const uint16_t
    PROGMEM prog_char -> PROGMEM const char
    PROGMEM prog_uchar -> PROGMEM const char
 
Beim 2.x Source von bastl wirds noch schlimmer, da da wie du schon gemerkt hast auch eine total veraltete Version von SdFat benutzt wird...
Es wäre in der Tat sehr viel einfacher, wenn sie angeben würden auf welcher IDE Version das entwickelt wurde und mit welchen Library Versionen.
 
Dann muss man noch ein paar Änderungen im Code vornehmen, da dieser anscheinend mit einer wesentlich älteren Version der Arduino IDE geschrieben wurde:
Okay, vielen Dank! Das war schonmal ein wertvoller Hinweis. Da ich bisher mit der Arduino Umgebung noch nichts gemacht hatte, muss ich die und deren Abhängigkeiten erst kennenlernen.
Beim 2.x Source von bastl wirds noch schlimmer, da da wie du schon gemerkt hast auch eine total veraltete Version von SdFat benutzt wird...
Es wäre in der Tat sehr viel einfacher, wenn sie angeben würden auf welcher IDE Version das entwickelt wurde und mit welchen Library Versionen.
Okay, dann deckt sich dass mit meinen Vermutungen. Der von mir oben gepostete Fehler mit den Makros scheint auch ein Folgefehler zu sein, der nur Aufgrund des Include an der Stelle gemeldet wird. Und das dürfte am ehesten auf die SdFat Geschichte zurückzuführen sein.
Im Moment hab ich da nicht allzu viel Bock, die entsprechnde Zeit reinzustecken. Vielleicht wende ich mich mal an Bastl. Ich danke dir jedenfalls für deine Mühe!

Was ich auch grad ganz schlecht abschätzen kann ist, ob mein eigentliches Vorhaben überhaupt von Erfolg gekrönt wäre.
Ich weiss ja, dass Nulldurchgänge alleine noch keinen sauberen Loop ausmachen, aber nicht an Nulldurchgängen abzuspielen ist ein Garant für Knackser. Man kann sich daher fragen, ob das Bastl einfach egal war, oder es den Prozessor überlasten und die Wiedergabe beeinträchtigen würde.
 


Neueste Beiträge

News

Zurück
Oben