People learn best when they are making things that they are proud of, things that can share with others. We made gamelab to help facilitate this style of learning. People who have never written code before can use it to get started right away changing real code and eventually making their own games. The Beaker is a handheld console meant to further enhance and popularize this style of learning; we will send them to technical teenagers who make games to run on one, and they will be able to show their games running on this device to anyone.
Kaluma is a JS runtime implemented on top of JerryScript, which we've been extending with the parts of this project that require C optimization.
our fork: https://github.com/hackclub/kaluma/tree/ced
the original repo: https://github.com/kaluma-project/kaluma
Similar to Kaluma's web IDE, one will be able to upload their games directly to the device through a web interface. That will be on the Game Lab repo.
We've been testing various runtimes and their hardware drivers as we make sure all of our components work and are configured correctly, hence micropython_tests/
and kaluma-tests/
. The file extension for the executables which run on these devices is .uf2
, the uf2/
folder contains the kaluma and micropython runtimes we've used to run the code in their respective files. This folder also contains flash_nuke.uf2
which was compiled from a small C program designed to wipe the persistent memory on the chip, which is useful for recoverring from invalid states.
The remainder of the README is used for note taking, and is not intended to be particularly presentable.
We're planning on using this chip.
Here is a pinout diagram.
We're planning on using this screen.
This video and repo were very helpful in setting up the screen:
It uses this version of the screen.
This c library may also be relevant.
Naming conventions vary slightly the below snippet from this thread could help clear up some confusion here:
LED - GPIO18 - pin 12
SCK - GPIO11 - pin 23
SDA (MOSI) - GPIO10 - pin 19
A0 (D/C) - GPIO24 - pin 18
RESET - GPIO25 - pin 22
CS - GPIO8 - pin 24
GND - pin 6
VCC - pin 2
Other possibly useful links:
Instructions on how to build Kuluma.
https://github-wiki-see.page/m/kaluma-project/kaluma/wiki/Build
Which uses Jerryscript.
It has a nice web IDE.
Load flash_nuke.uf2
onto the Pico.
Can also refer to this example from Raspberry Pi.