Show newer

Just realized that the rainbow after the biblical flood was literally a redemption arc

Basically I could save myself a ton of grief by just using '245s instead of '299s. I *may* lose the ability to do DMA transfers, though...

Show thread

Worked out the timings and realized I don't *quite* have enough clocks available to do this how I'd hoped. Trying to figure out if I should keep forging along or solve the problem in hardware.

phooky boosted

david's number is an irrational number that can be calculated to arbitrary precision as follows:

take the currently known decimal digits of david's number, then publish them as well as any more digits in a public place with a publicly verifiable timestamp (eg a fedi post. please don't use a blockchain) using the format: "#DavidsNumber is 0.7"

david's number is defined as whatever the most recent of these posts defines it as, provided that post used the correct previously calculated digits of david's number

Show thread

Bumblebee queens, more than I've ever seen, are fighting for nesting space on my roof today. Has anyone tried building bumblebee colony boxes? What's it like living with bumblebees?

Reading an old Ted Nelson article in which he proposes a file structure that's just as much of a fucking mess as an actual desktop

woo, rabbit hole 

Just was reminded of this particular pile of woo:
arkcrystals.com/

Looked at the compiler-generated assembly for the loop that I was going to optimize, and it's actually... very good? Like, I can't really figure out where I'd be able to cut out an instruction. So maybe that loop not being fast enough is not my problem. Back to the drawing board.

Me: ok I'll learn this one-off assembler for this super weird esoteric subprocessor, nbd

Also me: terrified by the prospect of having to write bog standard ARM assembly

phooky boosted

Silica Gel Pack
This is not a snack of honor
no highly edible substance is commemorated here

So I moved the "interesting event" filter to c1, and everything righted itself instantly.

I guess the moral of the story is, "keep an eye on your pipelines"?

Show thread

So I removed the conditional jump from sm0, so that c0 could examine the bus lines and decide when to report an access. Everything exploded. Random addresses being reported, c1/sm0 lockups, ugh. What was happening?

What was happening was that now sm0 was blasting out addresses at 1MHz, and the very first time c0 tried to report an event, it called printf to USB. Which takes a couple of ms. Which meant the c1->c0 fifo filled up. Which meant the sm0->c1 buffer filled up. (con't)

Show thread

A microcontroller debugging story:

I have ARM core 0 (c0) talking to my laptop over USB, reporting useful events. ARM core 1 (c1) just sets up the address bus PIO state machine (sm0) and sends the data along to c0 so it can report anything interesting. Fine. I had set up a jump in sm0 to skip sending the address data unless DEVSEL was pulled low on the bus. This all worked perfectly. Now I wanted to be able to detect IOSEL low events as well. (cont'd)

Legos 

How many billions is Lego group leaving on the table by not selling these hubcaps

"Why don't you just use an OR operation?" you ask innocently, causing me to launch the entire RP2040 datasheet directly at your face at high speeds

Show thread

Actual useful description:
I want to trigger a state machine on one of two pins, so write a simple SM program:
start:
WAIT IRQ 4 // wait for start of OR
JMP pin start
IRQ set 5 // set IRQ 5

and then configure the two state machines to both use this program, with the jmp pin configured to each of the two pins I want to OR. Then in the main prog I just do:
IRQ set 4 [3]
// check IRQ 5 for status here
IRQ clear 5

Show thread

current RP2040 PIO hacking status: using two separate state machines with slightly different configurations to perform an OR operation.

This platform is crazy bananas and I love it.

I should point out that the PSU continued to supply reliable power to the board until I unplugged it, despite being literally on fire

Show thread

In situ, for context. Was smoke pouring out of this sealed PSU? Reader, it was

Show thread
Show older
Octodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!