ch00f

joined 1 year ago
[–] ch00f@lemmy.world 1 points 1 hour ago (1 children)

I'm sure there are a half-dozen ways you could at least fake it. Like if the bezel can be made clear and they overlap somewhat.

[–] ch00f@lemmy.world 5 points 2 hours ago

I bought a vinyl of the soundtrack to 2001 A Space Oddyssey at a antique store.

The clerk told me “oh wow, that’s the year I was born!”

My wife tells the story that my response was the most deadpan “cool” she has ever heard.

[–] ch00f@lemmy.world 8 points 2 hours ago* (last edited 1 hour ago) (3 children)

Weird to see a bot tell on themselves like this

[–] ch00f@lemmy.world 2 points 2 hours ago

https://en.wikipedia.org/wiki/Victoria_Hall_disaster

Doesn’t have to be an emergency. 183 children died rushing to get free toys.

At the bottom of the staircase, the door opened inward and had been bolted to leave a gap only wide enough for one child to pass at a time. It is believed this was to ensure the orderly checking of tickets.[4] With few accompanying adults to maintain order, the children surged down the stairs toward the door. Those at the front became trapped and were crushed to death by the weight of the crowd behind them.[2]

Definition of poor organization resulting in death.

[–] ch00f@lemmy.world 5 points 22 hours ago (1 children)

Just asking because if it's not some kind of metal (and something tougher than pewter), it's liable to melt when it comes within a few cm of 2000F molten glass.

[–] ch00f@lemmy.world 2 points 1 day ago (3 children)

What’s the figurine made out of?

[–] ch00f@lemmy.world 13 points 1 day ago (9 children)

What I don’t understand is why nobody makes a foldable phone where it’s just two flat screens with an invisible bezel along one edge so they fit seamlessly together when fully opened.

It’s not like there’s a use case where you operate the phone half unfolded and require both halves of the screen to be seamlessly connected.

If the flexing feature wasn’t a gimmick and there was an actual use case for a foldable pocket iPad, someone would have released a phone like the Kyocera Echo https://en.wikipedia.org/wiki/Kyocera_Echo to commercial success.

[–] ch00f@lemmy.world 9 points 3 days ago* (last edited 3 days ago) (1 children)

At my last job, every time they added or removed someone’s key card access, the system would reboot and everyone would be locked out for like two minutes.

We also had two floors that were connected by a fire stairwell, so you needed a card to re-enter the next floor.

At least twice my card stopped working in the middle of the word day while I was standing in the stairwell and I assumed that they just fired me and assumed I’d see my own way out.

Survived three layoffs at that company.

[–] ch00f@lemmy.world 1 points 4 days ago

I wonder what the azeotrope for magically created alcohol is.

[–] ch00f@lemmy.world 1 points 5 days ago (1 children)

Yeah, it was a budget portable device released in 1995 running a processor from 1984. I think it was just written in straight assembly. I've even found some unreachable code snippets in the assembly that print debug messages which confirm that theory.

[–] ch00f@lemmy.world 1 points 6 days ago (3 children)

Thanks for the response!

I think the issue is that the "structured programming equivalent" is just a really, really long function that's not any easier to read.

[–] ch00f@lemmy.world 2 points 6 days ago (1 children)

Good idea, but the ribbon connects to the other side of the connector.

 

Like why do I feel like I’m supposed to be able to name the seven boroughs? I can’t tell you anything about L.A., Chicago, Boston, etc.

Edit: to clarify: I mean that everyone in America are expected to know NYC. Not just New Yorkers. Obviously everyone should know the layout of where they live.

 

I'm working on a mod kit for a popular item, but my target audience isn't likely to have a soldering iron. The majority of the project connects to an exposed ribbon connector, but I need to short two terminals to force a power supply on.

Any ideas on a method I could provide for people who can't solder? Maybe a strip of copper tape?

 

I dumped the ROM out of a piece of retro-tech and have been working through the code in Ghidra. Unfortunately, I can’t exactly decompile it because I don’t think it was originally written in a higher level language.

For example, the stack is rarely used and most functions either deal entirely in global variables, or binary values are passed back using the carry or other low-level bits. Trying to turn it into C would just make spaghetti code with a different sauce.

