konilo-documentation/unsorted/hardware.txt

173 lines
6.2 KiB
Text
Raw Permalink Normal View History

Konilo Hardware Project
Arland & I would like to eventually have a computer running our
Forth system with as few intermediate layers as possible.
This will be a lengthy project, in part due to a lack of real
experience with hardware designs. We are hoping in the short
term to make use of existing designs. Longer term, Arland wants
to learn enough to create a dedicated CPU for the ilo & arks
instruction sets, and have a fully custom system.
We are running Konilo initially, and later plan to support
Arland's ARKS system as well.
Basic Requirements
The ilo design calls for:
* 64kw of RAM (262,144 bytes)
* 32 words of data stack (128 bytes)
* 256 words of address stack (1,024 bytes)
* IP, SP, RP registers (12 bytes)
* Serial or keyboard input
* Serial or text display for output
Optionally:
* a bitmap display (via the graphica extension)
* a pointing device (via the pointer extension)
Additional memory will be needed for a display (if not using
serial i/o), and possibly emulated devices. I've found that it
runs fine under host operating systems with around 384k of
actual RAM.
ARKS basically doubles the memory usage.
Target Hardware
We've evaluated a number of boards.
RP2040 (Raspberry Pi Pico)
We like this, but it's a lttle too light on RAM for our
needs. We are looking at using it, with a reduced memory
version of ilo, as a controller for a keyboard & mouse.
Lilygo TTGO VGA Controller
This is a nice little ESP32 board with PS2 keyboard & mouse,
VGA output, an SD card slot, audio, and onboard wifi. It has
520 kB of RAM, which is enough for ilo, but light for ARKS.
We are currently evaluating using this for I/O purposes.
Teensy4.1
This is an ARM board with 1MB RAM, 55 I/O pins, an SD card,
and support for serial, ethernet, and USB host. Additional
SRAM can be soldered to add more RAM.
We have a working ilo system running on this. We still need
to implement non-serial keyboard & display, but are working
on this. (We'll be using a 320x240 bitmap display for the
non-serial build)
This is currently my primary target. As noted, we are looking
at using other systems for I/O purposes, but have not yet
(June 2024) made any final decisions on this aspect.
Rapsberry Pi
We have a RPi 0 and an RPi 3. Running a small Linux install
and using a framebuffer for the display, Konilo is working on
this.
It's not my preferred option. While easy to setup, I dislike
needing a full OS under my code, and have not been able to
pursue a native system on this yet.
Others
There are a variety of other possible boards we could use. The
Milk-V DUO S is a RISC-V system which might be usable. I'm
interested in this, but have not yet obtained one. The Ox64
boards from Pine64 also look interesting.
GeDaMo has suggested looking at PIC32, which does have some
through hole variations. This looks to be a MIPS architecture
and may be useful for a display/io controller? The largest of
the DIP packages seems to have 256KB RAM, which I think is
enough to the 720x720 resolution Arland would like to use for
his clamshell model.
Form Factor
We are currently working towards three models.
The first is a small system, with a port for serial I/O, slots
for memory cards for the rom & blocks, a power switch, and USB-C
input for power. We also plan to expose at least some I/O pins.
The second is a slab, similar to the Cambridge Z88, TRS-80 Model
100, or Amstrad NC 100. This is expected to be around the size
of a sheet of A4 paper, and probably around 1" - 1.25" thick.
It'll have an integral keyboard, a visual display, and the same
card slots for storage. It may also have an audio jack or a
small speaker, and will have an internal battery. We are aiming
to have this provide at least 24 hours of usage on a charge.
The third model is a more traditional clamshell. It'll be based
on the slab design, but we are hoping to use a higher resolution
display in this model. Arland intends for this model to fully
support his ARKS system.
Software
The computer will run Konilo. The basic environment is complete,
and has been in daily use for over a year. I am continuing to
write programs (mostly for my own use), and Arland has also
written few. He intends to do more with this once the graphics
support is complete.
Recognizing that non-programmers might find this useful, we are
discussing writing interfaces that would allow using it without
directly interacting with the Forth listener. (Two text based
program launchers have been written, but Arland is considering
writing something that make use of the graphical abilities for
this).
Interacting With The World
I'm not overly concerned with this. Our current plan is to
eventually provide a limited ethernet or wifi access. For me,
I think it'll mostly be small periods of connectivity where I
send off messages, receive bundles of things, and then
disconnect.
We do not plan to support always on internet connectivity.
But: we are interested in low power local mesh networks between
devices. This is likely to be used w/embedded systems (a
separate topic) that our main computers can interact with as
needed.
Timeline
Two prototypes have been built. We have constructed one slab
style unit out of wood, cardboard, a Raspberry Pi 3, an LCD,
batteries, and a USB keyboard. It's been used a little, but is
quite flimsy and is falling apart.
I also have a system running on a Teensy 4.1. This doesn't yet
have an enclosure, and has various bits loosely attached.
In the summer of 2024 I'm trying to complete the initial serial
based Teensy build (along with a serial + ps/2 + vga device
using the TTGO VGA CONTROLLER). I'm also sourcing the components
for the first full slab build.
We are going to try to have two of the slabs complete by the end
of 2024, and want to start building the more complex clamshell
devices in early 2025.
Beyond this, if we stick with the process of using the Teensy as
a core, the board design is open, so we might be able to design
custom boards adding in whatever additional components are used.
Discussions on this are ongoing.
Once we have functional systems, we do plan to produce a number
of them for our use and backup purposes. Arland is interested in
potentially offering them for sale if there's interest in them.