The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Author: Ed

  • Sencha Green Tea: Japanese vs. Chinese

    I recently ordered a pound of genuine Japanese Sencha Green Tea from Harney & Sons (who turn out to be a long bike ride away at the Millerton end of the Harlem Valley Rail Trail), having had entirely enough of the rather bitter Chinese Sencha from the local grocery store.

    Guess which one is which:

    Japanese vs Chinese Sencha Green Tea
    Japanese vs Chinese Sencha Green Tea

    Yup, Japanese on the left, Chinese on the right. The latter comes from the bottom of the container, hence the larger proportion of flakes, but it’s obviously different stuff.

    Based on the first few cups, the new tea has a much better taste.

    From what I read, the price of Japanese teas has taken a real beating in recent years, because everyone (else) fears Fukushima Daiichi fallout. My feeling is that a Chinese tea plantation could be downwind of Smiling Face Heavy Metal Refinery Complex Number 5 and you’d never know it.

    For reference, the Japanese Green Sencha was $40 for 1 lb delivered.

    They tossed in a few sample packets, including “Paris: Black tea with Fruit and Caramel”, which was horrible…

  • Stirrup Hoe: New-to-It Handle

    Mary (not the spammer) uses a stirrup hoe for most of what little weeding she does, so it spends much of its life outdoors in the Vassar Farms plot. The bottom of the handle disintegrated and she brought the business end home for repair:

    Stirrup hoe - replacement handle
    Stirrup hoe – replacement handle

    That was easy: a suitable handle lay on the top of the rods-and-tubes rack; I’d harvested it from a defunct rake a while back. Although the wood is weathered, we think of it as well-seasoned. The errant hole marks came from a first pass, before I realized there was no point in having the handle extend beyond the outward-bending part of the brackets.

    The bolts and locking nuts are original!

    Ya gotta have stuff…

    (And not a trace of 3D printing anywhere to be seen. Imagine that!)

  • Business Proposal

    This must be the season for scams, as WordPress recently forwarded this message through the Contact form:

    My name is Mary. I was just reading Personal 3D Printing: 2014 Status Report – I’m doing some private research on 3D printing and the article is great! I loved images! Great sense of humor and amazing taste in choosing images! :D

    But that is not the only reason why I’m writing.

    I’m actually writing on behalf of San Francisco Circuits, a PCB solutions provider in Northern California. I came across your site, read some interesting stuff and thought I’d come to you directly and ask if you’re interested in guest posting on Softsolder.com?

    We have writers on staff that write articles on circuit design, fabrication, assembly, and everything else PCB related.

    Let me know if you are interested!

    Thanks!

    You may recall that post:

    • The images came from stock photographs
    • It had nothing to do with PCB fabrication

    In fact, very little of what you read here has to do with PCB fabrication. Yes, I home-brew PCBs, but that’s about as non-mainstream as you can get.

    Some interesting bits of metadata:

    • San Francisco Circuits actually exists
    • The reply-to domain is in Australia: go8.com.au
    • The message came from a Croatian IP address: 212.92.194.119

    The go8 domain has a placeholder web page. The Petrovic Family Trust probably runs an email server that we’re not privy to; I’d lay long odds they’re blissfully unaware of her account.

    SF Circuits probably doesn’t know anything about her, either, and I’m absolutely certain those “staff” writers she touts know exactly squat about “everything else PCB related”.

    Should I ask her for writing samples or pointers to their work elsewhere on the Intertubes? How much would they pay to write posts for me? If I had nothing better to do, I’d string her along for a while…

    In fact, given how this spam stuff works, I suspect “Mary” isn’t her name and she’s not even female, but I’m never going to know the rest of the story.

    One point in her favor, though: she has figured out how to get paid for doing stuff on the Intertubes.

  • Hall Effect LED Current Control: Switched MOSFET Gates

    The rise and fall times for the LEDs on the over-the-top blinky taillight left a bit to be desired, at least if you were interested in short pulses:

    VG 1193 mV - ID 50 mA-div - 1 ms PWM filter - overview
    VG 1193 mV – ID 50 mA-div – 1 ms PWM filter – overview

    So I spliced an analog switch between the PWM filter and the gate, with inputs selecting ground and the PWM drive voltage:

    Switched MOSFET gate - analog switch schematic
    Switched MOSFET gate – analog switch schematic

    This being a prototype, that involved epoxying a SOT23-6 package atop the MOSFET, with flying wires all over the PCB:

    Hall Effect PCB - MOSFET gate switch
    Hall Effect PCB – MOSFET gate switch

    It works pretty well:

    VDS ILED 50 mA div - 200 50 150 25 mA
    VDS ILED 50 mA div – 200 50 150 25 mA

    The top trace is the drain voltage and the bottom trace is the LED current at 50 mA/div.

    The current transitions come out vertical at any sweep speed, even through the Tek Hall effect current probe. The pulses would be rectangular if I weren’t changing the current for each one.

    The current feedback loop closes through the Arduino’s main loop, which includes a 1 ms delay after each PWM output change before measuring the LED current. As a result, each loop takes just under 2 ms, but, fortunately, ramping from 25 mA (in the last pulse) to 200 mA (in the first pulse) requires less than 10 PWM increments; you can see the stairsteps if you squint.

    Next up: bump the PWM to 64 kHz (from 32 kHz) and rip out the pull-down resistor that used to hold the gate near ground when the output floated as an input. That should improve the output ripple caused by the MOSFET’s bias as a perfectly serviceable linear amplifier.

    The control loop now fetches durations & currents from an array-of-structs, so I can customize each pulse. An obvious enhancement: remember the gate drive that produced a given current, then restore the corresponding value as the starting PWM setting for each pulse, so the loop begins closer to reality. The gate drive varies with temperature and suchlike, so it can’t be a compile-time constant, but maybe the startup routine could preload the array / list / cache with values taken from a “lamp test”.

    Four close-together flashes repeating at about 2 Hz, even with two runt pulses, turn the LEDs into a real eye magnet…

  • Michelin Hair, Without A Flat

    Mary heard a faint sound from the back of her bike that neither she nor I could track down. Standing in the garage, we decided it was slightly louder when the wheel turned backwards, but the sound didn’t correlate with anything.

    Eventually, I held my hand over the wheel while turning it, whereupon the problem made itself obvious:

    Michelin Hair from bike tire
    Michelin Hair from bike tire

    Another Michelin Hair from a steel-belted automobile or truck tire!

    The short hook on the right side embedded itself the in the tread, with the rest sticking out. Turning the wheel backwards dragged the longer arc on the fender, making a slightly louder sound. Of course, the tightest fender-to-tire clearance occurs just behind the seat, where it isn’t easily visible.

    Fortunately, the hook wasn’t quite long enough to punch through the Schwalbe Marathon’s armor layer and the tire liner.

    Whew!

  • Firefox Accounts: Total FAIL

    So I’m in the process of installing Xubuntu 14.04LTS on a box and get to the point where I’m ready to install various daemons and utilities, then tweak their settings, so it’s time to have the new Firefox inhale all my settings from the Firefox on my 13.10 desktop, which will let me find all my blog posts with that information. This used to be a simple matter of going into the new Firefox’s Preferences, getting a one-time pairing code, typing it into the other desktop, and away it went, synchronizing the two installations.

    But, no.

    While I wasn’t watching, Firefox crept up to Version 29 and, at some point, Mozilla introduced Firefox Accounts. Why would they do that? Here’s a hint:

    Firefox Accounts is a consumer account system which provides access to services run by Mozilla, such as Firefox Marketplace and the next version of Firefox Sync.

    Firefox Marketplace? Say no more: money changes everything!

    Oh, and the “next version of Firefox Sync” is totally incompatible with the “old version” used by all existing Firefox installations.

    But it gets worse (emphasis mine):

    What if I don’t want to update to the new Sync?

    • While the old version of Sync will continue to work, the latest version of Firefox doesn’t support adding new devices to the old version of Sync. This means that you won’t be able to sync with a new device.
    • Mozilla will continue to host the old version of Sync for a limited time to allow for migration to Firefox Accounts.

    In order to sync the 14.10 Firefox, I must upgrade the 13.10 Firefox, but after I do that, none of the other boxes will be able to sync with either of them. I haven’t checked whether Firefox Version 29 is offered for the 10.04LTS installation that’s running on the LinuxCNC boxes.

    My 13.10 desktop has endured many, many, many automatic Firefox upgrades during their recent version incrementing mania and, for whatever reason, it doesn’t offer “New Sync” as an option, despite being at the same Version 29 as the 14.04 installation. This is likely a problem with some Firefox extension or another, but I disabled them to no avail.

    When all else fails, you always create a new profile by starting the Firefox Profile Manager:

    firefox -profilemanager

    That works as expected; the new and completely bare profile let me create a new Firefox Account, which entails the usual to-ing and fro-ing with emailed one-time authorizations and suchlike. OK, now I can use the shiny new Firefox Marketplace, should I so desire. Be still, my heart!

    So, we progress.

    But my original intent was to get all the setup data into the 14.04 Firefox, so (on the 13.10 Firefox) I followed the directions about transferring the old settings into the new profile, which involves tediously hand-copying a bunch of files from one cryptic directory to another. This is a brutally user-hostile operation that only geeks should endure; there is absolutely no automation to be found.

    Having a new profile, albeit without any of the old extensions, I attempt to sync my settings, only to discover that the new Firefox Sync will not synchronize my stored passwords, which was pretty much the whole point of this exercise.

    Turns out that’s deliberate:

    Firefox Sync will not synchronize your passwords if a master password is set. If you would like to continue synchronizing your passwords, try removing your master password before synchronizing.

    Now, why would I have a master password? Because, long ago, the good folks at Mozilla highly recommended it (emphasis mine):

    It takes only fifteen seconds for a prying user sitting at your computer to see the list of all the passwords you have told Firefox or Thunderbird to save. The list is shown plain as day. It can include webmail and forum passwords or email server passwords. Using a Master Password is highly recommended, to prevent such prying users from seeing the list. By setting a Master Password, anyone using your profile will be prompted to enter the master password when access to your stored passwords is needed.

    So, the new Firefox Sync requires a Firefox Account that doesn’t do anything I need done and, in order to sync my 13.10 settings into the 14.04 box, I must have a new Firefox Account and make both Firefox installations less secure.

    I think it’s possible to remove the master password, sync the stored passwords, then restore the master password. When you remove the password, you get a confirmation message:

    You have deleted your Master Password. Your stored web and email passwords, form data, and private keys will not be protected.

    Firefox allegedly uses the Gnome keyring to get a master password protecting the whole Firefox session, but displaying all the stored passwords is just a few clicks away after that; needless to say, Firefox on 13.10 doesn’t use the keyring. Given that Chromium on Xubuntu 13.10 does not use the Gnome keyring, it’s entirely unprotected. Maybe the 14.04 box will use the keyring for both browsers?

    What the hell do those people smoke? I want some of that, right here, right now!

    Verily, money changes everything…

  • 3D Printing Demo at the HV Boy Scout CamporALL: Image Processing

    More than five hours of stand-up comedy condensed into two minutes of frenzied video showing activity like this:

    3D Printing Demo - HV Scout CamporALL 2014
    3D Printing Demo – HV Scout CamporALL 2014

    The Sony HDR-AS30V perched atop a tripod behind the table, where only one errant Scout bumped it, recording one image every 5 seconds. The non-adjustable focus seems biased for selfies, but the compression definitely produces softer images in subdued lighting conditions, so it’s hard to say.

    Each NP-BX1 battery lasts about 2.5 hr in that mode and I brought all three, but simply forgot to install the third one. As a result, we don’t get to see the last 2+ hours… it was a long day.

    The “image processing” behind the movie went a little something like this, modulo a few edits to elide my blundering around:

    sudo mount /dev/sdb1 /mnt/backup
    sudo mount -o uid=ed /dev/sdd1 /mnt/part
    mkdir /mnt/backup/Video/2014-05-17
    rsync -au /mnt/part/DCIM/100MSDCF/ /mnt/backup/Video/2014-05-17
    rsync -au /mnt/part/DCIM/101MSDCF/ /mnt/backup/Video/2014-05-17
    cd /tmp
    mkdir Video
    cd Video
    sn=1 ; for f in /mnt/backup/Video/2014-05-17/*JPG ; do printf -v dn 'dsc%05d.jpg' "$(( sn++ ))" ; cp -a $f $dn ; done
    mkdir Shrink
    for f in *jpg ; do convert $f -resize 50% Shrink/$f ; done
    cd Shrink/
    avconv -r 30 -i dsc%05d.jpg -q 5 3DPrinting-q5.mp4
    mv 3DPrinting-q5.mp4 "3D Printing Demo - HV Scout CamporALL 2104.mp4"
    

    One could, of course, do all that in fewer steps, if one knew the answers ahead of time, which should may apply when I refer back to this post.

    Using rsync -au to copy the files from the camera to the 2 TB backup drive neatly solves the problems that occur when the camera’s USB port abruptly disconnects itself during the copy: rsync can recover without losing or trashing any files. Alas, after the camera disconnects, it requires a power cycle to recover its wits.

    The USB camera connection reads data at 6 MB/s. Removing the MicroSD card and jamming it in the card-reader slot on my monitor runs at 18 MB/s. Apart from the fact that the MicroSD card seems so flimsy, I wonder how long the spring-detent latch inside the camera will continue working. On the other paw, when the USB port finally breaks, it’ll take the GPS assist data path along with it.

    Not shown: the rename 'y/A-Z/a-z/' *JPG that converts the original filenames to lowercase, which I did after the fact. Because blundering around, OK?

    The 3964 original 1920×1080 images, hot from the camera, weigh in at 2.2 GB and the half-size video emerged at 118 MB. The default avconv quality setting produces surprisingly crappy results, so I used -q 5. Some after-the-fact fiddling showed that -qscale 5 produces the same file size with about the same apparent quality.

    None of that matters, because Youtube set the maximum resolution to 480 and applied ruthless compression. Now I know better…