diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -23,14 +23,26 @@ Finally, a variety of devices connect to the iCEBreaker over I²C, including sev The different components are in the following subdirectories: - `case/` contains the [OpenSCAD] code for the case design. +- `ch559/` contains the source code to the Forth implementation that runs on the CH559. - `fpga/` contains the [Bluespec] code that runs on the iCEBreaker. - `inkplate/` contains the code that runs on the Inkplate. - `simhost/` contains Rust code that implements simulated peripherals for bluesim. -- `usbkbd/` contains the C code that runs on the CH559. [Bluespec]: https://github.com/B-Lang-org/bsc [OpenSCAD]: https://openscad.org/ +## CH559 Code + +The CH559 is a microcontroller based on an enhanced [8051]. +It has two USB ports that can operate in device or host mode, which we will use to access USB keyboards. +Programming the board is somewhat annoying -- it has [ICSP] support, but entering the programming mode requires unplugging the board's power. +To circumvent this, and for general ease of development, the software for the board will be written in a custom Forth. +The Forth implementation itself is in the `ch559/` directory. +To reduce reliance on external tools, an assembly toolchain is implemented in Python, and the Forth is implemented in that. + +[8051]: https://en.wikipedia.org/wiki/8051 +[ICSP]: https://en.wikipedia.org/wiki/In-system_programming + ## Inkplate The Inkplate 6 provides 800x600 pixels with 3 bits of greyscale color depth. |