Nach dem ich den Rahmen und die Motoraufhänger gefräst hatte ging es nicht lange, bis ich den kompletten Quadcopter (Ich habe ihn mal Quadroder getauft) zusammengebaut hatte. Wie designed passten alle Teile 1A auf den Rahmen, so dass der Zusammenbau schnell und einfach von statten ging. Ich muss zugeben, dass das Projekt fast schon zu einfach zu bewerkstelligen war :).

Nach dem der Quadroder zusammengebaut war ging es an die Software und die Anbindung an die Fernbedienung. Was ich vorher nicht bemerkt hatte war, dass die Regler kein BEC haben, also keinen Strom über den Stecker, der zur Flight Control Naze32 geht führen. Das heisst, dass alles Strom hat, bis auf den Regler und der Empfänger. Also habe ich kurzerhand einen uBEC auf Ebay für 7€ geschossen und diesen eingebaut, damit alles soweit versorgt ist.

Die korrekten Anschlüsse für den Empfänger an der Naze32 zu finden war mit etwas Schwierigkeiten verbunden. Damit ich nicht noch mehr Kabel im Quadroder rumfliegen habe, habe ich mich dazu entschlossen die Signale mit einem einzigen Kabel zu übertragen (Summen Signal). Die Naze32 versteht das, wenn man diese vorher über USB verbindet und über Baseflight entsprechend konfiguriert.

Was allerdings noch fehlte und etwas Lötarbeit war, ist die Stromführung, denn schließlich muss jeder ESC mit 11,1V versorgt werden und zusätzlich noch der uBEC. Also habe ich einen Adapter gelötet, der einen Eingang und 10Ausgänge hat. Das war aber auch schon das einzige, was an Lötarbeiten getan werden musste.

Hier mal ein paar Bilder vom Quadroder
IMG_3496-0.JPG

IMG_3494.JPG

IMG_3490-0.JPG

IMG_3503-0.JPG

IMG_3502-0.JPG

IMG_3501.JPG

IMG_3500.JPG

IMG_3507.JPG

IMG_3552.JPG

IMG_3504-0.JPG

Wie bereits erwähnt wurde ich von der schnellen Lieferung etwas überrascht. Das Design für den Rahmen stand schon zu 98%, hatte aber hier und da noch ein paar Probleme. Der ursprüngliche Plan war, dass ich mir einen Porket Racer 240er Frame kaufe. Da der Preis dafür aber bei knapp 150€ liegt habe ich mich dazu entschlossen den Frame selbst zu entwickeln. Ich habe den Rahmen auf 250mm erweitert und hier und da ein paar Erweiterungen des Rahmens vorgenommen. Das grobe Layout habe ich mir auf diversen Bildern abgeguckt und mich einfach mal abends hingesetzt und alles am IPad mit der Software iDraw designed.

Neben den Standardschlitzen für z.B. Kabelbinder habe ich auch noch Löcher für die Flight Control Naze32 vorgesehen, damit ich diese Vibrationsgepuffert direkt am Rahmen anbringen kann. Da dies bestimmt nicht der letzte Rahmen war, den ich designen werde, wird es hier in Zukunft mehrere Versionen geben, die auf Grund von Erfahrungswerten besser zu den Komponenten passen, die ich verwende.

Um etwas Gewicht zu sparen habe ich mich für 1mm Carbon bei den Basisplatten und 2mm für die Motoraufnehmer entschlossen. Die Motoraufnehmer habe ich so konstruiert, dass sie 5″ als auch 6″ Rotorblätter halten können, ohne dass die Rotoren den Rahmen berühren. Für den Rahmen selbst habe ich Gummipuffer mit 6mm M3 Gewinde auf beiden Seiten verwendet und überall Stoppmuttern angebracht, wo Platz dafür war. Für den Rahmenaufbau selbst habe ich 40mm Distanzhülsen aus Polyamid verwendet, damit ich etwas Platz für die Elektronik habe. Die Carbon Platten habe ich bei Hadeg Recycling bestellt, die dafür bekannt sind Carbonplatten zu recyceln und neu zu verkleben. Positiver Nebeneffekt: Die Platten sind, verglichen mit den Preisen z.B. auf Ebay um einiges günstiger. Hier und da liest man, dass die Genauigkeit etwas zu wünschen übrig lässt. Damit hatte ich aber keine Probleme.

Um die Einzelteile zu Fräsen habe ich je eine 1mm und 2mm Platte in den Maßen 150mm x 300mm bestellt. Die bearbeitbare Fläche ist auf Grund des Rohlings etwas größer, als angegeben. Bei mir hatten die Platten eine Ebene Fläche von 180mm x 330mm. zum Fräsen habe ich einen 1mm Spiralverzahnten VHM Fräser verwendet. Mit einem Vorschub von 500mm ging die Fräse eigentlich relativ gelassen durch das Material. Hier würde ich aber noch etwas weniger Vorschub wählen und darauf achten, dass es ein frischer Fräser ist.

Hier mal ein paar Bilder von den Fräsarbeiten

IMG_3483.JPG

IMG_3481.JPG

IMG_3482.JPG

IMG_3479.JPG

