Apple iBook G4: mSATA SSD Upgrade

10 Jahre ist es nun alt, mein iBook G4 mit 12" Display. Es hat einen G4 der mit 1.33 GHz getaktet ist, hat mich durchs Bachelor-Studium begleitet und einen Teil des Masters mit gemacht. Nun habe ich ihm eine SSD verpasst um zu sehen was man aus dem Opi noch rausholen kann.

Weiterlesen

Veröffentlicht unter Allgemeines | Hinterlasse einen Kommentar

Labornetzteil selber bauen: Teil 2

Nachdem ich hier ja im Januar ein Konzept zu einem Labornetzteil veröffentlicht habe will ich hier nun noch den ein und anderen Blick genauer auf das Netzteil werfen.

Baut man den Schaltungsvorschlag auf dem Steckbrett auf sieht man, solange das Netzteil nicht in die Strombegrenzung geht schaut alles OK aus…greift jedoch die Strombegrenzung beginnt das Netzteil zu oszillieren. Der Grund hierfür ist recht simpel: die OPVs sind schlicht zu schnell für die Endstufe, hier muss ein wenig gebremst werden mit Kondensatoren.

Weiterlesen

Veröffentlicht unter Allgemeines | Hinterlasse einen Kommentar

Labornetzteil selber bauen: Teil 1

Selbst gebautes Labornetzteil

Einleitung

Ein Labornetzteil gehört in jeden Bastelkeller ermöglicht es doch die Spannungsversorgung für alle unseren kleine Projekte. Von der blinkenden LED bis hin zur z.B. elektronisch nachgeführten Astronomieeinheit. Mal braucht man 1.8 V für einen Mikrocontroller, mal braucht man 24 V für einen Motor. Es gibt unterschiedliche Gründe wofür man ein Labornetzteil braucht. Weiterlesen

Veröffentlicht unter Allgemeines | Hinterlasse einen Kommentar

Mehrfache Programmeinträge im Kontexmenü unter Mac OS Mountain Lion

Ich hatte in letzter Zeit einige Programme im Kontextmenü doppelt und dreifach. Die Frage war wie man die da wieder heraus bekommt. Ein wenig gegoogelt und das Netz sagt, dass man die Launch Services zurücksetzen soll. Einige Tipps aber im Netz funktionierten unter 10.8 nicht.
Mit dem folgenden Befehl im Terminal jedoch kann man auch die Launch Services unter 10.8 zurück setzen:

/System/Library/Frameworks/CoreServices.framework/Frameworks/
LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Gehört natürlich in eine Zeile, Zeilenumbruch hab ich nur für die Lesbarkeit eingefügt.

Veröffentlicht unter Allgemeines | Verschlagwortet mit | Hinterlasse einen Kommentar

Operationsverstärker OPA 380 für MI-Sugar

Nachdem ich weiterhin ein wenig simulierte gibts heute den oben genannten OPV für MI-Sugar. Das Model wurde von Texas Instruments herunter geladen und für MI-Sugar angepasst. Viel Spass damit.

OPA als Photodiodenverstärker

TIA mit OPA380

Download Subcircuit OPA380

Veröffentlicht unter MI-Sugar | Hinterlasse einen Kommentar

Operationsverstärker AD820 für Mi-Sugar

Nachdem ich ein wenig mit Photodioden spielen durfte und mich für die Auswertung der selben für einen Transimpedanzwandler entschieden habe, habe ich ein Model dafür für Mi-Sugar angepasst. Dieses Model kann hier herunter geladen werden. Es kommt hierbei das Model von Analog Devices selbst welches ich über Google fand.

Zum Einbinden des Subcircuits muss lediglich das Model in den Subcircuit-Ordner verschoben werden und dann müsst ihr testen. Es ist nämlich durchaus möglich, dass die Pinbelegung bei euch nicht mehr stimmt und deshalb der OP erstmal scheinbar nicht bzw. nicht richtig funktioniert. Als Symbol hab ich das Beispiel des OP-AMP aus der Hilfe genommen (kopieren und als .xml-Datei sichern)

AD820 als Transimpedanzwandler

Transimpedanzwandler

Download AD820

Veröffentlicht unter MI-Sugar | Hinterlasse einen Kommentar

Möhren frieren nicht

So als hauptberuflicher Elektronenschubser kommen einem beim Reiten ja die merkwürdigsten Ideen. Letzten Dezember zum Beispiel fand ich es sehr unschön, dass der Sonnenschein die Möhren erstmal warmlutschen musste bevor sie genossen werden konnten. Da ich daheim zwei formschicke Laminatoren rumstehen hatte, von denen ich nur einen brauchte hab ich kurzerhand einen Blick in die heimische Bastelkiste geworfen und eine Spind-Möhren-Heizung zusammengelötet.

AVR-BeschaltungEinige Atmegas 88PA altern hier in der Kiste vor sich her und ich dachte zumindest einer könnte mal was tun für seine Daseinsberechtigung. Also hab ich mal ein Standardlayout auf meinem Rechner rausgesucht und ging ein wenig ans Platinen ätzen. Ein LM50 zum Temperaturmessen war leider grade nicht verfügbar aber ein LM335z samt 2k2 Vorwiderstand an PC2 ist auch ganz hervorragend. Ein Crydom HD48125 (an PC1 angeschlossen, SSR - Solid-State-Relay) schaltet den Laminator entsprechend ein und aus.

