Archive for the 'hardware' Category

CNC Fräse im Unperfekthaus

Tuesday, December 17th, 2013

Für mein “home-cockpit” Projekt möchte ich eine bedruckte Frontplatte mit diversen Löchern und Ausschnitten für Displays, Schalter und Taster herstellen. Das ist genug Motivation, um mich mal intensiver mit der CNC-Fräse im Unperfekthaus zu beschäftigen.

Die Fräse wird momentan von einen DOS PC mit der DOS-Software “PCNC” gesteuert. PCNC kann HPGL und G-Code Dateien öffnen.

Ein reines, klassisches MS-DOS oder PC-DOS hat kein Netzwerk und auch keine USB-Sticks lesen und unsere heutigen Rechner haben kein Disketten-Laufwerk. Also wie kommt die Datei in den Rechner ?
Der umständliche Weg war: Erst Kanotix Linux booten, die Datei vom USB-Stick auf die “C:” Partition kopieren und dann DOS booten. Sind Änderungen an der Datei nötig, dann geht diese Spiel wieder von vorne los – sehr umständlich!

Das haben wir heute geändert. Ich habe gelernt, dass auf C: nicht nur DOS sondern auch Windows98 installiert ist – Das gibt Hoffnung auf Netzwerk-Konnektivität. Also schnell eine Netzwerkkarte eingebaut und den nötigen Treiber per Linux auf die C:-Platte kopiert. Treiber installiert, obligatorischer Reboot, … Hurra! ping funktioniert! 😉
und jetzt ? smb(samba) klappte nicht auf Anhieb, und wo ist der IE ? – jedenfalls nicht im Startmenu oder Startleiste. Damals waren “Windows-Explorer” und “Internet Explorer” das gleiche Programm. Mir gelang es irgendwie diesen “Internet Explorer” zu starten und konnte dann vom meinem Apache http Server weitere Programme installieren: WinSCP und Firefox 2.0 damit wir ab sofort unsere Fräs-Dateien per scp oder http auf den Fräsrechner kopieren können.

Der Fräs-Rechner hat momentan noch keine feste IP. Er verrät seine IP per “command” (cmd geht nicht!) und dann “ipconfig”

Meine Frontplatte habe ich mit Inkscape gestaltet. Sie ist 480mm breit. Der maximale Arbeitsbereich der Fräse ist:
X: 240mm
Y: 350mm
Ich habe also zunächst mal die Elemente entfernt, die nicht in der Arbeitsbereich passen. Und ich habe die Platte um 90° gedreht, schließlich ist Arbeitsbereich in diese Richtung 10cm größer.
Das war keine gute Idee, denn so “quer” passt das Werkstück nicht mehr durch das Portal der Fräse. Das Maximum ist hier 430mm
Also in Inkscape wieder 90° zurück gedreht. PCNC kann so etwas (Achsen X und Y tauschen) offenbar nicht.
Was PCNC auch nicht macht: die Dicke des Fräskopfes beachten. Also musste ich in Inkscape alle Ausschnitte 0,75mm (Fräskopfdurchmesser/2) kleiner machen, damit sie korrekt gefräst wurden.
Meine Version von Inkscape bot 2 Varianten von HPGL an:
* HPGL Plot File (*.plt)
und
* HPGL (.hpgl)
Beim ersten gab es diverse uniconverter-Fehlermeldungen. Das zweite bietet ein paar Optionen und speichert dann eine Datei, die PCNC öffen kann. Falls Objekte in der PCNC Vorschau nicht erscheinen hat man in Inkscape vermutlich “Object to Path” vergessen.

Nach dem wir das Werkstück eingespannt und in PCNC den Arbeitsbereich und den Nullpunkt definiert haben, begannen die Probe-Läufe 1-3. Erster Testlauf 10cm über den Werkstück, zweiter Testlauf 2cm über dem Werkstück, dritter Testlauf 1mm über dem Werkstück. So konnten wir uns versichern, dass nicht in die Werkstück-Halterungen gefräst wird und schon mal abschätzen, ob die Dimensionen auch stimmen. Den Skalierungsfaktor 2,54 (in PCNC) hatten wir anhand der Vorschau (richtig) geschätzt/erraten. Beim speichern in inkscape habe ich den default-Wert 1016 dpi unverändert gelassen.

