WiFi whacker, network noodler, IoT idiot, Linux licker, and security spooner. Can C, a bit Rusty, also Bashing Pythons. Sandal appreciator. Anti-sock crusader. Geek for hire - if you’ve got a cool project let me know! Now contains at least 65% shitpost by weight Pronouns: he/him Location: Naarm (Melbourne) ’ish
Public Key
npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv
Profile Code
nprofile1qqsdccupy90x26jkmq2ftnhsyzs29ywdevqe2wvtmhk428hrjwxangqn450mc
Author Public Key
npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv Show more details
Published at
2024-06-10 05:50:57 Event JSON
{
"id": "d072280a8b2b7d915620c3bcf1511cf11c64b5d8c6e751621ff0fd79e5fc5b5d" ,
"pubkey": "dc6381215e656a56d81495cef020a0a291cdcb0195398bdded551ee3938dd9a0" ,
"created_at": 1717991457 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://aus.social/users/jpm",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://aus.social/users/jpm",
"pink.momostr"
]
],
"content": "{\"name\":\"/dev/rdsk/c0t0d0s2\",\"about\":\"WiFi whacker, network noodler, IoT idiot, Linux licker, and security spooner. Can C, a bit Rusty, also Bashing Pythons. Sandal appreciator. Anti-sock crusader. \\n\\nGeek for hire - if you’ve got a cool project let me know!\\n\\nNow contains at least 65% shitpost by weight\\n\\nPronouns: he/him\\nLocation: Naarm (Melbourne) ’ish\\n\",\"website\":\"https://aus.social/@jpm\",\"picture\":\"https://mediacdn.aus.social/accounts/avatars/109/259/356/934/542/672/original/f0d891cbdc4d868a.jpeg\",\"banner\":\"https://mediacdn.aus.social/accounts/headers/109/259/356/934/542/672/original/4ab28609adb3459f.png\",\"nip05\":\"[email protected] \"}" ,
"sig": "d990cfb5ffbc3cb6023e9de5dc496138c67371ba972bb13f2fa9e7fc76d987205b380135829a2454e171abe37e68be8c05848b202365a01f566633fbfe5e522d"
}
Last Notes npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 UV index 7? Thats a nice winter day npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 PSA for #electronics folks: the tiny USB-C hotplate that does a great job for SMD rework is on sale for quite cheap right now - https://www.aliexpress.com/item/1005007009784987.html npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 ideally I’d like a solid plug that goes directly into the PCB, so it turns more into a solid dongle rather than a cabled dongle npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 sweet thanks. Of course, I had another crazy idea - you’re sending I2C down the “unused” pins yeah? If I put an I2C device endpoint on those pins to expose a config interface of the keyboard controller, that’d be pretty neat. Problem is, it seems a lot of the cables only have 5 wires and don’t connect the two unused pins npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 not that, you know, $0.15 difference each is MUCH, but still, chuck the cheaper and bigger package in, then folks can hack in other interesting things to act like a keyboard By the way do you have a source for SNES gamepad plugs (that plug into the socket on the board)? Or do I have to cut up a cable for it? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 the CH32V203C8T6 in the dev kit is exactly the chip I was looking at for the Sentinel-65x keyboard adapter - the smaller packages with fewer pins and peripherals are somehow more expensive?! npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 I got mine here: https://www.aliexpress.com/item/1005005069239098.html npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 The WCH CH32V* dev board packs are extremely excellent - you get a dev board with useful stuff attached, also broken out to GPIO pins, AND they chuck in another 5 of the bare ICs so you have a bunch ready to go as soon as you’ve finished getting your custom board fabbed! Plus, they’re so insanely cheap for what’s in the package. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 it’s also surprisingly expensive, and even forking out for a LTO-5 tape drive gets cost-competitive after a few TB of restores npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 counterpoint: the cloud is one kind of media in your 3-2-1 backup storage strategy. 3 copies, on 2 different kinds of media, with 1 copy stored off-site npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 time to break out a recording current monitor and see how much it actually pulls npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 so, uh, how much power is available on the V+ line coming out of that controller port? Both USB and PS/2 devices can be quite power-hungry… npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 probably send the modifier first, so the host can use it immediately when it receives the scan-code And a few more config options I can think of: - link modifiers (when l-shift is active, r-shift is also active, so only have to consider lower 4 bits of modifiers) - scancode re-mapping (eg swap l-ctrl and caps lock) - internal repeat (generate extra key-up/down events while a single key is held down) npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 the trick is going to be synchronizing the lock state (caps, num, scroll) - USB keyboards just send the scan code of the button and expect the host driver to deal with it. Could do some amount of configurability in the adapter, either pass raw scan code or map to modifier npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 oh wait, setting the high bit is exactly how a PS/2 keyboard does it, so that makes it easy. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 yep this was pretty much along the lines I was thinking. I’d probably use the high bit of the scan code for key-down/key-up. Would it be worthwhile using all 8 bits of the modifier to distinguish between left/right modifiers same as USB-HID-keyboard does (possibly using the exact same data, make it easier, in exchange for more difficult parsing of key-down/up)? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 … waitaminute, this would be ideal for one of those ultra-cheap WCH RISC-V MCUs! Which I happen to have a dev board of, with USB-A header attached to, so I can bash up some code while waiting for the board fab npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 I’ve got a few SAMD21’s in my stash at the moment, ima spin a board for it npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 probably be pretty easy to do with a usb-host supporting MCU, pretty sure something like a SAMD21 could do it npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 it is, for countries that receive far less UV radiation than mainland Australia npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 (oh, in case you’re wondering, in .au it’s common to slap on sunscreen before driving, because getting sunburnt arms and knees through the windscreen and side windows is a real thing) npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 this is me every time I put sunscreen on my face. No matter how careful I am applying it, eventually I’ll wipe sweat out of my eyes and rub sunscreen into them, causing instant tears and being barely able to see for the next half hour or so. Always a LOT of fun when I’m driving. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 blinky! It works! npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 trust the surface tension. I normally use a syringe with a fine (plastic conical) tip to put a drop of paste on each pad. SnBi low-temperature paste works better on hot plates, but is a mechanically weaker connection than 60/40 SnPb or SAC305. Dodgy, maybe, but effective. https://mediacdn.aus.social/media_attachments/files/112/532/115/795/793/886/original/c960cbfc6dc98f3f.mp4 npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 the key is the thermal rise you allow. +25°C would be sensible to start with in just about any environment. As noted else-thread, you can also use varying track widths, with wider tracks heat-sinking for narrower tracks. I personally use filled polygons for switching power traces to and from the inductor npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 and it’s exactly why you’re asking for extra eyes on it! Always happy to help npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 yes because it needs a ground reference to use the GPIO switch control. You’ve got a very high impedance path between GND and shield, so may not work properly. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 the USB switch needs to be on GND, not shield. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 ok cool. The one I’ve seen done wrong was being fed V_USB, but had the 3.3V output tied to the main 3.3V net, in parallel with another 3.3V LDO. Worked fine as long as there wasn’t a decent load transient, like if you took control of the GPS and enabled forced-standby on a GPIO, then released it from standby which caused an instantaneous ~100mA load. Confirmed fix was to cut the connection between the the UART’s 3V3 net and the system’s 3V3 net npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 I’m worried about connecting VCC/VCCOUT to your 3V3 rail, I’ve seen this done wrong before which ended up crashing the UART when a load transient happened. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 so, one question. What happens if this is plugged into a host PC port that can only output 5V, eg using a USB A-C cable? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 adding a USB-serial to this will need a USB 2:1 switch npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 yep looks good. It does look like you need a management MCU to read the status off that HUSB238 npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 ah you’re still tying shield to ground at the bottom of the same section, where the GND reference and probe point is npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 you may not need the bypass caps and/or terminating resistors, depending on the device. Also there’s a direct short between shield and ground next to the USB connector? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 if you need more than 5V/3A then yes, but you also need to handle not being granted the requested power level npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 yeah the AMS1117 family is a pretty solid choice - pretty big even though it’s SMT so easy to hand solder, cheap, and many even cheaper clones exist that work excellently (see LCSC). You’ll usually need a pair of 10uF tantalum caps each, but that’s all. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 why not use the original buck-boost 5V you were going to use? Too small being a fucking tiny SMT component? I’d probably pair a 5V buck-boost with a chonky 3.3V LDO (eg AMS1117-33), then you get some experience with switching supplies. Take a look at the TI power designer tool for some inspiration too. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 load-bearing structural steel case. Lovely! npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 full-height LTO drives run faster than half-heights, because they can pack a bigger motor and more cooling in. And speaking of faster, you need to be able to feed LTO drives fast enough to keep up with the minimum streaming transfer rate, otherwise the speed drops because of constant re-positioning which also destroys the tape and the head (referred to as shoe-shining) npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 uh I thought every LTO drive was 5-1/4” size? You may need to look for half-height vs full-height though. And yes, especially LTO5 and later are still horrifically expensive, because LTO5 is at a very nice inflection point of media price and useful features. LTFS and streaming encryption were added to LTO5 npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 Wait… how the fuck does that even work? https://mediacdn.aus.social/media_attachments/files/112/416/512/599/045/779/original/4693a077c0cb6476.jpeg npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 absolutely you can - zfs create -V generates a “volume” dataset which appears as a block device that you can put whatever you want on top. It’s been there since day dot, mainly to appease Oracle DBAs who insist on using raw block devices instead of cooked files. Right now I’ve got NTFS on a bunch of ZFS volume datasets, that I created by dd’ing off an existing physical disk and am sharing out as an iSCSI target npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 if you’re only looking at headline features, sure. There’s a LOT more to it than just headline features, when a filesystem understands what’s happening on the underlying disks in the pool, it can make MUCH smarter decisions about where and when to read or write data. The caveat “on Linux” holds though, but that’s because Linux isn’t a serious operating system. ZFS on Solaris has never lost a byte of data by its own causes in the almost 20 years I’ve been running it. I still see monthly’ish data-eating bugs with ZFS-on-Linux, but not usually shared with ZFS-on-FreeBSD npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 wasn’t this pretty much what Yahoo! started out as too? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 16GB Optane drives are also suspiciously cheap, and make for excellent swap/log/scratch drives. Perfect for the ZFS ZIL npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 TEETH https://www.aliexpress.com/item/4000368329932.html npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 there’s nothing you can do to affect it right now npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 As drop-in replacements for folks who don’t rate their SMT skills there’s probably a market. Wouldn’t be hard to do, make a bunch of cheap 4L boards, slap the SMT part on, include pin headers in the pack, and chuck them up on Tindie or something. Any parts in particular you’re thinking of? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 SMT breakouts? Have the T-H experience of soldering pins into boards, but using SMT components npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 how you holding up? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 keep going, day 2-3 is the peak npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 are you getting them done by JLC? If so, stick the magic text where it’s convenient under a connector or IC so the production number gets hidden during assembly. Also, definitely hide an Easter egg under an IC or connector npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 exactly. Prob don’t need the test point (?) at C53 / R90 either? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 almost, break the connection between 0 and 5, and put a GND on 5 npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 TVS diodes ground on the shield/earth side, then another resistor/capacitor pair. Sprinkle the resistor/capacitor pairs around, as close as possible to the shield pads. npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 oh wait, pin 0 (shield) should be shield, not tied directly to ground? npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 *sticks microphone in mouth* shield is not ground on d-sub connectors either npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 my fave C “trick” is the “downto“ operator: uint8_t i = 10; while (i --> 0) do_something(); npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 are the resistors and capacitors on the USB D+/- lines needed? Usually ICs that are USB endpoints contain these internally, so check the datasheet npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 a hot tip for the USB D+/- lines going to the ESD diode is to route them UNDER the diode, and rotate the diode so that the D+/- lines go in a straight line maintaining their differential pair width. I probably won’t be able to get to my computer today because I’m looking after little miss 5 during school holidays, but I’ll whip something up tomorrow if I don’t forget npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 AliExpress quality packaging! Let’s just sticky tape a bunch of ICs to a piece of cardboard… https://mediacdn.aus.social/media_attachments/files/112/238/221/710/143/424/original/f453ca087e999ba6.jpeg npub1m33czg27v449dkq5jh80qg9q52gumjcpj5uchh0d250w8yudmxsqmk4xuv /dev/rdsk/c0t0d0s2 oooooooh this is prototype 4?