Saturday, 16 May 2020

Tello Motor Repair done right!

How to change a Tello Ryze Drone motor

Other instructions on the web


Before attempting the repair, I checked the web for tutorials. But found most of them pretty terrible, usually causing permanent damage or ugliness to that nice drone.
All except one from DroneZone, which I only found after having finished the repair :-(

That is what a decent job looks like

Tools required

While not really a tool, you need a replacement motor. There are several sources on the web, but they come with small weirdnesses like gears or plugs. Like so often, I got mine from Banggood. They come in two wire lengths (71mm or 87mm), but as a wire can never be too long, I went for the 87mm, although I needed to replace a front motor, where the leads are shorter.
These motors are properly keyed, so you can't confuse the clockwise and counterclockwise motors.

Other than that, good quality precision screwdrivers are a must. Poor screwsrivers ruin the screws. I currently use both a Wowstick, and traditional hand tools, depending on the job at hand.
And of course the wonderful, regulated Mini TS80 soldering iron. The first USB iron that doesn't suck. It does not come cheap, but during the building renovations, when I had no lab space, I learned to love it and won't go back to my old Ersa iron.

Other household items include
  • a pin to peel off the gunk that seals the solder points
  • wire cutters / needle nose pliers
  • Tweezers are handy, too

Problems encountered

If you follow my video (see here), you will find that I struggled at a few points

Cracking the case open

The plastic is very thin, so go around the edges carefully with a spudger.

Removing the gunk over the solder pads

This was a pain. I tried several methods. What worked best in the end was to peel the silicone-like gunk off with a needle. No great fun.

Soldering

Desoldering needed more heat than I thought, given the delicate wires. That might have to do with the solder. I set the iron to 340 degrees centigrade. Later, when soldering the new wires to the board, the joints went dry immediately, so I replaced the solder. (Using solder wick)

Hotglue over the cable duct

Where the motor wire enters the body, there is a drop of hot-snot over the groove the wire runs it. This needs to be cleaned out.

Getting the motor out

That was not really hard. I could pull it out with my pliers, but the cable running through the motor holder gave quite a bit of resistance. So I smelled trouble getting the new wires in.
Motor arm

Putting the new motor in

The actual trouble is to get the new wires through the tiny hole in the motor arm. The trick is to bend the wires at an angle. You can see that in my video.

Final words

After the repair, I went through two freshly charged batteries. No problems. And other than in some repair videos, the drone does not look like it had been chewed up by a dog after the repair.


Friday, 15 May 2020

Benefits of using hardware encoding on an Intel HD 630 with ShotCut

CPU Power vs GPU for Video Processing

My prefered video editor
Shotcut Video Editor

Hardware

My Fujitsu Esprimo Q957 is more of an office PC than a Video editing, Coding, 
CAD or hardware experimenter's platform. But for the space it takes on my much-too-small desk, it does an amazing job in all of the above disciplines.
CPU-Z shows the GPU
So all in all, I didn't think the integrated GPU could help me getting the jobs done more quickly.

Encoding on the Intel HD Graphics 630

A near 15 minute video I currently work on, needed an unusually high number of modifications. Each with a lot of noise from the fans running at full speed.
100% CPU
This took nearly 8 minutes at an unpleasant noise level. Time to investigate alternatives...
Let's try that...
Involving the GPU is amazingly efficient. Less CPU usage and the GPU at a little over 50%, along with somewhat less noise.
CPU-wise this does not look like a massive difference, bit it is.
The best part: Videos now encode in half the time. Much better than what I had expected from an integrated "Office-PC" GPU.
Success! Less than half the time :-)

PS: Here is the link to Shotcut (free and open source)

