NXP S32K-ISELED LED Lighting Solution - Review

Table of contents

RoadTest: NXP S32K-ISELED LED Lighting Solution

Author: cghaba

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: This was first contact with the ISELED technology.

What were the biggest problems encountered?: The biggest problem encountered was with the installation process that implied downloading and installing a lot of software components. There was also the limitation of the kit (only one strip) and of the trial software (both Lucie Creator and NXP driver).

Detailed Review:

   Lately, LED lighting technology has gained large popularity due to important characteristics such as high efficiency and long life. Over time, the parameters of the produced light are not absolutely constant therefore intense work was done for creating controlling systems that can compensate the modification of these parameters. The drift of these parameters poses particular problems in certain special lighting applications, such as in automotive, industrial lighting, but also those related to museum or commercial lighting (for textile displays).

    Different studies have demonstrated that some of the parameters have influence on cognitive tasks, and with small difference related to gender specific, the reaction time can increase if the some of these values are higher. For example, it was also shown that changing color temperature from cold, to neutral and to warm values can affect human indoor thermal perception, thus providing methods to reduce heating costs by only modifying light parameters.

   There is a continuous effort of researchers in designing lighting systems that should concentrate on the human well being, including organism functions and health. This applies directly to lighting systems of cars, highways, hospitals, rest houses and there where visual inspection is important like in food industry or in printing houses. In these set-ups, a large number of lighting appliances are used and the degrading of light parameters can produce an unsightly, disagreeable result.

   Another important aspect of lighting application is the possibility to control the light parameters at different granularity size. Different protocols have been developed in order to provide remote control that can be applied at particular points of the lighting system or for different groups of lighting elements (luminaires).

   The present roadtest is interesting as it provides the possibility to discover a new controller type that is using both a new controlling technology that can be applied at LED device and a new protocol (ISELED) for addressing the LEDs of the lighting system.

     The idea of the road test is first to get familiarized with the new seddLED technology (Smart Embedded Digital Driver LED) and the ISELED communication protocol for controlling the LEDs and then to apply these new technologies in an application that can be used in the automotive area and not only.


Unpacking the kit


The components of the kit have arrived in a nice white box with elements well protected by foam

Included in the pack were the following:

1 x power adapter board (1)

1x ISELED board (2)

1x micro USB 2.0 cable (3)

1x power adapter board to ISELED board cable (4)

1 x S32K144-EVB-Q100 board from NXP (5)

1x power supply (100-240V to 12 V 1A) (6)



The box also included

1x Set content sheet

3x Errata sheets


Out of the box test

   Following document UM_ISELED_rev0.9.pdf  I have assembled the kit parts and it became ready to be used.

When powered, the kit executes the application stored in memory which means displaying different patterns on the 16 LEDs of the ISELED board.

   Once all set one have two options to test the board. First option is using the Lucie Labs software and the other one is installing the NXP driver and start coding.

   For the second option one has to get through different steps for installing the driver. This is the path I took initially but next in my roadtest I will talk about using Lucie Labs.


Lucie Labs Creator software

   For using Lucie Labs one must create an account on that company’s website.

   I created an account and I got access to the software for a period of 90 days.


   The software provides a GUI for easily creating lighting sequences for the ISELED boards. Another limitation for this free trial version is the number of LEDs one can create sequences for. The limitation is 16 LEDs, which means one can create sequences only for a ISELED board.

   One can create sequences, one can save them only on cloud (another limitation), one can load saved sequences from cloud and can also load some sequences already created by Lucie Labs team and start modifying them to fit one’s need.

   The user guide is very clear on how one can create the sequences using the GUI, what is not clear to me  is what can you do with this sequences except seeing them displayed on the GUI screen or, if connected, on the ISELED board. Probably the full version allows more, such as saving the sequence on the local disk, converting the sequence to the C (?) code that would generate the sequence and that could be integrated into a lighting application running on the ISELED kit.

   For the connection of the ISELED kit to Lucie Labs software, one has to connect the NXP board to the PC using the USB cable and download and run a driver that create the communication mean between the kit and Lucie Labs software.

   In my application for this roadtest I was planned to use the kit in order to simulate an automotive application in which the kit would generate different lighting patterns (now reffered as sequences) that can signal different events. The proposed patterns were aimed to indicate to the driver (when outside the car after she/he left it or before getting in) that:

• door is not closed

• the temperature in the car is very high or very low

• passenger left inside (not good if it is a child and is very hot or very cold outside)

• car was hit since car was left (ex. in the parking lot).

   Thus, being logged in in the Lucie Lab account and with Lucie Creator opened and connected to the ISELED kit, I was starting to test the software trying to create a first sequence indicating the door not closed.

   Now, we must consider that a normal car can have 2, 3 or 5 doors (including the trunk door) so, the pattern must be adapted for the corresponding model.

Considering the 5 door model, I have divided the LED in 5 regions, one region for each door.


   Regions are separated by a blue LED and as in the picture, the regions being allocate as follows:


   Front left door | Rear left door | Trunk door | Rear right door | Front right door


   If one of the door is not closed (well), the LEDs in the corresponding region should blink in red color.

   A blinking pattern of above would indicate that the Front left door is not closed.

