LED blink example

cancel
Showing results for 
Search instead for 
Did you mean: 

LED blink example

Jump to solution
3,382 Views
danielmilutinov
Contributor III

Hello,

I followed the "Get Started" instructions on the i.MX RT1010 EVK webpage and everything is working well. I've tried the led_blink.c example for the LED on the i.MX RT1010 EVK and it works fine:  

/*
* Copyright 2019 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/

#include "board.h"

#include "pin_mux.h"
#include "clock_config.h"
/*******************************************************************************
* Definitions
******************************************************************************/
#define EXAMPLE_LED_GPIO BOARD_USER_LED_GPIO
#define EXAMPLE_LED_GPIO_PIN BOARD_USER_LED_GPIO_PIN


/*******************************************************************************
* Prototypes
******************************************************************************/

/*******************************************************************************
* Variables
******************************************************************************/
volatile uint32_t g_systickCounter;
/* The PIN status */
volatile bool g_pinSet = false;

/*******************************************************************************
* Code
******************************************************************************/
void SysTick_Handler(void)
{
if (g_systickCounter != 0U)
{
g_systickCounter--;
}
}

void SysTick_DelayTicks(uint32_t n)
{
g_systickCounter = n;
while (g_systickCounter != 0U)
{
}
}

/*!
* @brief Main function
*/
int main(void)
{
/* Board pin init */
BOARD_InitPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();

/* Set systick reload value to generate 1ms interrupt */
if (SysTick_Config(SystemCoreClock / 1000U))
{
while (1)
{
}
}

while (1)
{
/* Delay 1000 ms */
SysTick_DelayTicks(1000U);
if (g_pinSet)
{
GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 0U);
g_pinSet = false;
}
else
{
GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 1U);
g_pinSet = true;
}
}
}

 

I would like to interface an LED to one of the Arduino interface pins on the i.MX RT1010 EVK and blink the LED, i.e. use the Arduino interface pin as GPIO. 

So I just need to change the following definitions:

#define EXAMPLE_LED_GPIO BOARD_USER_LED_GPIO
#define EXAMPLE_LED_GPIO_PIN BOARD_USER_LED_GPIO_PIN

and connect the LED to the corresponding Arduino interface pin on the i.MX RT1010 EVK

Can you please give me an example of what to change "BOARD USER_LED_GPIO" and "BOARD_USER_LED_GPIO_PIN" to?

Also, which Arduino interface pin should I connect the LED to on the i.MX RT1010 EVK?

Also, can you please direct me to the document(s) with this information?

Labels (1)
1 Solution
2,720 Views
jeremyzhou
NXP TechSupport
NXP TechSupport

Hi 

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) Can you please give me an example of what to change "BOARD USER_LED_GPIO" and "BOARD_USER_LED_GPIO_PIN" to?
-- For instance, I configure the GPIO_AD_04 as the pin to connect the LED
In the board.h

/*! @brief The USER_LED used for board */
#define LOGIC_LED_ON (0U)
#define LOGIC_LED_OFF (1U)
#ifndef BOARD_USER_LED_GPIO
#define BOARD_USER_LED_GPIO GPIO1
#endif
#ifndef BOARD_USER_LED_GPIO_PIN
#define BOARD_USER_LED_GPIO_PIN (18U)
#endif

In the pin_mux.c