So my current plan is to just comment every subroutine as best I can, but that still leaves a few massive lookup tables that should be dropped into a spreadsheet of some sort to add context. Not to mention schematics.

My question is what’s the best way to present all of this? I’d like to open-source the result, so a simple PDF is not ideal. I guess I should make a GitHub project? Are there any good examples or templates I can draw on?

 

Looking to ROM dump just a handful of games, so I’m trying not to spend hundreds on a Sanni or Retrode. I saw this on AliExpress for $15.

I’ve personally had good luck with Alibaba and Aliexpress, but I recognize that this could just straight not work. There’s no documentation, but it claims the game data will show up like files on a USB flash drive.

Anybody know where this design came from?

 

Edit: turns out these are all bootleg and I’m a moron. Only two Zelda games were officially released for GBA.

Just kicked off a return.

 

I’m now at a point where I can detect 152 nodes in my city. 25 are listed as “online.”

Yet the only contact I’ve gotten is the occasional “hello world” and once or twice a response to my own “hello world.”

It’s possible that nobody has anything to say, but I also suspect the network isn’t robust enough to maintain contact and facilitate a real conversation between random strangers.

Has anybody else here managed to actual chat with someone they don’t know?

 

Rak wireless module with battery/solar.

My question is…now what? I’m in Seattle, I can pick up 121 nodes, but there no traffic.

Is everybody using private channels? Or is nobody talking? I don’t see many messages and got one reply to a general CQ I sent out, but no response to the follow up.

I guess I was kind of hoping for what I get over ham radio, occasional chats, evening nets, etc.

Am I running into a technical limitation? Or is that the gist of Meshtastic?

As a follow-up, can I easily see if my router is handling other people’s traffic? I’d like to know if I’m helping.

 

I originally told the story over on the other site, but I thought I’d share it here. With a bonus!

I was working on a hardware accessory for the OG iPad. The accessory connected to the iPad over USB and provided MIDI in/out and audio in/out appropriate for a musician trying to lay down some tracks in Garage Band.

It was a winner of a product because at its core, it was based on a USB product we had already been making for PCs for almost a decade. All we needed was a little microcontroller to put the iPad into USB host mode (this was in the 30-pin connector days), and then allow it to connect to what was basically a finished product.

This product was so old in fact that nobody knew how to compile the source code. When it came time to get it working, someone had to edit the binaries to change the USB descriptors to reflect the new product name and that it drew <10mA from the iPad's USB port (the original device was port-powered, but the iPad would get angry if you requested more than 10mA even if you were self-powered). This was especially silly because the original product had a 4-character name, but the new product had a 7-character name. We couldn't make room for the extra bytes, so we had to truncate the name to fit it into the binary without breaking anything.

Anyway, product ships and we notice a problem. Every once in a while, a MIDI message is missed. For those of you not familiar, MIDI is used to transmit musical notes that can be later turned into audio by whatever processor/voice you want. A typical message contains the note (A, B, F-sharp, etc), a velocity (how hard you hit the key), and whether it's a key on or key off. So pressing and releasing a piano key generate two separate messages.

Missing the occasional note message wouldn't typically be a big deal except for instrument voices with infinite sustain like a pipe organ. If you had the pipe organ voice selected when using our device, it's possible that it would receive a key on, but not a key off. This would result in the iPad assuming that you were holding the key down indefinitely.

There isn't an official spec for what to do if you receive another key-on of the same note without a key-off in between, but Apple handled this in the worst way possible. The iPad would only consider the key released if the number of key-ons and key-offs matched. So the only way to release this pipe organ key was to hope for it to skip a subsequent key-on message for the same key and then finally receive the key-off. The odds of this happening are approximately 0%, so most users had to resort to force quitting the app.

Rumors flooded the customer message boards about what could cause this behavior, maybe it was the new iOS update? Maybe you had to close all your other apps? There was a ton of hairbrained theories floating around, but nobody had any definitive explanation.

Well I was new to the company and fresh out of college, so I was tasked with figuring this one out.

First step was finding a way to generate the bug. I wrote a python script that would hammer scales into our product and just listened for a key to get stuck. I can still recall the cacophony of what amounted to an elephant on cocaine slamming on a keyboard for hours on end.

