eadkp template banner

eadkp template

10 devlogs
12h 25m 54s

Just a Rust template for easily starting NumWorks External App development powered by EADKP.

It’s completely intentional that the code and scripts are heavily documented. Since this is a template, my goal is to provide a smooth introduction for…

Just a Rust template for easily starting NumWorks External App development powered by EADKP.

It’s completely intentional that the code and scripts are heavily documented. Since this is a template, my goal is to provide a smooth introduction for newcomers to the NumWorks modding.

NumWorks is a French brand of graphing calculators (mostly used by high school students). These calculators feature the ability to code external applications in machine code and import them, allowing developers to take full advantage of the hardware’s power.

This project uses AI

i use Gemini for translating documentations, and improve the script bootstrap.sh.

Demo Repository

Loading README...

Oignon

Shipped this project!

Hours: 12.43
Cookies: 🍪 146
Multiplier: 9.82 cookies/hr

This is a simple template for my main project, eadkp. It actually took quite a bit of time because I had to adapt all the build tools. they were originally designed to compile eadkp’s internal examples (as a library) rather than standalone projects using it. I then reworked the scripts to make them more universal across both the library and the template, and updated the template example.

All in all, it was more about designing configuration tools than anything else. and honestly, it was very useful to revise those old scripts to make them more modular.

Oignon

Changed the image loading method (updated the loader in the eadkp library), updated the license application terms (switched eadkp to LGPL), and made minor documentation and code fixes.Changed the image loading method (updated the loader in the eadkp library), updated the license application terms (switched eadkp to LGPL), and made minor documentation and code fixes.
(fix script removing befor .git)

Attachment
0
Oignon

Adding a project initialization automation script, independent of cargo-generate!

By using a simple command:
bash <(curl -s https://raw.githubusercontent.com/Oignontom8283/eadkp_template/main/bootstrap.sh)
(Make sure to have curl and git installed), you can start a new NumWorks application using EADKP in the blink of an eye!

OR use:
git clone https://github.com/Oignontom8283/eadkp_template.git project_name
cd project_name
chmod +x ./bootstrap.sh && ./bootstrap.sh

PS: I was tired of manually reconfiguring everything every time, so here it is! (:

0
Oignon

Improving the application visuals from the default template code!

Changes:

  • feat: Added a subtitle
  • feat: Added a footer
  • fix: Readjusted the centering of the logo, title, and subtitle
  • fix: Moved the rendering code to a pre-display section before the loop to fix a hardware horizontal sync issue.
Attachment
0
Oignon

Refactoring of the default template demonstration code ! (1/2)
AND adding a function (push_image()) to the eadkp library.

Attachment
Attachment
0
Oignon

Testing the simulator on Linux (Ubuntu-based) !

  • Fixed the Docker start command in start.sh from docker-compose to docker compose.
  • Added settings.json and extensions.json to recommend the Rust-Analyzer extension and its specific configuration for Numworks.
Attachment
0
Oignon

Functional Simulator !

The simulator has been tested and debugged :

  • Fixed incorrect app compilation path:
    ./target/release/target/libsimulator.so -> ./target/release/examples/libsimulator.so
  • Updated default app name in source code.
  • Added information message displayed prior to simulator execution.
Attachment
0
Oignon

Testing compilation and exporting the compiled application to NWA format for the calculator 🥳 !

  • In Cargo.toml: The [target] sections for “device” and “simulator” have been replaced with [[example]]. This changes how builds are managed, now using the --example flag instead of --target.
  • In cargo-generate.toml: The justfile has been added to the exclusion list when generating a new project.
  • In justfile:
    • Build, check, and send commands now use --example device or --example simulator instead of the previous --target flags.
    • Added a just target command to ensure the thumbv7em-none-eabihf Rust target is correctly installed before building.
    • The export command now uses the correct path for the generated binary (target/thumbv7em-none-eabihf/release/examples/device).
    • The export command now displays a success or error message depending on whether the file move was successful.
    • Added a target recipe to install the required Rust target.
    • The justfile is now excluded during new project generation.
Attachment
0
Oignon

‘cargo generate’ is finally working correctly 😊.

Update templates and fix docker config :

  • Use {{project-name}} placeholders for better compatibility
  • Enforce snake_case via project_name_case
  • Exclude assets/ from variable substitution
  • Fix docker-compose paths and remove obsolete Dockerfile
Attachment
0
Oignon

Initial template code. Implementation of the Cargo template system (Untested 😕).

Attachment
0