Astralixi OS Megathread

If you look at my C Library starter project, PicoCalc Text Starter (on GitHub) you can see how everything is connected, except for the PSRAM, I haven’t gotten to that yet.

2 Likes

wait, for the audio, do you NEED the .pio file?

You can do audio on the PicoCalc with a plain PWM peripheral, but then you are limited to mono audio because both L and R are on the same PWM slice and thus share the same clock. However, if you use PIO you can get around this as PIO enables constructing independent PWM for L and R.

3 Likes

In ~6 hours I will be uploading a new devlog to my Youtube Channel!

What are the main things in the PicoCalc:

  1. Display
  2. Keyboard
  3. SD card slot
  4. PSRAM
  5. Speakers
  6. GPIOs

Anything else, which I should initialize in the kernel?

Also, should I make an app later on for the OS, which is micropython?

Can’t think about future only the guidelines. Dont focus on making apps for an OS which isnt even out of the kernel stage..

L and R on the same slice are perfect if you use wavetable synthesis for tone production and for things like wav playback just set the PWM to 44100Hz and set the L/R duty cycles every 1/44100 seconds to the amplitude required.

Where to buy the Pico 2W:

ASIA: Raspberry Pi Pico 2W - MakerPH Electronics
AUSTRALIA: Raspberry Pi Pico 2WH – Pi Australia
NORTH AMERICA: Raspberry Pi Pico 2W with Header - PiShop.us
SOUTH AMERICA: Raspberry Pi Pico 2 W RP2350 - UNIT Electronics
AFRICA: https://www.pishop.co.za/store/raspberry-pi-pico-2-w-with-header
EUROPE: Raspberry Pi Pico 2W - OTRONIC

Do you have any idea how I can initialize/connect PSRAM? as the sad thing is, for PicoCalcs, it’s hard to find resources about their parts.

New DEVLOG!

I would ignore the PSRAM on the mainboard for starters, especially since it is slow, especially without a built-in cache, and difficult to work with. If anything, I wish that ClockworkPi had not even bothered and had instead exposed the relevant GPIO’s to the user.

1 Like

The thing is controlling a GPIO at 44.1 kHz will impose a significant processor load, and is not practical on the RP2040 without overclocking.

The question is whether any of these things should be in your kernel. All of these things sound like things that should go in device drivers, which needn’t be part of your core kernel, and even if they are in your kernel they should be loadable extras (e.g. ‘kernel modules’ in Linux parlance).

1 Like

Not true. Use the PWM to interrupt at 44.1KHz and in the interrupt add the phase change, look up the duty cycle and set it. Tried and tested at 126MHz let alone 200MHz as now approved by RPi. Overhead is less than 5% of processor.

Okay, I was thinking of how MP3 decoding is impractical on the RP2040, my bad.

Absolutely, tried and failed. FLAC and WAV OK but MP3 at 44.1KHz impossible.

All those who are visibly lossless. Vorbis too maybe?

Is the issue with the PicoCalc’s keyboard sometimes not detecting a key press and requiring a double press or smth, to do with the hardware, or the firmware?

Keyboard and Display Initialized in kernel!

Audio and SD card has been initialized outside of kernel, after log in sequence.