Fuses setzten bei Micro/Leonardo ohne ISP

Hallo,

ich bin neu in der Arduino Scene und habe nun ein Problem.
Ich möchte einen 433MHz Sniffer bauen und habe mir dazu diesen Arduino Micro nachbau, 433MHz Empfänger und Sender gekauft und laut Anleitung verkabelt und programmiert.Als das auslesen meines Signales nicht geklappt hat habe ich mir das Board nochmal genauer angeschaut.

In den Nutzerbewertungen steht das man die Fuses umsetzen muss um das Board gescheit nutzen zu können. Nun habe ich durch Recherchen nur Möglichkeiten gefunden diese mithilfe eines ISP's umzuschreiben, den ich nicht besitze. Gibt es eine Möglichkeit die Fuses mit meiner Hardware umzuschreiben?

Verfüge über einen Rechner mit Windows Vista und Ubuntu.

Bitte entschuldigen sie meine nervige Einsteiger-frage aber ich komme hier einfach nicht weiter !

Lieber Grüße

Hallo,

willkommen im Forum.

Wieso solltest du die Fuses des Micro neu setzen ? Das habe ich bisher noch nicht gelesen.

Die Fuses kannst du nur mit einem ISP-Programmer oder einem weiteren Arduino-Board setzen.

P.S. wir duzen uns hier im Forum. :wink:

HotSystems:
Hallo,

willkommen im Forum.

Wieso solltest du die Fuses des Micro neu setzen ? Das habe ich bisher noch nicht gelesen.

Die Fuses kannst du nur mit einem ISP-Programmer oder einem weiteren Arduino-Board setzen.

P.S. wir duzen uns hier im Forum. :wink:

Laut einer Amazon Reszension ist das bei diesem Nachbau erforderlich. Ob die Aussage stimmt weiß ich leider nicht.

Ich habe einfach den Beispiel Sketch aus der RC-Switch Bibliothek benutzt. Die Verkabelung habe ich soweit geändert das ich beim 433MHz empfänger den Data Port mit Port 3 statt mit Port 2 verbunden, da dies laut mehreren Quellen beim Micro/Leonardo erforderlich ist.

Danke für die schnelle Antwort :slight_smile:

Laut einer Amazon Reszension ist das bei diesem Nachbau erforderlich. Ob die Aussage stimmt weiß ich leider nicht.

Prüfe, ob ein delay(1000) auch 1 Sekunde wartet.
Dann hast du die Antwort ob das setzen der Clock Fuse nötig ist.

combie:
Prüfe, ob ein delay(1000) auch 1 Sekunde wartet.
Dann hast du die Antwort ob das setzen der Clock Fuse nötig ist.

Habs ausprobiert, und das passt.
Also muss ich bei meinem Board keine Fuses verstellen?

Als mein Board geliefert wurde war der micro-USB port zusammengequetscht, musste diesen dann nachträglich wieder gerade biegen, kann es daran liegen ?

yoyopool:
Laut einer Amazon Reszension ist das bei diesem Nachbau erforderlich. Ob die Aussage stimmt weiß ich leider nicht.

Wie combie schon schrieb, den micro prüfen, das geht am einfachsten mit dem "Blink-Sketch". Eine Sekunde blinken einstellen und prüfen.

Wenn es nicht eine Sekunde ist, stimmt die Aussage und du musst tätig werden.

Da würde ich dann aber erst mal einen anderen micro oder evtl. sogar Nano bestellen. Möglichst Original.
Den kannst du dann auch als ISP-Programmer einsetzen.

Edit:
Du warst schneller.

Was kann an der Buchse liegen?

Jetzt müssen wir raten.

Zeige uns dein Schaltbild, wie du die Bausteine angeschlossen hast.
Und zeige uns deinen Sketch.

kann es daran liegen ?

Wenn die USB Kommunikation mit dem PC klappt, dann ganz sicher nicht!

Tipp:
Suche den Fehler in deinem Programm, in deinem Aufbau, in den Teilen, die du dran gesteckt hast, oder in den Annahmen über die Art der Funkkommunikation.

Hast du da wenigstens Antennen dran gelötet?
17,4cm Kupferdraht ist meist ausreichend

ok es sieht folgendermaßen aus:

Micro 433MHZ EMpfänger

GND GND
VCC VCC
3 Data(näher an VCC)

den anderen Data Conenctor zu benutzen habe ich auch schon versucht.

Code:

