head 1.1; branch 1.1.1; access ; symbols micropython-1-5-2-base:1.1.1.1 MICROPYTHON:1.1.1; locks ; strict; comment @# @; 1.1 date 2016.01.14.01.38.49; author agc; state Exp; branches 1.1.1.1; next ; commitid Q8liT0v6zMF95QQy; 1.1.1.1 date 2016.01.14.01.38.49; author agc; state Exp; branches ; next ; commitid Q8liT0v6zMF95QQy; desc @@ 1.1 log @Initial revision @ text @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 the WiPy. Using the REPL is by far the easiest way to test out your code and run commands. You can use the REPL in addition to writing scripts in ``main.py``. .. _wipy_uart: To use the REPL, you must connect to the WiPy either via :ref:`telnet `, or with a USB to serial converter wired to one of the two UARTs on the WiPy. To enable REPL duplication on UART0 (the one accessible via the expansion board) do:: >>> from machine import UART >>> import os >>> uart = UART(0, 115200) >>> os.dupterm(uart) Place this piece of code inside your `boot.py` so that it's done automatically after reset. Windows ------- First you need to install the FTDI drivers for the expansion board's USB to serial converter. Then you need a terminal software. The best option is to download the free program PuTTY: `putty.exe `_. **In order to get to the telnet REPL:** Using putty, select ``Telnet`` as connection type, leave the default port (23) and enter the IP address of your WiPy (192.168.1.1 when in ``WLAN.AP`` mode), then click open. **In order to get to the REPL UART:** Using your serial program you must connect to the COM port that you found in the previous step. With PuTTY, click on "Session" in the left-hand panel, then click the "Serial" radio button on the right, then enter you COM port (eg COM4) in the "Serial Line" box. Finally, click the "Open" button. Mac OS X -------- Open a terminal and run:: $ telnet 192.168.1.1 or:: $ screen /dev/tty.usbmodem* 115200 When you are finished and want to exit screen, type CTRL-A CTRL-\\. Linux ----- Open a terminal and run:: $ telnet 192.168.1.1 or:: $ screen /dev/ttyUSB0 115200 You can also try ``picocom`` or ``minicom`` instead of screen. You may have to use ``/dev/ttyUSB01`` or a higher number for ``ttyUSB``. And, you may need to give yourself the correct permissions to access this devices (eg group ``uucp`` or ``dialout``, or use sudo). Using the REPL prompt --------------------- Now let's try running some MicroPython code directly on the WiPy. With your serial program open (PuTTY, screen, picocom, etc) you may see a blank screen with a flashing cursor. Press Enter and you should be presented with a MicroPython prompt, i.e. ``>>>``. Let's make sure it is working with the obligatory test:: >>> print("hello WiPy!") hello WiPy! In the above, you should not type in the ``>>>`` characters. They are there to indicate that you should type the text after it at the prompt. In the end, once you have entered the text ``print("hello WiPy!")`` and pressed Enter, the output on your screen should look like it does above. If you already know some Python you can now try some basic commands here. If any of this is not working you can try either a hard reset or a soft reset; see below. Go ahead and try typing in some other commands. For example:: >>> from machine import Pin >>> import wipy >>> wipy.heartbeat(False) # disable the heartbeat >>> led = Pin('GP25', mode=Pin.OUT) >>> led(1) >>> led(0) >>> led.toggle() >>> 1 + 2 3 >>> 4 // 2 2 >>> 20 * 'py' 'pypypypypypypypypypypypypypypypypypypypy' Resetting the board ------------------- If something goes wrong, you can reset the board in two ways. The first is to press CTRL-D at the MicroPython prompt, which performs a soft reset. You will see a message something like:: >>> PYB: soft reboot MicroPython v1.4.6-146-g1d8b5e5 on 2015-10-21; WiPy with CC3200 Type "help()" for more information. >>> If that isn't working you can perform a hard reset (turn-it-off-and-on-again) by pressing the RST switch (the small black button next to the heartbeat LED). During telnet, this will end your session, disconnecting whatever program that you used to connect to the WiPy. @ 1.1.1.1 log @Import micropython version 1.5.2 into othersrc. Micropython is a python3 implementation that has been optimised for micro-controllers and small embedded systems. It also has a "unix" port. It has an MIT license. This is version 1.5.2 of micropython. MicroPython implements the entire Python 3.4 syntax (including exceptions, "with", "yield from", etc.). The following core datatypes are provided: str (including basic Unicode support), bytes, bytearray, tuple, list, dict, set, frozenset, array.array, collections.namedtuple, classes and instances. Builtin modules include sys, time, and struct. Note that only subset of Python 3.4 functionality implemented for the data types and modules. This is the standard micropython source (version v1.5.2), which has been adapted to use reachover infrastructure. At the present time, libffi (from pkgsrc) is used. Alternative locations for libffi can be set using the PKGSRC_PREFIX definition to make. In the whole scheme of things, micropython is quite small: % size bin/micropython text data bss dec hex filename 393495 1624 2208 397327 6100f bin/micropython % and runs much as expected: % bin/micropython MicroPython v1.5.2 on 2016-01-13; linux version Use Ctrl-D to exit, Ctrl-E for paste mode >>> print("hello world") hello world >>> list(5 * x + y for x in range(10) for y in [4, 2, 1]) [4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46] >>> % python2.7 Python 2.7.10 (default, Oct 17 2015, 17:55:29) [GCC 4.8.5] on netbsd7 Type "help", "copyright", "credits" or "license" for more information. >>> print("hello world") hello world >>> list(5 * x + y for x in range(10) for y in [4, 2, 1]) [4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46] >>> ^D % This (reachover) version runs all the tests which the gmake version does. % make t cd bin && make t cd /home/agc/local/micropython/bin/../dist/unix/../tests && env MICROPY_MICROPYTHON=/home/agc/local/micropython/bin/micropython ./run-tests pass basics/0prelim.py pass basics/andor.py pass basics/array1.py pass basics/array_add.py pass basics/array_construct.py pass basics/array_construct2.py ... pass unix/ffi_callback.py pass unix/ffi_float.py pass unix/ffi_float2.py 474 tests performed (15812 individual testcases) 474 tests passed 5 tests skipped: cmd_showbc cmd_verbose machine1 machine_mem extra_coverage % The sources are available from github: https://github.com/micropython/micropython micropython release at: https://github.com/micropython/micropython/releases Sources for 1.5.2 taken from: https://github.com/micropython/micropython/archive/v1.5.2.tar.gz Alistair Crooks agc@@netbsd.org Wed Jan 13 17:15:30 PST 2016 @ text @@