Tja, wer hätte es gedacht, aber meine Lieferung von Hobbyking (China Warehouse) kam tatsächlich schneller als erwartet. Ich hatte bei Hobbyking folgende Sachen bestellt:

– DYS BE1806-13 Brushless Motor for Multirotor (2300KV) 24g
– Afro Slim 20Amp Multi-rotor Motor Speed Controller (SimonK Firmware)
– AfroFlight Naze32 Acro AbuseMark FunFly Controller
– 5030 Propellers (Black) – 3xCW and 3xCCW – 6pcs per bag
– Gemfan 6030 Multirotor Propellers One Pair CW CCW (Black)

Die 5030 Rotor blätter passen leider nicht auf meine Motoren, weswegen die eigentlich wieder verkauft werden können. Alles andere sieht soweit gut aus. Da ich über den Verlauf der Bestellung informiert sein wollte habe ich als Versandart eine mit Tracking genommen. Leider ist es hier etwas problematisch, denn Waren, die aus dem Ausland kommen, bekommen in Deutschland von DHL eine neue Trackingnummer. D.h. es kann mit der ursprünglichen Nummer nicht mehr getrackt werden, was echt schade ist. Die neue Nummer gab es in meinem Fall nur an der Hotline unter der Nummer 0228 4333118 (Für Einschreiben aus dem Ausland).

Nach dem das Paket nun endlich in Deutschland war ging es, wie sollte es auch anders sein zum Zoll. Hier klärte mich der freundliche Zöllner auf, dass es für Pakete, die RC Teile enthalten keine Obergrenze gibt. Man muss lediglich die 19% Mehrwertsteuer entrichten.
An vielen Stellen liest man, dass es noch eine Grenze bei 150€ Paketwert gibt. Scheinbar ist das nicht so und wenn, dann sind die 3% die dann on Top kommen würden auch noch verschmerzbar.

Nun aber zum Thema zurück. Wie kam ich auf oben genannte Bauteile?

Wie beim Thema Fräse ist es auch beim Thema Quadcopter. Es wird viel gefachsimpelt und auch viel gepöbelt, also habe ich mich einfach mal durch die Motoren bei Hobbyking geklickt und geguckt, was die so für Leistungsdaten haben. Oft stand dabei, dass es sich für Quadkopter von der Größe bis 250mm eignen. Wichtige Parameter für die Motoren sind unter anderem, wie viel er mit welchem Rotorblatt ziehen kann. Mit etwas Recherche und etwas Glück findet man jemanden, der das bereits ausprobiert hat und die Informationen sauber dokumentiert. In meinem Fall war das Hier: http://www.rcgroups.com/forums/showthread.php?t=2180080. Die Motoren ziehen also je nach Rotor schon ziemlich gut wie ich finde. Aufschlussreich ist auch, dass man hierüber gleich erfährt, welche Rotorblätter man mitbestellen kann. Als Anfänger im Quadcopter Business fand ich mich da vorher ziemlich aufgeschmissen.

Die Regler habe ich anhand der Motoren ausgesucht. 20A sollte eigentlich reichen und mit der SimonK Firmware sollten sie natürlich auch geflashed sein. Ich habe mich hier für die Slim Version entschieden, weil ich die Hoffnung hatten, dass ich diese relativ einfach an die Motorsbefestigung anbauen kann, was vermutlich aber etwas an Lötarbeit nach sich ziehen wird, da die Kontakte und Kabel etwas zu lange für meinen Geschmack sind.

Wie ich zur Flightcontrol Naze32 gekommen bin weiss ich gar nicht mehr. Ich glaube es hat hauptsächlich damit zu tun, dass ich dieses Video angeschaut habe und sie dort unter anderem erwähnt wird. Schlussendlich ein absoluter Glücksgriff. Die Spezifikationen haben mich auch angetan. Es rödelt ein 72MHz STM32 (32 Bit) auf der Platine, der für aktuelle Berechnungen etwas Luft nach oben hat. Erweitern lässt sich das ganze noch mit einem Barometer Sensor für die Höhe, oder einem GPS Sensor (wenn man die Variante kauft, die ich habe und nicht sowieso gleich alles an Bord ist). Geflasht und getuned kann das ganze via USB und dem Chrome Plugin namens Baseflight werden. Alles höchst komfortabel und absolut Stressfrei.

Das Gesamtpaket lag bei insgesamt 108€ inklusive Versand. Eigentlich wollte ich gleich noch einen LiPo Akku mitbestellen. Dann wäre aber das Paket über die 500gr Grenze gekommen und ich hätte noch einmal 20€ mehr für den Versand gezahlt. Also habe ich einfach davon abgesehen. für das Paket habe ich dann noch knappe 20€ für den Zoll gezahlt. Somit kostet die Elektronik insgesamt um die 130€. Verglichen mit den Preisen, die man innerhalb der EU zahlt war das eigentlich relativ erfreulich.

Ich habe mich dazu entschlossen einen Quadcopter zu bauen. Im Moment befindet sich die Lieferung der Einzelteile noch auf dem Weg, weswegen ich in diesem Beitrag kurz über das schreiben wollte, was ich bis zum Bau des Quadcopters so treibe.