Soweit so gut. Mit 0,33mm Zustellkorrektur konnten wir dann endlich “richtig” fräsen – aber leider nur bis max 1,5mm Tiefe. Bei HPGL Dateien bewegt sich die Z Achse zwischen den einzelnen Ausschnitten nur minimal auf und ab. Das kann man in PCNC scheinbar auch nicht ändern :-( Hätten wir weiter gemacht, wäre die Frontplatte zerkratzt worden. Übrigens war die HPGL Datei aus Inkscape spiegelverkehrt, das konnte man schon in der PCNC Vorschau sehen. Wir haben also die Rückseite der Platte gefräst.

Möchte man auf Z-Achse mehr Einfluss, dann muss man statt HPGL G-Code verwenden. Diverse Programme haben es leider nicht geschafft aus unserer HPGL Datei brauchbaren G-Code zu erzeugen – Eigentlich keine schwere Aufgabe. Auch mit der Inkscape Extension “Gcodetools” kamen wir zunächst nicht klar. Diese Extension hat Inkscape mehrfach zum Absturz gebracht. Sonst läuft Inkscape völlig stabil.
Später abends zu hause hat die Gcodetools Extension das erste Mal eine G-Code Datei erzeugt, die ganz brauchbar aussieht. Möglicherweise muss ich in inkscape alle Ebenen, die ich nicht fräsen möchte, vor dem G-Code Export löschen.

Das war ein interessanter Fräs-Tag. Beim nächsten Mal werde ich G-Code probieren. Falls das nicht klappt, könnte man vielleicht statt der kompletten Frontplatte einzelne Ausschnitte in einzelne Dateien speichern und dann 1x das Werkstück und mehrmals den Nullpunkt manuell verschieben um die Ausschnitte an den gewünschten Stellen zu fräsen(“pen down”) ohne dass der Fräskopf zwischen mehreren Objekten wandern muss (“pen up”)

Langfristig werden wir versuchen, DOS & PCNC durch die freie Linux-Software http://www.linuxcnc.org/ (“EMC”) zu ersetzten.

Android als USB Host, Arduino

Sunday, December 16th, 2012

Seit einiger Zeit entwickle ich Android Software in Python (mit SL4A, PythonAPK). Mein aktuelles Android Tablet ist das Arnova 10d G3 (Android 4.0.3, Linux Kernel 3.0.8). Es hat leider kein Bluetooth aber es hat 2 USB Anschlüsse, einer davon als USB Host. Also habe ich mit dmesg und logcat geschaut, was passiert, wenn man verschiedene USB Geräte anschließt.

* USB-Tastatur & -Maus werden automatisch erkannt und können sofort benutzt werden. Tastatur-Layout ist aber immer US ?!

* USB Drucker werden zwar vom Kernel als “full speed USB device” erkannt aber nicht als Drucker.
Zum Vergleich ubuntu Linux:

usblp0: USB Bidirectional printer dev 14 if 0 alt 0 proto 2 vid 0x0482 pid 0x0011
[114688.541019] usbcore: registered new interface driver usblp

* USB-RS232-Konverter
1.) FTDI FT232RL – Das gleiche wie bei den Drucken. Ich habe zwar eine “Treiber-App” dafür gefunden, hatte damit aber bisher keinen Erfolg damit. http://android.serverbox.ch/?p=370

2.) Prolific PL2303
Der Kernel erkennt diesen USB-nach-Seriell Converter und stellt das serielle Device /dev/ttyUSB5 zur Verfügung:

<6>[27051.309145] usb 2-2: new full speed USB device number 3 using uhci_hcd
<6>[27051.478195] pl2303 2-2:1.0: pl2303 converter detected
<6>[27051.501198] usb 2-2: pl2303 converter now attached to ttyUSB5

Also habe ich versucht, von meinem Python Script aus den per pl2303 angeschlossenen Arduino anzusprechen. Es funktioniert! :-)

python code:

import serial
ser = serial.Serial('/dev/ttyUSB5', 2400, timeout=1)
ser.write("hello")
ser.close()

arduino code:

