Archive for April, 2012

4 Monate ohne Crash

Monday, April 30th, 2012

Ok, ich hatte einige Quadcopter- und mcpx-Crashes in den letzten Monaten – Aber das zählt nicht 😉
Heute war es warm und sonnig aber total windig: Böen bis zu 12 Knoten(27km/h) ! Gegen den Wind kann man riieesige Loopings fliegen 🙂

Beim 4ten Akku mit dem 450er hat’s mich mal wieder erwischt. Wenigstens kein Pilotenfehler. Es ging alles sehr schnell. Ich flog gerade tief. Dann das typische Geräusch wenn das Motorritzel das Hauptzahnrad abfräst. Gleichzeitig sehe ich wie der Heli ins Feld fällt. – Motor aus – mehr konnte ich nicht mehr machen.
Tja, da war wohl das Zahnflankenspiel etwas zu groß oder das HZR war abgenutzt. Noch eine mögliche Unfallursache: Am Empfänger ist die Antenne abgebrochen -> Failsave = Motor aus. Aber das sollte nicht so ein Geräusch verursachen, wenn der Heli noch in der Luft ist.

Schaden:
Heckrohr etwas krumm, Hauptrotorwelle, HZR, BLW.
Blätter, Blattgriffe und Zentralstück sind o.k. …hoffe ich.
Heckrotorwelle scheint auch o.k. zu sein

767g

Sunday, April 22nd, 2012

Für meinen MultiWii Quadcopter habe ich mir einen größeren 2S Akku besorgt: 1800mAh, 25C, 100g
Das Abfluggewicht mit diesem Akku beträgt 400g.
Mit dem neuen Akku gleich mal den Strom gemessen:
Vollgas am Boden festgehalten: 32A @ 7,4V
Schweben: 7A

Aus Spaß nochmal zusätzlich 2 x 3s2200 Akkus Payload hinzugefügt:
Fliegt mit 767g Gesamtgewicht immer noch 🙂

Nokia 3310 LCD

Sunday, April 22nd, 2012

Vor 3 Jahren habe ich das Display aus einem Nokia 3310 ausgeschlachtet und dort Kabel, Steker und Kondensator angelötet. Dann ruhte das Projekt, weil ich noch keine Erfahrung mit 3,3V Bauteilen, Pegelwandler usw. hatte. Mein erstes Projekt, wo der Micrcontroller mit 3,3V läuft war der SD-Karten-Logger. Für das Nokia Display habe ich im Atmega328P die Fuses für 8Mhz interner Oszillator und Brown-Out-Detection auf 2,6V gesetzt. Die Schaltung habe ich mit einem DC-DC Wandler versorgt. Die Schaltung funktioniert ab 2,7 V aber fürs flashen werden ca. Vcc=3,6V-3,7V benötigt, damit die High-Pegel vom usbasp erkannt werden. Das sind 0,4V zuviel für das Display aber das hat es bisher überlebt. Vielleicht mache ich noch eine Diode in die VDD(+) Leitung des Displays, aber ich habe mal gehört, dass die Pegel an den Eingängen nicht höher sein sollen als Vcc.

Software: Das este Bespielprogramm von http://www.arduino.cc/playground/Code/PCD8544 hat nicht funktioniert, aber das zweite lief sofort. Man kann sich die DA Pins die man verwenden möchte frei aussuchen. Der von mir gebaute Stecker ist so belegt:
#define PIN_SCE 2
#define PIN_RESET 0
#define PIN_DC 3
#define PIN_SDIN 4
#define PIN_SCLK 6

Später probier’ ich mal die lib von Adafruit:
https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library
Oder vielleicht die Borgware von das-labor.org – das könnte der kleinste 2D Borg werden 🙂

nokia LCD

USBaspLoader, Metaboard

Saturday, April 21st, 2012

In 2009 und 2010 habe ich 2 BLIT2008-Boards gebaut: Atmega8, 12MHz Quarz, USB-Bootloader. http://bralug.de/wiki/BLIT2008-Board
Der 12Mhz Quarz war damals üblich, um das USB Timing für V-USB hinzukriegen.
Inzwischen hat sich V-USB weiterentwickelt und es geht auch mit anderen Taktfrequenzen.

We supply assembler modules for clock frequencies of 12 MHz, 12.8 MHz, 15 MHz, 16 MHz, 16.5 MHz 18 MHz and 20 MHz. Other clock rates are not supported.

Und es gibt einen Bootloader, der kompatibel zu USBasp ist. Folglich passt er dann auch zu avrdude und zur arduino-IDE:
http://www.obdev.at/products/vusb/usbasploader.html

Wie beschrieben habe ich USBaspLoader konfiguriert, kompiliert & geflasht…
make
make fuse
make flash