Als erstes habe ich mir eine neue Funke gekauft. Bisher hatte ich eine MX-12 im Einsatz um verschiedene Depron Flieger zu steuern. Diese ist aber eine ältere Generation und funktioniert noch nicht mit der 2,4Ghz Technologie. Also musste eine neue her, am Besten auch mit etwas mehr kanälen, wer weiss, was in Zukunft noch so ansteht.

Ich habe mir nach kurzem Überlegen eine Graupner MX-16 Hott gekauft. Diese hat 8 Kanäle, 2,4Ghz und jede Menge Schnickschnack an Bord. Zuerst hatte ich mit einer Spektrum DX9 geliebäugelt, diese aber auf Grund von diversen Beiträgen die von Problemen handelten dann doch nicht genommen. Außerdem war diese um einiges teurer als die MX-16.

Nach dem ich die MX-16 Hott geliefert bekommen habe wurde gleich ein Update der Firmware auf dem Sender und auf dem Empfänger durchgeführt. Sicher ist bekanntlich sicher.

Da die Lieferung der Elektronik noch auf sich warten lässt habe ich mich um das Design des Quadcopters gekümmert, das ich hier zeigen werde, wenn ich den Rahmen fräse.
Damit meine ersten Ausflüge nicht gleich einen Crash zur Folge haben sollten, habe ich mich mal wieder mit dem Thema Flugsimulator beschäftigt. Da hat sich in den letzten Jahren so einiges getan. Als ich dann aber nach einer einfachen Möglichkeit zum trainieren mit meiner Funke gesucht habe biss ich aber vorerst einmal auf Granit.

Ich erinnere mich noch daran, wie ich früher eine Monoklinke zusammengeschraubt habe und meine alte Funke direkt über den DSC Ausgang mit der Soundkarte verbunden hatte und die Signale dann per PPJoy auf einen Virtuellen Joystick umrechnen lies. Das war ein ziemliches gefummel, funktionierte aber irgendwie, wenn auch nicht 100% sauber.
Nach den Monoklinke Versuchen hatte ich damals noch ein DSC to USB Konverter, der etwas besser funktionierte. Nervig war aber immer noch das Kabel der Fernbedienung am Sender zum Computer. Das knickte nämlich immer schön ab, wenn man vor dem Laptop / Computer saß und im Flugsimulator mitfieberte, bevor man den Vogel vom Himmel holte.

Mit so einer modernen MX-16 Hott müsste es doch in der heutigen Zeit etwas komfortabler sein dachte ich mir, zumal die Fernbedienung bidirektionale Datenübertragung zwischen Sender und Empfänger beherrscht, sowie Audiofiles über Bluetooth übertragen kann.

Nach etwas Recherche kam ich zu dem Ergebnis, dass es ohne Zusatzhardware einfach nicht funktionieren wird, also habe ich mir wohl oder über wieder einen DSC to USB Konverter gekauft. Diesen soll man aber tunlichst nicht an der MX-16 Hott betreiben, sonst kann es passieren, dass man die Funke nur noch als Türstopper verwenden kann. Schönen Dank auch. Etliche Seiten später fand ich dann aber noch eine Lösung, die nach meinem Geschmack war. Hardware kaufen -> Hardware aufmachen -> Hardware umlöten -> anschließen -> geht. Genau mein Geschmack!

Ich bestellte also einen Konverter auf Ebay (bitte keinen 4 Kanal Konverter kaufen, das braucht ja kein Mensch!). Als dieser ankam wurde er ausgepackt und ich lötete als erstes das Kabel das vom USB Teil des Konverter weg geht ab. Nun kann man einen einfachen Servostecker (Graupner JR) nehmen und diesen wie folgt anlöten.
Der Pluspol aus der Mitte des Steckers kommt an +5V am USB Teil
Der Massepol (meist Braun, oder Schwarz) kommt an den Masseanschluss des USB Teils
Der Signalpol (war bei mir Weiß) kommt an den Punkt, wo das vorher abgelötete Kabel angeschlossen war.

Wenn die Lötarbeiten abgeschlossen sind genügt es in den Einstellungen der Fernbedienung die Übertragung auf Summenkanal umzustellen, schon kann man das neu erworbene und umgebaute DSC to USB Teil direkt am Computer mit dem Empfänger verwenden. Kein Kabel, keine zusätzliche Batterie, viel Spaß!

Hier noch ein paar Bilder von dem neuen USB Teil
 IMG_0482.JPG

IMG_0479.JPG

IMG_0480.JPG

Pololu A4988 copper Heatsink kupfer kühler

Nach dem ich nun einige Fräsarbeiten hinter mir habe musste ich bei größeren Arbeiten feststellen, dass meine Fräse Schritte verlor. Ich habe ziemlich schnell die Schrittmotortreiber im Verdacht gehabt. Diese wurden bei langen, schnellen Fahrten ziemlich heiß und schalteten kurz ab. Sobald die Fräse nach einer kurzen Pause abgekühlt wurde, verschwanden die Schrittfehler für kurze Zeit, bis sie wieder aufgetreten sind.

Nach Messungen wurden die A4988 Motortreiber nach kurzer Zeit über 80 Grad heiß. Da die Pololus bei 90 Grad kurz abschalten waren diese natürlich an der Grenze. Kein wunder, denn die Motoren ziehen gute 1,6A.