void BOARD_InitPins(void) {
CLOCK_EnableClock(kCLOCK_Iomuxc); /* iomuxc clock (iomuxc_clk_enable): 0x03U */

/* GPIO configuration of GPIO_11 on GPIO_11 (pin 1) */
gpio_pin_config_t GPIO_11_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 0U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_11 (pin 1) */
GPIO_PinInit(GPIO1, 11U, &GPIO_11_config);

/* GPIO configuration of LPSPI1_SDO on GPIO_AD_04 (pin 56) */
gpio_pin_config_t LPSPI1_SDO_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 0U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_AD_04 (pin 56) */
GPIO_PinInit(GPIO1, 18U, &LPSPI1_SDO_config);

IOMUXC_SetPinMux(
IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 is configured as GPIOMUX_IO11 */
0U); /* Software Input On Field: Input Path is determined by functionality */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_04_GPIOMUX_IO18, /* GPIO_AD_04 is configured as GPIOMUX_IO18 */
0U); /* Software Input On Field: Input Path is determined by functionality */
IOMUXC_GPR->GPR26 = ((IOMUXC_GPR->GPR26 &
(~(IOMUXC_GPR_GPR26_GPIO_SEL_MASK))) /* Mask bits to zero which are setting */
| IOMUXC_GPR_GPR26_GPIO_SEL(0x00U) /* Select GPIO1 or GPIO2: 0x00U */
);
IOMUXC_SetPinConfig(
IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 PAD functional properties : */
0x1060U); /* Slew Rate Field: Slow Slew Rate
Drive Strength Field: R0/4
Speed Field: medium(100MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
}

1) Which Arduino interface pin should I connect the LED to on the i.MX RT1010 EVK?
-- Any pins which are able to be configured as the GPIO.

Have a great day,

TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
14 Replies
2,721 Views
jeremyzhou
NXP TechSupport
NXP TechSupport

Hi 

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) Can you please give me an example of what to change "BOARD USER_LED_GPIO" and "BOARD_USER_LED_GPIO_PIN" to?
-- For instance, I configure the GPIO_AD_04 as the pin to connect the LED
In the board.h

/*! @brief The USER_LED used for board */
#define LOGIC_LED_ON (0U)
#define LOGIC_LED_OFF (1U)
#ifndef BOARD_USER_LED_GPIO
#define BOARD_USER_LED_GPIO GPIO1
#endif
#ifndef BOARD_USER_LED_GPIO_PIN
#define BOARD_USER_LED_GPIO_PIN (18U)
#endif

In the pin_mux.c

void BOARD_InitPins(void) {
CLOCK_EnableClock(kCLOCK_Iomuxc); /* iomuxc clock (iomuxc_clk_enable): 0x03U */

/* GPIO configuration of GPIO_11 on GPIO_11 (pin 1) */
gpio_pin_config_t GPIO_11_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 0U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_11 (pin 1) */
GPIO_PinInit(GPIO1, 11U, &GPIO_11_config);

/* GPIO configuration of LPSPI1_SDO on GPIO_AD_04 (pin 56) */
gpio_pin_config_t LPSPI1_SDO_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 0U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_AD_04 (pin 56) */
GPIO_PinInit(GPIO1, 18U, &LPSPI1_SDO_config);

IOMUXC_SetPinMux(
IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 is configured as GPIOMUX_IO11 */
0U); /* Software Input On Field: Input Path is determined by functionality */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_04_GPIOMUX_IO18, /* GPIO_AD_04 is configured as GPIOMUX_IO18 */
0U); /* Software Input On Field: Input Path is determined by functionality */
IOMUXC_GPR->GPR26 = ((IOMUXC_GPR->GPR26 &
(~(IOMUXC_GPR_GPR26_GPIO_SEL_MASK))) /* Mask bits to zero which are setting */
| IOMUXC_GPR_GPR26_GPIO_SEL(0x00U) /* Select GPIO1 or GPIO2: 0x00U */
);
IOMUXC_SetPinConfig(
IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 PAD functional properties : */
0x1060U); /* Slew Rate Field: Slow Slew Rate
Drive Strength Field: R0/4
Speed Field: medium(100MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
}

1) Which Arduino interface pin should I connect the LED to on the i.MX RT1010 EVK?
-- Any pins which are able to be configured as the GPIO.

Have a great day,

TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,720 Views
danielmilutinov
Contributor III

Thank you Jeremy, I'll give it a try and report back on how I go. 

The i.MX series is an exciting product and the examples in the SDK are much appreciated but there is a steep learning curve for those coming from other devices. 

I've noticed that there is a "Discussions" and "Videos" section on this forum. I'm wondering if I can create some resources for beginners, featuring projects such as blinking an LED and interfacing to keypads and displays. I would like to make them quite detailed with screen shots, circuit diagrams and photos. I'm a math teacher and hobbyist so it will take time and I'll need support from the community to get it right. 

Let me know if there is any interest or if someone is already doing something similar.    

832 Views
danielmilutinov
Contributor III

"I'm wondering if I can create some resources for beginners, featuring projects such as blinking an LED and interfacing to keypads and displays. I would like to make them quite detailed with screen shots, circuit diagrams and photos."

I've finally got around to starting this, but for the i.MX RT1050 EVK instead of the i.MX RT1010 EVK (due to the larger memory). The pdf can be downloaded here:

https://www.dropbox.com/s/8173q3k71ql2tby/Primer.pdf?dl=0

I'll post when new tutorials are added.  

0 Kudos
2,720 Views
jeremyzhou
NXP TechSupport
NXP TechSupport

Hi Daniel Milutinovic,

Thanks for your reply.
:smileylaugh:It's a great idea and you can contact me freely if you encounter some problems.

Have a great day,

TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,720 Views
danielmilutinov
Contributor III

Thanks Jeremy, the main problem I'm having now is understanding pin multiplexing and GPIO configuration. Once I get my head around this I should be able to start uploading to the "Documents" section of the forum instructions on interfacing to displays and keypads and other projects. I hope that they will prove a helpful resource for beginners and free up NXP staff to focus on more complex questions. 

I tried the suggestions you made above but was not able to get it working. Just to clarify, I'm trying to get the red LED on the breadboard in the photo below to blink: 20120311_160849.jpg

In your code you configured GPIO_AD_04.

In pin_mux.c in the SDK KPP example GPIO_AD_04 is column 2 of the matrix keypad, and in readme.txt is says column 2 is set to Arduino interface J57-10, so I thought to connect the cathode of the LED to J57-10 (black cable) and blink it using negative logic. I checked the hardware and everything seems fine - the red LED is not broken and the red cable is supplying 3.3V to the anode of the LED.

I made some modifications to the code and tried again, but at this point I was just guessing. Below is the final (unsuccessful) code I tried. It's the iled_blink example from the SDK with the following changes (I left the green led on the i.MX RT1010 EVK as a heartbeat - it's blinking as expected):  

The board.h code (I only made changes in the /*! @brief The USER_LED used for board */ section - I commented out the original code and added my new code):  