Das hat leider nicht funktioniert. Mein Notebook hat kein USB-Gerät erkannt.

Im Netz fand ich 2 weitere Boards mit Atmega & V-USB:
http://wiki.lochraster.org/wiki/Rumpus und https://metalab.at/wiki/Metaboard

Mein eigenes Board habe ich dem Metaboard angepasst, in dem ich USB D- an PD4 und den “Bootloader enable”-Schalter an PD7 angeschlossen habe.

Für das Metaboard mit Atmega328 @ 16Mhz fand ich sogar den USBaspLoader als fertiges HEX-File: http://sites.google.com/site/a52egv/metaboard

Das habe ich probiert und das hat auch funktioniert. Leider nur ein Mal. Danach war der Bootloader überschrieben. 🙁

Ich glaube im Makefile von USBaspLoader ist ein Fehler:
hfuse: DA -> ergibt 1k Bootloader, aber der Bootloder ist knapp 2k groß.

Mit hfuse: D8 funktioniert es bei mir.
lfuse: f7
Lockbits habe ich nicht benötigt.

Möglicherweise noch ein Fehler im Makefile:
# BOOTLOADER_ADDRESS is 1800 for 8k devices, 3800 for 16k and 7800 for 32k.
Das ist IMHO auch falsch, denn 0x3800 x 2 = 0x7000 und nicht 7800

Jedenfalls bin ich froh, dass es nun endlich funktioniert.
Wenn ich PD7 per Schalter oder Jumper auf GND lege und anschließend reset drücke hält das laufende Programm an und der Bootloader wartet. Wenn der Bootloader das neue Programm empfangen hat, läuft dieses automatisch sofort los.

inspired by metaboard

240 LEDs

Thursday, April 12th, 2012

Vor einiger Zeit habe ich versehentlich eines meiner Conrad/Franzis Pong Spiele mit 12V gebraten. Nun habe ich den defekten Atmega8 von der Platine entfernt und dabei dort die Leiterbahnen etwas beschädigt. LEDs und Schieberegister sind aber noch o.k.
Statt dort irgendwie einen neuen Controller dran zu löten, habe ich die defekte Platine mit einer funktionierenden Platine verbunden: +5V, GND, Zeilen 1 bis 10, Strobe, Clock und Q4 vom zweiten Schieberegisters an Data des dritten Schieberegisters.
Momentan nutze ich es als Laufschrift, der Text ist fest in der Firmware, könnte aber in zukünftigen Software-Varianten auch per i2c , seriell oder Bluetooth empfangen werden.

2 pong platinen von hinten

noch mehr arduinos

Thursday, April 12th, 2012

Neulich brachte der Postbote 5 frische Atmega328 und 16MHz Quarze.
Einen davon habe ich hinter mein LCD keypad shield gesteckt, und ein andere wird mein Mini-Höhenlogger mit BMP085 Sensor.
Die beiden will ich über ein serielles Nullmodemkabel verbinden um nach einem Flug die gesammelten Daten ansehen zu können.

Fuses setzen und Bootloader flashen:
16MHz Quarz:
avrdude -c usbasp -p m328p -U hfuse:w:0xDA:m
avrdude -c usbasp -p m328p -U efuse:w:0x05:m
avrdude -c usbasp -p m328p -U lfuse:w:0xFF:m
avrdude -c usbasp -p m328p -U ATmegaBOOT_168_atmega328.hex

8MHz internal Oszillator*:
avrdude -c usbasp -p m328p -U hfuse:w:0xDA:m
avrdude -c usbasp -p m328p -U efuse:w:0x05:m
avrdude -c usbasp -p m328p -U lfuse:w:0xE2:m # bin mir nicht sicher
avrdude -c usbasp -p m328p -U ATmegaBOOT_168_atmega328_pro_8MHz.hex

*hat einmal funktioniert und einmal nicht. hmm..
Die Original arduinos haben offenbar alle einen externen Quarz oder Resonator,
sogar die Lilipads mit 8MHz

Lochraster arduino

Elektronik basteln

Tuesday, April 10th, 2012

Momentan macht es mir große Freude alten LED- und LC-Displays, die hier schon sehr lange ‘rumliegen, mit Hilfe von Atmega/arduino neues Leben einzuhauchen.

Zu Beginn etwas einfaches: TIL311 Hexadecimal Display With Logic original aus der 80ern.
Da ich nur ein einstelliges Display habe, habe ich “latch strob input”(Pin 5) mit GND verbunden. Mit Pin 8 – blanking input kann man das Display dunkel schalten, blinken lassen oder vielleicht sogar mit PWM dimmen.

