Forum: Mikrocontroller und Digitale Elektronik Programmierung bei verlötetem Microcontroller veränderbar?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ronny S. (loetwolf)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo ins Forum,

ein SMS-Überwachungs- und Schaltmodul (von elv: Best.-Nr. 103896) gibt 
nur fest verankerte SMS-Texte heraus (z.B. SMS empfangen Ausgang 1 ein). 
Ob es sich hierbei um den eigentlich versendeten Text handelt oder ob 
dieser Text im Controller generiert wird, nachdem eine Schalt-SMS 
einging, ist bis jetzt noch nicht klar. Ich habe das Modul noch nicht 
zum Testen vorliegen.

Man kann mit diesen Modulen sowohl einen Relaisausgang schalten als auch 
einen Masseeingang überwachen ( jeweils 2 davon). Ich möchte nun 
erreichen, dass zwei dieser Module miteinander in Austauch treten.

Lt. Bedienungsanleitung akzeptiert das Modul jedoch nur eine eingehende 
SMS in einer bestimmten Parameterisierung (z.B. #0000#201#1#001#; damit 
würde dann in diesem Fall der Schaltausgang 1 für eine Sekunde auf ON 
gesetzt).

Eine Kommunikation zweier solcher Module untereinander war wohl nicht 
vorgesehen. Es gibt auch kein Menü, welches ein Anlegen spezieller Texte 
für eine SMS ermöglicht. Man kann das Modul bislang nur mit einer 
Handy-SMS in o.g. Format ansprechen.

Es handelt sich um eine SMD-Platine mit einem ATmega329V-8MU_MLF64M1.

Gibt es die grundsätzliche Möglichkeit, das interne 
Microcontrollerprogramm abzuändern, so dass man einen Menüpunkt schaffen 
kann, der das Anlegen frei definierbarer SMS-Texte gestattet?

Falls ja, wie ist dabei vorzugehen bzw. hat das schon einmal jemand 
versucht?

Grüße

von TestX (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Klar...bau das Ding auseiander, erstelle einen Schaltplan und schreib 
dir dein eigenes Programm. Danach über ISP programmieren und fertig..

Den vorhandenen Code kann man zwar auslesen wenn das Lockbit nicht 
gesetzt ist allerdings bringt der meistens nicht viel.

von R. M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
TestX schrieb:
> Den vorhandenen Code kann man zwar auslesen wenn das Lockbit nicht
> gesetzt ist ...

Da würde ich bei ELV aber nicht mit rechnen.

von Ronny S. (loetwolf)


Bewertung
1 lesenswert
nicht lesenswert
Dazu müsste es allerdings eine Schnittstelle geben, die ich nicht 
ersehen kann. Möglicherweise wurde der ATmega vor der Montage extern 
programmiert?

Also ist das Thema eigentlich schon durch.

von TestX (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Musst halt einen isp adapter an die pins klemmen...wenn das schon ein 
problem wird nimm lieber gleich zwei arduinos mit gsm shield etc....

von Michael R. (mr-action)


Bewertung
-1 lesenswert
nicht lesenswert
Guck doch mal im Datenblatt, welche Pins am µC für ISP und JTAG sind... 
Mit einer sehr hohen Wahrscheinlichkeit, findest du auf den Leitungen 
Testpunkte über die der µC mal programmiert wurde. Eine echten Stecker 
baut fast keiner in seine Produkte ein - ist einfach zu teuer...

von Noch einer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Es gibt auch dokumentierte Module. Und diverse mehr oder weniger 
verständliche Tutorials.

Schneller kommst du zum Ziel, wenn du dir zunächst ein SMS-Modul und 
eine ATmega-Platine für Hobbybastler zulegst. Die Beispiele 
durcharbeitest und erst danach, wie von TestX beschrieben, dein Modul 
umprogrammierst.

Die Firma Adafruit z.B. liefert Module mit brauchbaren Lehrbeispielen. 
Kannst aber auch umgekehrt im Netz nach einem Tutorial suchen und die 
verwendeten Module kaufen.

von TU Student 1. (student0)


Bewertung
1 lesenswert
nicht lesenswert
Die für SMS-Empfang benutzten AT-Kommandos werden von (quasi) allen 
Modulen unterstützt, man muss eben nur sehen, was man als Init-Sequenz 
hinschicken muss.   Bei manchen muss man den SMS-Zeichensatz umstellen, 
bei anderen AT+CSMP einstellen, etc...

Für das Neoway M590 lautet die Init-Sequenz z.b. so:

1) Auf +PBREADY (oder fixe Zeit) warten...
AT+ENPWRSAVE=0
AT+CMGF=1
AT+CSMP=17,167,0,0
AT+CNMI=2,2,0,0,0
AT+CSCS="GSM"

Und ab dann ist es genau gleich - jede SMS kommt so an:
+CMT: "+4368112345678",,"17/01/01,00:00:00+08"
Zeile 1
Zeile 2

Einzige Schwierigkeit hierbei ist es, das ganze sauber zu implementieren 
- was ich im Moment grade in C mache - und zwar so, dass es egal ist, ob 
ein Leerzeichen/Newline mehr oder weniger bzw. irgendwas anderes 
dazwischen vom GSM-Modem kommt und dass das ganze Interrupt-gesteuert 
abläuft und kein Zeichen verschluckt wird.  Bisher sind es bei mir ca. 
500-600 Zeilen C-Code, der u.a. eine State-Machine, einen Ringpuffer und 
einen flexiblen AT-Parser (ohne sscanf-Bloat) und ein "intelligenten" 
Resetlogik implementiert und ich bin immer noch beim optimieren...

https://i.imgur.com/tm0Oqt2.png

Wenn es aber nur um relativ simple Kommandos, ein einziges GSM-Modul und 
fixe Schaltbefehle geht, kannst du dir das relativ schnell wohl mit 
einem Arduino zusammenfrickeln.     Es gibt sogar eine universelle 
GSM-Library:
https://github.com/vshymanskyy/TinyGSM

1) Du findest mal die RX/TX Pins des GSM Moduls und sorgst dafür, dass 
der ATMEGA nicht mehr mit dem Modul kommuniziert  (Reset-Leitung des 
ATMEGA, falls aktiv/möglich auf Masse oder RX/TX abklemmen)

