Vorstellung: Mikas Kassettenrekorder

void loop(){  // ----------------------------------------------------------------------------------
  do {
    checkStandbyAtMillis();
    fadeStatusLed(isPlaying());      // StatusLED    
    mp3.loop();
    // Buttons werden nun über JS_Button gehandelt, dadurch kann jede Taste
    // doppelt belegt werden
    readButtons();

    // admin menu
    if ((pauseButton.pressedFor(LONG_PRESS) || upButton.pressedFor(LONG_PRESS) || downButton.pressedFor(LONG_PRESS)) && pauseButton.isPressed() && upButton.isPressed() && downButton.isPressed()) {
      mp3.pause();
      do {
        readButtons();
      } while (pauseButton.isPressed() || upButton.isPressed() || downButton.isPressed());
      readButtons();
      adminMenu();
      break;
    }

    if (pauseButton.wasReleased()){
      if (ignorePauseButton == false)
        if (isPlaying()){
          mp3.pause();
          setstandbyTimer();
        }
        else if (knownCard) {
          mp3.start();
          disablestandbyTimer();
        }
      ignorePauseButton = false;
    } else if (pauseButton.pressedFor(LONG_PRESS) &&
               ignorePauseButton == false) {
      if (isPlaying()) {
        uint8_t advertTrack;
        if (myFolder->mode == 3 || myFolder->mode == 9){
          advertTrack = (queue[currentTrack - 1]);
        }
        else {
          advertTrack = currentTrack;
        }
        // Spezialmodus Von-Bis für Album und Party gibt die Dateinummer relativ zur Startposition wieder
        if (myFolder->mode == 8 || myFolder->mode == 9){
          advertTrack = advertTrack - myFolder->special + 1;
        }
        mp3.playAdvertisement(advertTrack);
      }
      else {
        playShortCut(0);
      }
      ignorePauseButton = true;
    }

// ------------------------------------------------------------------------------
// änderung der Funktion Volume button

    if (upButton.pressedFor(LONG_PRESS)){
#ifdef FIVEBUTTONS
      volumeUpButton();
#endif
#ifndef FIVEBUTTONS
      if (isPlaying()){
        if (!mySettings.invertVolumeButtons){
          volumeUpButton();
        }
        else {
          nextButton();
        }
      }
      else {
        playShortCut(1);
      }
      ignoreUpButton = true;
#endif
    } else if (upButton.wasReleased()){
      if (!ignoreUpButton)
        if (!mySettings.invertVolumeButtons){
          nextButton();
        }
        else {
          volumeUpButton();
        }
      ignoreUpButton = false;
    }

    if (downButton.pressedFor(LONG_PRESS)){
#ifdef FIVEBUTTONS
      volumeDownButton();
#endif
#ifndef FIVEBUTTONS
      if (isPlaying()) {
        if (!mySettings.invertVolumeButtons){
          volumeDownButton();
        }
        else {
          previousButton();
        }
      }
      else {
        playShortCut(2);
      }
      ignoreDownButton = true;
#endif
    } else if (downButton.wasReleased()){
      if (!ignoreDownButton) {
        if (!mySettings.invertVolumeButtons){
          previousButton();
        }
        else {
          volumeDownButton();
        }
      }
      ignoreDownButton = false;
    }
#ifdef FIVEBUTTONS
    if (buttonFour.wasReleased()){
      if (isPlaying()) {
        if (!mySettings.invertVolumeButtons){
          volumeUpButton();
        }
        else {
          nextButton();
        }
      }
      else {
        playShortCut(1);
      }
    }
    if (buttonFive.wasReleased()){
      if (isPlaying()) {
        if (!mySettings.invertVolumeButtons){
          volumeDownButton();
        }
        else {
          previousButton();
        }
      }
      else {
        playShortCut(2);
      }
    }
#endif
// Ende der Buttons ---------------------------------------------------------------------
1 „Gefällt mir“

Vielen, vielen Dank.

@Manuel: Genau deswegen hab ich ja gefragt. Und jetzt haben wir eine Longpress-Aktualisierung auf der aktuellen Codebasis. Super.

Hallo,
ich habe heute auch meinen vierten Tonuino gebaut, diesmal auf Basis des iRecorders. Vielen Dank für die tollen Anregungen und Hilfe hier im Forum! :+1:
Es ist eine Kombination aus allem hier bereits genannten geworden. Auch wenn es für die Profis bestimmt keine Neuheiten sind hier ein paar meiner „Erkentnisse“ falls es jemandem hilft…

  • Habe die original Platine mit den Tastern verwendet obwohl ich zur Sicherheit auch eine Lochrasterplatte da hatte. Es hat nach gründlichem Trennen der Verbindungen super funktioniert.
  • Die Masse, die an allen Tastern anliegt, kann man auf der Platine auch einfach weiter nutzen. Das kann man mit einem Multimeter beim der Duchgangsprüfung gut identifizieren. Auch welcher der Kontakte genau schaltete, sollte man kurz duchmessen. Einer der Taster in der Mitte schaltet nämlich auch genau entgegengesetzt zu den anderen. (Hab leider schon alles zusammengeschraubt und kein Foto gemacht)
  • Bei der Eigenbau Powerbank muss man am Stepupwandler eine ganze Weile gegen den Uhrzeigersinn dehen bis die Volt von 3,7 auf 5V steigen.
  • Um die vorhandenen LED zu verwenden, habe ich einfach einen Wiederstand mit 1K Ohm vor + der LED gelötet und mit die Spannungsversorgung an den Tonuino geklemmt.
  • Der Schalter sitzt vor dem Stepupwandler.
  • Das USB-Kabel für evtl. Firmware Updates und dergleichen habe ich einfach unten aus dem Batteriefach geführt. War einfacher als eine Buchse die auch nicht lieferbar war. Gefällt mir jetzt auch besser.

Beim nächsten Mal würde ich aber an Stelle des Schalters einen Pololu Power-Switch einbauen und mich vielleicht auch für einen größeren Akku entscheiden.


Viel Spaß beim bauen und viele Grüße

Matis

1 „Gefällt mir“

Der Vollständigkeit halber ist es bei mir ab Zeile 1012. Das ist die erste aus dem Copypaste hier. Basiert aus dem aktuellen DEV-Build (Stand Nov 2020):

if (upButton.pressedFor(LONG_PRESS)) {
#ifdef FIVEBUTTONS
  volumeUpButton();
#endif
#ifndef FIVEBUTTONS
  if (isPlaying()) {
    if (!mySettings.invertVolumeButtons) {
      volumeUpButton();
    }
    else {
      nextButton();
    }
  }
  else {
    playShortCut(1);
  }
  ignoreUpButton = true;
#endif
} else if (upButton.wasReleased()) {
  if (!ignoreUpButton)
    if (!mySettings.invertVolumeButtons) {
      nextButton();
    }
    else {
      volumeUpButton();
    }
  ignoreUpButton = false;
}

if (downButton.pressedFor(LONG_PRESS)) {
#ifdef FIVEBUTTONS
  volumeDownButton();
#endif

Hallo,
nachdem ich lange Zeit hier stiller Teilnehmer war, wollte ich mich jetzt auch mal anmelden, da ich Fragen zum iRecorder habe.
Das Gehäuse habe ich vor einem Jahr gekauft und seitdem wartet es darauf als zweites Tonuino-Projekt umgesetzt zu werden. Der erste läuft schon lange bei meiner Tochter ohne Probleme :smiley:

Hier habe ich allerdings Probleme speziell mit den Buttons. Ich habe sie von der ursprünglichen Platine abgelötet (bin Löt-Anfänger), habe jetzt aber Probleme mit dem Verkabeln. Kann mir da jemand weiterhelfen? Den Schaltplan oben habe ich gesehen, aber auch da komme ich nicht ganz weiter.
Kann mir einer sagen:

  • An welches Beinchen müsste ich was löten?
  • Sind alle 5 Schalter gleich?
  • Wie muss ich diese betrachten? Einfach Schrift nach oben = Standard?

Speziell das Bild von Schreinibert finde ich super, aber auch verwirrend.
Für mich sieht es so aus:

  • GND kommt beim ersten Schalter auf Bein 1 und geht dann immer über Bein 2 auf den nächsten Taster Bein 1
  • Auslösen/ Schließen bei den ersten drei Tastern über Bein 4, bei den letzten zwei Tastern über Bein 3?

Ich hoffe mir kann jemand helfen, der mehr Ahnung davon hat als ich :laughing:

Hey :smiley:

Sorry, dass ich mich jetzt erst melde. In letzter Zeit schaffe ich es leider nur noch unregelmäßig hier in den Discourse… :confused:

Schau dir mal folgendes Bild an, dann sollte es hoffentlich schon klarer werden:

image

Die gegenüberliegenden Beinchen sind jeweils verbunden. Deshalb ist bei mir „oben“ GND und „unten“ das Signal angeschlossen (vereinfacht ausgedrückt). Und da alle Schalter an einer Masse hängen, habe ich es einfach so verdrahtet.

Hoffe, das hilft dir weiter :slight_smile:

1 „Gefällt mir“

Ich finde das „Gehäuse“ auch sehr interessant. Deshalb habe ich es mir auf Amazon angesehen, sehr schön was man da angezeigt bekommt :joy:

4 „Gefällt mir“

I love that old fashion radio one. I have been looking for a radio box for my TonUino for me as an adult.

Heute hat der Postmann einen iRecorder und das Tonuino-Set gebracht, aus denen ich nach der schönen Idee hier einen mp3-Spieler basteln möchte. Kleiner Test des iRecorders vor dem Zerlegen: Klingt gar nicht so schlecht und steuert über die Tasten ohne zusätzliche Software mein Samsung S5 mit LineageOS :smiley:

Folgende zwei Fragen stellen sich mir gerade:
Was spricht dagegen, das vorhandene Batteriefach zu nutzen und die Kiste einfach mit drei Eneloops zu betreiben? Wie lang würde das damit spielen?
Wäre es nicht vielleicht sinnvoll, den vorhandenen Verstärker des iRecorders weiterzunutzen und den DFPlayer mit DAC_R und DAC_L an den Eingang an dem vorher das Klinkenkabel war zu löten?

Keine Ahnung warum, aber ich hatte mich dagegen entschieden und zwei iRecorder umgebaut und komplett entkernt. Es ist allerdings recht schwer das Batteriefach zu entfernen.

Theoretisch spricht nichts dagegen den Verstärker zu verwenden, wenn Du das hinbekommst :slight_smile:

Willst Du die 3x AA Eneloops dann mit einem StepUp betreiben oder direkt an die +5V gehen? Schwer zu sagen wie lange das mit dem iRecorder Verstärker läuft, aber ein paar Stunden dürften wohl drin sein.

Es gab inzwischen eine Planänderung: Stromversorgung nun doch über eine Intenso S10000 Powerbank (gibts gerade für 8,99€ bei Amazon), Anschalter über die vorhandenen Tasten und einen Pololu Mini Pushbutton Power Switch LV. Verstärker über den DFPlayer, das klingt gut und ist laut genug.
Da ich den Deckel des „Kassettenfachs“ wohl kleinkindgerecht verschließen werde, kann darin der RFID-Leser wohnen und ich plane das Sichtfenster noch mit einem 8x WS2812B Streifen zu hinterleuchten. Der ist leider noch unterwegs, mal sehn was da geht. :smiley: Hatte da jemand schon die Idee? Zwei kleine LED-Ringe würden vlt auch nett aussehen.

Wozu ist eigentlich das Mikrofon auf der Originalplatine des iRecorders gut?

Schönen guten Abend, da sich das Gehäuse so großer Beliebtheit erfreut, habe ich mich gefragt ob einer von den E-technisch veranlagten Mitstreitern mal ein gutes Foto mit den passenden Anschlusspunkten für dir Taster und den vorhandenen Verstärker einstellen kann.
So mit roten Kringeln, dort wo man die Leiterbahnen am Besten abtrennt, und blauen, wo man am geschicktesten die Anschlusspunkte setzt.
Bei solchen Modifikationen greife ich gerne auf nen Bohrer und Akkuschrauber zurück, und bohre einfach die betreffende Leiterbahn oberflächlich weg. Das lässt sich gezielter führen und ist zuverlässiger als das Ritzen mit dem Messer. Verletzungsgefahr scheint mir auch geringer. Mit dem Messer rutscht man auch mal doof ab.

Ich hab die Vorhanden Platine entfernt und durch eine Lochraster mit Tastern ersetzt.

Die eingebaute LED habe ich behalten und eingeklebt.

Dieses rum doktorn an der Baugruppe finde ich nicht gut.

Hi Marco,

Ja, das hatte ich weiter oben gelesen.

Mit dem Rumdoktorn ist denke ich geschmakssache. Bei mir ist das so eine Mischung aus Reengineeringtrieb und Elektroschrottvermeidungsstrategie.

Allein hier in dem Post sind das bestimmt 10-15 Platinen die in hoher Qualität gegertigt und trotzdem in die Tonne getreten werden. Wenn ich mir vorstelle, die würden bei mir im Garten landen, hätte ich schon irgendwie ein Problem damit.
Daher versuche ich das Zeug doch so weit als möglich weiter zu verwenden. Zumal, mit geübtem Blick sind die relevanten Stellen schnell erkannt. Weniger Arbeit, weniger Dreck und optimale Passform. Und gerade für die Einsteiger die nicht mal eben eine eigene Platine aufsetzen können wäre das gewiss eine echte Hilfestellung.

War nur eine Idee. Guts Nächtle zsamme.

3 „Gefällt mir“

Mein Tonuino ist so gut wie fertig.

Im „Kasettenfach“ sind nun der Leser und ein Streifen mit acht Neopixeln, die einen selbstgedruckten Diffusor beleuchten:

Nach reiflicher Überlegung, habe ich die Originalplatine doch durch eine eigene ersetzt, die neben den Tastern auch gleich sämtliche andere Komponenten vereint, also den Arduino, den DFPlayer, einen Polulu Switch, die Original-LED und Mosfets zur Lautsprecherstummschaltung. Das spart eine Menge Kabelsalat und alles ist im Deckel montiert (bis auf die Ladebuchse):

Die Powerbank habe ich einfach mit viel Heißkleber befestigt:

Mit etwas mehr Zeit (der 2. Geburtstag des zukünftigen Nutzers rückt näher), hätte ich eine richtige Platine fertigen lassen und einen Befestigungsrahmen für die Powerbank gedruckt. Dann wäre es noch hübscher und ich könnte ohne schlechtes Gewissen auch die Platinenunterseite zeigen :wink:

Im ehemaligen Batteriefach ist nun Zugang zur SD-Karte, USB-Anschluß und einem Schalter um die Box ganz auszuschalten:

So sieht es beleuchtet aus:

4 „Gefällt mir“

Teilst du mit uns das Layout der Lochraster?
Es wird keiner nachbauen, aber so sieht man dass ss möglich ist.

Tolle Idee mit der Platine

Hier habe ich eine alternative Platzierung für den Led Stripe

2 „Gefällt mir“

Dazu müßte ich jetzt alles wieder auseinanderschrauben. Es gibt kein richtiges Layout. Es ist mehr so eine Art Rattennest auf einem Europlatinenrest, den ich noch hatte :wink:

Mega mit den LEDs, kannst du mehr bilder von dem stripe machen und eventuell den Link datu einstellen?

Meine Neffen haben von mir auch das Gehäuse bekommen und das würde ich gerne nachrüsten.

1 „Gefällt mir“