Flash media longevity testing – 4 years later

  • Year 0 – I filled 10 32-GB Kingston flash drives with random data.
  • Year 1 – Tested drive 1, zero bit rot. Re-wrote drive 1 with the same data.
  • Year 2 – Tested drive 2, zero bit rot. Re-tested drive 1, zero bit rot. Re-wrote drives 1-2 with the same data.
  • Year 3 – Tested drive 3, zero bit rot. Re-tested drives 1-2, zero bit rot. Re-wrote drives 1-3 with the same data.
  • Year 4 – Tested drive 4, zero bit rot. Re-tested drives 1-3, zero bit rot. Re-wrote drives 1-4 with the same data.

Will report back in 2 more years when I test the fifth. Since flash drives are likely to last more than 10 years, the plan has never been “test one new one each year”.

The years where I’ll first touch a new drive (assuming no errors) are: 1, 2, 3, 4, 6, 8, 11, 15, 20, 27

The full test plan:

YEAR 1: read+write  1                           [1s]
YEAR 2: read+write  1, 2                        [1s]
YEAR 3: read+write  1, 2, 3                     [1s]
YEAR 4: read+write  1, 2, 3, 4                  [2s] (every 2nd year)
year 5: read+write  1, 2, 3,
YEAR 6: read+write  1, 2, 3, 4  5               [2s]
year 7: read+write  1, 2, 3,
YEAR 8: read+write  1, 2, 3, 4, 5, 6            [2s]
year 9: read+write  1, 2, 3,
year 10: read+write 1, 2, 3, 4, 5, 6
YEAR 11: read+write 1, 2, 3,         7          [4s]
year 12: read+write 1, 2, 3, 4, 5, 6
year 13: read+write 1, 2, 3
year 14: read+write 1, 2, 3, 4, 5, 6
YEAR 15: read+write 1, 2, 3,         7, 8       [4s]
year 16: read+write 1, 2, 3, 4, 5, 6
year 17: read+write 1, 2, 3
year 18: read+write 1, 2, 3, 4, 5, 6
year 19: read+write 1, 2, 3,         7, 8
YEAR 20: read+write 1, 2, 3, 4, 5, 6       9    [8s]
year 21: read+write 1, 2, 3
year 22: read+write 1, 2, 3, 4, 5, 6
read 23: read+write 1, 2, 3          7, 8
year 24: read+write 1, 2, 3, 4, 5, 6
year 25: read+write 1, 2, 3
year 26: read+write 1, 2, 3, 4, 5, 6
YEAR 27: read+write 1, 2, 3          7, 8,   10 [8s]
year 28: read+write 1, 2, 3, 4, 5, 6       9
year 29+: repeat years 21-28

FAQ: https://blog.za3k.com/usb-flash-longevity-testing-year-2/

Hack-A-Day, Day 28: 90s Sitcom

Two friends and I wrote the intro to “Pint-Sized”, a 90s sitcom that never existed.

We used DALL-E and stable diffusion for images, Photopea to add captions, and Google’s AI Test Kitchen for the backing music. Cheers were added with audacity. The video was edited together with ffmpeg.

Credits: za3k, stetson blake, jeremy mcintyre

Hack-a-Day, Day 22: Homemade PCBs

Today I learned how to make PCBs. I didn’t invent anything here, this is all pretty well known by the PCB-making community, but it’s not well-known to me. So I taught myself a bit!

The first part was the design an electronic circuit. I decided I was short on time, so I grabbed an existing schematic.

Next, I downloaded KiCAD, and recreated the circuit there. I found this video tutorial very helpful to learn kicad.

Next, I made the actual PCB layout.

To my surprise, after a little jiggling I got it down to a one-layer design.

That means home-printing would be much easier. No having to line up the two sides carefully.

I printed out the image on paper (backwards) on my toner printer, and taped it to the copper-clad PCBs.

First, I tried laminating it. Almost no ink transferred, and the paper came off easily. Then I tried ironing it, but the paper stick to the iron and not to the PCB. The tape melted on the iron. For both, I dunked them in water after, which is supposed to help loosen the paper.

Next, I tried the standard advice–sand the PCBs (I used 320 grit) and use glossy paper. This time, both pieces of paper stuck very well. I was wary about the iron coming off again, so I just left it on place on the highest heat–this worked fine for adhesion, but I had to iron out wrinkles at the end. The laminated piece had lose edges, while the ironed piece was on there totally flat.

I tried peeling off the laminated paper–oops! It peeled back and most of the ink stayed on the paper. I think if I took it off more carefully, it would have worked.

I picked at the ironed paper a bit, but it didn’t budge. I let it sit in dish soap for a while so the paper would fall apart. The first hour didn’t do anything.

Meanwhile, I made an order at PCBWay. It’s still under review.

Edit: after some advice from a friend, I peeled off this paper more aggressively, and scrubbed it off. The ink was fine. It doesn’t look great, but I think this is mostly the wrinkles during transfer. It’s a little blurry, I’ll have to do a third attempt before I try etching.

Hack-A-Day, Day 20: Hillsfar Lockpicking Spritesheet

For today’s hack-a-day, I meant to clone the Hillsfar lockpicking minigame. Instead, I spent all day just extracting the sprites. But I had a nice chill time, so it was great.

Edit: See the updated post for the finished game.

Here’s the original minigame:

Here’s my spritesheet:

I made it by splitting up screenshots:

Hack-A-Day, Day 18: A.I. Grab-bag

Today I got a variety of modern A.I. tools to work in a python library. This one is mostly install instructions, but it was useful for me, at least.

I took a day off after.

My conclusions were:

  • Speech synthesis runs at 400x realtime on CPU.
  • Speech recognition runs at 0.4x realtime on CPU, 60x realtime on GPU.
  • Generating chat at 0.05x – 0.5x realtime (3-30 wpm) on GPU.

I didn’t get image generation working on my allotted time.

Hack-A-Day, Day 06: Raytracing Redux (realtime video)

Today’s update is a short one. I ported my raytracer from day 02, to the Nvidia GPU: ha3k-06-raytracer

The visuals are pretty much the same. Incidentally I discovered the striations on the ground disappear if we increase the floating point precision.

Render on the GPU is 30x faster (0.05 fps -> 3 fps). That’s still not very fast.

I didn’t get video working yesterday, or anything else visually new. I will call this one a failure overall, because I have nothing interesting to show off. I learned stuff and made progress though, so it’s not so bad.

Here’s a working video!