/*
 Simple example for receiving
 
 http://code.google.com/p/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

 
 Serial.begin(9600);
 mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
 if (mySwitch.available()) {
   
   int value = mySwitch.getReceivedValue();
   
   if (value == 0) {
     Serial.print("Unknown encoding");
   } else {
     Serial.print("Received ");
     Serial.print( mySwitch.getReceivedValue() );
     Serial.print(" / ");
     Serial.print( mySwitch.getReceivedBitlength() );
     Serial.print("bit ");
     Serial.print("Protocol: ");
     Serial.println( mySwitch.getReceivedProtocol() );
   }

   mySwitch.resetAvailable();
 }
}

Edit: Antenne is dran.

Wenn ich es richtig sehe, ist das der Testcode aus der Library, der sollte auch funktionieren.

Was genau möchtest du empfangen ?

Was nimmst du als Sender ?

Warum nimmst du nicht Pin 2 des Micro ? leider kenne ich den Micro nicht so genau.

HotSystems:
Wenn ich es richtig sehe, ist das der Testcode aus der Library, der sollte auch funktionieren.

Was genau möchtest du empfangen ?

Was nimmst du als Sender ?

Warum nimmst du nicht Pin 2 des Micro ? leider kenne ich den Micro nicht so genau.

ich möchte ein Signal eines Insulinpumpen Sendegeräts( sieht aus wie nen hässliches Handy) abfangen um dieses Später zu rekonstruieren.

Gerade ist aber der micro usb port abgefallen, muss mich mal durchlesen wie ich das wieder hinkriege

yoyopool:
ich möchte ein Signal eines Insulinpumpen Sendegeräts( sieht aus wie nen hässliches Handy) abfangen um dieses Später zu rekonstruieren.

Das wird mit der RCSwitch nichts. Die Lib kann nur sog. Schaltbefehle empfangen und auswerten.

Du kannst es mit VirtualWire versuchen, aber ich befürchte, du wirst da auch nichts sehen.
Kennst du das Protokoll des Gerätes?

Gerade ist aber der micro usb port abgefallen, muss mich mal durchlesen wie ich das wieder hinkriege

Dann viel Erfolg.

Int0 ist auf Pin2
Das ist also korrekt.

Siehe: https://www.arduino.cc/en/Reference/AttachInterrupt

Was aber fehlt ist das Warten auf Serial!

void setup() {



  pinMode(2, INPUT);

  Serial.begin(9600);
  mySwitch.enableReceive(1);  // Receiver on interrupt 1 => that is pin D3
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

// sonstiger Setup Kram

HotSystems:
Du kannst es mit VirtualWire versuchen, aber ich befürchte, du wirst da auch nichts sehen.
Kennst du das Protokoll des Gerätes?

Nein leider kenn ich das Protokoll nicht, deswegen möchte ich die Daten ja abfangen :slight_smile:
Aber es muss doch eine möglichkeit geben diese Signale auszulesen?

combie:
Int0 ist auf Pin2
Das ist also korrekt.

Siehe: attachInterrupt() - Arduino Reference

Was aber fehlt ist das Warten auf Serial!

void setup() {

pinMode(2, INPUT);

Serial.begin(9600);
 mySwitch.enableReceive(1);  // Receiver on interrupt 1 => that is pin D3
  while (!Serial) {
   ; // wait for serial port to connect. Needed for Leonardo only
 }

// sonstiger Setup Kram

Wieso "Serial" ?

Hier ist es doch nur "RCSwitch" !

Und der Sketch ist lt. Library richtig.

Aber ich habe eben nachfolgendes hier gelesen:

-External Interrupts: 0(RX), 1(TX), 2, 3 and 7. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.

Somit müsste es der RX-Pin sein. Aber wie schon geschrieben, ich kenne den Micro nicht weiter.

yoyopool:
Nein leider kenn ich das Protokoll nicht, deswegen möchte ich die Daten ja abfangen :slight_smile:
Aber es muss doch eine möglichkeit geben diese Signale auszulesen?

Wenn das ein spezielles Protokoll ist, wird es schwer.

Wie schon geschrieben, versuch es mit der "VirtualWire".

Mit RCSwitch geht es nicht. da werden nur "Schaltcode" versendet bzw. empfangen.

Das wird mit der RCSwitch nichts.

Das sehe ich auch so!

Google Tipp: "433MHz Audacity"

Außerdem verwenden moderne/medizinische Geräte sicherlich kein AM, sondern FM.
Und ein Protokoll.
Und dann sicherlich auch verschlüsselt.
Denn, wenn nicht, könnte ich(oder jeder andere Depp) mit einem präpariertem Handsender allen Pumpenträgern auf der Straße einen Eimer voll Insulin in den Körper drücken.

Schonmal vielen vielen Dank für die ganzen Tipps! Werde mich da weiter durcharbeiten und melde mich falls ich wieder auf größere Probleme stoße.