This ARISC firmware uses by Orange Pi boards to help LinuxCNC/Machinekit make a real-time GPIO manipulations
Branch: master
Clone or download
Latest commit 96bfc63 Dec 24, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs * docs new name Nov 27, 2018
loader Added the firmware loader (uboot script) Jul 10, 2018
Makefile * compiler flags, Os -> O3 Nov 26, 2018
arisc-fw.code + compiled firmware Dec 23, 2018
arisc-fw.ld Initial commit Jan 12, 2017
io.h indentation fix, tabs/spaces -> spaces May 17, 2018
libgcc.c Initial commit Jan 12, 2017
main.c * docs update Nov 4, 2018
mod_msg.c Fixed #12 Make only 1 loop step inside base thread. Aug 2, 2018
mod_msg.h Fixed #11 [MSG] speed up handling of the msg_recv_callback[] Aug 2, 2018
mod_pulsgen.c * watchdog setup error fix Dec 23, 2018
mod_pulsgen.h + pulsgen watchdog, untested; Dec 22, 2018
mod_timer.c Small fix Aug 1, 2018
mod_timer.h Merge branch 'master' into 'pulsgen_task_setup_fix' Aug 1, 2018
sys.h 1. Added module `pulsgen` without docs. Not tested. May 26, 2018

It's free firmware for the Allwinner H3 SoC's co-processor (ARISC)

  • This firmware uses to make a real-time GPIO pulses generation and counting.
  • This firmware can be used for the any CNC applications - STEP/DIR and PWM generation, ABZ encoders counting.

How to build?

  • You'll need any Linux OS and a custom toolchain.
  • Download the toolchain binaries from here -
  • Unpack toolchain binary files into the /opt/toolchains/or1k-elf folder
  • Clone this repo to any folder: $ git clone
  • Build the firmware by the make all command

How to use?

  • You'll need any Orange Pi board with Alwinner H3 SoC and any Linux OS built by armbian. SD images can be found here -, and here -
  • Copy arisc-fw.code binary file and all files from repo's folder /loader into the /boot folder of your Armbian OS.
  • Restart your Orange Pi board.
  • Clone arisc linux API repo to any folder of your Armbian OS: $ git clone
  • Build arisc linux API by the make all command
  • Run arisc linux API: $ ./arisc