Welcome! Log In Create A New Profile

Advanced

Gen7 Firmware

Posted by webghost 
Gen7 Firmware
August 14, 2011 05:56PM
hi!
bin ebenfalls neuling im reprap geschehen und bin so infiziert von der 3d druckerei, dass ich mich ein paar monate nach meinem makerbot cupcake cnc nun an eine eigene maschine gewagt habe. habe auch bereits ein paar bilder mit beschreibung bei thingiverse hochgeladen (http://www.thingiverse.com/thing:10343). sobald das ganze ein wenig ausgereifter ist, werde ich dort auch sämtliche daten und files zur reproduktion zur verfügung stellen.

die elektronik soll dabei über das gen7 board (v1.3, atmega 644, 20Mhz) gesteuert werden. habe das kit von traumflug auch bereits erfolgreich zusammengebraten und firmware uploads durchführen können; bild der rückseite im anhang. (an dieser stelle ein großes dankeschön an traumflug für den großartigen support beim bootloader problem!!).

als firmware würde ich gerne teacup einsetzen. habe jedoch so manches problem mit der konfiguration.

das aufspielen der teacup version wie im wiki mit den *.gen7.h files bewirkte lediglich ein anziehen der motoren. eine steuerung war nicht möglich. lösen konnte ich das problem indem ich

#define STEPPER_ENABLE_PIN					DIO24

auskommentiert habe. denke mal nicht, dass das normal ist?

die motoren lassen sich in der hostsoftware (printrun) auch nicht manuell abschalten, durch das auskommentieren jedoch bewegen. außerdem bekomme ich keine rückmeldung über meine messeingänge für die ntcs. da müssen doch bestimmt noch die eingänge definiert werden?? nur wie genau? gibts da ne kleine anleitung?

im moment steht da sowas:

/***************************************************************************\
*                                                                           *
* Define your temperature sensors here                                      *
*                                                                           *
* for GEN3 set temp_type to TT_INTERCOM and temp_pin to 0                   *
*                                                                           *
* Types are same as TEMP_ list above- TT_MAX6675, TT_THERMISTOR, TT_AD595,  *
*   TT_PT100, TT_INTERCOM. See list in temp.c.                              *
*                                                                           *
\***************************************************************************/

#ifndef DEFINE_TEMP_SENSOR
	#define DEFINE_TEMP_SENSOR(...)
#endif

//                 name       type          pin		additional
//DEFINE_TEMP_SENSOR(extruder,	TT_THERMISTOR,		0,	THERMISTOR_EXTRUDER)
//DEFINE_TEMP_SENSOR(bed,				TT_THERMISTOR,	1,	THERMISTOR_EXTRUDER)
// "noheater" is a special name for a sensor which doesn't have a heater.
// Use "M105 P#" to read it, where # is a zero-based index into this list.
// DEFINE_TEMP_SENSOR(noheater,				TT_THERMISTOR,	1,	0)

// to get both thermistors working make sure to use an appropriate 'ThermistorTable.h' file! 
// See 'ThermistorTable.gen7.h' for an example
DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PINA1, THERMISTOR_EXTRUDER)
DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, PINA2, THERMISTOR_BED)


hoffe meine fragen sind nicht zu dumm smiling smiley

viele grüße!

Edited 3 time(s). Last edit at 08/14/2011 06:08PM by webghost.
Attachments:
open | download - Gen7_Julian_Gebhardt_02.jpeg (370.3 KB)
Re: Gen7 Firmware
August 14, 2011 06:27PM
Quote

lösen konnte ich das problem indem ich

#define STEPPER_ENABLE_PIN DIO24

auskommentiert habe. denke mal nicht, dass das normal ist?

Jetzt, wo Du's sagst: ich bin ein Dussel.

Vor ein paar Tagen habe ich ein paar von den Flags umbenannt und anders programmiert, _danach_ jedoch das config.gen7.h von Schmelly eingestellt, das er _vorher_ gemacht hatte.

