2021-08-02 18:01:57 -04:00
|
|
|
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::
|
|
|
|
|
2022-06-16 14:51:09 -04:00
|
|
|
*** Booting Zephyr OS build zephyr-v3.1.0 ***
|
|
|
|
MicroPython v1.19.1-9-g4fd54a475 on 2022-06-17; zephyr-frdm_k64f with mk64f12
|
2021-08-02 18:01:57 -04:00
|
|
|
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.
|