/*! @brief The USER_LED used for board */

//********Start original******** ->

//#define LOGIC_LED_ON (0U)

//#define LOGIC_LED_OFF (1U)

//#ifndef BOARD_USER_LED_GPIO

//#define BOARD_USER_LED_GPIO GPIO1

//#endif

//#ifndef BOARD_USER_LED_GPIO_PIN

//#define BOARD_USER_LED_GPIO_PIN (11U)

//#endif

//<- ********End original********

 

//********Start new******** ->

#define LOGIC_LED_ON (0U)

#define LOGIC_LED_OFF (1U)

 

#ifndef BOARD_USER_LED_GPIO

#define BOARD_USER_LED_GPIO GPIO1

#endif

 

#ifndef BOARD_USER_LED_GPIO_PIN

#define BOARD_USER_LED_GPIO_PIN (11U)

#endif

 

#ifndef BOARD_USER_LED2_GPIO_PIN

#define BOARD_USER_LED2_GPIO_PIN (18U)

#endif

//<- ********End new********

The pin_mux.c code (I only made changes in the BOARD_InitPins function. This was entered by hand, I didn't use the Config Tools):   

void BOARD_InitPins(void) {

    //********Start original******** ->

//     CLOCK_EnableClock(kCLOCK_Iomuxc);           /* iomuxc clock (iomuxc_clk_enable): 0x03U */

//

//     /* GPIO configuration of USER_LED on GPIO_11 (pin 1) */

//     gpio_pin_config_t USER_LED_config = {

//                   .direction = kGPIO_DigitalOutput,

//                   .outputLogic = 0U,

//                   .interruptMode = kGPIO_NoIntmode

//     };

//     /* Initialize GPIO functionality on GPIO_11 (pin 1) */

//     GPIO_PinInit(GPIO1, 11U, &USER_LED_config);

//

//     IOMUXC_SetPinMux(

//                   IOMUXC_GPIO_11_GPIOMUX_IO11,            /* GPIO_11 is configured as GPIOMUX_IO11 */

//                   0U);                                    /* Software Input On Field: Input Path is determined by functionality */

//     IOMUXC_GPR->GPR26 = ((IOMUXC_GPR->GPR26 &

//                   (~(IOMUXC_GPR_GPR26_GPIO_SEL_MASK)))      /* Mask bits to zero which are setting */

//                   | IOMUXC_GPR_GPR26_GPIO_SEL(0x00U)      /* Select GPIO1 or GPIO2: 0x00U */

//     );

//     IOMUXC_SetPinConfig(

//                   IOMUXC_GPIO_11_GPIOMUX_IO11,            /* GPIO_11 PAD functional properties : */

//                   0x1060U);                               /* Slew Rate Field: Slow Slew Rate

//                                                 Drive Strength Field: R0/4

//                                                 Speed Field: medium(100MHz)

//                                                 Open Drain Enable Field: Open Drain Disabled

//                                                 Pull / Keep Enable Field: Pull/Keeper Enabled

//                                                 Pull / Keep Select Field: Keeper

//                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down

//                                                 Hyst. Enable Field: Hysteresis Disabled */

   //<- ********End original********

 

  //********Start new******** ->

  CLOCK_EnableClock(kCLOCK_Iomuxc); /* iomuxc clock (iomuxc_clk_enable): 0x03U */

 

  /* GPIO configuration of GPIO_11 on GPIO_11 (pin 1) */

  gpio_pin_config_t GPIO_11_config = {

                .direction = kGPIO_DigitalOutput,

                .outputLogic = 0U,

                .interruptMode = kGPIO_NoIntmode

  };

  /* Initialize GPIO functionality on GPIO_11 (pin 1) */

  GPIO_PinInit(GPIO1, 11U, &GPIO_11_config);

 

  /* GPIO configuration of LPSPI1_SDO on GPIO_AD_04 (pin 56) */

  gpio_pin_config_t LPSPI1_SDO_config = {

                .direction = kGPIO_DigitalOutput,

                .outputLogic = 0U,

                .interruptMode = kGPIO_NoIntmode

  };

  /* Initialize GPIO functionality on GPIO_AD_04 (pin 56) */

  GPIO_PinInit(GPIO1, 18U, &LPSPI1_SDO_config);

 

  IOMUXC_SetPinMux(

                IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 is configured as GPIOMUX_IO11 */

                0U); /* Software Input On Field: Input Path is determined by functionality */

  IOMUXC_SetPinMux(

                IOMUXC_GPIO_AD_04_GPIOMUX_IO18, /* GPIO_AD_04 is configured as GPIOMUX_IO18 */

                0U); /* Software Input On Field: Input Path is determined by functionality */

  IOMUXC_GPR->GPR26 = ((IOMUXC_GPR->GPR26 &

                (~(IOMUXC_GPR_GPR26_GPIO_SEL_MASK))) /* Mask bits to zero which are setting */

                | IOMUXC_GPR_GPR26_GPIO_SEL(0x00U) /* Select GPIO1 or GPIO2: 0x00U */

  );

  IOMUXC_SetPinConfig(

                IOMUXC_GPIO_11_GPIOMUX_IO11, /* GPIO_11 PAD functional properties : */

                0x1060U); /* Slew Rate Field: Slow Slew Rate

  Drive Strength Field: R0/4

  Speed Field: medium(100MHz)

  Open Drain Enable Field: Open Drain Disabled

  Pull / Keep Enable Field: Pull/Keeper Enabled

  Pull / Keep Select Field: Keeper

  Pull Up / Down Config. Field: 100K Ohm Pull Down

  Hyst. Enable Field: Hysteresis Disabled */

 

  IOMUXC_SetPinConfig(

                IOMUXC_GPIO_AD_04_GPIOMUX_IO18, /* GPIO_AD_04 PAD functional properties : */

                0x1060U); /* Slew Rate Field: Slow Slew Rate

    Drive Strength Field: R0/4

    Speed Field: medium(100MHz)

    Open Drain Enable Field: Open Drain Disabled

    Pull / Keep Enable Field: Pull/Keeper Enabled

    Pull / Keep Select Field: Keeper

    Pull Up / Down Config. Field: 100K Ohm Pull Down

    Hyst. Enable Field: Hysteresis Disabled */

 

  //<- ********End new********

}

and finally led_blink.c:

/*

 * Copyright 2019 NXP

 * All rights reserved.

 *

 * SPDX-License-Identifier: BSD-3-Clause

 */

 

#include "board.h"

 

#include "pin_mux.h"

#include "clock_config.h"

/*******************************************************************************

 * Definitions

 ******************************************************************************/

//********Start original******** ->

#define EXAMPLE_LED_GPIO BOARD_USER_LED_GPIO

#define EXAMPLE_LED_GPIO_PIN BOARD_USER_LED_GPIO_PIN

//<-********End original********

 

//********Start new******** ->

#define EXAMPLE_LED_GPIO BOARD_USER_LED_GPIO

#define EXAMPLE_LED_GPIO_PIN BOARD_USER_LED_GPIO_PIN

#define EXAMPLE_LED2_GPIO_PIN BOARD_USER_LED2_GPIO_PIN

//********<-End new********

 

/*******************************************************************************

 * Prototypes

 ******************************************************************************/

 

/*******************************************************************************

 * Variables

 ******************************************************************************/

volatile uint32_t g_systickCounter;

/* The PIN status */

volatile bool g_pinSet = false;

 

/*******************************************************************************

 * Code

 ******************************************************************************/

void SysTick_Handler(void)

{

    if (g_systickCounter != 0U)

    {

        g_systickCounter--;

    }

}

 

void SysTick_DelayTicks(uint32_t n)

{

    g_systickCounter = n;

    while (g_systickCounter != 0U)

    {

    }

}

 

/*!

 * @brief Main function

 */

int main(void)

{

    /* Board pin init */

    BOARD_InitPins();

    BOARD_BootClockRUN();

    BOARD_InitDebugConsole();

 

    /* Set systick reload value to generate 1ms interrupt */

    if (SysTick_Config(SystemCoreClock / 1000U))

    {

        while (1)

        {

        }

    }

 

    while (1)

    {

        /* Delay 1000 ms */

        SysTick_DelayTicks(1000U);

        if (g_pinSet)

        {

            GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 0U);

            //********Start New******** ->

            GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED2_GPIO_PIN, 0U);

            //<-********End New********

            g_pinSet = false;

        }

        else

        {

            GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 1U);

            //********Start New******** ->

            GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED2_GPIO_PIN, 1U);

            //<-********End New********

            g_pinSet = true;

        }

    }

}