#include <LiquidCrystal.h>
int inByte = 0;         // incoming serial byte
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print(".");
  lcd.setCursor(16, 0);
  lcd.autoscroll();
  Serial.begin(2400);
}
void loop() {
  if (Serial.available() > 0) {
    // get incoming byte:
    inByte = Serial.read();
    Serial.write(inByte);
    lcd.write(inByte);
  }
}

Alternativ gibt es für den pl2303 eine Erweiterung(Custom Facade) zu SL4A: https://bitbucket.org/kuri65536/usbhostserialfacade

Die hat bei mir aber nicht funktioniert (“device was not found” ) Möglicherweise werden von der Android API Geräte, die bereits durch einen Kernel Treiber verwaltet werden nicht mehr angeboten.

Multi-Wii-Copter

Monday, December 19th, 2011

Ich hatte schon länger überlegt, mir mal ein Multi-Rotor Fluggerät zu bauen. Was mich bisher davon abhielt: die Kosten für 4 Motoren + 4 Regler + FlightControlUnit. Eines Tages habe ich den Tricopter entdeckt, der mit 4 billig-gyros funktionierte. Das sah schon mal interessant aus: relativ billige Elektronik und nur 3 Motoren & Regler.
Abgesehen von den Kosten hatte & habe ich noch Bedenken, dass es schnell langweilig wird: mangels negativ-Pitch sind viele Kunstflug-Figuren nicht möglich.
Zahlreiche Videos von zeigen, dass es trotzdem viel Spaß machen kann. Klarer Vorteil: keine
Energieverluste durch Getriebe, Heckrotor und Kopfmechanik.
Das Open-Source Hard- und Software Projekt MultiWiiCopter finde ich auch sehr attraktiv, denn ich bastle gerne mit arduino und Atmel Microcontrollern.

Status
* WiiMotionPlus Platine ausgebaut und mit Kabeln versehen
* Mini Arduino Pro ist bestellt
* 4 Stück 10A HK SS Regler und Propeller sind bestellt

Es fehlen noch Motoren und der Rahmen.

Gedanken zum Rahmen
Ich habe Alu, GFK und eine Kiefernholzleiste gewogen. Holz war mir Abstand das leichteste – ist überall leicht zu bekommen, leicht zu verarbeiten und preiswert.
Alternative Ideen: CFK Rechteckrohr oder Alu-Heckrohre vom HK250

UPDATE:
Hab mir gerade eine Skizze für den Rahmen gemacht. Für maximal 9″ Propeller.
Rahmengröße: 40x40cm
Abstand der Motorwellen: 36cm
bei 8″ Propellern hat man dann ca 4,5cm Abstand zwischen den Rotorkreisen und in der Kreuzmitte ca. 14x14cm Platz.

Kiefernleiste 10x5mm: 25g/m -> ca. 80g für 4 Arme mit je 2 Leisten
1 Motorträger 45x30x1mm GFK: 3,2g
1 Motorträger 45x30x3mm Sperrholz: 2,6g

Retro Computing Day

Thursday, November 24th, 2011

1) Seit Anfang der 90er ist meine Modellbahn digital. Dasmals hieß es noch “Märklin Zweileiter/Gelchstrom digital” Heute weiß ich, es ist DCC, also ein internationales Standardprotokoll welches heute immer noch verwendet wird. Glück gehabt! Sogar die Kommunikation zwischen den Märklin Modulen (i2c Bus) ist heute gut dokumentiert. Von damals habe ich noch ein Märklin Interface (RS 232) welches auch schon am Atari ST im Einsatz war. Und heute?
* Ich könnte mit atmega/arduino einen Handregler bauen, der die Lokbefehle seriell an das Märklin-Interface sendet.
* oder das Märklin-Interface mit einem pollin net-IO verbinden und somit die Bahn ans Internet anschließen :-)
* oder das Märklin-Interface weglassen und mit atmega/arduino versuchen die i2c Kommunikation mit der Zentrale hinzukriegen
* oder einen Booster bauen und DDL benutzen.
* oder mal probieren ob es mit dem USB nach RS-232 Adapter klappt.

http://www.vogt-it.com/OpenSource/DDL/
http://wiki.rocrail.net/doku.php
http://www.opendcc.de/
http://www.oscale.net/arduino
http://www.flyerman.org/software/dcc-auf-dem-arduino/