Habe das gerade in Ordnung gebracht: [github.com]


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Gen7 Firmware
August 15, 2011 12:18PM
problem 1 gelöst! smiling smiley
die temperaturmessung geht leider immer noch nicht. da kommt immer wert 0 bzw 323 grad für den extruder und das bett zeigt stur die 0. thermistor.h ist angepasst! wie muss ich vorgehen um die temperatureingänge richtig zu konfigurieren?? habe genau diesen thermistor fürs bett und für den extruder: [shop.grrf.de]
numtemps auf 20 angepasst und die werte ausgetauscht. aber irgendwie will das alles nicht so richtig laufen sad smiley
Re: Gen7 Firmware
August 15, 2011 01:40PM
schau dir mal die Anhänge dieses Posts an: Post im Gen 1+N Forum

Ist wie Traumflug gesagt hat zwar ein alter Stand, sollte als Vergleichsmöglichkeit aber ganz brauchbare Dienste liefern.

Ach übrigends: Die Thermistoren liefern bei der Teacup erst vernünftige Werte, wenn die Gen7 Platine nicht mehr im Standby ist...

Edited 1 time(s). Last edit at 08/15/2011 01:41PM by schmelly.
Re: Gen7 Firmware
August 15, 2011 02:36PM
hatte ich auch schonmal, dann kommt sowas:

In file included from analog.c:22:
config.h:272: error: 'PA1' undeclared here (not in a function)
config.h:273: error: 'PA2' undeclared here (not in a function)
Re: Gen7 Firmware
August 15, 2011 03:03PM
ok hab es jetzt geschafft dass er mir beim kurzschließen der messbrücke eine temperatur von 232 anzeigt. dann liegts jetzt wohl nur noch an der thermistortable?! eigentlich müsste mir doch ein vieel höherer wert angezeigt werden..

auf dem NTC-100KOhm thermistor gibts leider gar keine reaktion..

Edited 2 time(s). Last edit at 08/15/2011 03:38PM by webghost.
Re: Gen7 Firmware
August 15, 2011 04:28PM
hmm jetzt krieg ich beim kurzschluss 840... aber immer noch keien reaktion auf den thermistor. muss man evtl irgendwo noch den messbereich einstellen??
Re: Gen7 Firmware
August 15, 2011 05:36PM
also irgendwas stimmt hier definitiv nicht. habe hier mal einen kleinen auszug aus dem printrun:
habe beide ntcs angeschlossen. heizbett angeschaltet. anfangs passiert erstmal gar nichts. sobald ich anfange die motoren anzusteuern springen die werte willkürlich. dabei rufen die motoren unterschiedliche werte in unterschiedlicehen bereichen nur beim bett-eingang hevor. kabel der stepper gehen gerade nach oben weg und laufen nicht unter/über dem board her. werde hier langsam wahnsinnig sad smiley vielleicht sollte ich erstmal schlafen gehen.

printrun temperatur-ausgabe:
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:232.0 << kurzschluss test
T:0.0 B:30.25
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:0.0
T:0.0 B:30.50
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
SENDING:M84
T:0.0 B:30.0
SENDING:M84
T:0.0 B:30.0 >z-achse
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:232.0 << kurzschluss test
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
start
Printer is now online
T:232.0 B:232.0 << kurzschluss test
T:0.0 B:0.0
T:3.0 B:0.0
T:3.0 B:0.0
T:3.0 B:0.0
T:3.0 B:0.0
T:3.0 B:7710.0 > y-achse
T:3.0 B:7710.0
T:3.0 B:7710.0
T:0.0 B:7710.0
T:0.0 B:7710.0
T:0.0 B:7710.0
T:0.0 B:30.50 > z-achse
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:30.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.0 B:22.0
T:0.25 B:22.0
T:0.25 B:22.0
T:0.25 B:30.0
T:0.0 B:2460.0 >x-achse
T:0.0 B:2460.0
SENDING:M84
T:0.0 B:2460.0
T:0.0 B:2460.0
T:0.0 B:2460.0