Apologies for the long post, I hope it makes sense. 

Daniel

 

2,720 Views
danielmilutinov
Contributor III

O.K. it's working now. The cathode of the red LED was connected to the wrong Arduino interface pin. It should be J57-8, not J57-10. There was a comment indicating this in pin_mux.h after I used Config Tools (a very useful tool!) to configure the GPIO. There is a nice example of how to use Config Tools in the "MCUXpresso IDE User Guide".

I'll create a pdf document with step by step instructions and upload it to the "Documents" section of the forum (provided non-NXP staff have permission to upload documents). 

Thanks again for your help.  

Daniel

P.S. I just watched the Crossover Code Challenge Webinar recording and it contains a lot of helpful information. You can download it and watch it at your convenience. Highly recommended for beginners. 

2,720 Views
gerardo_arriaga
Contributor II

I used the code that you posted and followed your procedure and I was able to make it work.

Now I can move on to the next steps of the application that I want to implement. Thanks!

Regards,

2,720 Views
danielmilutinov
Contributor III

Hello Gerardo, 

Happy it helped! 

I'm using the Pins tool in the Config Tools and find it extremely helpful to configure the pins quickly.

The next thing I wanted to do was write values to the GPIO ports. I haven't confirmed it yet, but I think GPIO1 is a 32-bit port and I've used the API's "GPIO_PortSet" and "GPIO_PortClear" to successfully write values to it. I had to use both API's to set GPIO1 to a certain value - I don't know if there is a simpler way to do it.

