summaryrefslogtreecommitdiff
path: root/docs/mimxrt/tutorial/intro.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/mimxrt/tutorial/intro.rst')
-rw-r--r--docs/mimxrt/tutorial/intro.rst125
1 files changed, 125 insertions, 0 deletions
diff --git a/docs/mimxrt/tutorial/intro.rst b/docs/mimxrt/tutorial/intro.rst
new file mode 100644
index 000000000..fb2ed1a71
--- /dev/null
+++ b/docs/mimxrt/tutorial/intro.rst
@@ -0,0 +1,125 @@
+.. _mimxrt_intro:
+
+Getting started with MicroPython on the i.MXRT
+==============================================
+
+Using MicroPython is a great way to get the most of your i.MXRT board. And
+vice versa, the i.MXRT chip is a great platform for using MicroPython. This
+tutorial will guide you through setting up MicroPython, getting a prompt, using
+the hardware peripherals, and controlling some external components.
+
+Let's get started!
+
+Requirements
+------------
+
+The first thing you need is a board with an i.MXRT chip. The MicroPython
+software supports the i.MXRT chip itself and any board should work. The main
+characteristic of a board is how the GPIO pins are connected to the outside
+world, and whether it includes a built-in USB-serial converter to make the
+UART available to your PC.
+
+Names of pins will be given in this tutorial using the chip names (eg GPIO2)
+and it should be straightforward to find which pin this corresponds to on your
+particular board.
+
+Powering the board
+------------------
+
+If your board has a USB connector on it then most likely it is powered through
+this when connected to your PC. Otherwise you will need to power it directly.
+Please refer to the documentation for your board for further details.
+
+Getting the firmware
+--------------------
+
+Firmware versions are provided at the
+`MicroPython download page <https://micropython.org/download/?port=mimxrt>`_.
+You can download the most recent MicroPython firmware .hex or .bin file to load
+onto your i.MXRT device. From that download page you have two main choices:
+
+* stable firmware builds
+* daily firmware builds
+
+If you are just starting with MicroPython, the best bet is to go for the stable
+firmware builds. If you are an advanced, experienced MicroPython i.MXRT user
+who would like to follow development closely and help with testing new
+features, there are daily builds.
+
+Deploying the firmware
+----------------------
+
+Once you have the MicroPython firmware you need to load it onto your
+i.MXRT device. The exact procedure for these steps is highly dependent
+on the particular board and you will need to refer to its documentation
+for details.
+
+Teensy 4.0 and 4.1
+~~~~~~~~~~~~~~~~~~
+
+For Teensy 4.0 and 4.1 you have to use the built-in loader together with the PC
+loader provided by PJRC. The built-in loader will be activated by pushing the
+button on the board. Then you can upload the firmware with the command::
+
+ teensy_loader_cli --mcu=imxrt1062 -v -w firmware.hex
+
+IMXRT10xx-EVK boards
+~~~~~~~~~~~~~~~~~~~~
+
+The IMXRT10xx-EVK boards have a second USB port connected to a support MCU.
+Connecting that USB port to your PC will register a disk drive with the name of
+the board. Just copy the firmware.bin file to this drive, and that will start
+the flashing procedure. You will know that the flash was complete, if that
+drive disappears and reappears. If you decided to install the very useful
+Segger open-SDA firmware on that sidekick MCU, then you have to use the debugger
+software to upload the i.MXRT firmware.
+
+Seed ARCH MIX board
+~~~~~~~~~~~~~~~~~~~
+
+Firmware upload to the Seed ARCH MIX board is less convenient. The vendor
+suggests using J-Link as a method and tool. For that, follow the instructions
+given by Seed in their Wiki at
+https://wiki.seeedstudio.com/Arch_Mix/#flashing-arduino-bootloader-to-arch-mix.
+You will need a J-Link debug probe and software. You may find Segger JLink edu
+or Segger JLink edu mini convenient. As a matching loader you can use
+JFlashLite. The target address for loading is 0x60000000.
+
+The MIMXRT family also support a serial upload method. The software for serial
+upload is provided by NXP. The steps to use it are:
+
+- Connect J3, Pin 19 to 3.3V (GPIO_AD_B0_05).
+- Change the DIP-Switch settings from off-off-on-off to off-off-off-on
+- Push Reset
+- Run the upload with: ./FLASH.sh <firmware_image_file name>
+- Once the upload has finished, set the DIP-switch back to off-off-on-off.
+- Remove the Jumper to J3, Pin19 and push reset
+
+To avoid running the Flash loader as superuser, you can copy the provided udev-rules
+script to /etc/udev/rules.d/. FLASH.sh calls two binaries, blhost and sdphost,
+which are provided by NXP under the BSD-3-Clause License. A version of these
+binaries and the script can be downloaded at
+https://github.com/robert-hh/Shared-Stuff/blob/master/mimxrt_serial_downloader.zip.
+
+Serial downloading can be used for the NXP MIMXRT boards as well. But the built-in loader
+is much more convenient to use.
+
+Serial prompt
+-------------
+
+Once you have the firmware on the device you can access the REPL (Python prompt)
+over USB.
+
+From there you can follow the i.MXRT tutorial.
+
+Troubleshooting installation problems
+-------------------------------------
+
+If you experience problems during flashing or with running firmware immediately
+after it, here are some troubleshooting recommendations:
+
+* Be aware of and try to exclude hardware problems. There are two common
+ problems: bad power source quality, and worn-out/defective Flash ROM.
+ Speaking of power source, not just raw amperage is important, but also low
+ ripple and noise/EMI in general. The most reliable and convenient power
+ source is a USB port.