PPS: To my amazement, the tiny Fujitsu desktop easily outperforms my relatively recent Surface Laptop 2. The benchmark only shows a little over 10% difference ( https://cpu.userbenchmark.com/Compare/Intel-Core-i5-8350U-vs-Intel-Core-i5-7500T/m388461vsm218898 ), but the system takes 6 minutes for the same job as above, even with the help of it's Intel HD 620. 

Friday, 14 February 2020

Verkonfigurierten USB Stick retten


Nach Experimenten mit einem Linux-Live System auf einem USB-Stick, erkannte Windows das Gerät nicht mehr ordentlich. Der grafische "diskmgr" brach an den entscheidenen Stellen mit Fehlermeldungen ab.

English version <here>

Hier die Vorgehensweise:
In Win10 die Administrative Shell starten (Rechtsklick auf das Windows-Logo, dann "Windows PowerShell (Administrator)" starten.
Dort "diskpart" aufrufen

DISKPART> list disk

  Datenträger ###  Status         Größe    Frei     Dyn  GPT
  ---------------  -------------  -------  -------  ---  ---
  Datenträger 0    Online          238 GB  1024 KB        *
  Datenträger 1    Online           29 GB  1024 KB

DISKPART> select disk 1

Datenträger 1 ist jetzt der gewählte Datenträger.

DISKPART> list disk

  Datenträger ###  Status         Größe    Frei     Dyn  GPT
  ---------------  -------------  -------  -------  ---  ---
  Datenträger 0    Online          238 GB  1024 KB        *
* Datenträger 1    Online           29 GB  1024 KB

DISKPART> clean

Der Datenträger wurde bereinigt.

DISKPART> create partition primary

Die angegebene Partition wurde erfolgreich erstellt.

DISKPART> active

Die aktuelle Partition wurde als aktiv markiert.

DISKPART> list part

  Partition ###  Typ               Größe    Offset
  -------------  ----------------  -------  -------
  Partition 1    Primär              29 GB  1024 KB

DISKPART>

Spätestens jetzt erscheint das Laufwerk mit einem Laufwerksbuchstaben im Explorer und kann wie gewohnt formatiert werden.

Achtung: Wählt man die falsche Disk, kann man sich leicht das System zerstören. Ein Vergleich der Ausgabe von "list disk" mit eingestecktem und abgezogenem USB-Stick hilft die richtige ID zu finden.

USB drive recovery after partitioning problems


This article once again is a "note so self" so I remember how to fix my thumbdrive after a screw-up experimenting with Linux;

In win 10 start "Windows Power Shell (Administrator)
Start "diskpart", then:

DISKPART> list disk

  Datenträger ###  Status         Größe    Frei     Dyn  GPT
  ---------------  -------------  -------  -------  ---  ---
  Datenträger 0    Online          238 GB  1024 KB        *
  Datenträger 1    Online           29 GB  1024 KB

DISKPART> select disk 1

Datenträger 1 ist jetzt der gewählte Datenträger.

DISKPART> list disk

  Datenträger ###  Status         Größe    Frei     Dyn  GPT
  ---------------  -------------  -------  -------  ---  ---
  Datenträger 0    Online          238 GB  1024 KB        *
* Datenträger 1    Online           29 GB  1024 KB

DISKPART> clean

Der Datenträger wurde bereinigt.

DISKPART> create partition primary

Die angegebene Partition wurde erfolgreich erstellt.

DISKPART> active

Die aktuelle Partition wurde als aktiv markiert.

DISKPART> list part

  Partition ###  Typ               Größe    Offset
  -------------  ----------------  -------  -------
  Partition 1    Primär              29 GB  1024 KB

DISKPART>

Looks good now. At this point the drive shows up in Windows File Explorer and can be formatted from there.



Friday, 24 January 2020

Testing a Bakeey microSD card

Is the Bakeey Extreme 64GByte any good?

The claims

Hard to see specs
The rough surface makes it hard to identify the markings. But as far as I can see, it claims to have the following characteristics:


  • 64 GByte capacity
  • Class 10
  • UHS: U3
  • Video Class: V30
  • Class A1
  • UHS1 (Bus Logo: I)
The question is: What does it all mean, and can I test that?




I bought the set (card/adapter/reader (usb-c / usb-a) here from Banggood.

I use h2testw to test the capacity and read/write speed. So from the results, I can see:
  • It really has the 64GBytes, so no fake that overwrites itself: OK
  • Class 10: I get a 13,4MByte/s write speed, so it meets the class 10 specs: OK
  • U3: With the supplied USB adapter, I could not get anywhere near 30MByte/s write speed. So for the moment the answer is: No!
  • V30: Again not with my adapter: No!
  • Class A1: That's 10MByte/s write speed and a low number of IOPS. So: Very likely OK
  • I logo: With the UHS-1 logo, the bus speed can be 12,5 to 104 MByte/s: Again likely OK
The read-speed I got was 17,4MByte/s with the supplied USB Card reader. Again not fantastic, but ok for a class 10.


EDIT: I re-tested with an USB3 card reader. The results were somewhat better:

  • 18.9MByte/s write rate
  • 31,6MByte/s read rate


I wanted to try 4k video streaming in my Olympus OM-D, but with the Micro-SD to SD adapter, the camera reported a card error. So I have no way to verify the 30MByte/s claim. But I have a compatibility issue with either the card or the adapter and the Olympus camera.
No issues in a Macbook Pro with the same adapter, though. Seems like a real compatibility issue.

Bottom line


For the card and the two adapters, I paid 10 USD. That appears fair for the set, but cards with similar specs are available from Transcend or Kingston in the same price range. An ok deal, but no need to rush. For my camera, I'll stick with a SanDisk Ultra that guarantees 40MByte/s for 4K recording.
All in all nothing to write home about.

Monday, 20 January 2020

Blitzwolf BW-UPC2 Test and Review

BW-UPC2 Blitzwolf UDB Thumb drive

What's special about it?

You probably wouldn't read this if you didn't know that: The BW-UPC2 has both an USB-C and a USB 3.0 A connector.

Cooool... two connectors
So it should be great for me to exchange files between my "old" Surface Laptop 2 and my "new" iPad Pro (3rd gen, 11"). More on that further down the page.
The look&feel is good, but the rotating cover does not (unlike what they claim on their web site) protect the connectors against dust.

At the time of writing, the 128GByte version of the drive was around 25USD and I got it here from my favorite Chinese reseller.

Benchmark test

I used h2testw (from the renowned German computer magazine CT) to benchmark the drive through it's USB A port.
One thing to look for in USB drives is, if they actually have the capacity they report to the PC. h2testw also checks that by filling and verifying the whole drive. This is not a fake-capacity drive.

The Blitzwolf web site claims "up to 150MByte/s" read, and "up to 50MByte/s" write rate. "Up to" seems like something that does not happen in real life.
Still the measured rates are not bad:

Test results
Still not in the same range as a Sandisk extreme, but very acceptable. A lot better than my awful "Intenso Alu Line 32GByte"

Blitzwolf:

  • Write rate: a little under 40MByte/s
  • Read rate: a little over 60MByte/s
Whereas Intenso Alu Line:
  • Write rate: a little under 4MByte/s (= 1/10th of the Blitzwolf)
  • Read rate: a little over 13 MByte/s
All of this was done on the USB A Port of a Surface Laptop 2.

So the Blitzwolf UPC2 is clearly a massive leap ahead for me when it comes to speed. For very short write bursts, it appears to have some kind of cache, because for low data volumes (some MByte), I get over 70MByte/s write- and over 80MByte/s read rates. That is not sustainable, of course.
It does not appear to be the operating system's file cache, as the Intenso drive does not exhibit this behaviour.
(Funny: the 70MByte/s write rate is over the claimed "up to 50Mbyte/s")

Also interesting: The write-performance was very poor on the USB-C port of a new Surface Laptop 3 15" (17MByte/s write / 70MBytes read), while on the USB A port of the same machine, it was 24MByte/s write / 62MByte read). So there appears to be a dependency on the Computer and it's drivers.

iPad pro (3rd gen.) compatibility

The drive comes pre-formatted with an exFAT file system. This is a good thing, as iOS / iPadOS13 currently only supports MSDOS FAT and exFAT (and APFS/MAC OS extended, which is irrelevant for Windows users)

USB-C & iPad pro
The iPad recognizes the drive and shows it in the "Files" app. Both reading and writing works well.

Conclusion

Exactly what I needed. I'll move my stuff over from the dog slow Intenso drive.


Thursday, 2 January 2020

RSA WebAgent: AceInitialize failed

RSA WebAgent Troubles

I had the following problem with my RSA WebAgent:
For secure remote access, I have a linux system, running the RSA WebAgent. After an Upgrade of the RSA ACE server, the web portal only responded with an error

106: The Web server is busy. Please try again later.

There was nothing busy about the web server, of course.
As I have a strong networking background, one of my standard trouble shooting methods is to have a look at the network traffic to see what's going on:

tcpdump -vvv -i eno16777984 port not 22 and not 443
(Your interface will have a different name, of course)

Apart from the usual DNS chatter which I didn't filter explicitly, there was no traffic from or to the machine. Especially not, when running
./acetest
Which returned a
AceInitialize failed

So the machine was not even trying to play ball :-(

There is not much of a debug function in RSA's command line tools, and a
strace ./acetest
showed that all dependencies were ok.

The solution

Then I set the environment variable to use TCP
export USEUDP_ENV_VAR=false
and got a much better chance of getting a response. (Not 100%, though)
With both the acestatus and the acetest utils running successfully, I still did not fully understand the problem, but could fix it.

1) reconfigure Apache
So I needed to modify the apache config to use TCP, rather than UDP:
In /etc/httpd/conf/httpd.conf (or wherever your apache config lies) add:
SetEnv USEUDP_ENV_VAR false

2) enable rpcbind
The other thing is, that it now seems to rely on a running rpcbind service, so rpcbind needs to be anabled and started.
To check if that is the case, run:
systemctl list-units --type=service --state=active
and see if you get a
rpcbind.service            loaded active running RPC bind service
in the reply.