Skip to content

Instantly share code, notes, and snippets.

@jgoizueta
Created August 12, 2019 20:48
Show Gist options
  • Select an option

  • Save jgoizueta/a0c0baf53180783a5c6b9f0d39ef7d10 to your computer and use it in GitHub Desktop.

Select an option

Save jgoizueta/a0c0baf53180783a5c6b9f0d39ef7d10 to your computer and use it in GitHub Desktop.
Numworks symbolic computation

Fork of Numworks epsilon to re-enable symbolic computation which was removed in version 11.2.0 (2019-06-26):

It is reenabled in:

Note: at the present time (2019-08-10) the master branch seems to contain version 11.1 for the new model N0110:

Branch symb11 of this fork is based on the origin/version-11 branch and contains a reversion of the symbolic computation removal.

Install SDK

Following https://www.numworks.com/resources/engineering/software/sdk/macos/

But gcc-arm-embedded has been removed from homebrew casks:

Workaround:

brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/b88346667547cc85f8f2cacb3dfe7b754c8afc8a/Casks/gcc-arm-embedded.rb

So the final procedure is (with Homebrew previously installed):

brew reinstall fltk freetype dfu-util libpng pkg-config
brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/b88346667547cc85f8f2cacb3dfe7b754c8afc8a/Casks/gcc-arm-embedded.rb

Compile

Following https://www.numworks.com/resources/engineering/software/sdk/

Compile and run emulator:

make PLATFORM=simulator clean
make PLATFORM=simulator
./build/simulator/epsilon.elf

### Compile to flash calc:

Using information from https://en.wikibooks.org/wiki/Unofficial_Guide_To_Expanding_Your_Numworks/Getting_your_development_environment_set_up#Uploading_the_firmware_to_your_calculator

The current (version-11, master) flash build procedure is broken (the epsilon.elf produced used to be placed in the base directory, but now it doesn't): numworks/epsilon#1044 (comment)

The work around is, when the make process fails, to copy the file manually and re-run make:

make clean
rm epsilon.elf
make EPSILON_BOOT_PROMPT=none epsilon_flash
cp ./build/device/epsilon.elf ./
make EPSILON_BOOT_PROMPT=none epsilon_flash

Then the calculator can be connected via USB and it will be updated (no need to press RESET).

EPSILON_BOOT_PROMPT defined as none to override the default value update from platform.device.mak which would cause a boarding messege prompting to update the firmware every time the calc switches on.

Complete update procedure (for Mac with Homebrew installed):

brew reinstall fltk freetype dfu-util libpng pkg-config
# workaround because gcc-arm-embedded cask was removed (use specific commit)
brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/b88346667547cc85f8f2cacb3dfe7b754c8afc8a/Casks/gcc-arm-embedded.rb
git clone https://github.com/jgoizueta/epsilon.git --branch symb11
cd epsilon
make clean
rm epsilon.elf
make EPSILON_BOOT_PROMPT=none epsilon_flash
# workaround defect in Makefile (epsilon.elf win wrong directory)
cp ./build/device/epsilon.elf ./
make EPSILON_BOOT_PROMPT=none epsilon_flash
# connect calculator by USB now
@jgoizueta
Copy link
Author

2020-10-02 update
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source emsdk_env.sh
cd ..
git clone --recursive https://github.com/Omega-Numworks/Omega.git
cd Omega/
git checkout omega-master
make clean
PLATFORM=simulator TARGET=web OMEGA_USERNAME=jgoizueta -j4

make MODEL=n0100 clean
make MODEL=n0100 OMEGA_USERNAME=jgoizueta OMEGA_THEME=epsilon_light -j2
make MODEL=n0100 OMEGA_THEME=epsilon_light epsilon_flash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment