YOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

I am going to get up to SO MANY shenanigans with my tiny FPGA Game Boy

It's a minor thing, but I am giggling so hard right now. I just compiled one of Didier's Verilog sample programs, copied the netlist and some JSON to the Pocket's drive over USB-C, exited drive mode and selected the core, and… I just programmed an FPGA! I didn't write the code, but even just USING these things is supposed to be super hard! And all I had to do was copy files over USB and now it's running on a screen! CIRCUITS! And they're DRAWING things! That is so cool!!

Okay. This was my mod. It was supposed to be the letters L33T, the stars were supposed to be multicolor, and the "desert Chrome" colors were supposed to be different.

Each thing I changed failed in a different way

No, there's no starfield at all. That's dust

Mwa ha ha!!! I did it!! It's different!!! I didn't make this but I made it Different

Confession: After recording this video I spent like 10-15 minutes repeatedly re-reprogramming it unsuccessfully trying to make the bottom half of the text pink so I could say "look, bisexual colors!". Every attempt to make a pink just wound up with a different rusty brown. I eventually decided that my worth as a programmer does not hinge on my ability to eyeball what hex value will become pink after it's darkened an arbitrary amount. At any rate I think the current colors are *pretty* bisexual.

Incidentally if you look really close you'll find the Terasic JTAG "USB Blaster" has printed on it, in tiny letters, "Lead Free". I think this is supposed to make me reassured but really it's just making me worry what was going on here that I apparently *ought* to be worried about a JTAG connector *not* being lead free

Baby steps progress continues: I made a version of the Verilog sample project that contains animation and sound (an A440 tone). This actually is much less impressive than the last demo I posted, but I did more of it myself.

Thanks to some absolutely heroic work by @whitequark it is as of last night now possible to make Analogue Pocket cores in Amaranth, which is the Python eDSL HDL I used to make this: cohost.org/mcc/post/2499788-my Basically you write a Python script that describes a circuit, and you get to just skip most of Verilog's unnecessary headaches. The chances of me making something cool for Pocket just went way up.

Here's Whitequark's template Amaranth core filling the screen with magenta:

Also, reviewing this thread I'm realizing if you read the Cohost post about my Doppler/Amaranth project then work down the videos/images in this thread you can basically watch my nail polish degrading in real time. I really need to put on a new coat before I try to take any more demo shots

I have now acquired a Pocket dev kit!!!

Check out this weird naked Game Boy cart that comes with it. This is actually the most important thing in the entire devkit package because it's got a button, an LED, and a serial port on it, exactly the things you'd want for debugging a design

Ok so this is very exciting!! I need to write a Cohost post to really explain this but. Check out this custom FPGA core I built! It's unpleasant to look at and unpleasant to listen to but it's important because:
- Its synchronized video animation and audio with all "business logic" in pure Amaranth (Python). (@whitequark did the video writing code, I did the color patterns and the audio.)
- The ugly color patterns (which my phone camera can't pick up even up close) test Pocket screen resolutions

The source is at github.com/mcclure/analogue-co , but it won't help you much pending a better explanation.

For this screen test app, I wound up doing audio synthesis (the 16-note sequence of square waves playing C octave) at the bit level by generating the needed bits in real time as each bit was needed while writing those bits to a sound chip using the i2s serial protocol. This was a *fascinating* experience that I never, ever want to do again.

Okay, here's something a lot prettier looking (maybe not prettier sounding… depending on your tastes). After taking two whole weeks to make a "hello world", I made this little "rule 30" cellular automata scroller in about two hours (about 3/4 of which, inevitably, was debugging). This is running in pure gateware (fixed circuit in FPGA) on an Analogue Pocket. The original version was much higher res but I reduced it to take a video. Gonna try adding controls next…

Source: github.com/mcclure/analogue-co

Update: I have redone my nail polish and am now ready to resume taking demo photos with the Pocket #lookatmynails

Vaulted over the final mandatory gate to making "something useful" on the Analogue Pocket: Input! I now have a demo for the Pocket buttons. This is written in Amaranth and despite not being that complicated managed to uncover bugs in both of Amaranth and Yosys! I feel proud. I think.

@mcc that looks like an amazing figit toy, too

Sign in to participate in the conversation
Awoo Space

Awoo.space is a Mastodon instance where members can rely on a team of moderators to help resolve conflict, and limits federation with other instances using a specific access list to minimize abuse.

While mature content is allowed here, we strongly believe in being able to choose to engage with content on your own terms, so please make sure to put mature and potentially sensitive content behind the CW feature with enough description that people know what it's about.

Before signing up, please read our community guidelines. While it's a very broad swath of topics it covers, please do your best! We believe that as long as you're putting forth genuine effort to limit harm you might cause – even if you haven't read the document – you'll be okay!