Category: goatee-stroking musing, or something

  • MQTT Talk tonight

    I’m talking at the Raspberry Pi Toronto Meetup tonight, and if all goes well, the Net-Connected Cowbell will make an appearance:

    My slides: MQTT.odp

    Links:

  • Soltec HM-102S: unboxing a 30 year old multimeter

    Hey! I don’t have this meter any more. The scanned manual is all I can help you with (see link near end of article)

    Graham Green had a stall at Make Change yesterday. Graham’s the former manager of Active Surplus, the much-missed Toronto surplus emporium. He had some military-surplus multimeters that hadn’t seen daylight since I was in school. That’s a while back: this (unfortunately) was #1 the week I left school. So I bought one of Graham’s meters just to see what was inside …

    Neatly packed in mil-spec cardboard with a date code of 7/86. There’s a fair chance that Papa Don’t Preach was on the radio somewhere when this was sealed
    Inside the box, the meter’s sealed in a pouch. Mil-spec doesn’t allow anything to rattle about, after all. Unlike some surplus stuff, this looks 99.999% mouse-piss free
    Under the meter was this battery pouch, which exhibited the qualities of both “crunchy” and “squishy”. Neither of these are things I look for in a battery, so these weren’t going in the meter
    Battery pack dated January 1986. This isn’t going to be good.
    Daylight … for the first time in 31 years! On first glance, everything looks okay, but three decades of phenolic off-gassing was much in evidence — pew!
    Despite the hermetic seal, the elastic band had rotted to dry pasta consistency. Note expired elastic band ichor on the manual cover
    The test leads are still bright, shiny and very pliable. I suspect they might be silicone-encased, as PVC of this age has a habit of turning brittle (ask me about my late lamented Konix Navigators)
    The meter. unpacked. A clear (if small) dial, complete with mirror scale to reduce parallax error in reading. Hidden under the frosted cover is a small “Made in Korea” mark
    Handy-dandy fold-out carrying handle that also doubles as a stand
    Inside the case, ancient tooling marks. The plastic is thick and seems fairly robust. The captive mounting screw was a nice touch
    A very analogue meter. Lots and lots of 1% tolerance resistors on the main board, plus a great big thumbwheel potentiometer for zero adjustment. The foam battery pad up top was as good as new
    Up and running: no auto-off battery saving mode here! The test lead jacks didn’t have the shrouding we’d expect these days, so you won’t be able to use newer probes without modifying them
    Things I Don’t Miss from Analogue Meters, #1: setting the 0 Ω point. Expect fiddliness and drift.
    The test subjects: a 3.6 V Li/SOCl₂ ½-AA NVRAM battery (new: tests at 3.68 V on an Agilent U1242B meter), a 7.5 kΩ ± 5% resistor (tests at 7.52 kΩ) and a 39 kΩ ± 10% resistor (tests at 41.3kΩ)
    Battery test: the Soltec reports 3.8 V, or within 5% of expected. This is where I really miss auto ranging
    Not so good is the 7.5 kΩ resistor: the Soltec reads just under 6 kΩ. Blame faulty zero setting from me, as it really is fiddly and I just set this up quickly.
    The 39 kΩ resistor (which is really more like 41 kΩ) indicated 34 kΩ on the Soltec. Again, my dodgy zero set is most likely to blame, but reading this little log scale isn’t the easiest

    Would I recommend the Soltec as a general purpose meter? Not really. There are more capable multimeters available for about the same price, and you don’t need to go as far as the unbelievably expensive Agilent DMM I use (or even the strictly ornamental analogue ex-Forces Bach-Simpson 635 multimeter that graces/clutters my workbench). It would need a video to show where analogue meters excel: in showing changing values and getting a rough idea of the limits. It would make a great battery tester, or — if coupled with a micro-controller with PWM or DAC ouput — part of a demo rig. If nothing else, it’s a great way to learn how to appreciate modern test gear and all it does for us.

    I’m probably going to regret this, but here’s a scan of the Soltec HM-102s manual:

    PDF link under image. I say I regret doing this, ‘cos every cheapo ebay seller of these things is now likely to download this and splat their own horrid watermarks over it, making the file huge and ugly. But the market’s gonna market, and I wouldn’t want to make a free manual inaccessible with DRM. By contrast, my watermark’s quite tasteful and doesn’t interfere with readability in any way …
    Postscript: you think I’d just throw away that expired battery pack without peeking inside? If so, allow me to call you Wrongo McWrongison of that erroneous ilk! The ‘Hipower Super’ cells weren’t looking so super: the leaked electrolyte had dried into a gritty, stinky layer. I couldn’t even find the terminals on the 9 V battery to try and test it, so grotty was the corrosion. Amazingly, the slightly-less-nasty AA cell at the front tested at 1.52 V, almost as good as it could have been in the mid-80s. Doesn’t mean it’s not going in the HHW bin with the others, though.
  • The All-Seeing Googly Eyes of Lisa Frank

    … or what you get if you video concentric RGB LED rings and put them out of focus.

    No shortage of lens flare here

  • Teensy USB Keypad

    in which I finally learn about Fritzing’s wire alignment facility …

    I’ve had a couple of Teensy boards for a while, but a misunderstanding that they needed a load of of extra software installed (they need one thing, and it’s easy) had kept me away. They’ve got really impressive specs, and they’re especially easy to turn into USB devices like keyboards.

    Super-heavy CEECO keypad

    Here’s a little demo that turns a phone keypad — in my case, a ridiculously solid CEECO solid metal keypad designed for institutional use — into a simple USB keyboard. Plug it into any machine (including a Raspberry Pi) and it will be identified as a keyboard. No drivers are required.

    The code is based on the standard Arduino Keypad library basic demo. That code was meant for a different keypad, so I eventually found a configuration that worked in the Sparkfun 12 button keypad datasheet. Rather than printing characters to the serial port, I used calls to Teensy’s USB Keyboard library instead.

    The pinout is (from left to right, key side up):

    1. do not connect
    2. Column 2
    3. Row 1
    4. Column 1
    5. Row 4
    6. Column 3
    7. Row 3
    8. Row 2
    9. n/c

    There’s no reason why this wouldn’t work with those very cheap 4×4 button matrix keypads for Arduino too with only minor modifications. Those keypads use 8 data lines, and they’re arranged (I think) as rows 1-4 on pins 1-4 and columns 1-4 are pins 5-8. columns 4-1 then rows 1-4 from the top of the pin connector down:

    The Teensy USB keyboard isn’t limited to sending single characters: a single button press could trigger sending a whole string. I haven’t yet thought out any major uses for this (except “Crypto!”, which is my usual idea when I have no idea what I’m doing), but you might have better plans.

    Update, 2020-04: These keypads don’t have diodes on every key to prevent key ghosting if you press multiple keys. Despite what the Arduino Playground Keypad section might tell you, you can’t do useful multi-key/rollover detection with them.

  • *ALL* of the memory …

    World domination soonish!

    I’ve got a whole bunch of bytes free now I’ve upgraded my 6502 40th Anniversary Computer Badge to 32KB of RAM! I suspect I’ll end up as I usually do, Corvax-style …

  • Important research: was the Eudora “New Mail” chime from Ren & Stimpy’s “LOG”?

    Inspired (obliquely) by this Metafilter post, I set out to answer a burning question.

    LOG chime

    This occurs from second 36 to second 38 of this (archived) video: Log Commercial – Ren & Stimpy.

    The chime when extracted without further processing, sounds like this:

    (direct link: Original-Log-Commercial_The-Ren-and-Stimpy-Show.wav)

    Eudora chime

    I found a copy of Eudora Mail 1.44 for Windows (bundled up in an archive quaintly called internet.zip) here. The EUDOR144.EXE file is itself a Zip archive, and contains several files. The important one is WEUDORA.EXE (722,944 bytes; SHA256 checksum a35f2ef1e95242228381d9340fff0995f4935223f88a38b9200717107252dfb9).

    This is a Windows 16 New Executable (NE) file, and I used panzi/mediaextract to scan and extract the RIFF/WAV data:

    (direct link: WEUDORA.EXE_000a8200.wav)

    They sure sound similar. But are they …the same?

    Comparison

    I made sure that both samples were set to the same rate, and I applied simple amplification in Audacity so that they both had a peak volume of -3 dB. Aligning the tracks as best I could, I got this:

    Log audio on top, Eudora chime underneath

    The Eudora sample is very slightly slower than the Log one. It might have been that the Eudora authors sampled the chimes from an analogue video tape. The match is remarkable, however, as they play together with only very slight phasing effects:

    (direct link: Log_vs_Eudora-log_left-Eudora_right.wav)

    Conclusion

    Yes, the Eudora Mail “New Mail” chime did come from Ren & Stimpy after all.

  • BASIC on the 6502 badge

    As if it weren’t nerdy enough, the 6502 40th Anniversary Computer Badge runs Lee Davison’s EhBASIC. There are 1024 whole bytes free for your programs, so it’s not exactly spacious. It’s got useful floating point support, though:

    Yup, that’s the second most boring BASIC example program, after the quadratic root finder.

    100 REM HERON ROOTS
    110 EP=0.0001
    120 INPUT "X";X
    130 N=1:RN=X/2
    140 PRINT"COUNT","ROOT","DELTA":PRINT"======","======","======"
    150 DE=ABS(RN*RN-X)
    160 PRINT N,RN,DE
    170 RN=(RN+X/RN)/2
    180 N=N+1
    190 IF DE>EP THEN GOTO 150

    Update: Josh got my badge working again (it wasn’t, for $reasons …) and I re-ran this code. If you try the code for X=100000 and larger, it won’t converge. You might want to add:

    185 IF N>25 THEN PRINT "EPSILON TOO LARGE, EXITING":END

    so that the loop will exit after 25 times. Alternatively, make the value of EP depend upon the size of X. Aren’t numerical analysis and floating point foibles fun?

  • VM-CLAP1 👏 sensor + gpiozero on Raspberry Pi

    Well, that was easy!

    Since the Verbal Machines VM-CLAP1 sensor is an open collector type — that is, it sinks current when triggered — it behaves like a simple button to gpiozero, the Raspberry Pi Python GPIO library. If you attach a callback function to the sensor’s when_pressed event, your Python script will call that function every time it registers a clap.

    The wiring is as simple as it could be:

     VM-CLAP1: Raspberry Pi:
     ========= =============
          GND → GND
          PWR → 3V3
          OUT → GPIO 4
    

    This example code just prints clap! when the board picks up a 👏:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    # Raspberry Pi gpiozero test for
    # Verbal Machines VM-CLAP1 clap sensor
    #   scruss - 2017-06
    #
    # Wiring:
    #
    #  VM-CLAP1:    Raspberry Pi:
    #  =========    =============
    #    GND     →   GND
    #    PWR     →   3V3
    #    OUT     →   GPIO 4
    
    from gpiozero import Button
    from signal import pause
    
    def clapping():
            print("clap!")
    
    clap = Button(4)
    clap.when_pressed = clapping
    pause()
    

    This is a trivial example, but at least it shows that anything you can do with a button, you can also do with this hand-clap sensor.

  • more geometry to colour in

    Click on image to download as PDF

    based on the main repeating pattern from a Pierced Window Screen at The Metropolitan Museum of Art — particularly this image.

  • mnicmp: the DECwriter lives again!

    I just made and uploaded this to FontLibrary: mnicmp.

    This is meant more as an exercise in learning FontForge‘s programming back-end, and definitely showed me that FontForge is incredibly powerful. After the learning comes silliness, so I ended up turning the dots into something like:

    I learned you really have to consider a dot-matrix font to be an array of points rather than a glyph, because otherwise you get the dots coming out the wrong sort of oval:

    Blue font has been italicized as a whole, while the black dots were done properly

    You don’t want to know what it did to the stars …

    Local archive: mnicmp.zip

  • Apple II on Raspberry Pi

    C’mon let’s all die of dysentery on the Oregon Trail!

    Update: You probably want to use https://github.com/linappleii/linapple instead of Linapple-Pie these days.

    Building and installing the linapple-pie Apple IIe emulator is relatively easy on the Raspberry Pi:

    sudo apt install libcurl4-openssl-dev libzip-dev zlib1g-dev libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-sound1.2-dev build-essential git
    git clone https://github.com/dabonetn/linapple-pie.git
    cd linapple-pie/src
    make
    sudo make install

    This also works on an x86_64 Ubuntu machine. It does also install on a PocketCHIP (even if it takes a really long time) but I can’t get the display resolution to fit correctly.

  • some OpenSCAD 2D SVG things for Josh …

    I’ve found that OpenSCAD is really good for producing 2d designs in a very small amount of code. Here are three examples to play with:

    Diagonal Section through Menger sponge (SVG) (OpenSCAD source) — this may take a while to render, as it’s making a Menger sponge in 3D and then slicing through it to make the projection.

    (If you take out the projection() clause, it looks like this in 3D:

    )

    Pattern from Ak Medrese, Nigde, Turkey (SVG) (OpenSCAD source) — design after a construction by Eric Broug.

    Basis of a pattern from the Alhambra (SVG) (OpenSCAD source)

  • Moar UNCLE …

    Yep, Marcus Gipps is at it again with a new Kickstarter campaign:

    As part of my research into the JP Martin archives, I discovered both a biography of JPM himself, written by his daughter Stella Currey, and around 50 pages of unpublished Uncle stories which either didn’t make it into the finished books, or were heavily reworked. I’m now running a kickstarter to publish these two things in one volume of around 400 pages, which will be available in paperback, ebook or a limited hardback with the same specifications as THE COMPLETE UNCLE. The details are all here:

    My latest kickstarter campaign, to publish a biography of JP Martin, creator of UNCLE, is now live!

    If you’re able to back this new kickstarter, thank you very much – we’ve already hit our goal, but the more support I get now, the more copies I can print for the bookshops. And apologies if you’ve already backed, or have had this email more than once.

    — Unpublished UNCLE tales & JP Martin – Father of Uncle

    I am, of course, already on it like stink on Beaver Hateman.

  • the old freezer baggie and Goo Gone trick

    acrylic in a freezer baggie with Goo Gone to soak off backing
    Getting the backing paper off laser cut acrylic is a pain. Some people recommend d-limonene, a citrus-derived solvent that is the main active ingredient of Goo Gone.

    Pour a little Goo Gone into a tough freezer baggie, and place your acrylic part inside. Seal it up, and lay it flat for a few minutes. After that, flip it over and let the other side soak for a few. Open the bag and fish out your work. The backing paper should just slough off. Now rinse off the acrylic with washing-up liquid/dish detergent and warm water, taking care not to scrape the surface. You should now have a perfectly clean and shiny acrylic object. The d-limonene has the pleasant side-effect of de-stinkifying the cut plastic, too.

    You should be able to re-use the Goo Gone baggie many times if you’re careful. You might not be able to rinse Goo Gone down the drain where you are; please check local regulations.

    (The piece is the non-broken version of this.)

  • File under “because I can”

    Some ideas are truly brilliant:
    they resonate immediately with
    all of humanity. Some ideas
    are merely great: in time,
    their value becomes clear
    to all. Some ideas, however,
    are like this one ...