# CC9P9215 - System failure LED blink pattern documentation

**URL:** <https://forums.digi.com/t/cc9p9215-system-failure-led-blink-pattern-documentation/18066>\
**Category:** NET+OS\
**Tags:** cc9p9215, system-failure, blink-pattern\
**Created:** [February 23, 2017, 10:52am UTC](https://forums.digi.com/t/cc9p9215-system-failure-led-blink-pattern-documentation/18066 "2017-02-23T10:52:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![floko](https://avatars.discourse-cdn.com/v4/letter/f/c6cbf5/32.png) [@floko](https://forums.digi.com/u/floko)\
**Post date:** [February 23, 2017, 10:52am UTC](https://forums.digi.com/t/cc9p9215-system-failure-led-blink-pattern-documentation/18066/1 "2017-02-23T10:52:22Z")

</div>

I have some CC9P9215 which are not booting. The orange and green LED are blinking alternately. In the manuals the only part where the LEDs are mentioned is in the Hardware reference:  
[…] During startup, LE1 will flash  
a repeating blink pattern for a major syst  
em failure; for example, a processor  
exception or power on self test failure[…]

Is there a table where i can see what blink pattern means which failure?

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [February 27, 2017, 8:36am UTC](https://forums.digi.com/t/cc9p9215-system-failure-led-blink-pattern-documentation/18066/2 "2017-02-27T08:36:50Z")

</div>

There are different blink patterns for different portions of the code.  
Below is a general table for Netos, but if it crashes in bootloader, then it’s probably simpli indicates that image is corrupt, which is most likely what the customer is seeing. Those patterns are only usefull if you know exactly what part of code is failing.  
All this inof is in API reference guide. I’ve copied it below but it’s poorly formated when pasted here, so please look it up there instead.

Netos gives you a main code with red LED and subcode with green LED:  
LED Error Blink Codes  
Category: Error and Exception Handlers  
Error code for customizeErrorHandler(). This error code is used for blinking pattern for red or error led in customizeErrorHandler().  
Include file  
#include  
Library dependencies  
libbsp(dbg).a  
Platforms supported  
All  
Members  
Name Description  
ERROR\_POST\_FAILED Power On Self Test failed  
ERROR\_IRQ\_TABLE Interrupt Handler Error  
ERROR\_SNMP\_MIB SNMP Error  
ERROR\_SNMP\_MIB1213 Error in MIB-II implementation  
ERROR\_RAM\_FAILURE Memory error  
ERROR\_SERIAL\_DRIVER Serial Driver Error  
ERROR\_ETHERNET\_DRIVER Ethernet Driver Error  
ERROR\_PPP PPP driver Error  
ERROR\_FILEIO File System Error  
ERROR\_ROOSTER\_THREADX TCP/IP Rooster Thread Error  
ERROR\_ROOSTER\_CRITICAL TCP/IP Rooster Thread Critical Section Error  
ERROR\_CHECKSUM Checksum Error  
ERROR\_MAMAPI Management API error  
ERROR\_OUT\_OF\_MEMORY Out of Memory  
ERROR\_ASSERT\_FAILED NA\_ASSERT() failed. This was probably caused by passing a bad parameter to a function.  
ERROR\_LCD\_DRIVER LCD Driver Error  
ERROR\_POWERSAVE Error reported by power save API.  
ERROR\_MMU Error reported by MMU set up routines.  
ERROR\_TIMER Error reported by timer API.  
ERROR\_PARALLEL Error reported by parallel driver.  
ERROR\_MII Error reported by MII driver.  
ERROR\_USB\_DEVICE Error reported by USB device driver  
ERROR\_GPIO\_MUX Error reported by GPIO MUX code.  
ERROR\_SNMP\_AGENT Error reported by SNMP agent.  
ERROR\_PANIC panic() called  
ERROR\_SDIO Error reported by SDIO driver.  
ERROR\_CAN Error reported by CAN driver.  
ERROR\_BOOTLOADER Error reported by the bootloader  
ERROR\_J1708 Error reported by J1708 driver.  
See also  
customizeErrorHandler()  
Version information  
Available since version 6.0

* * *

Source file information  
Path: netos/h/errhndlr.h  
Line: 87

LED Error Blink Subcodes  
Category: Error and Exception Handlers  
Subcode for customizeErrorHandler(). This subcode is used for blinking pattern for green or normal led in customizeErrorHandler().  
Include file  
#include  
Library dependencies  
libbsp(dbg).a  
Platforms supported  
All  
Members  
Name Description  
ERROR\_NO\_SUBCODE Error subcode was not specified  
ERROR\_CANT\_CREATE\_EVENT\_FLAG Unable to create event flag  
ERROR\_ETHERNET\_SEMAPHORE Error with semaphore  
ERROR\_PPP\_UNABLE\_TO\_ADD\_DEVICE Unable to add PPP device  
ERROR\_FILEIO\_SEMAPHORE Error with file system semaphore  
ERROR\_SUBCODE\_INVALID\_INTERRUPT Unexpected interrupt occurred  
ERROR\_SUBCODE\_TCPIP\_HEAP Unable to allocate network heap  
ERROR\_SUBCODE\_DUPLICATE\_IRQ\_ENTRY Duplicate entry in IRQ table  
ERROR\_SUBCODE\_AT\_TABLE Error processing request in AT table  
ERROR\_SUBCODE\_EGP\_TABLE Error processing request in EGP table  
ERROR\_SUBCODE\_IF\_TABLE Error processing request in IF table  
ERROR\_SUBCODE\_IPADDR\_TABLE Error processing request in IPADDR table  
ERROR\_SUBCODE\_IPROUTE\_TABLE Error processing request in IPROUTE table  
ERROR\_SUBCODE\_IPMEDIA\_TABLE Error processing request in IPMEDIA table  
ERROR\_SUBCODE\_SYSOR\_TABLE Error processing request in SYSOR table  
ERROR\_SUBCODE\_TCPCONN\_TABLE Error processing request in TCPCONN table  
ERROR\_SUBCODE\_UPD\_TABLE Error processing request in UPD table  
ERROR\_SUBCODE\_NO\_RAM No RAM detected  
ERROR\_SUBCODE\_FAILED\_RAM\_TEST Failed RAM test  
ERROR\_SUBCODE\_INSUFFICIENT\_RAM Insufficient RAM for application  
ERROR\_SUBCODE\_COUNTER Bad counter  
ERROR\_SUBCODE\_FREE\_VARIABLE Error freeing variable  
ERROR\_SUBCODE\_FREE\_ROW Error freeing row  
ERROR\_SUBCODE\_ALLOC\_ROW Unable to allocate row  
ERROR\_SUBCODE\_COPY\_ROW Unable to copy row  
ERROR\_SUBCODE\_ASSERT\_FAILED NA\_ASSERT() or NA\_INSIST() failed  
ERROR\_POWERSAVE\_SEMAPHORE Error accessing power save semaphore  
ERROR\_MMU\_MISALIGNED\_REGION Region in mmuTable is not aligned on a page boundary  
ERROR\_MMU\_INVALID\_PAGE\_SIZE Region in mmuTable has an invalid page size  
ERROR\_MMU\_REGIONS\_OVERLAP A region in mmuTable overlaps at least one other address range  
ERROR\_MMU\_OUT\_OF\_RESOURCES Unable to construct MMU table because malloc() failed  
ERROR\_MMU\_TABLE\_OVERFLOW The .ttb region specified in the linker script is too small  
ERROR\_MMU\_MISALIGNED\_TABLE The .ttb region specified in the linker script is not aligned on a 16K boundary  
ERROR\_TIMER\_BAD\_SEMAPHORE Unable to get or set the timer driver semaphore.  
ERROR\_TIMER\_CANT\_CREATE\_SEMAPHORE Unable to create the timer driver semaphore.  
ERROR\_TIMER\_NAWAIT\_TIMER\_UNAVAIL NAWAIT\_TIMER was not available.  
ERROR\_TIMER\_NAWAIT\_TIMER\_CONFIG Unable to configure NAWAIT\_TIMER.  
ERROR\_TIMER\_INTERNAL\_DRIVER\_ERROR Size field of configuration was set to an invalid value.  
ERROR\_PARALLEL\_ILLEGAL\_MODE Attempt to set port into an unsupported mode.  
ERROR\_MII\_INTERRUPT\_NOT\_SUPPORTED Attempt to enable interrupts on a PHY that does not support them.  
ERROR\_PHY\_TYPE\_NOT\_SUPPORTED Could not Identify PHY.  
ERROR\_IRQ\_NESTED\_IRQ\_OVERFLOW Too many nested IRQ interrupts have occurred.  
ERROR\_GPIO\_ERROR\_CONFIGURING Invalid GPIO MUX configuration setting.  
ERROR\_GPIO\_NOT\_SUPPORTED This function is not supported on this pin.  
ERROR\_CANT\_CREATE\_SEMAPHORE Can’t create the semaphore.  
ERROR\_GETTING\_SEMAPHORE Can’t get the semaphore.  
ERROR\_RELEASING\_SEMAPHORE Error releasing the semaphore.  
ERROR\_SDIO\_INITIALIZATION Error initializing SDIO driver.  
ERROR\_SDIO\_SEMAPHORE Error accessing semaphore.  
ERROR\_CAN\_INITIALIZATION Error initializing CAN driver.  
ERROR\_CAN\_SEMAPHORE Error accessing CAN semaphore.  
ERROR\_BOOTLOADER\_UNKNOWN\_NAME Unknown platform name  
ERROR\_BOOTLOADER\_BAD\_RAM\_VALUE RAM value in naPlatformCodeTable doesn’t match value in linker script  
ERROR\_J1708\_INITIALIZATION Error initializing J1708 driver.  
See also  
customizeErrorHandler()  
Version information  
Available since version 6.0

* * *

Source file information  
Path: netos/h/errhndlr.h  
Line: 196

Category: Bootloader  
These are the error codes that the bootloader uses.  
Include file  
#include “blerror.h”  
Library dependencies  
libbsp(dbg).a  
Platforms supported  
All  
Members  
Name Description  
DHCP\_FAILED Indicates that no DHCP or BOOTP servers responded to the discovery packets.  
DOWNLOAD\_FAILED Indicates that the TFTP download of the application image failed.  
INVALID\_IMAGE Indicates that the application image downloaded from the TFTP server is invalid.  
FLASH\_ERROR Indicates that an error occurred writing the image to flash.  
BOOTLOADER\_IMAGE\_CORRUPT Indicates that the bootloader image is corrupt.  
OUT\_OF\_MEMORY Indicates that the bootloader was unable to allocate memory for application image buffer.  
DOWNLOAD\_BUFFER\_TOO\_SMALL Indicates that the value of DOWNLOAD\_BUFFER\_SIZE in blram.c is smaller than APP\_MAX\_SIZE\_IN\_FLASH in linker customization file. You must adjust one or the other so that DOWNLOAD\_BUFFER\_SIZE \> APP\_MAX\_SIZE\_IN\_FLASH.  
SIMPLE\_SPI\_EEPROM\_READ\_FAIL Indicates that the simple spi driver fails on read.  
SIMPLE\_SPI\_EEPROM\_WRITE\_FAIL Indicates that the simple spi driver fails on write.  
RECURSIVE\_ETH\_TX\_INTERRUPT Ethernet transmit TX interrupt called recursively.  
ETH\_TX\_RING\_CORRUPTED Ethernet DMA transmit ring is corrupted.  
Version information

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [February 27, 2017, 8:38am UTC](https://forums.digi.com/t/cc9p9215-system-failure-led-blink-pattern-documentation/18066/3 "2017-02-27T08:38:22Z")

</div>

#define ERROR\_POST\_FAILED 1  
#define ERROR\_IRQ\_TABLE 3  
#define ERROR\_SNMP\_MIB 4  
#define ERROR\_SNMP\_MIB1213 5  
#define ERROR\_RAM\_FAILURE 6  
#define ERROR\_SERIAL\_DRIVER 8  
#define ERROR\_ETHERNET\_DRIVER 9  
#define ERROR\_PPP 10  
#define ERROR\_FILEIO 11  
#define ERROR\_ROOSTER\_THREADX 12  
#define ERROR\_ROOSTER\_CRITICAL 13  
#define ERROR\_CHECKSUM 14  
#define ERROR\_MAMAPI 15  
#define ERROR\_OUT\_OF\_MEMORY 16  
#define ERROR\_ASSERT\_FAILED 17  
#define ERROR\_LCD\_DRIVER 18  
#define ERROR\_POWERSAVE 19  
#define ERROR\_MMU 20  
#define ERROR\_TIMER 21  
#define ERROR\_PARALLEL 22  
#define ERROR\_MII 23  
#define ERROR\_USB\_DEVICE 24  
#define ERROR\_GPIO\_MUX 25  
#define ERROR\_SNMP\_AGENT 26  
#define ERROR\_PANIC 27  
#define ERROR\_SDIO 28  
#define ERROR\_CAN 29  
#define ERROR\_BOOTLOADER 30  
#define ERROR\_J1708 31

Regards,  
Leonid

#define ERROR\_POST\_FAILED 1  
#define ERROR\_IRQ\_TABLE 3  
#define ERROR\_SNMP\_MIB 4  
#define ERROR\_SNMP\_MIB1213 5  
#define ERROR\_RAM\_FAILURE 6  
#define ERROR\_SERIAL\_DRIVER 8  
#define ERROR\_ETHERNET\_DRIVER 9  
#define ERROR\_PPP 10  
#define ERROR\_FILEIO 11  
#define ERROR\_ROOSTER\_THREADX 12  
#define ERROR\_ROOSTER\_CRITICAL 13  
#define ERROR\_CHECKSUM 14  
#define ERROR\_MAMAPI 15  
#define ERROR\_OUT\_OF\_MEMORY 16  
#define ERROR\_ASSERT\_FAILED 17  
#define ERROR\_LCD\_DRIVER 18  
#define ERROR\_POWERSAVE 19  
#define ERROR\_MMU 20  
#define ERROR\_TIMER 21  
#define ERROR\_PARALLEL 22  
#define ERROR\_MII 23  
#define ERROR\_USB\_DEVICE 24  
#define ERROR\_GPIO\_MUX 25  
#define ERROR\_SNMP\_AGENT 26  
#define ERROR\_PANIC 27  
#define ERROR\_SDIO 28  
#define ERROR\_CAN 29  
#define ERROR\_BOOTLOADER 30  
#define ERROR\_J1708 31

#define DHCP\_FAILED 1  
#define DOWNLOAD\_FAILED 2  
#define INVALID\_IMAGE 3  
#define FLASH\_ERROR 4  
#define BOOTLOADER\_IMAGE\_CORRUPT 5  
#define OUT\_OF\_MEMORY 6  
#define DOWNLOAD\_BUFFER\_TOO\_SMALL 7  
#define SIMPLE\_SPI\_EEPROM\_READ\_FAIL 8  
#define SIMPLE\_SPI\_EEPROM\_WRITE\_FAIL 9  
#define RECURSIVE\_ETH\_TX\_INTERRUPT 10  
#define ETH\_TX\_RING\_CORRUPTED 11

/\* Ethernet related errors \*/  
#define BL\_RECURSIVE\_TX\_INTERRUPT LED\_001\_RECURSIVE\_TX\_INTERRUPT  
#define BL\_TX\_RING\_CORRUPTED LED\_002\_TX\_RING\_CORRUPTED

/\* errors related to flash \*/  
#define BL\_FLASH\_INIT\_FAILED LED\_001\_FLASH\_INIT\_FAILED  
#define BL\_FLASH\_SECTORS\_FAILED LED\_002\_FLASH\_SECTORS\_FAILED  
#define BL\_FLASH\_SECTOR\_SIZES\_FAILED LED\_003\_FLASH\_SECTOR\_SIZES\_FAILED  
#define BL\_FLASH\_INVALID\_START\_OFFSET LED\_004\_FLASH\_INVALID\_START\_OFFSET  
#define BL\_FLASH\_WRITE\_FAILED LED\_005\_FLASH\_WRITE\_FAILED

/\* errors related to DHCP \*/  
#define BL\_PACKET\_ALLOCATE\_ERROR LED\_001\_PACKET\_ALLOCATE\_ERROR  
#define BL\_DHCP\_RETRANSMIT\_ERROR LED\_002\_DHCP\_RETRANSMIT\_ERROR

/\* IP/UDP related errors \*/  
#define BL\_TIMER\_INITIALIZE\_FAILED LED\_001\_TIMER\_INITIALIZE\_FAILED  
#define BL\_PACKET\_INITIALIZE\_FAILED LED\_002\_PACKET\_INITIALIZE\_FAILED  
#define BL\_ARP\_INITIALIZE\_FAILED LED\_003\_ARP\_INITIALIZE\_FAILED  
#define BL\_ICMP\_INITIALIZE\_FAILED LED\_004\_ICMP\_INITIALIZE\_FAILED  
#define BL\_UDP\_INITIALIZE\_FAILED LED\_005\_UDP\_INITIALIZE\_FAILED  
#define BL\_ARMETH\_INITIALIZE\_FAILED LED\_006\_ARMETH\_INITIALIZE\_FAILED  
#define BL\_IP\_INITIALIZE\_FAILED LED\_007\_IP\_INITIALIZE\_FAILED

/\* TFTP related errors \*/  
#define BL\_TFTPC\_INITIALIZE\_ERROR LED\_001\_TFTPC\_INITIALIZE\_ERROR  
#define BL\_TFTPC\_GET\_ERROR LED\_002\_TFTPC\_GET\_ERROR  
#define BL\_TFTPC\_RETRANSMIT\_ERROR LED\_003\_TFTPC\_RETRANSMIT\_ERROR  
#define BL\_TFTPC\_BUFFER\_TOO\_SMALL LED\_004\_TFTPC\_BUFFER\_TOO\_SMALL

/\* Image related errors \*/  
#define BL\_INVALID\_IMAGE LED\_001\_BL\_INVALID\_IMAGE  
#define BL\_DOWNLOAD\_IMAGE\_ERROR LED\_002\_DOWNLOAD\_IMAGE\_ERROR  
#define BL\_WRONG\_PLATFORM LED\_003\_WRONG\_PLATFORM

/\* SPI related errors \*/  
#define BL\_SPI\_REGISTER\_DEVICE\_ERROR LED\_001\_SPI\_REGISTER\_DEVICE\_ERROR  
#define BL\_SFLASH\_INIT\_ERROR LED\_002\_SFLASH\_INIT\_ERROR  
#define BL\_SFLASH\_SECTORS\_FAILED LED\_003\_SFLASH\_SECTORS\_FAILED  
#define BL\_SFLASH\_SECTOR\_SIZES\_FAILED LED\_004\_SFLASH\_SECTOR\_SIZES\_FAILED  
#define BL\_SFLASH\_INVALID\_START\_OFFSET LED\_005\_SFLASH\_INVALID\_START\_OFFSET  
#define BL\_SFLASH\_WRITE\_FAILED LED\_006\_SFLASH\_WRITE\_FAILED  
#define BL\_SFLASH\_READ\_FAILED LED\_007\_SFLASH\_READ\_FAILED

/\* Serial download errors \*/  
#define BL\_SERIAL\_TIMEOUT\_ERROR LED\_001\_SERIAL\_TIMEOUT\_ERROR  
#define BL\_SERIAL\_CANCELED\_BY\_PEER LED\_002\_SERIAL\_CANCELED\_BY\_PEER  
#define BL\_SERIAL\_TOO\_MANY\_RETRY LED\_003\_SERIAL\_TOO\_MANY\_RETRY

/\* number of times the errorcode pattern blinks before trying the  
next recovery mode \*/  
#define NA\_BOOTLOADER\_BLINK\_COUNT 0x0002

void NABlReportError(int errorCode); /\* kept as is for backward compatibility \*/  
void NaBootloaderReportError(const unsigned int minorcode, const unsigned int subcode);

#define NaBootloaderFlashError(errorCode) NaBootloaderReportError(LED\_02\_BL\_FLASH\_FAILURE, errorCode)  
#define NaBootloaderEthError(errorCode) NaBootloaderReportError(LED\_03\_BL\_ETH\_FAILURE, errorCode)  
#define NaBootloaderDhcpError(errorCode) NaBootloaderReportError(LED\_04\_BL\_DHCP\_FAILURE, errorCode)  
#define NaBootloaderIpudpError(errorCode) NaBootloaderReportError(LED\_05\_BL\_IPUDP\_FAILURE, errorCode)  
#define NaBootloaderTftpError(errorCode) NaBootloaderReportError(LED\_06\_BL\_TFTP\_FAILURE, errorCode)  
#define NaBootloaderImageError(errorCode) NaBootloaderReportError(LED\_07\_BL\_IMAGE\_FALIURE, errorCode)  
#define NaBootloaderSpiError(errorCode) NaBootloaderReportError(LED\_08\_BL\_SPI\_FAILURE, errorCode)  
#define NaBootloaderSerialError(errorCode) NaBootloaderReportError(LED\_09\_BL\_SERIAL\_FAILURE, errorCode)