Daniel     

0 Kudos
2,720 Views
udayatejwani
Contributor I

Hello,

Which pin or pins are mapped to GND from the Arduino Interface?

Thanks,

Udaya

0 Kudos
2,720 Views
danielmilutinov
Contributor III

Hello Udaya,

According to the "MIMXRT1010 EVK Board Hardware User’s Guide", J60-14 and J60-12 are connected to ground. There may be other pins - please refer to the schematics for full details (under "Printed Circuit Boards and Schematics" in the "Documents and Software" section of the i.MX RT1010 homepage).

Daniel

0 Kudos
2,720 Views
gerardo_arriaga
Contributor II

I second Daniel on  this.

0 Kudos
2,720 Views
danielmilutinov
Contributor III

Thanks Gerardo, once I've got the LED_BLINK project working I'll put together a PDF of the steps involved and put it in the "Documents" section of the forum. 

0 Kudos
2,720 Views
gerardo_arriaga
Contributor II

Hi,

I'm having the same problem. Can't find the arduino interface pin out diagram.

Regards.

0 Kudos
2,720 Views
danielmilutinov
Contributor III

Hello Gerardo, 

The NXP "crossover" MCU's are being touted as "easy to use" by NXP but I am having difficulty getting started with them. The "Get Started" instructions on the i.MX RT1010 web page are well written but they don't cover enough. After showing how to run the led_blink example they should cover creating a new project and blinking an LED connected to one of the Arduino interface pins, together with references to the relevant documentation.  

0 Kudos