2) Atari Portfolio wiederbelebt. Das 256kB Memory Modul, Laufwerk “A:” hat leider seine Daten vergessen. Die eingebaute Lithium Batterie war total leer. Hab eine neue Batterie eingebaut und A: formatiert. Aber wie bekomme ich nun wieder Dateien ‘drauf ? Im System Menü gibt es “Dateienübertragung” aber ich befürchte, das geht nur mit einem Paralelprotkabel und entsprechendem DOS Programm auf der Gegenseite.

3) Atari ST Emulatoren für Linux. In der Vergangenheit habe ich öfter mal STonX benutzt. Heute mal kurz angetestet: steem und hatari

./steem Tos206.img

hatari --tos Tos206.img -m

stonx -cartridge cardridge.rom -tos Tos206.img -disk A:mydisc.st

Half Piroflip, Key Chain Cam, Lagerschaden

Tuesday, March 8th, 2011

Schönes Wetter: 10°C, Sonne, wenig Wind. 5 Flüge mit dem T-Rex 250 und 5 Flüge mit dem 450er Klon. Beim letzten Akku war ich mutig und hab ein paar halbe Piroflips (halber Forward-Flip mit halber Piro) gewagt. Das klappte recht gut. Wenn man langsam flipt, hat man auch genug Zeit das zu steuern. Die 2te Hälfte hab ich auch einmal probiert – das ging erwartungsgemäß etwas schlechter und der Heli war schon zu weit weg, so dass ich kaum noch sehen konnte, was ich da mache. Außerdem noch erwähnenswert: 6fach Rückwärts-Looping und langsame Rücken-Piruetten mit relativ wenig driften.

Vor 2 Tagen kam meine Key Chain Cam von HobbyKing: totaler Müll!! Es ist eine Version #7 Kamera: schlechtes Bild, schlechter Ton und viele Framedrops.
Gut dass meine Version #3 Kamera noch funktioniert. Ich habe sie nun mit einem Stecker ausgerüstet, damit ich externe Akkus anschließen kann. Interner und externer Akku ergeben zusammen theoretisch 400mAh. Damit konnte ich heute 11 Videos aufnehmen, in Summe knapp eine Stunde bzw. 3,2GB. Sehr gut!

In dem HobbyKing-Paket war auch ein Turnigy Nano-Tech Akku 850mAh/3S/25-40C. Die ersten 2 Flüge damit waren sehr angenehm.

Der Blade hatte (mal wieder) einen Motor-Lagerschaden. Heute habe ich den Turnigy Typhoon 2215 Motor eingebaut mit einem 11er Ritzel. Testflug kommt noch. Strom sollte ich auch messen – da muss ich erst noch einen Adapter für XT60 Stecker bauen.
kurz mal angeschwebt: NORM: 2100rpm , STUNT: 2800rpm

ethersex

Saturday, December 25th, 2010

Ein erfolgreicher Basteltag.

Erstes AVR-NET-IO repariert: Ethernet Controller ENC28J60 ausgetauscht. Das alleine hat’s noch nicht gebracht. Erst als ich die Firmware nochmal neu geflasht habe, funktionierten Ping und Telnet wieder.

Zweites AVR-NET-IO in knapp 2 Stunden zusammengebaut. funktioniert!

Freie ethersex firmware ‘runtergeladen (mit git), kompiliert (besondere Version von avr-gcc!) und installiert. funktioniert!

http://www.ethersex.de/index.php/Kategorie:StepByStep
http://www.ethersex.de/index.php/Download
http://www.ethersex.de/index.php/Voraussetzungen
http://www.ethersex.de/index.php/ECMD_Protocols
http://www.ethersex.de/index.php/ECMD_Reference

Ethersex Weboberfläche(bei Pollin AVR-NET-IO Hardware): http://192.168.0.90
Ethersex telnet-like Port: 2701

USB nach TTL seriell

Friday, September 17th, 2010

Hab mir bei handy-fix.de (für €3,98 incl. Versand) ein Datenkabel für Nokia 3510 gekauft. Der Rechner erkennt es so:

