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

  • Astable Multivibrator: Dressed-up LED Spider

    Astable Multivibrator: Dressed-up LED Spider

    Adding a bit of trim to the bottom of the LED spider makes it look better and helps keep the strut wires in place:

    Astable Multivibrator - Alkaline - Radome trim
    Astable Multivibrator – Alkaline – Radome trim

    It’s obviously impossible to build like that, so it’s split across the middle of the strut:

    Astable Multivibrator - Alkaline - Radome trim
    Astable Multivibrator – Alkaline – Radome trim

    Glue it together with black adhesive and a couple of clamps:

    LED Spider - glue clamping
    LED Spider – glue clamping

    The aluminum fixtures (jigs?) are epoxied around snippets of strut wire aligning the spider parts:

    LED Spider - gluing fixture
    LED Spider – gluing fixture

    Those grossly oversized holes came pre-drilled in an otherwise suitable aluminum rod from the Little Tray o’ Cutoffs. I faced off the ends, chopped the rod in two, recessed the new ends, and declared victory. Might need better ones at some point, but they’ll do for now.

    Next step: wire up an astable with a yellow LED to go with the green and blue boosted LEDs.

  • USB Memory: Premature Deaths

    USB Memory: Premature Deaths

    After about a year of streaming music, the music died over the course of a month, producing progressively bizarre symptoms on all the local Icecast stations. Killing the streaming server and yanking all the USB memory sticks produced this tableau:

    USB Memory - streamer failures
    USB Memory – streamer failures

    The USB 2.0 32 GB SanDisk Cruzer Fit (tiny, black, upper left) holds images from various network cameras and is not involved with music. It’s nigh onto seven years old and, apparently, still going strong.

    The USB 2.0 Centron (gray-and-retroreflective, upper right) was forgotten from the last time I set up a drive for our Forester’s player. There’s another one just like it in the car; they’re impossibly old, as you’d expect from their minuscule size.

    The USB 3.0 64 GB Samsung Fit (small, white, lower left) is totally dead, to the extent it doesn’t even announce its presence when plugged into a USB socket. It’s 2.5 years into a five year warranty, but their new USB 3.1 version is twelve bucks; Samsung wins. It formerly contained an extensive selection of public-domain music.

    The 64 GB Sandisk Cruzer (huge, black, lower right) suffered some serious damage:

    sudo mount -o ro /dev/sdg1 /mnt/part
    ll /mnt/part
     ls: cannot access '/mnt/part/PILZ': Input/output error
     total 384K
     drwxr-xr-x   6 ed   users 4.0K Nov 28  2019 ./
     drwxr-xr-x  17 root root  4.0K Jun  7  2019 ../
     -rw-r--r--   1 ed   ed    215K Mar  9  2019 CDClassical.m3u
     drwxrwxr-x  56 ed   ed    4.0K Mar  9  2019 Classical/
     drwx------   2 root root   16K Mar  9  2019 lost+found/
     d?????????   ? ?    ?        ?            ? PILZ/
     drwxrwxr-x 116 ed   ed     12K Mar  9  2019 Pop/
     -rw-r--r--   1 ed   ed    117K Nov 28  2019 Pop.m3u
    

    It still contains a fair amount of music ripped from the CDs we’ve collected over the decades, but it’s obviously unusable. Just for fun, I tried reformatting and copying some files to it, but it eventually hard-crashed with I/O errors:

    [37787.872410] usb 2-1: new high-speed USB device number 2 using xhci_hcd
     [37788.013027] usb 2-1: New USB device found, idVendor=0781, idProduct=5530, bcdDevice= 1.00
     [37788.013030] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
     [37788.013032] usb 2-1: Product: Cruzer
     [37788.013034] usb 2-1: Manufacturer: SanDisk
     [37788.013036] usb 2-1: SerialNumber: 4C530001151215101233
     [37788.013604] usb-storage 2-1:1.0: USB Mass Storage device detected
     [37788.014778] scsi host9: usb-storage 2-1:1.0
     [37789.033409] scsi 9:0:0:0: Direct-Access     SanDisk  Cruzer           1.00 PQ: 0 ANSI: 6
     [37789.034569] sd 9:0:0:0: [sdf] 120225792 512-byte logical blocks: (61.6 GB/57.3 GiB)
     [37789.035820] sd 9:0:0:0: [sdf] Write Protect is off
     [37789.035825] sd 9:0:0:0: [sdf] Mode Sense: 43 00 00 00
     [37789.036137] sd 9:0:0:0: [sdf] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
     [37789.086533]  sdf: sdf1
     [37789.089418] sd 9:0:0:0: [sdf] Attached SCSI removable disk
     [38035.071013] EXT4-fs (sdf1): mounting ext3 file system using the ext4 subsystem
     [38035.183172] EXT4-fs (sdf1): mounted filesystem with ordered data mode. Opts: (null)
     [38485.302549] usb 2-1: reset high-speed USB device number 2 using xhci_hcd
     [38490.622285] usb 2-1: device descriptor read/64, error -110
     [38506.195617] usb 2-1: device descriptor read/64, error -110
     [38506.425616] usb 2-1: reset high-speed USB device number 2 using xhci_hcd
     [38511.742339] usb 2-1: device descriptor read/64, error -110
     <<< snippage >>>
     [38548.845743] usb 2-1: USB disconnect, device number 2
     [38548.858925] blk_update_request: I/O error, dev sdf, sector 99556320 op 0x1:(WRITE) flags 0x4800 phys_seg 30 prio class 0
     [38548.858933] EXT4-fs warning (device sdf1): ext4_end_bio:309: I/O error 10 writing to inode 1531939 (offset 0 size 0 starting block 12444541
     )
     [38548.858937] Buffer I/O error on device sdf1, logical block 12444284
     [38548.858944] EXT4-fs warning (device sdf1): ext4_end_bio:309: I/O error 10 writing to inode 1531939 (offset 0 size 0 starting block 12444542
     )
     <<< snippage >>>
     [38548.858984] Buffer I/O error on device sdf1, logical block 12444293
     [38548.859034] blk_update_request: I/O error, dev sdf, sector 99017520 op 0x1:(WRITE) flags 0x4000 phys_seg 3 prio class 0
     [38548.859158] blk_update_request: I/O error, dev sdf, sector 99556560 op 0x1:(WRITE) flags 0x4800 phys_seg 30 prio class 0
     [38548.859224] blk_update_request: I/O error, dev sdf, sector 99017760 op 0x1:(WRITE) flags 0x4000 phys_seg 2 prio class 0
     [38548.859237] blk_update_request: I/O error, dev sdf, sector 99018000 op 0x1:(WRITE) flags 0x4000 phys_seg 2 prio class 0
     >>
     [38549.230765] JBD2: Detected IO errors while flushing file data on sdf1-8
     [38549.230920] Aborting journal on device sdf1-8.
     [38549.231008] Buffer I/O error on dev sdf1, logical block 1545, lost sync page write
     [38549.231011] JBD2: Error -5 detected when updating journal superblock for sdf1-8.
     [38549.231325] Buffer I/O error on dev sdf1, logical block 0, lost sync page write
     [38549.231332] EXT4-fs (sdf1): I/O error while writing superblock
     [38549.231333] EXT4-fs error (device sdf1): ext4_journal_check_start:61: Detected aborted journal
     [38549.231334] EXT4-fs (sdf1): Remounting filesystem read-only
     <<< and so forth and so on >>>

    So, yeah, it’s dead, Jim.

    The Icecast streaming server reads data continuously from the USB sticks and, given that I set up half a dozen “stations”, there’s plenty of reading going on. The drives are formatted as ext3 and mounted with the noatime option, so there shouldn’t be any writing going on, but it seems a year of constant reading can kill a USB drive.

    Fortunately, the original data lives elsewhere, with scripts to copy the appropriate files to the right places, so rebuilding the drives on a pair of new USB sticks wasn’t a big deal.

  • Atreus Keyboard: LED Thoughts

    Atreus Keyboard: LED Thoughts

    Having helped grossly over-fund the Atreus Kickstarter earlier this year, a small box arrived pretty much on-time:

    Atreus keyboard - overview
    Atreus keyboard – overview

    I did get the blank keycap set, but have yet to screw up sufficient courage to install them. The caps sit atop the stock Kailh (pronounced, I think, kale) BOX Brown soft tactile switches; they’re clicky, yet not offensively loud.

    Removing a dozen screws lets you take it apart, revealing all the electronics on the underside of the PCB:

    Atreus keyboard - PCB overview
    Atreus keyboard – PCB overview

    The central section holds most of the active ingredients:

    Atreus keyboard - USB 32U4 Reset - detail
    Atreus keyboard – USB 32U4 Reset – detail

    The Atmel MEGA32U4 microcontroller runs a slightly customized version of QMK:

    Atreus keyboard - 32U4 - detail
    Atreus keyboard – 32U4 – detail

    Of interest is the JTAG header at the front center of the PCB:

    Atreus keyboard - JTAG header
    Atreus keyboard – JTAG header

    I have yet to delve into the code, but I think those signals aren’t involved with the key matrix and one might be available to drive an addressable RGB LED.

    For future reference, they’re tucked into the lower left corner of the chip (the mauled format comes from the original PDF):

    Atmel 32U4 - JTAG pins
    Atmel 32U4 – JTAG pins

    The alternate functions:

    • SCK = PB1
    • MOSI = PB2
    • MISO = PB3

    I don’t need exotic lighting, but indicating which key layer is active would be helpful.

    Love the key feel, even though I still haven’t hit the B key more than 25% of the time.

  • MOSFET Astable: NP-BX1 Rundown

    MOSFET Astable: NP-BX1 Rundown

    After eight months from a full charge, an old NP-BX1 lithium battery has come to this:

    Astable green - NP-BX1 - 2.31 V
    Astable green – NP-BX1 – 2.31 V

    The astable still ticks along at 1.4 seconds per blink, but the green LED barely lights up from a 2.1 V battery:

    Astable green - NP-BX1 - 12 mV 100 ohm
    Astable green – NP-BX1 – 12 mV 100 ohm

    A pulse of 12 mV across the 100 Ω resistor puts the LED current at a mere 120 µA: no wonder the poor thing wasn’t visible in ordinary room light.

    Another full charge restored its vigor for another couple of seasons.

  • Roadside Overgrowth: Life Finds a Way

    Roadside Overgrowth: Life Finds a Way

    A few years ago, this traffic splitter had a magnificent overgrowth goin’ on:

    Traffic splitter bushes - Vassar Rd at Pine Tree Dr - Streetview 2018-07
    Traffic splitter bushes – Vassar Rd at Pine Tree Dr – Streetview 2018-07

    Eventually, somebody (perhaps the NYS DOT) cut the bushes off at their bases and probably hit them with defoliant to keep them down:

    Traffic splitter stumps - Vassar Rd at Pine Tree Dr - 2020-11
    Traffic splitter stumps – Vassar Rd at Pine Tree Dr – 2020-11

    I don’t know that the stems cracked the concrete, but they surely eased the slabs apart.

    The signpost had a substantial bush at its base:

    Traffic splitter stumps - signpost - Vassar Rd at Pine Tree Dr - 2020-11
    Traffic splitter stumps – signpost – Vassar Rd at Pine Tree Dr – 2020-11

    It’s tough to keep civilization running ahead of Mother Nature

  • Privacy Preferences: Broken As Intended

    Privacy Preferences: Broken As Intended

    The Chase website seems to be fine, except:

    Chase Privacy Settings - not working
    Chase Privacy Settings – not working

    Huh.

    Follow the money: being a bank / credit card / fintech company, it’s safe to assume they sell your sensitive bits and have zero incentive to let you limit their actions in any way.

    A week later, that part of their site remains broken, presumably as intended.

  • Mini-lathe DRO Battery Lifetime

    Mini-lathe DRO Battery Lifetime

    It seems 390/389 alkaline button cells can power the mini-lathe’s DROs for about a year:

    Mini-lathe DRO battery replacement - 11 months
    Mini-lathe DRO battery replacement – 11 months

    Given that the replacement cells all come from the same batch, they’re aging on the shelf as well as in the DROs.

    Once again, I replaced both of them.