Nach dem ich die Schrittmotortreiber versehentlich getoastet habe brauchte ich einen Satz neue Schrittmotortreiber. Ich entschied mich diesmal die Black Edition der Pololu A4988 zu kaufen, da diese durch die vier lagige Platine mehr Wärme abführen können. Allerdings steht auf der Pololu Webseite, dass ab einem Strom von 1,2A eine zusätzliche Kühlung stattfinden muss.

Diese hatte ich vorher über passive Kühler und einen Lüfter realisiert, was aber nicht wirklich reichte. Die Mini Kühler, die es für die Pololus gibt taugen meiner Meinung nach nur, wenn man leicht über die von Pololu genannten Grenze kommt.

Es musste also etwas besseres her. Nach etlichen versuchen diverse Aluplättchen auf die Controller zu kleben und darüber die Wärme abzuführen kam ich auf Kupfer.

Auf Ebay habe ich Kupferstäbe gefunden, die 8x8mm haben und 10cm lang sind. Genau das richtige dachte ich und bestellte welche.

Nach etwas hin und her habe ich den Stab mit der Fräse endlich zugeschnitten, so dass ich zwei identisch aussehende Brücken aus Kupfer habe. Man kann die Kupferstäbe nicht ohne weiteres auf dem Controller befestigen, weil umliegende Bauteile höher sind, darum musste ich eine Seite etwas aussparen.

Nach dem die Brücken fertig waren habe ich sie noch etwas poliert und auf die Controller geklebt. Nach etwas Recherche habe ich mich für das entschieden, was herum lag – Schraubensicherungslack. Dünn aufgetragen halten die Brücken ziemlich gut und nehmen die Wärme relativ gut auf.

[Nachtrag]

Mittlerweile kam der Northbridge Kühler an, den ich für die Kupfer Kühler zweckentfremde. Dieser passt dank der Klebepads super auf die Kupferbrücken und führen die Wärme ebenfalls gut ab. Die Pololu Black Editions kommen nun nicht mehr über 50°C, was ein echter Fortschritt ist!

We stumbled across some strange acl problems when we move files at our fileserver (2008R2).

The first time we saw this problem, we thought it is a server problem, because moving files from one fileshare to another fileshare on the same server lead to inconsistent file acls on the moved files. All ACLs were inherited from the root folder, so moving a file from one share to another should inherit the ACLs as well. But that wasn’t the case.
After a bit of research we found some entries and a hotfix from microsoft, that addresses this issue. It can be found via google by searching for MoveSecurityAttributes.
For Windows XP you can set a registry key to solve this problem. To solve it with Windows 7 you have to download a hotfix and apply the registry key to your client to handle the ACLs by moving files corretly.
Everything worked perfect until another inconsistent ACL problem email hit our ticketsystem.
We investigated again and checked everything. Moving files from one share to another on the same server doesn’t occur. But this case doesn’t have anything to do with moving files from one share to another. It occurs when we move a file from inside of a share to another subfolder with different permissions..

Let me explain that.

Example 1 (solved by MoveSecurityAttributes)

Location: \\ad\share1\file1.txt
Folder-ACL: rol-grp-share1-RW

Moved to

Location: \\ad\share2\file1.txt
Folder-ACL: rol-grp-share2-RW

File permissions of file1.txt: rol-grp-share2-RW (correct)

Example 2 (not solved by MoveSecurityAttributes)

Location: \\ad\share1\subfolder1\file1.txt
Folder-ACL: rol-grp-share1-subfolder1-RW

Moved to

Location: \\ad\share1\subfolder2\file1.txt
Folder-ACL: rol-grp-share1-subfolder2-RW

File permissions of file1.txt after moving: rol-grp-share1-subfolder1-RW (incorrect)

As you can see, moving files across shares does inherit the ACL from above, but moving files inside a share from one folder to another with different ACLs doesn’t inherit the ACL.

This is one of our next call we will report to Microsoft

Have you ever experienced some kind of performance gaps with your DFSN running on powerful (hardware) Windows 2008 R2 server? Maybe this is the right post for you.

Let’s get back to where everything began.
One cloudy day we and our users experienced some heavy gaps while accessing the list of all connected drives (also known as My Computer). When they access „My Computer“ the explorer was frozen for a couple of seconds until everything went back to normal. These gaps happened the whole day. Sometimes they come and go within the whole day, sometimes these gaps only appear in the morning or in the evening and everyone using a software from a DFS share experienced the same problem at the same time as well.
After checking the defaults within our AD and the file servers we tried to dive deeper, to become a feeling why this happens and what is the cause.

Our Environment

Let’s explain, how our environment looks like without telling you too much.
– 8000 clients
– 8 file server ( 4 x 2 Clustered )
– 4 DCs (two of them hold the Domain Based DFSN Namespace)
— Hardware: Every Server: 16 Cores / 32GB Ram
— Network – strong enough
– Single site!
– DFSN structure looks like this
— \\local.domain\homefolder (~8000 DFS Links) # mapped home directory
— \\local.domain\profilefolder (~8000 DFS Links) # for roaming profiles
— \\local.domain\poolfolder (100 DFS Links) # file graveyard
— \\local.domain\datafolder (~3000 DFS Links) # folder to store files that is accessed by groups of people