dmesg:
[979343.412068] usb 8-1: new full speed USB device using uhci_hcd and address 14
[979343.623335] usb 8-1: configuration #1 chosen from 1 choice
[979343.625297] pl2303 8-1:1.0: pl2303 converter detected
[979343.637251] usb 8-1: pl2303 converter now attached to ttyUSB0

lsusb:
ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Offenbar ein Prolific PL2303 chip.
Kabelbelegung:
schwarz: Masse
blau: Daten vom Handy zum PC
rot: Daten vom PC zum Handy

Ein nützliches Programm für die serielle Kommunikation scheint moserial zu sein.

Hab’ den USB-Stecker mit der Schaltung darin geöffnet. Mein Teil hat den PL 2303HX Chip. Auf der Platine gibt es 10 Anschlusspunkte für verschiedene Kabel-Typen.
Bei meinem sind diese 3 verwendet: 7=Masse,
2(rot) und 3(blau)

Mehr Details hier:
Jonathan Thomson’s web journal.

alternative URL:
http://www.uchobby.com/index.php/2009/10/04/diy-usb-to-serial-cable-for-3/

update:
Hab’ das Kabel direkt ohne Widerstände oder Pegelwandler an den Atmega8 angeschlossen – funktioniert!

Wireless N

Wednesday, February 24th, 2010

Ich teste gerade 2 neue USB WLAN Sticks:
1.) ein weisser LogiLink WL0049
lsusb:
148f:3070 Ralink Technology, Corp.

2.) ein LogiLink WL0054 mit reverse-SMA Anschluss für externe Antenne

lsusb: 148f:3070 Ralink Technology, Corp.
dmesg:
usbcore: registered new interface driver rt2870

Der Chip ist also offenbar gleich, also auch der Treiber. Sowohl bei Knoppix 6.2 als auch bei ubuntu 9.10 ist ein Eintrag in /etc/modprobe.d/blacklist.conf nötig:
blacklist rt2800usb

lsmod:

rt2870sta 488820 1
rt2x00lib 29756 0
input_polldev 3716 1 rt2x00lib
...

alle 5 Minuten: DriveReady SeekComplete Error

Wednesday, July 1st, 2009

hab 2 neue Festpalatten eingebaut. Beide bringen Fehler in dmesg:
hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hda: drive_cmd: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xb0
hdb: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdb: drive_cmd: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xb0

In /var/log/messages steht die Uhrzeit in menschlicher Form.
Aha! Alle 5 Minuten – da war mir klar, es hat mit smartmon und munin zu tun. Netz-Recherche besttigt diese Vermutung:

http://www.linux-noob.com/forums/index.php?showtopic=2586

http://lists.uugrn.org/uugrn/05/08/12458.html

So war’s auch bei mir: Damit munin was anzeigt , habe ich smartctl -s on /dev/hda
gemacht. Seit dem kommen die Meldungen nicht mehr.

Edge 2 – jetzt noch leichter

Friday, May 22nd, 2009

…schwimmt sogar in Milch 😉

Den letzten Crash mit der Edge2 nahm ich zum Anlass mal den schweren Motor & Motortrger gegen was leichteres zu tauschen. Sperrholz, Leim, Epoxy wurden ersetzt durch Balsa, EPP und UHU por. Statt 10×4,7 nun ein 7×6 Propeller. Statt 900mAh Akku fliege ich nun 640mAh. Eigentlich wollte ich auch den Regler gegen ein leichteres Modell taschen, aber leider ist mir der 15A Regler vor dem Testflug abgeraucht – Ich hatte den Akku verpolt angeschlossen :-(
Trotzdem: von 270g auf 230g Abfluggewicht -> -40g = -14,8%

Der Testflug ergab: Der neue Motor ist stark genug fr die meissten Figuren. Senkrecht steigen geht aber nicht mehr. Alle Komponenten blieben cool – das war vorher nicht so – die Akkus wurden ziemlich warm. ber’s Flugverhalten kann ich noch nicht viel sagen – dafr war’s heute zu windig. Im Standschub zieht der Motor mit dem 8×4 Prop nur 5A(35W). Mit dem 10×4,7 Prop wird der Motor zu hei(7A)

Der kleine Motor heit brigens Wing Sing WS 730-1300kV
Der bisherige Motor ist der TowerPro 2408-21 W – der treibt jetzt meinen EasyStar mit 3S :-)