Edited 4 time(s). Last edit at 08/15/2011 05:51PM by webghost.
ado
Re: Gen7 Firmware
August 16, 2011 03:14AM
Ich kenne jetzt die Steuerung nicht aber um Klarheit zu schaffen könntest Du erst einmal die Signale auf der Hardwareseite prüfen.

Wie ich das aus dem Schaltplan lese handelt es sich bei der Temperaturmessung um einen einfachen Spannungsteiler.

5V --> 4K7 Widerstand --> Temperatursensor --> Masse

Wenn du jetzt ein Multimeter nimmst und zwischen dem Abgriff des Spannungsteilers richtung CPU , gegen Masse misst, hast du die analoge Spannung die deine Temperatur repräsentiert.

Wenn du jetzt noch mit einem Haarfön den Sensor erwärmst müßte sich die Spannung ändern.

Wenn nicht ist die Hardware defekt.


Attachments:
open | download - Gen7_tmp.png (23.5 KB)
Re: Gen7 Firmware
August 16, 2011 04:32AM
hi!
habe die spannungswandler getestet. beide liefern werte zwischen ca. 5,2 (kalt) und 0,5 V (heiß). gemessen hab ich direkt an den pins des atmegas. die scheinen also zu laufen. habe statt des haartrockners einen lötkolben verwendet winking smiley
gibt es irgendeine möglichkeit die eingände des atmega644 direkt zu testen?
ado
Re: Gen7 Firmware
August 16, 2011 05:07AM
Dann scheint die Hardware vor dem Microcontroller ja zu funktionieren. smiling smiley

Hast Du auch die Tendenz beobachten können , daß die Spannung sich reduziert oder erhöht bei Änderung der Temperatur ?

Du hast jetzt nur 2 Werte genannt. Nicht daß da noch ein Wackelkontakt vorhanden ist.

Wenn Du dagegen einen kontinuirlichen Spannungsabfall bis zu deinen 0,5 Volt hast dann ist alles ok.


Zum Testen der Eingänge ...

Naja, mit Arduino habe ich noch nichts gemacht, aber ich glaube es ist sehr einfach die Eingänge ADC1 (PA1) und ADC2 (PA2) mit dem Arduino abzufragen und die digitalisieren Werte über die serielle Schnittstelle zu einem Hyperteminalprogramm auf dem PC zu senden.

Das Programm müßte von der Logik ca. so aussehen:


- IO-Pins als Inputpins konfigurieren.
-Serielle Schnittstelle konfigurieren
- Spannung digitalisieren
- Zahlenwerte über die Serielle Schnittstelle senden


Unter Arduino dürfte das nur ein paar Zeilen Code sein.

Beispiele gibt es bestimmt zur genüge unter dem Stichwort " Digitalisieren" und "serielle Schnittstelle".
Re: Gen7 Firmware
August 16, 2011 05:11AM
Die Arduino IDE hat da schon ein passendes Beispielprogramm unter Menü -> File -> Examples -> Analog -> AnalogInput.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Gen7 Firmware
August 16, 2011 05:00PM
Dankeschön! Hab es so tatsächlich geschafft mal Werte rein zu bekommen.
Spannungsabfall ist kontinuierlich!


Dieses Programm hab ich verwendet um zu schauen was wirklich ankommt:

//Thermistor Test für Atmega 644

void setup() {
 pinMode(15, OUTPUT);
 digitalWrite(15, LOW);
  Serial.begin(9600);
}

void loop() {
  int sensorValue1 = analogRead(1);
  Serial.print( "Temp1: ");
  Serial.print(sensorValue1);

  int sensorValue2 = analogRead(2);
  Serial.print("  Temp2: ");
  Serial.print(sensorValue2);
  Serial.print("\n");
delay(200);
}