Every DFS Root Namespace uses ABE (Access Based Enumeration) to hide all folders for users without access rights.

The first thing we checked was, if our DFSN is within the recommendations of Microsoft. We found some information about the maximum DFS Link recommendation, but this belongs to Windows Server 2000 DFSN and not to Windows Server 2008. Here is the knowledge base entry (http://support.microsoft.com/kb/232613/en-us), that recommend a soft limit of 5000 links per DFS. The really neat information you can get from the DFS Replication scalability guidelines is the following:

You can successfully deploy configurations that exceed any or all of these tested limits. However, it is important to test large configurations and verify that there is adequate space in the staging folders before using them in production environments. In addition, you might experience increased latency during replication. See the following Web pages for additional information: Understanding DFS Replication "Limits"

Keep this in mind, because it turns out that you have to deploy a really really big test environment to be sure everything works fine.
Also keep in mind that we don’t use replication (DFSR)

After reading all the DFS information around the internet / books / etc… we were sure, that our environment is within every recommended limit we can find.

The next thing that came to our mind was the network. Our experience is, that if it isn’t wsus and av is has to be a network issue ( 😉 ). That, indeed wasn’t the problem here. Thanks to our network guys for tracing everything down!

The next problem we had was, that we can’t reproduce the failure and the event logs on every server doesn’t give us any hint that there is a problem with the AD or the DFS or our file servers. We started to eliminate everything we can to border our problem.

What we have done

– We patched the firmware of our servers
— (First question at the hardware suppliers hotline: Have you updated to the actual firmware?… Ähhhm, nope, who runs updates in a productive environment ever week for the firmware of something called everything?! )
— Disabled teaming to reduce complexity
— Disabled network offloading (maybe a hardware bottleneck)
— Checked DFS with the DfsDiag / and other Microsoft diag tools
— Read a lot about dfsdnsconfig (but didn’t change the setting, because it seemed to not solve our problem)
— Sniffed traffic while the problem occured on our DCs
— Run procmon to check if it is a problem with the local filesystem
— Applied every DFS and Fileserver patch around

Nothing gives us a clue. Every time when we awaited the problem with our analyze tool nothing happens. This was a hard time for us, because without the ability to reproduce the problem we could not solve or even find the problem.

One evening we had some gaps for several hours. They came in waves with a small time where everything went back to normal. So I checked what I did at that time and found out, that a script of mine created some Dfs links. This isn’t unusual, because this script runs now nearly for 2 1/2 years to create shares when someone requests it. This script kills our DFSN for some kind of reason. We investigated, what this script does and checked, at which point the DFSN problem occurred.

So we investigated our seemingly perfect running DFS.

Everything was running, perfmon, procmon, wireshark and so an (on every DC). After we walked through our script step by step the access problem occurred after we create a new DFSN Link. This was really surprising to us, because something so fundamental should work without any problems, as it did for years now.
With all the information of our log files we put together the whole picture of our problem.

Procmon’s last entry before the problem occurred was an NTFS information about the USN (Update Sequence Number Journal) at the c:\DFSRoot\xxx folder.
After this record our wireshark showed a huge list of directory request from thousand clients for the particular DFSN Root Namespace where the folder was created. After all these request hit our DFSN servers the CPU usage of our servers hit 60%.
Summary: The amount of clients take out our DFSN servers.

Where does this come from?
The reason why this happens is, that every change to the DFSN Namespace affects the c:\DFSRoot\xxx folder. This USN change notification is recognized by samba. Samba checks, if someone has an active session to the c:\DFSRoot\xxx folder. Every client that is using DFS (possibly every client) via an open doc file, or open explorer (tree listing at the left windows side) has this open connection. Samba notifies all clients to reload the information (called notify change request) instantly and the server stops responding for a couple of seconds / the server have to queue requests until every client has its information.

That’s it, this is our problem and there is no way around at the moment. It’s possible to deactivate the response to this change notification at client side, but this has an huge impact, because the users have to refresh the explorer too often. This, in case is not an option for our productive environment.

Back to the point, where I wrote you should keep this in mind (test environment): I think it is nearly impossible to build such a big test environment, with thousand of active clients and active sessions to your DCs. To test this, you should have a huge amount of DFS links, 1000+ logged on clients with active sessions to the server and so on.

The only way, to reduce this problem is to add more DFS Namespace server to spread the request to more servers. Disabling ABE could resolve the situation, but this has a big impact to the users as well.

Since we attend TechEd Europe for 10 years now, we send this to some contacts we made at several TechEds and get a response from Microsoft. They are creating a hotfix for this problem, because this should not happen. The release date will be middle of February 2014. Hope this will bring help us to solve this problem forever.

Hopefully someone else helps this posting to get closer to the solution.

[addition]

We opened a call at Microsoft Premier Support for this issue and hope to get some Information on how this issue can be solved.

[Update]
Meanwhile we spent a lot of time with the open case and talked to some Microsoft Product Manager at the TechEd at Barcelona. We have a workaround for this issue, but no solution.

Microsoft confirmed this issue. The DFS Servers are too busy with evaluating the ACLs on our ABE enabled shares and a gap of unresponsibility will occur, that lead client Explorers and applications to hang and loose connectivity to the affected shares for some seconds / minutes.
We prove some fixes from Microsoft to solve this issue, but nothing worked (hotfixes, registry values, etc…). We had this problem over and over again.
Another idea was to restructure out DFS Namespace, but this isn’t anything we want to do to our users, because they are busy enough finding their files in the new environment. Restructuring everything will result in a huge user frustration… Nothing an Administrator wants to be responsible for :).

