It is easier to develop Python scripts first on Pokitto Simulator, as the development and testing cycle is faster on PC. An exception is the case when there are features the Simulator do not support, like GIOP-port usage. Also, simulator has a lot of memory and CPU power which makes it to behave different than the real HW. Anyway, your final target is Pokitto, so sooner or later you will try to run your scripts on HW.
Build the example application
1) Start the EmBitz application and select the “MicroPython” target in the default project.
All the MicroPython related files are in the folder
Pokitto\POKITTO_LIBS\MicroPython. Most of the files in subfolders are copied from the actual MicroPython project, to be able to compile Python files (.py) to bytecode (.mpy ) and freezing them, i.e. wrapping the bytecode as C-code for compiling it as a part of the flash image. The
src_py subfolder is the folder where your own codes will be stored. Everything in the
src_py folder will be automatically included in the flash image.
2) Select the file Pokitto\POKITTO_LIBS\MicroPython\My_settings.h in the Project window and set the defines as below.
#define PROJ_PYTHON_REPL 0 // Do not use the interactive prompt #define MICROPY_ENABLE_GC 1 // This just means micropython is in use #ifdef POK_SIM #define USE_USB_SERIAL_PRINT 0 // Never use the USB serial with the simulator. #else #define USE_USB_SERIAL_PRINT 1 // Use USB serial with the HW. #endif
Note: if you set the project to use the USB serial connection, you cannot start or use Pokitto without the USB cable connected. In the final flash image you should set
USE_USB_SERIAL_PRINT to 0.
3) Rebuild the Micropython target
As a pre-build step, at the top of the build log window, you should see how the example Python files get compiled to the bytecode and froze. The combined resultin file is
frozen_mpy.c, which will be linked to the Pokitto binary. Later in the log, the Python core library (
libmicropython.a) is linked to the binary too.
4) Flash the binary file to Pokitto
If the building went without errors there should now be a flash image file:
Pokitto\build\pythonex.bin. It contain all the python scripts freezed and it automatically starts the example_main.py script like already defined in
5) Restart Pokitto
Remember to keep the USB cable connected as the image will not start without it. After startup, you should see the Frogitto demo running on screen
Setup serial connection over USB
A terminal connection via USB between Pokitto and PC is needed for observing the debug output, printing from a Python script, and also for interactive Python prompt (REPL).
1) Install the driver for the virtual serial port over USB
The driver for that can be found in the PokittoLib repository:
PokittoLib/Pokitto/POKITTO_LIBS/USBDevice/working serial driver/serial.inf
2) You also need to install a terminal program.
One option is TeraTerm, which can be found here: https://osdn.net/projects/ttssh2/releases/
3) Start TeraTerm (or equivalent)
Select the virtual USB serial port for using. The serial connection settings can be as default.
If you see something like this on the terminal, congratulations, you have the Python serial connection output working:
display ready all_frogittos len= 1 GC: total: 16064, used: 11568, free: 4496 No. of 1-blocks: 330, 2-blocks: 15, max blk sz: 32, max free sz: 148
Using the Python interactive prompt (REPL)
1) Build and flash the binary image
Build the MicroPython target and flash the
Pythonex.bin binary image to the Pokitto like you did with the Frogitto game, but set the define in the
Pokitto\POKITTO_LIBS\MicroPython\My_settings.h file as follows:
#define PROJ_PYTHON_REPL 1 // Use the interactive prompt
2) Restart Pokitto
Remember to keep the USB cable connected as the image will not start without it. After restart, do not be confused even if the the volume settings screen stays visible on Pokitto. That is because Python has not drawn anything on the screen yet !
In the terminal application, you should see the REPL prompt as follows:
MicroPython v1.9.2-195-g51713075-dirty on 2017-10-30; Pokitto HW with LPC11U68 >>>
3) Give some Python commands
>>> print("hello world!") >>> 123 + 456
The results will be seen on the terminal screen.
4) Draw text on the Pokitto screen
- Copy the Python script below to the clipboard
- Go to the terminal application and press ctrl-E to go to the paste mode
- Paste the code from the clipboard
- Press ctrl-D to execute the script
import upygame import umachine umachine.draw_text(20, 20, "hello world!", 3) upygame.display.flip() upygame.display.flip()
The text is drawn on the Pokitto screen.
“But wait a second”, you say, “Isn’t the Frogitto Demo still on the rom image?”
Yes, indeed. Just give a command in REPL:
And the Demo starts.