Bei Raumtemperatur wird mir so für beide Temperatureingänge der maximale Wert 1023 ausgegeben was nach der Temperaturtabelle einen Wert von unter 0°C entspräche. Dieser Wert fällt erst ab ca. 50°C ab und kriege ihn mit dem Lötkolben auf ca. 110 runter. Habe auch nochmal mit den angegeben Werten selbst eine Tabelle mit createTemperatureLookup erstellt. Aber auch hier sollten 50°C etwa einem Wert von 902 entsprechen. Beide Thermistoren reagieren identisch. Soll ich nochmal andere Thermistoren bestellen? Oder liegt der Fehler evtl. bei den 4,7kOhm Widerständen der Spannungsteiler?? Übrigens: der Ausgangswiderstand bei Raumtemperatur (23°C, 5,23V) beträgt 99,5kOhm mit Fingerwärme kriege ich ihn auf ca. 60kOhm (5,10V) runter und der Spannungsteiler liefert mit dem Lötkolben dann auch nur noch 0,2V.

Edited 3 time(s). Last edit at 08/16/2011 05:11PM by webghost.
ado
Re: Gen7 Firmware
August 16, 2011 05:19PM
Eine Frage zu

Quote
der Ausgangswiderstand bei Raumtemperatur (23°C, 5,23V) beträgt 99,5kOhm mit Fingerwärme kriege ich ihn auf ca. 60kOhm (5,10V) runter.

Wie kommst Du auf 5,23 bzw. 5,10 Volt ?

Die Versorgungspannung ist doch nur 5 V.
Re: Gen7 Firmware
August 16, 2011 06:02PM
eye popping smiley Also wenn ich direkt am Thermistor-Stecker messe hab ich 5,5V! verdammt.. mein Netzteil gibt auch 5,7 raus merk ich gerade. Ist das das bzw ein Problem??

Edited 1 time(s). Last edit at 08/16/2011 06:02PM by webghost.
ado
Re: Gen7 Firmware
August 17, 2011 04:58AM
Im Prinzip scheint das ja zu funktionieren.

Was jetzt noch fehlt ist über die Hardwareparameter ( Spannungsversorgung, Widerstandsauswahl ) die Ausgangsspannungen so hinzubiegen, daß sie in einem güstigen Bereich liegen, so daß dein Arbeits-Temperaturbereich gut digital aufgelöst wird.
Ich weiß nicht welcher Temperaturbereich abgedeckt sein soll. Vielleicht 50°C bis 200°C ?

Traumflug hat für die 5V Versorgungsspannung diesen 4K7 Widerstand so gewählt, daß das wohl passt.

Da du mehr als 5V Versorgungsspannung hast würde ich daran arbeiten diese hinzubekommen.

Viele PC Netzteile benötigen eine Grundlast. Sonst können sie nicht sauber regeln.

Erhöhe mal den Stromverbrauch an den 5V durch anschließen weiterer Verbraucher. ( Festplatte, ..., oder

Widerstände zwischen +5V und Masse.

Z.B. würde je ein 1/4Watt , 100 Ohm Widerstand 50mA zusätzlichen Strom ziehen.

Halt irgend eine zusätzliche Last anschießen.

Ich weiß nicht wie hoch die Grundlast für so ein Netzgerät sein muß.

100mA, 0,5A - keine Ahnung.
Re: Gen7 Firmware
August 17, 2011 08:21AM
Hi,

Grundlast mag von Netzteil zu Netzteil unterschiedlich sein. So Daumenregel sind 10-15W, also eine ganze Menge !

BTW: Wenn die Spannung stabil ist, ist diese für die Temeraturmessung ziemlich Wurst, da die Referenz VCC ist und nicht die Bandgap-Referenz.

Da Deine Spannung wegen der fehlenden Regelung start schwankt (PWM Heizwiderstand / Schrittmotoren an / CPU-Takt), mißt Du sicher alles nur nicht den Ist-Wert.



Gruß ka-long
Sorry, you do not have permission to post/reply in this forum.