How to print “Hello World” on Shakti using Arduino IDE?

  • Post author:
  • Reading time:7 mins read
  • Post category:IDE
You are currently viewing How to print “Hello World” on Shakti using Arduino IDE?

Shakti “E Class” has 2 Universal Asynchronous Receiver Transmitter (UART) ports and “C Class” has 3 Universal Asynchronous Receiver Transmitter (UART) ports. In this tutorial, we are going to discuss Universal Asynchronous Receiver/Transmitter (UART) and using this protocol we are going to print “Hello World” using Arduino IDE.


The UART that is going to transmit data receives the data from a data bus. Then, the data bus is used to send data to the UART by another device like a CPU, memory, or micro-controller. Data is transferred from the data bus to the transmitting UART in parallel form. After the transmitting UART gets the parallel data from the data bus, it adds a start bit, a parity bit, and a stop bit, creating the data packet. Then, the data packet is sent out serially, bit by bit at the Tx pin.

The receiving UART reads the data packet bit by bit at its Rx pin. The receiving UART then converts the data back into parallel form and removes the start bit, parity bit, and stop bits. Finally, the receiving UART transfers the data packet in parallel to the data bus on the receiving end.




  • Arty7 35t/100t board with either pinaka, parashu or vajra programmed.


Step 1: Install Arduino IDE

  • Firstly, download and install Arduino IDE 1.8.9 or the latest version tarball from the Arduino website.
  • Then unpack it and run the installation script as directed.

Step 2: Install SHAKTI supported boards in IDE

  • Add the link below to the Additional Boards Manager URLs in the Files->Preferences->Settings.

  • Then, open the Board Manager Dialog Box, Tools->Board: -> Select Board Manager
  • In the Boards Manager Dialog Box, search the list and install SHAKTI boards.

Step 3: Setting up Arduino IDE for SHAKTI

As we have installed the SHAKTI successfully, now we can proceed with setting up the IDE.

Step 3.1: Firstly, Go to Tools->Board:->Shakti. Then select the board you are going to use.

For instance, we use parashu here.


Step 3.2: Then, Go to Tools -> Port and select the port.


Step 3.3: Atlast, Go to Tools ->Programmer and select Shakti OpenOCD Flash or Shakti OpenOCD RAM based on the need.

  • Shakti OpenOCD Flash – This option is used to upload the program to your flash memory. The program will be executed every time the board is reset.
  • Shakti OpenOCD RAM – This option is used to upload the program to RAM. The uploaded program would not be retained after a reset.

Step 4: Testing the sketch

  • Firstly, Go to File->Examples->UART and select hello_world
  • Now, Click on the Verify icon (Tick icon on top left ) to compile the program.
  • Then, Click the Upload icon on Arduino IDE (Right arrow key next to verify) to upload the program.
  • At last, Switch to the serial monitor to see if the Program has been uploaded successfully.

Serial Monitor Output:


Also, Check out our article on Platform IO IDE on windows and Ubuntu.

This Post Has 5 Comments

  1. Vighnesh NKP

    Hi. I tried this a few days ago and it seemed to work. The output wasn’t getting displayed on the Serial Monitor of the Arduino IDE but it was on the terminal tab where the Miniterm was being run.

    But when I execute the same thing now, I’m getting the following error:
    An error occurred while uploading the sketch
    Open On-Chip Debugger 0.10.0+dev-01252-g675259382 (2020-09-22-12:07)
    Licensed under GNU GPL v2
    For bug reports, read
    DEPRECATED! use ‘adapter speed’ not ‘adapter_khz’
    DEPRECATED! use ‘adapter driver’ not ‘interface’
    Info : auto-selecting first available session transport “jtag”. To override use ‘transport select ‘.
    Info : Simple Register based Bscan Tunnel Selected
    Error: libusb_claim_interface() failed with LIBUSB_ERROR_BUSY
    Error: unable to open ftdi device with vid 0403, pid 6010, description ‘*’, serial ‘*’ at bus location ‘*’

    1. Akshaya B

      Hi Vignesh,
      Is there any chance you’re running 2 openocds at the same time?

  2. Sangeeta Palekar

    I am getting following error. Kindly help

    Arduino: 1.8.13 (Linux), Board: “Parashu, Default”

    /home/vna/snap/arduino/50/.arduino15/packages/shakti/tools/riscv32-unknown-elf-gcc/1.0/bin/../libexec/gcc/riscv32-unknown-elf/8.2.0/cc1plus: error while loading shared libraries: cannot open shared object file: No such file or directory
    exit status 1
    Error compiling for board Parashu.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

Comments are closed.