After a couple of weeks and lots of discussion we decided to implement a workaround and only add new shares at night, when we can ensure, that the server load for adding new shares is low enought, that the ABE ACL evaluation won’t kill our servers.

We have the possiblility to forward this case to a Microsoft process ( DCR – Design Change Request), that maybe leads to a real solution in Windows Server, but this is time expensive (create perfmon logs, etc…) and needs more than one company with this issue and an open case at Microsoft until someone will work on a solution for this.

Here are some ideas to fix this issue. Maybe someone can solve it with this list (we couldn’t).

  • KB2920591
  • Enable RootScalability Mode (KB2937429)
  • Enable RSS (TCP ReceiveSideScaling, s. regkey EnableRSS, KB951037)
  • Raise MaxThreadsPerQueue – HKEY_LOCAL_MACHINE\CurrentControlSet\Services\LanmanServer\Parameters\MaxThreadsPerQueue = 256 (default=20)

eShapeOko mit LED

Nach dem es nun einige Zeit still war gibt es hier mal ein kleines Update. Meine eShapeOko hat schon einige gute Dienste verrichtet, die ich demnächst hier veröffentlicht werde. Was sich aber an der Fräse getan hat ist, dass sie eine Led Beleuchtung als Upgrade bekommen hat. Hervorragend geeignet dafür sind die Alu Profile der X-Achse. Diese haben jeweils zwei Nuten, in die eine Standard Led Lichterkette von Ebay rein passt.
Diese wurden einzeln verlötet und an den 12V Anschluss des Fräsen Netzteils angeschlossen. Hier mal ein paar Bilder davon

Mittlerweile habe ich die Kress an die Fräse gebaut. Obwohl ich erst dachte, dass die Standardhalterung zu klein für die Spindel ist habe ich die Kress mit etwas sanfter Gewalt doch angebaut bekommen. Nun konnte ich bereits meine ersten kleinen Teile fräsen. Ich hatte zwischendurch etwas Schwierigkeiten mit dem Vorschub. Zuerst dachte ich, dass die Zahnriemen zu schlaff sind, also habe ich diese gestrafft. Mittlerweile habe ich sie so weit gelockert, dass die Achsen nun flüssig laufen, der Zahnriemen aber kaum nachgibt.
So liefen die ersten Fräsversuche auch erfolgreich durch. Unter anderem lag dies daran, dass ich Holz in 2mm Schritte abgetragen hatte und dabei einen Vorschub von 500mm/min verwendet habe. Sobald ich den Vorschub auf 2000mm/min erhöht habe und 6mm Holz pro Durchlauf erhöht habe traten die ersten Probleme auf. Ich bemerkte auf der X Achse erste Verzerrungen beim Fräsen bis komplette ausfälle beim Verfahren, so dass einige Werkstücke kaputt gefräst wurden. Ich dachte ebenfalls, dass dies an falsch gespannten Zahnriemen lag und habe hier nachjustiert. Ohne Erfolg.
Dann habe ich den Riemen entfernt und den Motor überprüft und festgestellt, dass der Motor Schritte nicht dreht, wenn die Belastung zu groß ist. Dafür habe ich den Riemen entfernt und den Motor laufen lassen und sie mit dem Finger gebremst. So viel zu den High Torque Schrittmotoren :). An denen konnte es theoretisch auch nicht liegen und so war es auch. Ich habe nochmal die Spannung an den Schrittmotortreibern nachgemessen. Diese waren fast alle komplett unterdimensioniert. Nach dem ich nun alle Schrittmotortreiber auf ca 0,47V eingestellt habe liefen die Motoren mit voller Kraft, was ich an einem leicht gequetschten Finger festgestellt habe :).

Firefox Xmarks

Paul (Nickname Killerx) did a great job with developing the GPO add-on for Firefox called GPOFirefox.
There are a couple of Extensions out there, that handle the interface between Firefox and the Registry. That’s in case all you need to do, if you add some of these admx files around for managing Firefox through GPO. Since Paul stopped the development of the Gpofirefox add-on with version 5 of Firefox there are some things, that this add-on can’t handle.

First of all, there are some differences between this add-on and other add-ons like for example the one of Frontmotion, which isn’t really a add-on. It’s kind of build into the so called Community Edition of Frontmotion Firefox. The Frontmotion add-on lacks at some point, when you need to change more settings than just the defaults like browser startup homepage, or proxy settings. If you only need these few defaults, I would recommend to use Frontmotions version, instead of any other, because Frontmotion comes with a customized admx file for all default settings in Firefox. The point, where this is not enough is when you want to change settings for example of an extension. Because Frontmotions admx file doesn’t support custom settings, so you can’t handle this.