Eventually, I could reproduce the bug about every 10 minutes. One thing I noticed is that it only happened if multiple keys were pressed simultaneously. Pressing one key at a time would never produce the issue.

Using a fancy cable that is only available to Apple hardware developers, I was able to interrogate the USB traffic going between our product and the iPad. After a loooot of hunting (the USB debugger could only sample a small portion, so I had to hit the trigger right when I heard the stuck note), I was able to show that the offending note-off event was never making it to the iPad. So Apple was not to blame; our firmware was randomly not passing MIDI messages along.

Next step was getting the source to compile. I don't remember a lot of the details, but it depended on "hex3bin" which I assume was some neckbeard's version of hex2bin that was "better" for some reasons. I also ended up needing to find a Perl script that was buried deep in some university website. I assume that these tools were widely available when the firmware was written 7 years prior, but they took some digging. I still don't know anything about Perl, but I got it to run.

With firmware compiling, I was able to insert instructions to blink certain LEDs (the device had a few debug LEDs inside that weren't visible to the user) at certain points in the firmware. There was no live debugger available for the simple 8-bit processor on this thing, so that's all I had.

What it came down to was a timing issue. The processor needed to handle audio traffic as well as MIDI traffic. It would pause whatever it was doing while handling the audio packets. The MIDI traffic was buffered, so if a key-on or key-off came in while the audio was being handled, it would be addressed immediately after the audio was done.

But it was only single buffered. So if a second MIDI message came in while audio was being handled, the second note would overwrite the first, and that first note would be forever lost. There is a limit to how fast MIDI notes can come in over USB, and it was just barely faster than it took to process the audio. So if the first note came in just after the processor cut to handling audio, the next note could potentially come in just before the processor cut back.

Now for the solution. Knowing very little about USB audio processing, but having cut my teeth in college on 8-bit 8051 processors, I knew what kind of functions tended to be slow. I did a Ctrl+F for "%" and found a 16-bit modulo right in the audio processing code.

This 16-bit modulo was just a final check that the correct number of bytes or bits were being sent (expecting remainder zero), so the denominator was going to be the same every time. The way it was written, the compiler assumed that the denominator could be different every time, so in the background it included an entire function for handling 16-bit modulos on an 8-bit processor.

I googled "optimize modulo," and quickly learned that given a fixed denominator, any 16-bit modulo can be rewritten as three 8-bit modulos.

I tried implementing this single-line change, and the audio processor quickly dropped from 90us per packet to like 20us per packet. This 100% fixed the bug.

Unfortunately, there was no way to field-upgrade the firmware, so that was still a headache for customer service.

As to why this bug never showed up in the preceding 7 years that the USB version of the product was being sold, it was likely because most users only used the device as an audio recorder or MIDI recorder. With only MIDI enabled, no audio is processed, and the bug wouldn't happen. The iPad however enabled every feature all the time. So the bug was always there. It's just that nobody noticed it. Edit: also, many MIDI apps don't do what Apple does and require matching key on/key off events. So if a key gets stuck, pressing it again will unstick it.

So three months of listening to Satan banging his fists on a pipe organ lead to a single line change to fix a seven year old bug.

TL;DR: 16-bit modulo on an 8-bit processor is slow and caused packets to get dropped.

The bonus is at 4:40 in this video https://youtu.be/DBfojDxpZLY?si=oCUlFY0YrruiUeQq

 
 

So my wife cracked the screen of her Playdate console. I got a replacement memory LCD (Sharp LS027B7DH01A), but the LCD is mounted with optically clear adhesive directly to a piece of glass which is adhered around the edges to the console’s faceplate.

The glass measures 65.15x41.64mm by 0.65mm thick. Definitely not a standard size. I can’t find anywhere to buy glass so thin and so large.

My first thought was to cut a phone screen protector down to size with a glass cutter. My first attempt failed because the screen protector I bought was actually coated in plastic on both sides. Even if I got a straight cut, I couldn’t find a way to slice through the plastic layers cleanly.

Any ideas on where to find cuttable glass sheets this thin? I could try more screen protectors, but there’s no way to know if they’ll work before buying them.

 

Let’s call it hybrid soldered memory

view more: next ›