Nächstes Versuchsobjekt: ein einzeiliges LCD aus einem Faxgerät. Für das 14-pol Flachbandkabel hatte ich keine Pinbelegung. Also habe ich mir eine Seite aus dem Datenblatt des Controller-Chips “LC7985A” ausgedruckt und die interessanten Anschlüsse durchgepiepst:

1 DB6
2 DB7
3 DB4
4 DB5
5 DB
6 DB
7 DB
8 DB
9 RW -> GND
10 E -> Atmega B3, arduino 11
11 V5 -> GND
12 RS -> Atmega B4, arduino 12
13 GND
14 VDD +5V

V5 ist vermutlich für Kontrast zuständig. Ich musste es mit GND verbinden, damit es funktioniert. Software-seitig kann man die übliche LiquidCrystal Library verwenden: 4 bit Daten + RS + E

Ausblick:
* 2-zeiliges LED Display aus 16 Stück DLO3416
* LCD aus einem Nokia 3310 (3,3V)
* LCD keypad shield

Verschleiß am HK450GT

Sunday, April 8th, 2012

Mal wieder ist eine Welle so dünn geworden, dass sie in ihrem Lager schlackert. Diesmal nicht am Motor sondern am Heckabtrieb. Im unteren Lager ist noch alles ok, aber beim oberen war es so schlimm, dass das Lager nach unten aus dem Lagerbock gefallen ist. Das kleine Zahnrad hat dann das Hauptzahnrad berührt und Plastikstaub erzeugt. Glücklicherweise konnte ich noch normal landen.
Um diese Einheit zu ersetzen muss man 15! Schrauben lösen.

Netzwerk Monitoring mit xymon

Friday, April 6th, 2012

Bisher habe ich für Server- und Netzwerk-Monitoring überwiegend munin verwendet. Munin zeigt viele rrd Graphen für den aktuellen Tag, Woche, Monat, Jahr.

xymon (aka Hobbit oder bb) zeig auf der Startseite zunächst keine Graphen sondern nur farbige Smilies nach dem Ampel-Schema. So hat man mehr Server & Dienste auf einmal im Blick. Klickt man auf ein Smilie, dann bekommt man den Graphen für die letzten 48h und weiteren Detail Infos. Bei “trends” kann man selber interaktiv den Zeitraum wählen, den man sich anschauen möchte.

Konfiguration
Ich habe xymon Server & client bisher nur auf einem Host installiert. Die anderen Geräte überwacht xymon mit ping oder ping auf einen Dienst, z.B. ssh

Dazu habe ich die zu überwachenden Geräte in
/etc/hobbit/bb-hosts
eingetragen. z.B.

192.168.10.78 host78 # ssh

(# ssh ist kein Kommentar, sondern ein Dienst, der überwacht werden soll)
Wenn man in der Datei etwas ändert wird es sofort erkannt, man muss nichts neu starten.

Damit ich die Status-Seite auch von anderen Rechnern aus ansehen kann, habe ich entsprechende
Allow from ...” Zeilen
in
/etc/apache2/conf.d/hobbit
eingetragen. (danach apache neu starten)

Um einzelne Prozesse auf meinem Server zu überwachen, habe ich diese in
/etc/hobbit/hobbit-clients.cfg
eingetragen, z.B.

PROC cron HOST=myhost
PROC dhcpd HOST=myhost

atmega/arduino Basteltag

Sunday, April 1st, 2012

Gestern bin ich bei den Projekten “serieller Datenlogger” und “Höhenlogger” ein bisschen weiter gekommen. BMP085_Example_Code.pde läuft auf einem Atmega8 mit 8MHz, internal Oscillator. Lesen & schreiben auf SD Karte läuft bis jetzt nicht mit Atmega8 oder Atmega32. Für den Atmega8 ist die SD-Library zu groß und beim Atmega32 ist die Pin-Zuordnung anders. Atmega168 oder 328 hatte ich gerade keinen zur Hand.

Funktion    | Atmega8  | Atmega32 | arduino
----------------------------------------------------
SS            PB2        PB4        digital 10
MOSI          PB3        PB5        digital 11
MISO          PB4        PB6        digital 12
SCK           PB5        PB7        digital 13

SCL           PC5        PC0        analog input 5
SDA           PC4        PC1        analog input 4
----------------------------------------------------

Fuses für Atmega8
* mit 16MHz Quarz, 512 words bootloader: lfuse=df hfuse=ca
* 8Mhz internal Oscillator: lfuse=e4 hfuse=d8

siehe auch: arduino-0023/hardware/arduino/boards.txt
http://www.engbedded.com/fusecalc

Festspannungsregler für 3,3V:
LM117DT
78M33
LM3940-3.3
LF33
MCP1700-3302E