pcm4/docs/overview.txt

64 lines
1.8 KiB
Plaintext

# pocket computer M4
The PCM4 (pocket computer / M4) is a handheld computing device based
around the Keyboard FeatherWing [1] and the Adafruit Feather M4 [2].
The Feather M4 has 512K of flash memory, 192K of RAM, and 2M QSPI [3]
flash.
[1] https://www.tindie.com/products/arturo182/keyboard-featherwing-qwerty-keyboard-26-lcd/
[2] https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51?view=all
[3] https://github.com/adafruit/Adafruit_QSPI
It will have a scheme-based operating system.
## Feather M4 pinouts
+ A0: reserved
+ A1: reserved
+ A2: reserved for RFM9X CS
+ A3: reserved for RFM9X RST
+ A4: reserved for airlift ESPBUSY
+ A5: reserved for airlift ESPRESET
+ D4: reserved for RFM9X IRQ
+ D5: SD card CS
+ D6: STMPE CS
+ D9: LCD CS
+ D10: LCD DC
+ D11: neopixel
## Peripherals
+ Display: 320x240 touchscreen
+ ILI9341 LCD controller
+ STMPE610 touchscreen
+ Keyboard: BB Q10 keyboard + 4x tactile buttons + 5-way switch
+ I2C address: 0x1F
+ Planned: DS3231 RTC
+ I2C address: 0x66
+ Planned: RFM95 LoRa featherwing
+ Planned: ESP32 airlift
+ Planned: ATECC608A cryptoprocessor
## Boot sequence
1. Stage 1: UF2 bootloader [4][5]
2. Stage 2: base hardware environment
+ hardware init
+ I2C/SPI interface
+ SD card
+ RTC core
+ scheme core
3. Load boot.scm from SD card.
Stretch goal:
+ Holding down the center button in the joystick should bring up a menu
of scheme files on the SD card, allowing the user to select the boot
code.
Note that each stage is as minimal as possible, so stage 2 should
contain just enough to load the operating system from boot.scm,
which should contain the actual operating system.
[4] https://learn.adafruit.com/adafruit-feather-m0-express-designed-for-circuit-python-circuitpython/uf2-bootloader-details
[5] https://github.com/Microsoft/uf2