Lets explain, how these GPO add-ons work.
Frontmotion offers an admx template that can be imported to your active directory gpo manager, to change all default settings. In the background, everything is done by writing some strings to the registry. Firefox reads these values and changes them locally in your running Firefox (about:config). That’s it. So, to test these add-ons, all you need to do is just open your registry editor and go to \HKLM|HKCU\software\policies\mozilla\defaultpref|pref|lockedpref (depending of kind of GPO add-on you are using). Here comes the gap.
Frontmotion doesn’t support any other values than the default settings of Firefox. Although this is really long list, but you are not able to control any setting that doesn’t belong to the default set of Firefox. Even if you set custom settings in your registry, they aren’t noticed! GPOFirefox does support these custom values, but lacks at some point as well. For example, if you want to use xmarks with your own server, you can set extesnions.xmarks.useOwnServer to true.
After putting it to the registry it looks like this:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Policies\Mozilla\defaultpref] "extensions.xmarks.useOwnServer"="true"

This setting only applies to your Firefox (about:config) if it already exists in your about:config list. Otherwise it is dropped and you can spend hours to check your settings until you notice, that it is not provided to set not existing values. Why is that? GPOFirefox reads all of your values without any limitation. After reading, the add-on tries to change these values in Firefox. Because Firefox has different types of variables, (string, integer, boolean) it first reads the variable type (in your about:config list), to set the correct variable type and its value. That means, if your add-on tries to set a value that doesn’t exist in Firefox already, it can’t determine the variable type and wont write your setting to Firefox. Pretty uncool.
After extracting Pauls add-on I extended it to the ability to write a setting to Firefox even if it doesn’t exists. This is done by checking, if the value exists (like before) and if it doesn’t exists, the add-on tries to detect, what type the value is. If your setting extensions.xmarks.useOwnServer doesn’t exist, my code extension checks the value (in this case the value is „true“) and writes a Boolean preference to Firefox.
I stumbled across another problem, which is a bug in the add-on. If you try to set a Boolean value that is „false“, e.g. to turn off the telemetry stuff in Firefox the add-on sets this value to true. I think this happens, because the used function to create bool settings in Firefox needs an bool parameter and not a string parameter like the add-on uses. Maybe the setter function checks if the committed parameter is Boolean by checking it like „if (parameter) { write true } else { write false}“.
In this case every string is interpreted as Boolean:true and leads to this wrong behavior!

Because I don’t want to hurt any copyrights and to respect Pauls great work I only publish some instructions on how to extend the add-on by yourself.

First of all you need three Things:
– 7 Zip
– Firefox (my Version is 24)
– The gpofirefox add-on (https://add-ons.mozilla.org/de/firefox/add-on/gpo-for-firefox/)
1. Use 7Zip to extract the XPI File
2. Go to the extracted folder and open the chrome folder
3. Use 7Zip to extract the gpofirefox.jar
4. Delete gpofirefox.jar
5. Modify the file gpofirefox.js in <extracted-extension-folder>\chrome\gpofirefox\content\ (difference between original and modified)
6. Mofify <extracted-extension-folder>\chrome.manifest ( difference between original and modified )
7. Go to <extracted-extension-folder> and Select „chrome“, „defaults“, „chrome.manifest“, „install.rdf“ and use 7.ZIP -> Add new archive (zip)
8. Rename the created zip file to gpofirefox@extensions.org.xpi
9. Install your add-on (or copy it to extensions folder) Renaming and modifying the internal add-on structure is to simplify the add-on for further changes

Please leave me a comment. I’m actually thinking about creating an add-on like this with some further functionality like adding the ability to write to sqllite databases (popup blocking), replace / update files in the profile and so on. Everything controlled by the registry via group policy AD Things .
For testing purpose you can use a registry file like the below one.

Keep in mind, that these settings are only for the CURRENT_USER. If you want to set everything machine wide you have to rewrite the reg file to HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER


Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Mozilla]
[HKEY_CURRENT_USER\Software\Policies\Mozilla\defaultpref]
"browser.startup.homepage"="intranet"
"browser.search.suggest.enabled"="false"
"browser.shell.checkDefaultBrowser"="true"
"browser.tabs.warnOnClose"="false"
"extensions.zotero.firstRun2"="false"
"signon.rememberSignons"="false"
"startup.homepage_override_url"="intranet"
"extensions.pendingOperations"="true"
"extensions.xmarks.username"="marco"
"extensions.xmarks.sync-tabs"="true"
"extensions.xmarks.syncOnShutdown"="1"
"add-on.disable_full_page_add-on_for_types"=""

[HKEY_CURRENT_USER\Software\Policies\Mozilla\lockPref]
"datareporting.healthreport.uploadEnabled"="false"
"toolkit.telemetry.enabled"="false"
"toolkit.telemetry.prompted"="2"
"toolkit.telemetry.rejected"="true"
"privacy.donottrackheader.enabled"="true"
"extensions.update.notifyUser"="false"
"browser.search.update"="false"
"browser.rights.3.shown"="true"
"extensions.blocklist.enabled"="false"
"extensions.autoDisableScopes"="0"
"extensions.zotero.firstRunGuidanceShown.saveIcon"="true"