Der Programmcode ist sehr einfach gehalten. Das komplizierteste ist die Konfiguration des Analog-Digital-Convertes (ADC). Alle 20 Minuten misst der Atmega gleich vier mal hintereinander die Temperatur und bildet den Mittelwert aus den vier Messungen. Wird 2 °C oder weniger gemessen wird für 10 Minuten der Laminator eingeschaltet. Der komplette Code fordert nicht mal 1% der Kapazität des Atmegas. Übrigens: RS232 ist mehr schein denn sein: Ich war nur zu faul zum Löschen aus dem Plan.

#ifndef F_CPU

#define F_CPU 8000000

#endif

#include <avr/io.h>

#include <util/delay.h>

#define Solltemp 563 //entspricht ca. +2°C

/* ADC initialisieren */

void ADC_Init(void) {

uint16_t result;

ADMUX = (0<<REFS1) | (1<<REFS0);      // AVcc als Referenz benutzen

//  ADMUX = (1<<REFS1) | (1<<REFS0);      // interne Referenzspannung nutzen

ADCSRA = (1<<ADPS1) | (1<<ADPS0);     // Frequenzvorteiler

ADCSRA |= (1<<ADEN);                  // ADC aktivieren

/* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest

also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */

ADCSRA |= (1<<ADSC);                  // eine ADC-Wandlung

while (ADCSRA & (1<<ADSC) ) {}        // auf Abschluss der Konvertierung warten

/* ADCW muss einmal gelesen werden, sonst wird Ergebnis der nächsten

Wandlung nicht übernommen. */

result = ADCW;

}

/* ADC Einzelmessung */

uint16_t ADC_Read( uint8_t channel )

{

// Kanal waehlen, ohne andere Bits zu beeinfluflen

ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);

ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"

while (ADCSRA & (1<<ADSC) ) {}  // auf Abschluss der Konvertierung warten

return ADCW;                    // ADC auslesen und zurückgeben

}

/* ADC Mehrfachmessung mit Mittelwertbbildung */

uint16_t ADC_Read_Avg( uint8_t channel, uint8_t average )

{

uint32_t result = 0;

for (uint8_t i = 0; i < average; ++i )

result += ADC_Read( channel );

return (uint16_t)( result / average );

}

int main(void) {

uint16_t i = 0;

DDRB = 0;

PORTB = 0;

DDRC = (1 << PC3); //PC3 als Eingang eingestellt

PORTC = 0;

DDRD = 0;

PORTD = 0;

uint16_t adcval = 0;

ADC_Init();

while(1) {

adcval = ADC_Read_Avg(2, 4); //4 Messungen auf Kanal 2

if (adcval <= Solltemp){

PORTC |= (1 << PC3);

for (i = 0; i < 600; i++){

_delay_ms(1000);

}

PORTC &= ~(1 << PC3);

for (i = 0; i < 600; i++){

_delay_ms(1000);

}

}

else {

for (i=0; i < 1200; i++){

_delay_ms(1000);

}

}

}

return 0;

}

Ich weiß, ich weiß. Der Kundige AVR-Programmierer wird nun sagen:

"WAS?!? Der nimmt _delay_ms() und ne for-Schleife für 10 Minuten warten? Sowas macht man doch mit Timern!"

Dazu kann ich nur folgendes sagen:

  1. Für meine Anwendung ist es völlig wurscht ob es nun 10 Minuten sind oder 10 Minuten und 3 Sekunden
  2. Eine eigene Timerfunktion für 10 Minuten zu schreiben hätte mich sicher mehr Zeit gekostet als das ganze Projekt (2.5h wobei 2h für die Platine samt Lötstopplaminat draufgegangen sind)
  3. delay.h war grad verfügbar

Den Code für den ADC hab ich übrigens auch aus dem Internet gefischt, ich glaub aus dem AVR-GCC-Tutorial von http://www.mikrocontroller.net.

Die meiste Zeit hat eigentlich die Suche nach einem passenden Behältnis für die Heizung in anspruch genommen. Glücklicher Weise gab es Sperrmuss und jemand hat eine Küche entsorgt deren Hängeschränke genau auf meine Anforderungen passte. So steht nun in meinem Spind ein Hängeschrank aus Kiefernholz (massiv!) in dem die Möhren lagern. Auf einen Einlegeboden wurde das Innenleben des Laminators wie die Steuerungseinheit samt Atmega geschraubt. In den letzten Tagen war es schon recht kühl und die Heizung war schon in betrieb. Weder sind bisher die Möhren eingefroren noch ist der Stall abgebrannt. Es scheint zu funktionieren, was ich mir hier überlegt haben.

Veröffentlicht unter Programmierung, Reiten | Hinterlasse einen Kommentar

Ich vermisse dich jetzt schon

Ankra

*05.02.1975 +22.04.2010

So werde ich dich immer in Erinnerung behalten, mein weißer Wirbelwind.

Veröffentlicht unter Reiten | Hinterlasse einen Kommentar

MI-Sugar: Auch wieder beim Autor erhältlich

Heute habe ich nach langer Zeit mal wieder bei Berk Özer, auf kulfx, geschaut wie es um den Nachfolger von MI-SUGAR, Volta, bestellt ist. Da fällt mir doch auf, dass Berk selbst MI-SUGAR und einige Modelle (u.a. den OP-AMP 741) als Download anbietet. Sehr schön, wie ich finde.

Veröffentlicht unter MI-Sugar | Hinterlasse einen Kommentar

MI-SUGAR

mi_sugar_screenshotFür MI-SUGAR gibts eine eigene Seite, dort kann man u.a. MI-SUGAR in Version 0.5.8 herunter laden.

Veröffentlicht unter MI-Sugar | Hinterlasse einen Kommentar