Using the Lucie Creator I have created the following sequence that would be played if the left front door of the care is not closed.The sequence will blink the three LEDs corresponding to the left front door, the others will be off. Blue LEDs mark the five regions corresponding to the 5 doors for easy visual identification.

   Other patterns where two or more regions would blink in red at the same time would indicate that two or more doors are not (well) closed.

  Bellow is the sequence built with Lucie Creator to indicate that Front left door and the Trunk door are open.


   For these two sequences I have used only the Fix color effect.

   The video TwoDoors_LucieCreator shows the connection from Lucie Creator to the LED strip (the Windows driver must be run first) and then running the One Door Open and Two Doors Open sequences created with Lucie Creator.

   Two other sequences were created to signal temperature is very high or very low in the car.

   In the case of very high temperature I tried to create an effect similar to burning flames. For this purpose I have used red color and the fading effect. For every odd LED in the row there is a decreasing fading effect followed by an increasing fading effect. For every even LED in the row there is an increasing fading effect followed by a decreasing fading effect.  The position in time where the fading effect is changing was selected randomly in order to create a more natural effect.

   For the case of very low temperature, it will be used the same sequence, only the red color will be changed with a white color. The created sequences are given bellow.

The video TemperatureLowHigh_LucieCreator shows running the TemperatureLow and TemperatureHigh sequences created with Lucie Creator.

For the roadtest was available a trial version of Lucie Creator. I was not able to find more information of the full version of the software therefore, I will refer only to the trial version. The main problem of this version is that it doesn't provide enough productivity features, the common one being the possibility to copy part of a sequence from one LED marker to the marker of another or other LEDs. A feature I would like to see in the Creator is the possibility to use the brush not only inside one marker, but also over a set of markers. This would really increase creativity in composing the sequences, useful for artistic home ambient lighting applications.


Using NXP ISELED driver

   How to use the NXP ISELED driver is explained in section 3.2 of UM_ISELED_ADK_rev.0.9 document. Several steps must be followed in order to install all software needed to test the ISELED kit.

   This includes S32 Design Studio IDE, S32K ISELED Driver, graphical user interface tool “Freemaster 2.0”


Testing the example app


   The example application is created to be able to test different commands that are made available by the ISELED driver. The application can be tested either using the debugger either using the Freemaster interface.


Testing using Freemaster interface


   The first testing was done using the Freemaster interface. The app was flashed into the ISELED kit microcontroller. Then the debugger must be stopped as the debugger and the Freemaster interface use the same communication channel.


Adding a new service


   A new service was created for setting all LEDs in the strip to display the same color. In this respect the service implemented in function scanColor was modified and created the function setSameColor which takes as argument the three values of R, G. and B to be set for all LED in the strip.


void setSameColor(uint8_t rval,uint8_t gval, uint8_t bval)


   Initially the service is called using fixed values for the three parameters (i.e. 255,0,0 - red color) as can be seen bellow.


case 35:


        if(repeatFlag == 0)


        ServiceNumber = 0;




but it can then be changed to use the parameters that can also be set using the interface as follows:


case 35:


        if(repeatFlag == 0)


        ServiceNumber = 0;




In order to have access to the new service using the Freemaster interface, the new enumeration must be added to the ServiceNumber variable in the box that can be opened by double clicking the ServiceNumber variable in the Variable Watch window.

   In Text enumeration (after transform) field we click Add and in the Enumeration item box that opens we set From field to 35 and Assigned text to the name we want to appear in the list of services, in our case, setSameColor. Once these configurations done, we can find and select the new service in the list ServiceNumber of the interface.


Generation of sequences


   Next test of the ISELED NXP driver is to create a command that will generate a sequence similar to the one created with Lucie Creator software. We selected the case corresponding to the situation when two doors are open. This implies sending alternate commands with two different patterns, one lighting the red LEDs corresponding to open doors, and the one with the same LEDs black. For this purpose we have created the function twoDoors that takes as parameters two command blocks (SendCmdBlockType), each setting one of the two patterns for a certain amount of time (fixed, but which in a future version of the function can be transmitted to the function as a parameter.


void twoDoors(digLED_SendCmdBlockType* data1, digLED_SendCmdBlockType* data2)


   The new service must be added in the Freemaster interface the same way as indicated before.

   After adding the new service, the application is tested using Freemaster. The video Testing_with_Freemaster_lowres shows the steps of initializing LED strip and then running ScanColor, dmaBlock, sameColor and TwoDoors services.


Testing using the debugger


   The application can be tested using the debugger. In this case, in order to run different services implemented in the application, the service number must be changed manually. For this purpose, we must add a watch for the ServiceNumber variable. This can be done in the Expression tab of the debugger



    Taking into account that the application is written to run a continuous loop where a service is run based on the value of ServiceNumber variable, every time we will want to change the service, we will have to stop the application, change the ServiceNumber value in the Value field and then resume the application. This was the way we tested the application in the debugger with the two new services added (sameColor and TwoDoors) by running subsequently the digLED_Init (the strip must be first initialized), scanColor, dmaBlock, sameColor and TwoDoors services. At the end I run digLED_Set_RGB service which, taking into account that all color values are 0, and address is 0 (command will be sent to all LEDs), will turn off all LEDs of the strip. In picture bellow is showing selection of service digLED_Init (ServiceNumber=1).


    The video Testing_with_debugger_lowres shows the steps of initializing LED strip and then running ScanColor, dmaBlock, sameColor and TwoDoors services.