If you want to add your settings to a GPO, open the Group Policy Management and edit your current / create a new GPO object. Now you have to choose if you want to create registry entries for user (user configuration) or computer (computer configuration). Afterwards choose [ Settings -> Windows Settings -> Registry ]. We decided to create two sub folders, one for locked pref and one for default pref, as shown here:

GPO Firefox Registry Settings

GPO Firefox Registry Settings

Next step: Create a new registry element at the right side. This could look like this:

GPO Firefox Registry Settings

GPO Firefox Registry Settings

How about an ADM/ADMX file?
– If you want to use an ADMX file you have to create it from scratch.
– There are so many settings available in Firefox itself that it would take too long to create it.
– It’s not flexible enough, because every add-on has its own settings.
– If you add another add-on / update Firefox you maybe have to extend your own ADMX file.

These are the reasons why I prefer adding everything „raw“ to the registry. For deactivating some Firefox features you have to Google once, or check the prefs.js file changes These bugs are fixed with version 0.9.3 –

kress 1050 fme-1

Das Internet ist manchmal alles andere als ein guter Ort für Tipps. Zuerst hatte ich die Idee, mir eine Spindel selbst zu bauen. Dafür kann man einen Motor aus dem Modellbaubereich nehmen und so umbauen, dass dieser eine Spannzange aufnehmen kann. Dort kommt dann der Fräser rein und alles könnte so schön sein. Nach dem ich einige kritische Nachrichten gelesen habe, was manche für einen Aufwand betreiben um die Querkräfte dieser DIY Spindel aufzufangen habe ich davon abgesehen. Ich wollte, dass die eShapeOko in diesem Jahrhundert noch in Betrieb geht, also habe ich auch eine Kress 1050 FME-1 gesetzt.
Dieser Oschi wiegt satte 1,7 KG und dreht von 5000 bis maximal 29000 Umdrehungen pro Minute. Dabei macht sie zwar viel Wind, aber zum Glück nicht so viel Lärm.
Da ich bisher noch keine Ergebnisse habe, da die Kress eine Nummer zu fett für die Standard eShapeOko Aufnahmehalterung ist habe ich einen Freund gefragt, der mir eine entsprechende Halterung für dieses kleine Monster baut. Sobald diese fertig ist kann das Testfräsen also endlich losgehen, yay! Bestellt habe ich die Kress mit einer Spannzange für 3,125mm Schaftdurchmesser, als auch für Schaftdurchmesser mit 8mm.

Gaups GRBL Shield Pololu a4988

Was bringt die Platine überhaupt?
Die Platine dient eigentlich nur dazu, den Aufbau sauberer zu machen, als dies auf einem Steckbrett zu schaffen ist. Sie hat saubere Leiterbahnen und bietet alle möglichen Vorzüge gegenüber eine manuell hergestellten Platine!

Wie bereits in vorherigen Postings zu lesen ist gibt es bei der Platine, die ich aus der USA bestellt habe Probleme mit der Lieferung. Mittlerweile ist die Platine wohl auf deutschem Boden, was aber noch lange nicht heißt, dass ich sie in meinen Händen halte. DHL kann mir ebenfalls keinen Aufenthaltsort nennen, da DHL das Tracking für Briefe dieser Art nicht anbietet. Also ist die Buildlog.net Platine erst einmal verschollen, was mich ehrlich gesagt ziemlich nervt. Nicht nur, dass EJ nicht in die Pötte kommt, nein, nun muss ich auch noch auf DHL warten.
Das ich dieses Problem schon vorhergesehen habe, habe ich mir eine ähnliche Platine namens GAUPS vom eShapeOko Hersteller Catalin bestellt. Diese kostete 10€ + ein paar Euro Versand. Da sie im Webshop als verfügbar aufgelistet war ging das Paket auch innerhalb von 4 Tagen nach Versand bei mir ein.
Das freut das Bastlerherz, denn nun konnte dieses Kapitel auch endlich weitergehen. Ich habe also Teile zum Bestücken der Platine gekauft ( rund 15€ ) und alles zusammen gelötet und verdrahtet. Das sieht natürlich um Welten besser aus als es vorher war. Ich habe ein paar kleine Veränderungen gegenüber der Anleitung vorgenommen. So ziert keine DIP Schalter Leiste das Zentrum der Platine, sondern einfach 2 Lochleisten, die ich mit Kabeln verbinde um die Microsteps für die Motoren festzulegen. Das hat einfach den Grund, dass es in meinem Elektronikladen keine 12 DIP Schalter Leisten gibt. Das Maximum waren 6er Leisten. Diese haben aber das Problem, dass sie zu breit sind und somit nicht nebeneinander passen. Nach dem die Platine sauber zusammen gelötet und verdrahtet war habe ich noch 30 Minuten einen Fehler gesucht, der gar nicht da war. Im Gegensatz zu meinem Testaufbau sind die Motoren nämlich nicht die ganze Zeit mit Strom versorgt, sondern laufen nur, wenn etwas gefräst werden soll. Das fiel mir auf, als ich zufälligerweise ein Testprogramm abspielte und die Fräse einwandfrei los lief.

Wie bereits erwähnt wird die buildlog.net Platine direkt verscherbelt. Sollte jemand Bedarf daran haben kann er mir ja gerne schreiben. Wann diese allerdings eintrifft wissen vermutlich nicht einmal die Götter!