Getting a MicroPython REPL prompt ================================= REPL stands for Read Evaluate Print Loop, and is the name given to the interactive MicroPython prompt that you can access on your board through Zephyr. It is recommended to use REPL to test out your code and run commands. REPL over the serial port ------------------------- The REPL is available on a UART serial peripheral specified for the board by the ``zephyr,console`` devicetree node. The baudrate of the REPL is 115200. If your board has a USB-serial converter on it then you should be able to access the REPL directly from your PC. To access the prompt over USB-serial you will need to use a terminal emulator program. For a Linux or Mac machine, open a terminal and run:: screen /dev/ttyACM0 115200 You can also try ``picocom`` or ``minicom`` instead of screen. You may have to use ``/dev/ttyACM1`` or a higher number for ``ttyACM``. Additional permissions may be necessary to access this device (eg group ``uucp`` or ``dialout``, or use sudo). For Windows, get a terminal software, such as puTTY and connect via a serial session using the proper COM port. Using the REPL -------------- With your serial program open (PuTTY, screen, picocom, etc) you may see a blank screen with a flashing cursor. Press Enter (or reset the board) and you should be presented with the following text:: *** Booting Zephyr OS build zephyr-v3.1.0 *** MicroPython v1.19.1-9-g4fd54a475 on 2022-06-17; zephyr-frdm_k64f with mk64f12 Type "help()" for more information. >>> Now you can try running MicroPython code directly on your board. Anything you type at the prompt, indicated by ``>>>``, will be executed after you press the Enter key. If there is an error with the text that you enter then an error message is printed. Start by typing the following at the prompt to make sure it is working:: >>> print("hello world!") hello world! If you already know some python you can now try some basic commands here. For example:: >>> 1 + 2 3 >>> 1 / 2 0.5 >>> 3 * 'Zephyr' ZephyrZephyrZephyr If your board has an LED, you can blink it using the following code:: >>>import time >>>from machine import Pin >>>LED = Pin(("GPIO_1", 21), Pin.OUT) >>>while True: ... LED.value(1) ... time.sleep(0.5) ... LED.value(0) ... time.sleep(0.5) The above code uses an LED location for a FRDM-K64F board (port B, pin 21; following Zephyr conventions ports are identified by "GPIO_x", where *x* starts from 0). You will need to adjust it for another board using the board's reference materials.