2) RX/TX/GND an einen USB-TTL-Wandler (FTDI, CP2102, PL2303, ...) und 
die benötigten Standard-Kommandos (AT+CNMI, AT+CMGF=1, AT+CSCS="GSM", 
... +CMT) ausprobieren, daran merkst du, wie das Format ist.

3) Ein Arduino/AVR/Whatever-Programm schreiben und mittels USB-TTL 
Wandler die Antworten des GSM-Modems simulieren, bis dein Programm 
richtig reagiert

PS: WOW ist das Zeug von ELV teuer...   119 EUR verlangen die für so 
einen Dreck!

Das programmiere ich grad auf einem 50 Cent STM8-Board mit einem 2 EUR 
GSM-Modul, wobei meine Lösung dann auch Passwörter, Anrufer-Erkennung 
und viel mehr können wird.  Ein HD44780-Display dazubauen sollte auch 
keine Schwierigkeit sein, wenn man's unbedingt braucht...

Gesamtkosten (exkl. "Arbeitszeit") ~ 3-5 EUR.  Mit Display und Relais < 
10 EUR.
Sollte es fertigwerden und sauber laufen, kommt's als Opensource-Projekt 
rein.

: Bearbeitet durch User
von Alexander L. (photoniker)


Bewertung
0 lesenswert
nicht lesenswert
TU S. schrieb:
> PS: WOW ist das Zeug von ELV teuer...   119 EUR verlangen die für so
> einen Dreck!

Ist dann aber auch so ziemlich idiotensicher.
Es gibt Leute, die haben einfach Spaß am Basteln. Die wollen nicht genau 
wissen, wie man was selber entwickelt.

Ist so wie malen nach Zahlen. Nur eben mit Lötkolben und bunten 
Bauteilen.

Genauso hatte bei mir das Interesse an der Elektronik begonnen. Ich 
hatte mich als Kind total gefreut, wenn ich bei meinem Vater auf Arbeit 
paar Bauteile auf eine Platine löten durfte. Da hat man sich wie ein 
Held gefühlt.

Also ich würde solche Anbieter wie ELV jetzt nicht gleich als Abzocker 
bezeichnen. Eher als "Erlebnisdienstleister" :-)
Manche müssen auf den Mont Everest steigen. Wie bekloppt ist das denn 
erst?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> Die wollen nicht genau
> wissen, wie man was selber entwickelt.

Trifft das nicht mehr oder weniger auf uns alle zu? Ich habe auch keinen 
blassen Schimmer, wie die CPU unter der Tastatur meines Notebooks ihre 
Befehle Cached und Pipelined.

Ich werde wahrscheinlich auch nie in meinem leben eine USB Schnittstelle 
selber bauen können, aber ich benutze sie in fast jedem Experiment.

von Alexander L. (photoniker)


Bewertung
1 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Trifft das nicht mehr oder weniger auf uns alle zu? Ich habe auch keinen
> blassen Schimmer, wie die CPU unter der Tastatur meines Notebooks ihre
> Befehle Cached und Pipelined.
>
> Ich werde wahrscheinlich auch nie in meinem leben eine USB Schnittstelle
> selber bauen können, aber ich benutze sie in fast jedem Experiment.

Ja, da hast du recht. Mir ist es auch egal, wie eine Library 
programmiert wurde. Hauptsache, sie funktioniert.

von Patrick J. (ho-bit-hun-ter)


Bewertung
0 lesenswert
nicht lesenswert
Hi

Alexander L. schrieb:
> a, da hast du recht. Mir ist es auch egal, wie eine Library
> programmiert wurde. Hauptsache, sie funktioniert.

Da hinkt Es aber etwas - bei dem USB-Gelump können wir uns recht sicher 
sein, daß wir (zumindest ich) Da Nichts dran repariert bekomme.
Wenn die soeben eingebundene Library (egal von wo) aber nicht zu 100% 
macht, was Sie soll, schadet Es nicht, wenn man - zumindest theoretisch 
- die Funktion reparieren kann.

Zwar Beides Elektronik, aber doch ein kleiner Unterschied ;)

MfG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.