1. General Rules and Practices

  1. All instructions over serial: are terminated with 3 bytes of 0xFF 0xFF 0xFF
    ie: decimal: 255 or hex: 0xFF or ansichar: ÿ or binary: 11111111

    byte ndt[3] = {255,255,255}; 
    write(ndt,3); 
    // or print("\xFF\xFF\xFF"); 
    // or print("ÿÿÿ")
    
  2. All instructions and parameters are in ASCII
  3. All instructions are in lowercase letters
  4. Blocks of code are enclosed within braces { } can not be sent over serial this means if, for, and while instructions can not be used over serial
  5. A space char 0x20 is used to separate instructions from parameters.
  6. There are no spaces in parameters unless specifically stated
  7. Nextion uses integer math and does not have real or floating support.
  8. Assignments are non-complex evaluating fully when reaching value after operator.
  9. Comparison evaluation is non-complex, but can be joined (see && and ||).
  10. Instructions over serial are processed on receiving termination (see 1.1)
  11. Character escaping is performed by using two chars:
    \r creates 2 bytes 0x0D 0x0A, \" 0x22 and \\ for 0x5C
  12. Nextion does not support order of operations.
    sys0=3+(8*4)// is invalid.
    
  13. 16-bit 565 Colors are in decimal from 0 to 65535 (see 5.Note)
  14. Text values must be encapsulated with double quotes: ie "Hello"
  15. Items specific to a Model are noted with its model color icon
  16. Transparent Data Mode (used by addt and wept commands)
    MCU sending to Nextion

    1. MCU sends instruction. ie: wept 30,20ÿÿÿ or addt 1,0,320ÿÿÿ
    2. Nextion requires ~5ms to prepare for transparent mode data transfer
    3. Nextion sends Ready 0xFE 0xFF 0xFF 0xFF Return Data (see 7.32)
    4. MCU can now send specified quantity (20) of raw bytes to Nextion
    5. Nextion receives raw bytes until specified quantity (20) is received
    6. Nextion sends Finished 0xFD 0xFF 0xFF 0xFF Return Data (see 7.31)
    7. MCU and Nextion can proceed to next command

    Note: Nextion will remain waiting at step 5 until every byte specified by the quantity parameter has been received.
    – During this time Nextion can not execute any other commands, and may indeed hang if the MCU fails to deliver the number of bytes as specified by the command parameter.
    – data quantity that can be specified/sent is limited by serial buffer usage
    (all commands+terminations + data must be < 1024)

  17. Only component attributes in green and non readonly system variables can be assigned new values at runtime. All others are readonly at runtime with the exception of .objname and .key which are non-readable.
  18. Numeric values can now be entered with byte-aligned hex.
    ie: n0.val=0x01FF and not n0.val=0x1FF (nibble aligned will fail)
  19. Advanced. Address mode is an advanced technique prepending the serial instruction with two bytes for the address. Two byte address is to be sent in little endian order, ie: 2556 is sent 0xFC 0x09. By default, the Nextion address is 0 and does not require two byte prefixing. When the two byte addressing is used, Nextion will only respond to the command if its address matches the two byte prefix, or the transmitted address is 65535 broadcast. See the addr system variable.
  20. Advanced. Protocol Reparse mode is an advanced technique that allows users to define their own incoming protocol and incoming serial data handling. When in active Protocol Reparse mode, incoming serial data will not be processed natively by the Nextion firmware but will wait in the serial buffer for processing. To exit active Protocol Reparse mode, recmod must be set back to passive (ie: in Nextion logic as recmod=0), which can not be achieved via serial. Send DRAKJHSUYDGBNCJHGJKSHBDNÿÿÿ via serial to exit active mode serially. Most HMI applications will not require Protocol Reparse mode and should be skipped if not fully understood.
  21. Commenting user code inside Events uses the double-slash technique
    (two characters of forward slash // ). See 2.30 for proper usage.
2. Assignment Statements

  1. Text =
    Assignment. Right side will be evaluated with result placed in left side. Component .txt-maxl needs to be large enough to hold result.

    t0.txt="Hello"
  2. Text +=
    Text Addition.
    Will concatenate left side with right side with result placed left side.
    ie t0.txt+=”Hello” is equivalent to t0.txt=t0.txt+”Hello”.
    t0.txt=”-“+t0.txt becomes t0.txt=t0.txt+”-“.
    Use temp variable to prepend.

    va0.txt=t0.txt
    t0.txt="-"+va0.txt
    // append " World" to t0.txt
    t0.txt+=" World"
    //When contents of t0.txt is "Hello" becomes "Hello World"
  3. Text -=
    Text Subtraction. Will remove right side (a specified numeric amount of characters to remove) from end of left side and result placed in left side.

    t0.txt-=4
    t0.txt=t0.txt-4// remove last 4 chars from t0.txt
  4. Text \
    Escape Character.
    Supported is \r hex 0x0D 0x0A, \” hex 0x22, \\ hex 0x5C. (see 1.11)

    t0.txt="\r"
  5. Text ==
    Boolean Equality. Evaluate left side to right side.
    If both left and right sides are the same creates a true condition

    if(t0.txt==va0.txt)
    {
    }
  6. Text !=
    Boolean Inequality. Evaluate left side to right side.
    If both left and right sides are different creates a true condition

    if(t0.txt!=va0.txt)
    {
    }
  7. Numeric =
    Assignment. Right side of equation will be evaluated and result placed in left side. If more than one operator on right side, full evaluation and assignment will occur at value after each operator.

    n0.val=bauds// places bauds value in n0.val component
  8. Numeric +=
    Numeric Addition. Adds value of left side and right side with result placed in left side. n0.val+=4 is equivalent to n0.val=n0.val+4

    n0.val+=va0.val
  9. Numeric -=
    Numeric Subtraction. Subtracts right side from left side with result placed in left side. n0.val-=4 is equivalent to n0.val=n0.val-4

    n0.val-=60// decreases value of n0.val by 60
  10. Numeric *=
    Numeric Multiplication. Multiplies left side with right side with product result placed in left side. n0.val*=2 is equivalent of n0.val=n0.val*2

    n0.val*=2
  11. Numeric /=
    Numeric Division. Equates division of numerator (left side) and divisor (right side) and places integer quotient in left side. 60000/20001=2

    n0.val/=60
  12. Numeric %=
    Numeric Modulo. Equates division of numerator (left side) and divisor (right side) and places integer remainder in left side. 60000/20001=19998

    n0.val%=60
  13. Numeric <<= Arithmetic Bit Shift Left. Moves all bits specified number to the left. Using the 16-bit example that follows, (32-bit uses similar rules) All bits shifted above 15 are lost and undefined bits become 0
    n0.val<<=4
    0 0 0 0.0 0 1 1.1 1 0 0.0 0 0 1
    0 0 1 1.1 1 0 0.0 0 0 1.
    0 0 1 1.1 1 0 0.0 0 0 1.0 0 0 0
    
  14. Numeric >>=

    Arithmetic Bit Shift Right.
    Moves all bits specified number to the right.
    Using the 16-bit example that follows, (32-bit uses similar rules)
    All bits shifted below 0 are lost and undefined bits become the signed bit.
    When signed bit is 1 (value is negative) then left filled is with 1’s
    When signed bit is 0 (value is positive) then left filled is with 0’s

    n0.val>>=4
    0 0 0 0.0 0 1 1.1 1 0 0.0 0 0 1
            0 0 0 0.0 0 1 1.1 1 0 0
    0 0 0 0.0 0 0 0.0 0 1 1.1 1 0 0
    
  15. Numeric &=
    Logical Bitwise AND. Compares all bits left side to all bits right side(mask)
    Using the 16-bit example that follows, (32-bit uses similar rules)
    Result is a bit of 1 where both left and right bits were 1

    n0.val&=35381
    0 1 0 1.1 0 1 1.0 0 1 0.0 1 0 1 n0.val of 23333
    1 0 0 0.1 0 1 0.0 0 1 1.0 1 0 1 mask of 35381
    0 0 0 0.1 0 1 0.0 0 1 0.0 1 0 1 result is 2597
    
  16. Numeric |=
    Logical Bitwise OR. Compares all bits left side to all bits right side
    Using the 16-bit example that follows, (32-bit uses similar rules)
    Result is a bit of 1 where either left or right bits were 1

    n0.val|=35381
    0 1 0 1.1 0 1 1.0 0 1 0.0 1 0 1 n0.val of 65519
    1 0 0 0.1 0 1 0.0 0 1 1.0 1 0 1 constant 35381
    1 1 0 1.1 0 1 1.0 0 1 1.0 1 0 1 result is 56117
    
  17. Numeric ^=
    Logical Bitwise XOR. Applied bit inversion to all bits in the bitmask
    Using the 16-bit example that follows, (32-bit uses similar rules)
    Result is a bit of 1 where either left or right bits were 1

    n0.val^=35381
    0 1 0 1.1 0 1 1.0 0 1 0.0 1 0 1 n0.val of 65519
    1 0 0 0.1 0 1 0.0 0 1 1.0 1 0 1 bitmask of 35381
    1 1 0 1.0 0 0 1.0 0 0 1.0 0 0 0 result is 53520
    
  18. Numeric ==
    Boolean Equality. Evaluate left side to right side.
    If both left and right sides are the same creates a true condition

    if(n0.val==va0.val)
    {
    }
  19. Numeric !=
    Boolean Inequality. Evaluate left side to right side.
    If both left and right sides are different creates a true condition

    if(n0.val!=va0.val)
    {
    }
  20. Numeric < Boolean Less than. Evaluate left side to right side. If left side is less than right side creates a true condition //note in the example below there should be no space after <.
    while(n0.val< va0.val)
    {
    }
  21. Numeric <= Boolean Less than or Equal. Evaluate left side to right side. If left side is less than or equal to right side creates a true condition
    while(n0.val<=va0.val)
    {
    }
  22. Numeric >
    Boolean Greater than. Evaluate left side to right side.
    If left side is greater than right side creates a true condition

    while(n0.val>va0.val)
    {
    }
  23. Numeric >=
    Boolean Greater than or Equal. Evaluate left side to right side.
    If left side is greater than or equal to right side creates a true condition

    while(n0.val>=va0.val)
    {
    }
  24. Code { }
    Code Block begins with open brace { on line by itself
    Code Block ends with closing brace } beginning a new line
    see if (see 3.25) while (see 3.26) and for (see 3.27)
  25. Code &&
    Condition joiner AND.
    Conditions may be joined with no spaces between conditions, left to right evaluation
    see if (see 3.25) while (see 3.26) and for (see 3.27)
  26. Code ||
    Condition joiner OR.
    Conditions may be joined with no spaces between conditions, left to right evaluation
    see if (see 3.25) while (see 3.26) and for (see 3.27)
  27. Code ( )
    Condition enclosure begins with open parenthesis (
    and ends with closing parenthesis ) at end of line
    see if (see 3.25) while (see 3.26) and for (see 3.27)
  28. Code .
    Period Separator. Separates Page, Component and Attributes
    Also used with page index and component array. (see 2.29)

    page1.va0.val// or
    p[1].b[2].val// or
    p0.pic
  29. Code [ ] Array[index].
    There are 3 arrays. Keyboard source showcases 2 arrays.
    The b[.id] component array which takes component .id as index
    The p[index] page array which takes page index as index
    These (p[].b[]) need to be used with caution and mindful purpose.
    Reference to a component without specified Attribute can create for long and potentially frustrating debug sessions. The third array is the Serial Buffer Data u[index] array. This is valid when in active Protocol Reparse mode. Protocol Reparse is an advanced technique that should be skipped if not fully understood.

    p[pageindex].b[component.id].attribute// global scope
    b[component.id].attribute// local scope on current page
  30. Comment //
    Double-Slash Commenting to add user comments to code.
    Everything to the right of, and including, the double-slash is a comment that will not be executed by the Nextion interpreter. Comments should: 1) occur on a line by themselves with the double-slash at the beginning of the line (no leading spaces), 2) immediately following code on a line without a space separating code and the double slash. Commenting of code blocks should occur: 1) before the condition/iteration 2) inside the opening and closing braces 3) after the code block. Notes: It is important to note that comments can not interrupt code blocks without causing an “Error: Index was outside the bounds of the array”. Comments are counted towards the overall “code + attributes” hard limit of 65534

    // these are valid comments
    sys0=0// reset sys0 to zero
    

    The following showcases valid/invalid use

    //valid comment before condition/iteration
    for(sys0=0;sys0<=sys1;sys0++)
    // invalid comment between condition/iteration and block
    {
    doevents//valid comment after code on same line
    // valid comment inside block
    }
    // valid comment outside block
    
3. Operational Instructions

  1. page
    Parameter Count 1
    Change page to page specified. Unloads old page to load specified page.
    Nextion loads page 0 at power on by default in Program.s (see also wup 6.16)
    usage: page pid
    pid is either the page index number, or pagename

    // Change page to indexed page 0
    page 0
    // Change page to the page named main
    page main
    
  2. ref
    Parameter Count 1
    Refresh component (auto-refresh on attribute change since v0.38)
    if component is obstructed (stacking), ref brings component to top.
    - in Intelligent Series use setlayer 3.41 for changing layers.
    usage: ref cid
    cid is component’s .id or .objname attribute of component to refresh
    – when is 0 (page component) refreshes all on the current page.

    // Refresh the component with .objname of t0
    ref t0
    // Refreshes the component with .id of 3
    ref 3
    // Refresh all components on current page (same as ref 255)
    ref 0
    
  3. click
    Parameter Count 2
    Trigger the specified components Touch Press/Release Event
    As event code is always local, component can not be page prefixed
    usage: click cid,event
    cid is component’s .id or .objname attribute of component to refresh.
    event is 1 to trigger Press Event, 0 to trigger Release Events.

    // Trigger Touch Press Event of component with .objname b0
    click b0,1
    // Trigger Touch Release Event of component with .id 4
    click 4,0
    
  4. ref_stop
    Parameter Count 0
    Stops default waveform refreshing (will not refresh when data point added)
    – waveform refreshing will resume with ref_star (see 3.5).
    usage: ref_stop

    // stop refreshing the waveform on each data point added
    ref_stop
    
  5. ref_star
    Parameter Count 0
    Resume default waveform refreshing (refresh on data point add)
    – used to resume waveform refreshing stopped by ref_stop (see 3.4).
    usage: ref_start

    // resume default refreshing, refresh on each data point added
    ref_star
    
  6. get
    Parameter Count 1
    Send attribute/constant over serial (0x70/0x71 Return Data)
    usage: get attrib
    attrib is either numeric value, .txt contents, or constant
    – component .vscope should be global when using page prefixing on alt page

    // send text contents of t0.txt in 0x70 Return Data format
    get t0.txt
    // send text constant "123" in 0x70 Return Data format
    get "123"
    // sends numeric value of n0.val in 0x71 Return Data format
    get n0.val
    //  send numeric constant 123 in 0x71 Return Data format
    get 123
    // send page0's va0.val in 0x71 Return Data format
    get page0.va0.val
    
  7. sendme
    Parameter Count 0
    – number of currently loaded page is stored in system variable dp
    – used in a page’s initialize event will auto-send as page loads
    usage: sendme

    // send the value of dp in 0x66 Return Data Format
    sendme
    
  8. covx
    Parameter Count 4
    Convert variable from numeric type to text, or text to numeric type
    – text must be text ASCII representation of an integer value.
    – source and destination types must not be of the same type.
    – when source is numeric, hex format and length not 0 and <=8. ie: (len 2) positive significant (byte 0 to 3), 123 = 0000007B = 007B ie: (len 2) negative significant (byte 3 to 0), -123 = FFFFFF85 = FF85 – value is more than allowed space results in a truncation. – it is recommended to ensure handling source length in user code before covx. – in v0.53, covx is deemed undefined if source is larger than length or dest txt_maxl is smaller than requested length. (some of these undefines, can be exploited) ie: src numeric value of 123 with length 0, result is dest text "123"
    – when length is fixed and value is less, leading zeros will be added.
    ie: src numeric value of 123 with length 4, result is dest text "0123"
    – when value is larger than length, .txt truncated to least significant digits.
    ie: src numeric value of 23425 with length 4 result is dest text "3425"

    usage: covx  src,dest,length,format
    src is text attribute (or numeric attribute when is text)
    dest is numeric attribute (or text attribute when is numeric)
    length will determine if leading zeros added to conversion to text
    format 0: integer, 1: Comma separated 1,000s, 2: Hex

     // convert value of h0 into t0.txt without leading zeros
    covx h0.val,t0.txt,0,0
    // convert t0.txt into integer in h0.val  ignored
    covx t0.txt,h0.val,0,0 
    // convert value of h0 into t0.txt with exactly 4 digits
    covx h0.val,t0.txt,4,0 
    // convert value of h0 into t0.txt with commas
    covx h0.val,t0.txt,4,1 
    // convert value of h0 into t0.txt in 2 bytes of hex digits
    covx h0.val,t0.txt,4,2 
    // src & dest same type
    Invalid: cov h0.val,va0.val,0
    // src & dest same type
    Invalid: cov t0.txt,va0.txt,0

    cov [Depreciated] Parameter Count 3
    Convert variable from numeric type to text, or text to numeric type
    – text must be text ASCII representation of an integer value.
    – source and destination types must not be of the same type.
    – when length is fixed and value is less, leading zeros will be added.
    ie: src numeric value of 123 with length 4, result is dest text "0123"
    – dest txt_maxl and length needs be large enough to accommodate conversion.
    ie: src numeric value of 123 with length 0, result is dest text "123"
    – when value is larger than length, .txt results in a truncation.
    – it is recommended to handle source length in user code before cov.
    Note: v0.53 changed behaviour from previous pre v0.53 behaviours.
    cov is deemed undefined if source is larger than length or the dest txt_maxl is
    smaller than the requested length. Some undefines are exploitable.
    usage: cov src,dest,length
    src is text attribute (or numeric attribute when is text)
    dest is numeric attribute (or text attribute when is numeric)
    length will determine if leading zeros added to conversion to text

    // convert value of h0 into t0.txt without leading zeros
    cov h0.val,t0.txt,0
    // convert integer into t0.txt from h0.val  ignored
    cov t0.txt,h0.val,0
    // convert value of h0 into t0.txt with exactly 4 digits
    cov h0.val,t0.txt,4
    // src & dest same type.
    Invalid: cov h0.val,va0.val,0
    // src & dest same type
    Invalid: cov t0.txt,va0.txt,0
  9. touch_j
    Parameter Count 0
    Recalibrate the Nextion device’s touch sensor
    – presents 4 points on screen for user to touch, saves, and then reboots.
    – typically not required as device is calibrated at factory
    – sensor can be effected by changes of conditions in environment
    usage: touch_j

    // trigger the recalibration of touch sensor
    touch_j 
    
  10. substr
    Parameter Count 4
    Extract character or characters from contents of a Text attribute
    usage: substr src,dest,start,count
    src is text attribute where text will be extracted from
    dest is text attribute to where extracted text will be placed
    start is start position for extraction (0 is first char, 1 second)
    count is the number of characters to extract

    // extract first 5 chars from va0.txt, put into t0.txt
    substr va0.txt,t0.txt,0,5
    
  11. vis
    Parameter Count 2
    Hide or Show component on current page
    – show will refresh component and bring it to the forefront layer
    – hide will remove component visually, touch events will be disabled
    – use layering with mindful purpose, can cause ripping and flickering.
    – use with caution and mindful purpose, may lead to difficult debug session
    usage: vis comp,state
    comp is either .objname or .id of component on current page,
    – valid .id is 0 – page, 1 to 250 if component exists, and 255 for all
    state is either 0 to hide, or 1 to show.

    // hide component with .objname b0
    vis b0,0
    // show component with .objname b0, refresh on front layer
    vis b0,1
    // hide component with .id 1
    vis 1,0
    // show component with .id 1, refresh on front layer
    vis 1,1
    // hides all components on the current page
    vis 255,0
    
  12. tsw
    Parameter Count 2
    Enable or disable touch events for component on current page
    – by default, all components are enabled unless disabled by tsw
    – use with caution and mindful purpose, may lead to difficult debug session
    usage: tsw comp,state
    comp is either .objname or .id of component on current page,
    – valid .id is 0 – page, 1 to 250 if component exists, and 255 for all
    state is either 0 to disable, or 1 to enable.

    // disable Touch Press/Release events for component b0
    tsw b0,0
    // enable Touch Press/Release events for component b0
    tsw b0,1
    // disable Touch Press/Release events for component with id 1
    tsw 1,0
    // enable Touch Press/Release events for component with id 1
    tsw 1,1
    // disable all Touch Press/Release events on current page
    tsw 255,0
    
  13. com_stop
    Parameter Count 0
    Stop execution of instructions received from Serial
    – Serial will continue to receive and store in buffer.
    – execution of instructions from Serial will resume with com_star (see 3.14)
    – using com_stop and com_star may cause a buffer overflow condition.
    – Refer to device datasheet for buffer size and command queue size
    usage: com_stop

    // stops execution of instructions from Serial
    com_stop 
    
  14. com_star
    Parameter Count 0
    Resume execution of instructions received from Serial
    – used to resume an execution stop caused by com_stop (see 3.13)
    – when com_star received, all instructions in buffer will be executed
    – using com_stop and com_star may cause a buffer overflow condition.
    – Refer to device datasheet for buffer size and command queue size
    usage: com_star

    // resume execution of instruction from Serial
    com_star
    
  15. randset
    Parameter Count 2
    Set the Random Generator Range for use with rand (see 6.14)
    – range will persist until changed or Nextion rebooted
    – set range to desired range before using rand
    – power on default range is -2147483648 to 2147483647, runtime range is user definable.
    usage: randset min,max
    min is value is -2147483648 to 2147483647
    max is value greater than min and less than 2147483647

    //set current random generator range from 1 to 100
    randset 1,100
    //set current random generator range from 0 to 65535
    randset 0,65535
    
  16. code_c
    Parameter Count 0
    Clear the commands/data queued in command buffer without execution
    usage: code_c

    // Clears the command buffer without execution
    code_c
    
  17. prints
    Parameter Count 2
    Send raw formatted data over Serial to MCU
    – prints does not use Nextion Return Data, user must handle MCU side
    – qty of data may be limited by serial buffer (all data < 1024) – numeric value sent in 4 byte 32-bit little endian order value = byte1+byte2*256+byte3*65536+byte4*16777216 – text content sent is sent 1 ASCII byte per character, without null byte.
    usage: prints attr,length
    attr is either component attribute, variable or Constant
    length is either 0 (all) or number to limit the bytes to send.

    // return 1 byte per char of t0.txt without null byte ending.
    prints t0.txt,0
    // return first 4 bytes of t0.txt without null byte ending.
    prints t0.txt,4
    // return  4 bytes for j0.val in little endian order
    prints j0.val,0
    // return 1 byte of j0.val in little endian order
    prints j0.val,1
    // return 2 bytes for text "12"  0x31 0x32
    prints "123",2
    // returns 2 bytes for value 123  0x7B 0x00
    prints 123,2
    

    print [Depreciated] Parameter Count 1
    Send raw formatted data over Serial to MCU
    – print/printh does not use Nextion Return Data, user must handle MCU side
    – qty of data may be limited by serial buffer (all data < 1024) – numeric value sent in 4 byte 32-bit little endian order value = byte1+byte2*256+byte3*65536+byte4*16777216 – text content sent is sent 1 ASCII byte per character, without null byte.
    usage: print attr
    attr is either component attribute, variable or Constant

    // return 1 byte per char of t0.txt without null byte ending.
    print t0.txt
    // return  4 bytes for j0.val in little endian order
    print j0.val
    // return 3 bytes for text “123”  0x31 0x32 0x33
    print "123"
    // return 4 bytes for value 123  0x7B 0x00 0x00 0x00
    print 123
    
  18. printh
    Parameter Count 1 to many
    Send raw byte or multiple raw bytes over Serial to MCU
    – printh is one of the few commands that parameter uses space char 0x20
    – when more than one byte is being sent a space separates each byte
    – byte is represented by 2 of (ASCII char of hexadecimal value per nibble)
    – qty may be limited by serial buffer (all data < 1024) – print/printh does not use Nextion Return Data, user must handle MCU side.
    usage: printh hexhex[space hexhex][…space hexhex] hexhex is hexadecimal value of each nibble. 0x34 as 34
    space is a space char 0x20, used to separate each pair

    // send single byte: value 13 hex: 0x0D
    printh 0D
    // send two bytes:   value 13,10  hex: 0x0D0x0A
    printh 0D 0A
    
  19. add
    Parameter Count 3
    Add single value to Waveform Channel
    – waveform channel data range is min 0, max 255
    – 1 pixel column is used per data value added
    – y placement is if value < s0.h then s0.y+s0.h-value, otherwise s0.y
    usage: add waveform,channel,value
    is the .id of the waveform component
    is the channel the data will be added to
    is ASCII text of data value, or numeric value
    – valid: va0.val or sys0 or j0.val or 10

    // add value 30 to Channel 0 of Waveform with .id 1
    add 1,0,30 
    // add h0.val to Channel 1 of Waveform with .id 2
    add 2,1,h0.val 
    
  20. addt
    Parameter Count 3
    Add specified number of bytes to Waveform Channel over Serial from MCU
    – waveform channel data range is min 0, max 255
    – 1 pixel column is used per data value added.
    – addt uses Transparent Data Mode (see 1.16)
    – waveform will not refresh until Transparent Data Mode completes.
    – qty limited by serial buffer (all commands+terminations + data < 1024) – also refer to add command (see 3.19).
    usage: add waveform,channel,qty
    waveform is the .id of the waveform component
    channel is the channel the data will be added to
    qty is the number of byte values to add to

    // adds 20 bytes to Channel 0 Waveform with .id 2 from serial
    // byte is not text of value, but raw byte of data.
    addt 2,0,20
    
  21. cle
    Parameter Count 2
    Clear waveform channel data
    usage:  cle waveform,channel
    waveform> is the .id of the waveform component
    channel is the channel to clear
    - channel must be a valid channel: < waveform.ch or 255 - 0 if .ch 1, 1 if .ch 2, 2 if .ch 3, 3 if .ch=4 and 255 (all channels)
    // clear channel 0 data from waveform with .id 1
    cle 1,0
    // clear all channels from waveform with .id 2
    cle 2,255
    
  22. rest
    Parameter Count 0
    Resets the Nextion Device
    usage: rest

    // immediate reset of Nextion device – reboot.
    rest
    
  23. doevents
    Parameter Count 0
    Force immediate screen refresh and receive serial bytes to buffer
    – useful inside exclusive code block for visual refresh (see 3.26 and 3.27)
    usage: doevents

    // allows refresh and events during code blocks
    doevents
    
  24. strlen
    Parameter Count 2
    Computes the length of string in param txt and puts value in param len
    usage: strlen txt,len
    txt must be a string attribute ie: t0.txt, va0.txt
    len must be numeric ie: n0.val, sys0, va0.val

    // assigns n0.val with length of t0.txt content
    strlen t0.txt,n0.val
    

    btlen
    Parameter Count 2
    Computes the number of bytes in string for param txt and puts value in param len
    usage: strlen txt,len
    txt must be a string attribute ie: t0.txt, va0.txt
    len must be numeric ie: n0.val, sys0, va0.val

    // assigns n0.val with length of t0.txt content
    btlen t0.txt,n0.val
    
  25. if
    Block
    Conditionally execute code block if boolean condition is met
    – execute commands within block { } if (condition) is met.
    – nested conditions () is not allowed. invalid: ((h0.val+3)>0)
    – block opening brace { must be on line by itself
    – no space between block close brace } and else. valid: }else invalid: } else
    – Text comparison supports ==, !=
    – Numerical comparison supports >, <, ==, !=, >=, <= - conditions can be joined with && or || with no spaces used – nested "if" and "else if" supported.
    usage: if condition block [else if condition block] [else block] – (condition) is a simple non-complex boolean comparison evaluation
    valid: (j0.val>75) invalid: (j0.val+1>75) invalid: (j0.val>now.val+60)

    if(t0.txt=="123456")
    {
      page 1
    }
    
    if(t0.txt=="123456"||sys0==14&&n0.val==12)
    {
      page 1
    }
    
    if(t0.txt=="123456"&&sys0!=14)
    {
      page 1
    }
    
    if(n0.val==123)
    {
      b0.txt="stop"
    }else
    {
      b0.txt="start"
    }
    
    if(rtc==1)
    {
      t0.txt="Jan"
    }else if(rtc1==2)
    {
      t0.txt="Feb"
    }else if(rtc1==3)
    {
      t0.txt="Mar"
    }else
    {
      t0.txt="etc"
    }
    
  26. while
    Block
    Continually executes code block until boolean condition is no longer met
    – tests boolean condition and execute commands within block { } if condition was met and continues to re-execute block until condition is not met.
    – nested conditions () is not allowed. invalid: ((h0.val+3)>0)
    – block opening brace { must be on line by itself
    – Text comparison supports ==, !=
    – Numerical comparison supports >, <, ==, !=, >=, <= - conditions can be joined with && or || with no spaces used – block runs exclusively until completion unless doevents used (see 3.23).
    usage: while condition block
    – (condition) is a simple non-complex boolean comparison evaluation
    valid: (j0.val>75) invalid: (j0.val+1>75)

    // increment n0.val as long as n0.val < 100.
    // result: b0.val=100
    // will not visually see n0.val increment, refresh when completed
    while(n0.val<100)
    {
      n0.val++
    }
    
    //increment n0.val as long as n0.val < 100.
    // result: n0.val=100
    // will visually see n0.val increment, refresh on every iteration
    while(n0.val<100)
    {
      n0.val++
      doevents
    }
    
  27. for
    Block
    Iterate execution of code block as long as boolean condition is met
    – executes init_assignment, then tests boolean condition and executes
    commands within block { } if boolean condition is met, when iteration of
    block execution completes step_assignment is executed. Continues to
    iterate block and step_assignment until boolean condition is not met.
    – nested conditions () is not allowed. invalid: ((h0.val+3)>0)
    – block opening brace { must be on line by itself
    – Text comparison supports ==, !=
    – Numerical comparison supports >, <, ==, !=, >=, <= – conditions can be joined with && or || with no spaces used – block runs exclusively until completion unless doevents used (see 3.23).
    usage: for(init_assignment;condition;step_assignment) block
    – init_assignment and step_assignment are simple non-complex statement
    valid: n0.val=4, sys2++, n0.val=sys2*4+3
    invalid: n0.val=3+(sys2*4)-1// iterate n0.val by 1's as long as

    // iterate n0.val by 1s as long n0.val<100. result: n0.val=100
    // will not visually see n0val increment until for-loop completes
    for(n0.val=0;n0.val<100;n0.val++)
    {
    }
    //
    // iterate n0.val by 2's as long as n0.val<100. result: n0.val=100
    // will visually see n0.val increment when doevents processed
    for(n0.val=0;n0.val<100;n0.val+=2)
    {
      doevents
    }
    
  28. wepo
    Parameter Count 2
    Store value/string to EEPROM
    – EEPROM valid address range is from 0 to 1023 (1K EEPROM)
    – numeric value length: is 4 bytes, -2147483648 to 2147483647
    – numeric data type signed long integer, stored in little endian order.
    val[addr+3]*16777216+val[addr+2]*65536+val[addr+1]*256+val[addr] – string content length: .txt content is .txt-maxl +1, or constant length +1
    usage: wepo attr,addr
    attr is variable or constant
    addr is storage starting address in EEPROM

    // write t0.txt contents in address 10 to 10+t0.txt-maxl
    wepo t0.txt,10
    // write constant “abcd” in addresses 10 to 14
    wepo "abcd",10
    // write constant 11 in addresses 10 to 13
    wepo 11,10
    // write value n0.val in addresses 10 to 13
    wepo n0.val,10
    
  29. repo
    Parameter Count 2
    Read value from EEPROM
    – EEPROM valid address range is from 0 to 1023 (1K EEPROM)
    – numeric value length: is 4 bytes, -2147483648 to 2147483647
    – numeric data type signed long integer, stored in little endian order.
    val[addr+3]*16777216+val[addr+2]*65536+val[addr+1]*256+val[addr] – string content length: .txt content is lesser of .txt-maxl or until null reached.
    usage: repo attr,addr
    attr is variable or constant
    addr is storage starting address in EEPROM

    // reads qty .txt-maxl chars from 10 into t0.txt
    repo t0.txt,10
    // reads 4 bytes from address 10 to 13 into n0.val
    repo n0.val,10
    
  30. wept
    Parameter Count 2
    Store specified number of bytes to EEPROM over Serial from MCU
    – EEPROM valid address range is from 0 to 1023 (1K EEPROM)
    – wept uses Transparent Data Mode (see 1.16)
    – qty limited by serial buffer (all commands+terminations + data < 1024).
    usage: wept addr,qty
    addr is storage starting address in EEPROM
    qty is the number of bytes to store

    // write 20 bytes into EEPROM address 30 to 49 from serial
    // byte is not text of value, but raw byte of data.
    wept 30,20
    
  31. rept
    Parameter Count 2
    Read specified number of bytes from EEPROM over Serial to MCU
    – EEPROM valid address range is from 0 to 1023 (1K EEPROM)
    usage: rept addr,qty
    addr is storage starting address in EEPROM
    qty is the number of bytes to read

    // send 20 bytes from EEPROM address 30 to 49 to serial
    // byte is not text of value, but raw byte of data.
    rept 30,20
    
  32. cfgpio
    Parameter Count 3
    Configure Nextion GPIO
    usage: cfgpio io,mode,comp
    io is the number of the extended I/O pin.
    – Valid values in PWM output mode: 4 to 7, all other modes 0 to 7.
    mode is the working mode of pin selected by io.
    – Valid values: 0-pull up input, 1-input binding, 2-push pull output,
    3-PWM output, 4-open drain output.
    comp component .objname or .id when is 1 (otherwise use 0)
    – in binding mode, cfgpio needs to be declared after every refresh of page to reconnect to Touch event,
    best to put cfgpio in page pre-initialization event

    // configures io0 as a pull-up input.
    //  Read as n0.val=pio0.
    cfgpio 0,0,0
    // configures io1 as a push-pull output.
    // Write as pio1=1
    cfgpio 1,2,0
    // configures io2 as binding input with current page b0.
    // binding triggers b0 Press on falling edge
    // binding triggers b0 Release on rising edge
    cfgpio 2,1,b0
    //For PWM mode, set duty cycle before cfgpio:
    // ie: pwm4=20 for 20% duty.
    // configures io4 as PWM output. pwmf=933 to change Hz.
    cfgpio 4,3,0
    // pwmf sets frequency of all configured PWM IO
    
  33. ucopy
    Parameter Count 4
    Advanced. Read Only. Valid in active Protocol Reparse mode.
    Copies data from the serial buffer.
    When Nextion is in active Protocol Reparse mode, ucopy copies data from the serial buffer. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.
    usage: ucopy attr,srcstart,len,deststart
    attr must be a writeable attribute ie: t0.txt, va0.val
    srcstart must be numeric value ie: 0
    len must be a numeric value ie: 4
    deststart must be numeric value ie: 0

    // copy buffer bytes 0,1 to lower 2 bytes of n0.val
    ucopy n0.val,0,2,0
    // copy buffer bytes 0,1 to upper 2 bytes of n0.val
    ucopy n0.val,0,2,2
    // copy buffer bytes 0,1,2,4 to n0.val
    ucopy n0.val,0,4,0
    // copy buffer bytes 0 to 9 into t0.txt
    ucopy t0.txt,0,10,0
    
  34. move
    Parameter Count 7
    Move component.
    usage: move comp,x1,y1,x2,y2,priority,time
    comp is the component name or component id.
    x1 is the starting X coordinate.
    y1 is the starting Y coordinate.
    x2 is the destination X coordinate.
    y2 is the destination Y coordinate.
    priority is a value 0 to 100, 100 being highest priority.
    time is time in ms.

    // 120ms to move t0 into position 100,150
    move t0,-30,-30,100,150,95,120 
    // 180ms to move t1 into position 200,150
    move t1,-30,-30,200,150,90,180 
    // 150ms to move t2 into position 300,150
    move t2,-30,-30,300,150,100,150 
    // given the example priorities above
    // t2 moves first, then t0 and lastly t1
    
  35. play
    Parameter Count 3
    Play audio resource on selected Channel
    usage: play ch,resource,loop
    ch is the component name or component id.
    resource is the Audio Resource ID.
    loop is 0 for no looping, 1 to loop.
    Notes: The play instruction is used to configure and start audio playback. audio0 and audio1 are used to control the channel. Audio playback is global and playback continues after leaving and changing pages, if you want the audio to stop on leaving the page, you should do so in the page leave event

    // play resource 3 on channel 1 with no looping
    play 1,3,0 
    // play resource 2 on channel 0 with looping
    play 0,2,1
    
  36. twfile
    Parameter Count 2
    Advanced. Transfer file over Serial
    usage: twfile filepath,filesize
    filepath is destination path and filename quote encapsulated text.
    filesize is the size of the file in bytes.

    // transfer jpg over serial to ram/0.jpg size 1120 bytes
    twfile "ram/0.jpg",1120
    // transfer jpg over serial to sd0/0.jpg size 1120 bytes
    twfile "sd0/0.jpg",1120
    
  37. delfile
    Parameter Count 1
    Advanced. Delete external file.
    usage: delfile filepath
    filepath is target path and filename quote encapsulated text.

    // remove file ram/0.jpg
    delfile "ram/0.jpg"
    // remove file sd0/0.jpg 
    delfile "sd0/0.jpg"
    
  38. refile
    Parameter Count 2
    Advanced. Rename external file.
    usage: refile oldname,newname
    oldname is source path and filename quote encapsulated text.
    newname is target path and filename quote encapsulated text.

    // rename file ram/0.jpg to ram/1.jpg
    refile "ram/0.jpg","sd0/1.jpg"
    // rename file sd0/0.jpg to sd0/1.jpg
    refile "sd0/0.jpg","sd0/1.jpg"
    
  39. findfile
    Parameter Count 2
    Advanced. Find File reports if named external file exists.
    usage: findfile pathfile,result
    pathfile is source path and filename as quote encapsulated text.
    result is a numeric attribute for the result to be stored.
    Returns 0 result if find fails, returns 1 if find is successful.

    // check if file exists, store result in n0.val
    findfile "ram/0.jpg",n0.val
    //check if file exists, store result in sys0
    findfile "sd0/0.jpg",sys0
    
  40. rdfile
    Parameter Count 4
    Advanced. Read File contents and outputs contents over serial.
    usage: rdfile pathfile,count,crc
    pathfile is source path and filename as quote encapsulated text.
    offset is the starting offset of the file
    count is number of bytes to return (see note if 0)
    crc is an option (0: no crc, 1: Modbus crc16, 10: crc32)
    If count is 0, then 4 byte file size is returned in little endian order.

    // send first 10 bytes of file, no CRC, 10 bytes.
    rdfile "ram/0.jpg",0,10,0
    // send first 10 bytes of file, MODBUS CRC, 12 bytes.
    rdfile "sd0/0.jpg",0,10,1
    // send first 10 bytes of file, CRC32, 14 bytes.
    rdfile "sd0/0.jpg",0,10,10
    
  41. setlayer
    Parameter Count 2
    Set Component Layer.
    usage: setlayer comp1,comp2
    comp1 is component ID or objname of component needing to change layers.
    comp2 is the component ID or object name comp1 is placed above.
    Note: using comp2 value of 255 places comp1 on topmost layer.

    //places to above n0's layer
    setlayer t0,n0
    //place t0 on the topmost layer
    setlayer t0,255
    //place n0 on the 3rd layer
    setlayer n0,3
    
  42. newdir
    Parameter Count 1
    Advanced. Create a new directory.
    usage: newdir dir
    dir is directory to be created.
    Note: directory name to end with forward slash /

    // create directory called data
    newdir "sd0/data/"
    // create directory called 202003
    newdir "sd0/202003/"
    
  43. deldir
    Parameter Count 1
    Advanced. Remove a directory.
    usage: deldir dir
    dir is directory to be deleted.
    Note: directory name to end with forward slash /

    // remove directory called data
    deldir "sd0/data/"
    // remove directory called 202003
    deldir "sd0/202003/"
    
  44. redir
    Parameter Count 2
    Advanced. Rename a directory.
    usage: redir srcdir,destdir
    scrdir is directory to be renamed.
    destdir is new name of directory being renamed.
    Note: directory name to end with forward slash /

    // rename data to data2
    deldir "sd0/data/","sd0/data2/"
    // rename 202003 to 2004
    deldir "sd0/202003/","sd0/2004/"
    
  45. finddir
    Parameter Count 2
    Advanced. Test if directory exists.
    usage: finddir dir,attr
    dir is directory to test if exists.
    attr is numeric attribute where result will be stored.
    Note: directory name to end with forward slash /
    Returns 1 if directory exists, returns 0 if not found

    //find directory data, result in va0.val
    finddir "sd0/data/"
    //find directory 2004, result in sys0
    finddir "sd0/2003/"
    
  46. udelete
    Parameter Count 1
    Advanced. Remove bytes from Serial Buffer.
    usage: udelete qty
    qty is number of bytes to remove from beginning of Serial Buffer.
    Note: Protocol Reparse Mode (recmod) must be active to be used. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.

    //delete first 24 bytes of Buffer
    udelete 24
    //delete first 10 bytes of Buffer
    udelete 10
    
  47. crcrest
    Parameter Count 2
    Advanced. Reset CRC and Initialize.
    usage: crcrest crctype,initval
    crctype must be 1 (type Modbus CRC16).
    initval is crc initial value (usually 0xFFFF).

    //reset and initialize crc
    crcrest 1,0xFFFF
    
  48. crcputs
    Parameter Count 2
    Advanced. Accumulate CRC for Variable or constant.
    usage: crcputs attr,length
    attr is attribute or constant.
    length is 0 (for Automatic) or specified length.

    //accumulate crc for va0.val (length auto)
    crcputs va0.val,0
    //accumulate crc for first 3 bytes of va1.txt
    crcputs va1.txt,3
    
  49. crcputh
    Parameter Count 1
    Advanced. Accumulate CRC for hex string.
    usage: crcputh hex
    hex is string of hex chars.
    Note: each byte in the hex string has 2 hexdigits, bytes separated by a space.

    //accumulate crc for byte 0x0A
    crcputh 0A
    //accumulate crc for bytes 0x0A 0x0D
    crcputh 0A 0D
    
  50. crcputu
    Parameter Count 2
    Advanced. Accumulate CRC on Serial Buffer.
    usage: crcputu start,qty
    start is start byte of Serial Buffer to accumulate.
    qty is number of bytes to accumulate including start byte.
    Note: Protocol Reparse Mode (recmod) must be active to be used. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.

    //accumulate crc for first 10 bytes of Serial Buffer
    crcputu 0,10
    //accumulate crc for second 10 bytes 0x0A 0x0D
    crcputu 10,10
    
  51. spstr
    Parameter Count 4
    Split String.
    usage: spstr src,dest,key,index
    src is .txt attribute or string data constant.
    dest is .txt attribute where result is stored.
    key is text delimiter encapsulated in double quotes.
    index is zero-indexed iteration result to return.

    //return string ab before first delimiter occurs
    spstr "ab3cd3ef3ghi",va1.txt,"3",0
    //return string ef after second delimiter occurs
    spstr "ab3cd3ef3ghi",va1.txt,"3",2
    
4. GUI Designing Instructions

  1. cls
    Parameter Count 1
    Clear the screen and fill the entire screen with specified color
    usage: cls color
    color is either decimal 565 Color Value or Color Constant

    // Clear the screen and fill with color BLUE
    cls BLUE
    // Clear the screen and fill with color 1024
    cls 1024
    
  2. pic
    Parameter Count 3
    Display a Resource Picture at specified coordinate
    usage: pic x,y,picid
    x is the x coordinate of upper left corner where picture should be drawn
    y is the y coordinate of upper left corner where picture should be drawn
    picid is the number of the Resource Picture in the HMI design

    // Display Resource Picture #0 with upper left corner at (10,20)
    pic 10,20,0
    // Display Resource Picture #1 with upper left corner at (40,50)
    pic 40,50,1
    
  3. picq
    Parameter Count 5
    Crop Picture area from Resource Picture using defined area
    – replaces defined area with content from the same area of Resource Picture
    – Resource Picture should be full screen-size or area might be undefined
    usage: picq x,y,w,h,picid
    x is the x coordinate of upper left corner of defined crop area
    y is the y coordinate of upper left corner of defined crop area
    w is the width of the defined crop area
    h is the height of the defined crop area
    picid is the number of the Resource Picture in the HMI design

    // crops area 30×20 from Resource Picture 0
    // from upperleft(20,50) to lowerright(49,69)
    picq 20,50,30,20,0
    
    
  4. xpic
    Parameter Count 7
    Advanced Crop Picture
    crop area from source Resource Picture render at destination coordinate
    usage: xpic destx,desty,w,h,srcx,srcy,picid
    destx is the x coordinate of destination upper left corner
    desty is the y coordinate of destination upper left corner
    w is the width of the defined crop area
    h is the height of the defined crop area
    srcx is the x coordinate of upper left corner of defined crop area
    srcy is the y coordinate of upper left corner of defined crop area
    picid is the number of the Resource Picture in the HMI design

    // crops area 30×20 from Resource Picture 0
    // from upperleft (15,15) to lowertright (44,34)
    // and renders it with upperleft corner at (20,50)
    xpic 20,50,30,20,15,15,0
    
    
  5. xstr
    Parameter Count 11
    Prints text on the Nextion device using defined area for text rendering
    usage xstr x,y,w,h,font,pco,bco,xcen,ycen,sta,text
    x is the x coordinate of upper left corner of defined text area
    y is the y coordinate of upper left corner of defined text area
    w is the width of the defined text area
    h is the height of the defined text area
    font is the number of the Resource Font
    pco is the foreground color of text (Color Constant or 565 color value)
    bco is a) background color of text, or b) picid if sta is set to 0 or 2
    xcen is the Horizontal Alignment (0 – left, 1 – centered, 2 – right)
    ycen is the Vertical Alignment (0 – top/upper, 1 – center, 3 – bottom/lower)
    sta is background Fill (0 – crop image, 1 – solid color, 2 – image, 3 – none)
    text is the string content (constant or .txt attribute), ie "China", or va0.txt

    // use area 100×30 to print contents of va0.txt
    // from upperleft (10,10) to lowerright (109,39) 
    // using Font Resource 1 with Green letters on White background
    // with both horizontal and vertical centering
    // and sta set as solid-color.
    xstr 10,10,100,30,1,WHITE,GREEN,1,1,1,va0.txt
    
  6. fill
    Parameter Count 5
    Fill a defined area with specified color
    usage: fill x,y,w,h,color
    x is the x coordinate of upper left corner of defined fill area
    y is the y coordinate of upper left corner of defined fill area
    w is the width of the defined fill area
    h is the height of the defined fill area
    color is fill color, either decimal 565 Color Value or Color Constant

    // fills area 150×50 with 565 Color 1024.
    // from upperleft (20,20) to lowerright (169,69)
    fill 20,20,150,50,1024
    
  7. line
    Parameter Count 5
    Draw a line from point to point with specified color
    usage: x1,y1,x2,y2,color
    x1 is the x coordinate of the starting point of the line to be drawn
    y1 is the y coordinate of the starting point of the line to be drawn
    x2 is the x coordinate of the ending point of the line to be drawn
    y2 is the y coordinate of the ending point of the line to be drawn
    color is line color, either decimal 565 Color Value or Color Constant

    // draws line in BLUE from (20,30) to (170,200)
    line 20,30,170,200,BLUE
    
  8. draw
    Parameter Count 5
    Draw a hollow rectangle around specified area with specified color
    usage: draw x1,y1,x2,y2,color
    x1 is the x coordinate of the upper left corner of rectangle area
    y1 is the y coordinate of the upper left corner of rectangle area
    x2 is the x coordinate of the lower right corner of rectangle area
    y2 is the y coordinate of the lower right corner of rectangle area
    color is line color, either decimal 565 Color Value or Color Constant

    // draw a Green rectangle around (10,10) to (79,79)
    // effectively four lines from 
    // (x1,y1) to (x2,y1) to (x2,y2) to (x1,y2) to (x1,y1)
    draw 10,10,70,70,GREEN
    
  9. cir
    Parameter Count 4
    Draw a hollow circle with specified radius and specified color
    usage: cir x,y,radius,color
    x is the x coordinate of the center point for the circle
    y is the y coordinate of the center point for the circle
    radius is the radius in pixels
    color is line color, either decimal 565 Color Value or Color Constant

    // renders a hollow Red circle with circle center at (100,100)
    // with a 30 pixel radius, a 61 pixel diameter, 
    // within boundary (70,70) to (130,130).
    cir 100,100,30,RED
    
  10. cirs
    Parameter Count 4
    Draw a filled circle with specified radius and specified color
    usage: circ x,y,radius,color
    x is the x coordinate of the center point for the circle
    y is the y coordinate of the center point for the circle
    radius is the radius in pixels
    color is fill color, either decimal 565 Color Value or Color Constant

    // render a filled Red circle with center at (100,100), 
    // a 30 pixel radius, a 61 pixel diameter, 
    // within boundary (70,70) to (130,130). 
    cir 100,100,30,RED
    
5. Color Code Constants

No. Constant 565 Color Value Indicator Color Sample
1 BLACK 0 Black
2 WHITE 65535 White
3 BLUE 31 Blue
4 GREEN 2016 Green
5 RED 63488 Red
6 GRAY 33840 Gray
7 YELLOW 65504 Yellow
8 BROWN 48192 Brown
 
Note: 16-bit 565 Colors are in decimal values from 0 to 65535
Least significant bits are saturated

24-bit RGB 11011000 11011100 11011000
16-bit 565 11011111 11011011 10111111
6. System Variables

  1. dp
    Current Page ID

    dp=1
    n0.val=dp

    read: Contains the current page displayed as per the HMI design
    write: change page to value specified (same effect as page command)
    min 0, max # of highest existing page in user's HMI design

  2. dim, dims
    Nextion Backlight

    dim=32
    dims=100

    Sets the backlight level in percent
    min 0, max 100, default 100 or user defined
    Note: dim=32 will set the current backlight level to 32%.
    using dims=32 will set the current backlight level to 32% and save this to be new power on default backlight level, persisting until changed.

  3. baud, bauds
    Nextion Baud Rate

    baud=9600
    bauds=9600

    Sets the Nextion Baud rate in bits-per-second
    min 2400, max 921600, default 9600 or user defined
    Valid values are: 2400, 4800, 9600, 19200, 31250, 38400, 57600, 115200, 230400, 250000, 256000, 512000 and 921600.
    Note: baud=38400 will set the current baud rate to 38400
    using bauds=38400 will set the current baud rate to 38400 and save this to be new power on default baud rate, persisting until changed.
    Note: on rare occasions bauds has become lost. It is recommended to specify bauds=9600 in the Program.s section of the HMI

  4. spax, spay
    Font Spacing

    spax=2
    spay=2

    Sets the default rendering space for xstr:
    horizontally between font characters with spax additional pixels and
    vertically between rows (if multi-lined) with spay additional pixels.
    min 0, max 65535, default 0
    Note: Components now have their own individual .spax/.spay attributes that are now used to determine spacing for the individual component.

  5. thc
    Touch Draw Brush Color

    thc=RED
    thc=1024

    Sets the Touch Drawing brush color
    min 0, max 65535, default 0
    Valid choices are either color constants or the decimal 565 color value

  6. thdra
    Touch Drawing

    thdra=1// (on)
    thdra=0// (off)

    Turns the internal drawing function on or off.
    min 0, max 1, default 0
    When the drawing function is on, Nextion will follow touch dragging with the current brush color (as determined by the thc variable).

  7. ussp
    Sleep on No Serial

    ussp=30

    Sets internal No-serial-then-sleep timer to specified value in seconds
    min 3, max 65535, default 0 (max: 18 hours 12 minutes 15 seconds)
    Nextion will auto-enter sleep mode if and when this timer expires.
    Note: Nextion device needs to exit sleep to issue ussp=0 to disable sleep on no serial, otherwise once ussp is set, it will persist until reboot or reset.

  8. thsp
    Sleep on No Touch

    thsp=30

    Sets internal No-touch-then-sleep timer to specified value in seconds
    min 3, max 65535, default 0 (max: 18 hours 12 minutes 15 seconds)
    Nextion will auto-enter sleep mode if and when this timer expires.
    Note: Nextion device needs to exit sleep to issue thsp=0 to disable sleep on no touch, otherwise once thsp is set, it will persist until reboot or reset.

  9. thup
    Auto Wake on Touch

    thup=0// (do not wake)
    thup=1// (wake on touch)

    Sets if Nextion should auto-wake from sleep when touch press occurs.
    min 0, max 1, default 0
    When value is 1 and Nextion is in sleep mode, the first touch will only trigger the auto wake mode and not trigger a Touch Event.
    thup has no influence on sendxy, sendxy will operate independently.

  10. sendxy
    RealTime Touch Coordinates

    sendxy=1// (start sending)
    sendxy=0// (stop sending)

    Sets if Nextion should send 0x67 and 0x68 Return Data
    min 0, max 1, default 0
    – as with any touch less accurate closer to edges, and more accurate closer to center.
    Note: expecting exact pixel (0,0) or (799,479) is simply not achievable.

  11. delay
    Delay

    delay=100

    Creates a halt in Nextion code execution for specified time in ms
    min 0, max 65535
    As delay is interpreted, a total halt is avoided. Incoming serial data is received and stored in buffer but not be processed until delay ends. If delay of more than 65.535 seconds is required, use of multiple delay statements required.
    delay=-1 is max. 65.535 seconds.

  12. sleep
    Sleep

    sleep=1// (Enter sleep mode)
    sleep=0// (Exit sleep mode)

    min 0, max 1, default 0
    When exiting sleep mode, the Nextion device will auto refresh the page
    (as determined by the value in the wup variable) and reset the backlight brightness (as determined by the value in the dim variable)
    A get/print/printh/wup/sleep instruction can be executed during sleep mode. Extended IO binding interrupts do not occur in sleep.

  13. bkcmd
    Pass / Fail Return Data

    bkcmd=3

    Sets the level of Return Data on commands processed over Serial.
    min 0, max 3, default 2
    – Level 0 is Off – no pass/fail will be returned
    – Level 1 is OnSuccess, only when last serial command successful.
    – Level 2 is OnFailure, only when last serial command failed
    – Level 3 is Always, returns 0x00 to 0x23 result of serial command.
    Result is only sent after serial command/task has been completed, as such this provides an invaluable status for debugging and branching. Table 2 of Section 7 Nextion Return Data is not subject to bkcmd

  14. rand
    Random Value

    n0.val=rand

    Readonly. Value returned by rand is random every time it is referred to.
    default range is -2147483648 to 2147483647
    range of rand is user customizable using the randset command
    range as set with randset will persist until reboot or reset

  15. sys0, sys1, sys2
    Numeric System Variables

    sys0=10
    sys1=40
    sys2=60
    n0.val=sys2

    System Variables are global in nature with no need to define or create.
    They can be read or written from any page. 32-bit unsigned integers.
    min value of -2147483648, max value of 2147483647
    Suggested uses of sys variables include
    – as temporary variables in complex calculations
    – as parameters to pass to click function or pass between pages.

  16. wup
    Wake Up Page

    wup=2
    n0.val=wup

    Sets which page Nextion loads when exiting sleep mode
    min is 0, max is # of last page in HMI, default 255
    When wup=255 (not set to any existing page)
    - Nextion wakes up to current page, refreshing components only
    wup can be set even when Nextion is in sleep mode

  17. usup
    Wake On Serial Data

    usup=0
    usup=1

    Sets if serial data wakes Nextion from sleep mode automatically.
    min is 0, max is 1, default 0
    When usup=0, send sleep=0ÿÿÿ to wake Nextion
    When usup=1, any serial received wakes Nextion

  18. rtc0, rtc1, rtc2, rtc3, rtc4, rtc5, rtc6
    Real Time Clock

    rtc0=2017
    rtc1=8
    rtc2=28
    rtc3=16
    rtc4=50
    rtc5=36
    n0.val=rtc6

    Nextion RTC:
    rtc0 is year 2000 to 2099, rtc1 is month 1 to 12, rtc2 is day 1 to 31,
    rtc3 is hour 0 to 23, rtc4 is minute 0 to 59, rtc5 is second 0 to 59.
    rtc6 is dayofweek 0 to 6 (Sunday=0, Saturday=6)
    rtc6 is readonly and calculated by RTC when date is valid.

  19. pio0, pio1, pio2, pio3, pio4, pio5, pio6, pio7
    Nextion GPIO

    pio3=1
    pio3=0
    n0.val=pio3

    Default mode when power on: pull up input mode
    Internal pull up resistor: 50K
    GPIO is digital. Value of 0 or 1 only.
    – refer to cfgpio command for setting GPIO mode
    read if in input mode, write if in output mode

  20. pwm4, pwm5, pwm6, pwm7
    PWM Duty Cycle

    pwm7=25

    Value in percentage. min 0, max 100, default 50.
    – refer to cfgpio command for setting GPIO mode
    supports pwm4, pwm5, pwm6 and pwm7
    supports only pwm6 and pwm7

  21. pwmf
    PWM Frequency

    pwmf=933

    Value is in Hz. min value 1 Hz, max value 65535 Hz. default 1000 Hz
    All PWM output is unified to only one Frequency, no independent individual settings are allowed.
    – refer to cfgpio command for setting GPIO mode

  22. addr
    Address

    addr=257

    Advanced. Enables/disables Nextion’s two byte Address Mode
    0, or min value 256, max value 2815. default 0
    Setting addr will persist to be the new power-on default.
    – refer to section 1.19

  23. tch0, tch1, tch2, tch3
    Realtime Touch Coordinates

    x.val=tch0
    y.val=tch1

    Readonly. When Pressed tch0 is x coordinate, tch1 is y coordinate.
    When released (not currently pressed), tch0 and tch1 will be 0.
    tch2 holds the last x coordinate, tch3 holds the last y coordinate.

  24. recmod
    Protocol Reparse Mode

    recmod=0
    recmod=1

    Advanced. Set passive or active Protocol Reparse mode.
    min is 0, max is 1, default 0
    When recmod=0, Nextion is in passive mode and processes serial data according to the Nextion Instruction Set, this is the default power on processing. When recmod=1, Nextion enters into active mode where the serial data waits to be processed by event code. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.

  25. usize
    Bytes in Serial Buffer

    n0.val=usize

    Advanced. Read Only. Valid in active Protocol Reparse mode.
    min is 0, max is 1024
    When Nextion is in active Protocol Reparse mode, usize reports the number of available bytes in the serial buffer. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.

  26. u[index]
    Serial Buffer Data

    n0.val=u[0]

    Advanced. Read Only. Valid in active Protocol Reparse mode.
    min is 0, max is 255
    When Nextion is in active Protocol Reparse mode, the u[index] array returns the byte at position index from the serial buffer. Most HMI applications will not require Protocol Reparse and should be skipped if not fully understood.

  27. eql, eqm, eqh
    Equalizer Groupings

    eqm=7

    Valid on Nextion Device, not supported in Debug Simulator.
    min is 0, max is 15
    eql: Bass (31Hz to 125Hz, eq0..eq2)
    eqm: Midrange (250Hz to 2000Hz, eq3..eq6)
    eqh: Treble (4000Hz to 1600Hz, eq7..eq9)
    Setting to 7 is Balanced with no attenuation, no gain
    Setting 0..6, the lower the value the higher the attenuation
    Setting 8..15, the higher the value the higher the gain
    NOTE: The base of the equalizer is operated according to eq0..eq9,
    when a group is modified the corresponding individual bands are modified, however modifying an individual band does not modify the group. (ie: setting eql=4 sets eq0, eq1 and eq2 to 4, but setting eq1=3 does not modify eql to 3, eq0 and eq2 remain at 4).

  28. eq0, eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9
    Equalizer Individual Bands

    eq6=7

    Valid on Nextion Device, not supported in Debug Simulator.
    min is 0, max is 15
    eq0 (31Hz), eq1 (62Hz), eq2 (125Hz),
    eq3 (250Hz), eq4 (500Hz), eq5 (1000Hz), eq6 (2000Hz),
    eq7 (4000Hz), eq8 (8000Hz), eq9 (16000Hz)
    Setting to 7 is Balanced with no attenuation, no gain
    Setting 0..6, the lower the value the higher the attenuation
    Setting 8..15, the higher the value the higher the gain
    NOTE: The base of the equalizer is operated according to eq0..eq9,
    when a group is modified the corresponding individual bands are modified, however modifying an individual band does not modify the group. (ie: setting eql=4 sets eq0, eq1 and eq2 to 4, but setting eq1=3 does not modify eql to 3, eq0 and eq2 remain at 4).

  29. volume
    Audio Volume

    volume=60

    Valid on Nextion Device, not supported in Debug Simulator.
    min is 0, max is 100
    volume persists and sets the power-on default setting for the audio volume

  30. audio0, audio1
    Audio Channel Control

    audio0=0// stop channel 0 audio playback

    min is 0, max is 2
    0 (stop), 1 (resume), 2 (pause).
    Notes: The play instruction is used to configure and start audio playback. audio0 and audio1 are only used to control the channel. Only if the channel is paused can it be resumed, if the channel is stopped then the play instruction is required to start it again. Audio playback is global and playback continues after leaving and changing pages, if you want the channel to stop on leaving the page, you must do so in the page leave event

  31. crcval
    CRC Value

    x.val=crcval

    Readonly. Holds the current CRC accumulated value.
    min is 0, max is 255
    Use crcrest to reset and initialize
    Use crcputs, crcputh or crcputu to accumulate

7. Format of Nextion Return Data

  1. 0x00
    Invalid Instruction
    Return Length: Fixed 4 bytes

    0x00 0xFF 0xFF 0xFF

    Returned when instruction sent by user has failed
    when bkcmd set to 2 or 3

  2. 0x01
    Instruction Successful
    Return Length: Fixed 4 bytes

    0x01 0xFF 0xFF 0xFF

    Returned when instruction sent by user was successful
    when bkcmd set to 1 or 3

  3. 0x02
    Invalid Component ID
    Return Length: Fixed 4 bytes

    0x02 0xFF 0xFF 0xFF

    Returned when invalid Component ID or name was used
    when bkcmd set to 2 or 3

  4. 0x03
    Invalid Page ID
    Return Length: Fixed 4 bytes

    0x03 0xFF 0xFF 0xFF

    Returned when invalid Page ID or name was used
    when bkcmd set to 2 or 3

  5. 0x04
    Invalid Instruction
    Return Length: Fixed 4 bytes

    0x04 0xFF 0xFF 0xFF

    Returned when invalid Picture ID was used
    when bkcmd set to 2 or 3

  6. 0x05
    Invalid Font ID
    Return Length: Fixed 4 bytes

    0x05 0xFF 0xFF 0xFF

    Returned when invalid Font ID was used
    when bkcmd set to 2 or 3

  7. 0x06
    Invalid File Operation
    Return Length: Fixed 4 bytes

    0x06 0xFF 0xFF 0xFF

    Returned when File operation fails
    when bkcmd set to 2 or 3

  8. 0x09
    Invalid CRC
    Return Length: Fixed 4 bytes

    0x09 0xFF 0xFF 0xFF

    Returned when Instructions with CRC validation fails CRC check
    when bkcmd set to 2 or 3

  9. 0x11
    Invalid Baud rate Setting
    Return Length: Fixed 4 bytes

    0x11 0xFF 0xFF 0xFF

    Returned when invalid Baud rate was used
    when bkcmd set to 2 or 3

  10. 0x12
    Invalid Waveform ID or Channel #
    Return Length: Fixed 4 bytes

    0x12 0xFF 0xFF 0xFF

    Returned when invalid Waveform ID or Channel # was used
    when bkcmd set to 2 or 3

  11. 0x1A
    Invalid Variable name or attribute
    Return Length: Fixed 4 bytes

    0x1A 0xFF 0xFF 0xFF

    Returned when invalid Variable name or invalid attribute was used
    when bkcmd set to 2 or 3

  12. 0x1B
    Invalid Variable Operation
    Return Length: Fixed 4 bytes

    0x1B 0xFF 0xFF 0xFF

    Returned when Operation of Variable is invalid.
    ie: Text assignment t0.txt=abc or t0.txt=23, Numeric assignment j0.val="50" or j0.val=abc
    when bkcmd set to 2 or 3

  13. 0x1C
    Assignment failed to assign
    Return Length: Fixed 4 bytes

    0x1C 0xFF 0xFF 0xFF

    Returned when attribute assignment failed to assign
    when bkcmd set to 2 or 3

  14. 0x1D
    EEPROM Operation failed
    Return Length: Fixed 4 bytes

    0x1D 0xFF 0xFF 0xFF

    Returned when an EEPROM Operation has failed
    when bkcmd set to 2 or 3

  15. 0x1E
    Invalid Quantity of Parameters
    Return Length: Fixed 4 bytes

    0x1E 0xFF 0xFF 0xFF

    Returned when the number of instruction parameters is invalid
    when bkcmd set to 2 or 3

  16. 0x1F
    IO Operation failed
    Return Length: Fixed 4 bytes

    0x1F 0xFF 0xFF 0xFF

    Returned when an IO operation has failed
    when bkcmd set to 2 or 3

  17. 0x20
    Escape Character Invalid
    Return Length: Fixed 4 bytes

    0x20 0xFF 0xFF 0xFF

    Returned when an unsupported escape character is used
    when bkcmd set to 2 or 3

  18. 0x23
    Variable name too long
    Return Length: Fixed 4 bytes

    0x23 0xFF 0xFF 0xFF

    Returned when variable name is too long. Max length is 29 characters: 14 for page + "." + 14 for component.
    when bkcmd set to 2 or 3

  19. 0x00
    Nextion Startup
    Return Length: Fixed 6 bytes

    0x00 0x00 0x00 0xFF 0xFF 0xFF

    Returned when Nextion has started or reset
    Not effected by the bkcmd setting

  20. 0x24
    Serial Buffer Overflow
    Return Length: Fixed 4 bytes

    0x24 0xFF 0xFF 0xFF

    Returned when a Serial Buffer overflow occurs
    Not effected by the bkcmd setting

  21. 0x65
    Touch Event
    Return Length: Fixed 7 bytes

    0x65 0x00 0x02 0x01 0xFF 0xFF 0xFF

    Returned when Touch occurs and component’s
    corresponding Send Component ID is checked
    in the users HMI design.
    0x00 is page number, 0x02 is component ID,
    0x01 is event (0x01 Press and 0x00 Release)
    data: Page 0, Component 1, Pressed
    Not effected by the bkcmd setting

  22. 0x66
    Current Page Number
    Return Length: Fixed 5 bytes

    0x66 0x01 0xFF 0xFF 0xFF

    Returned when the sendme command is used.
    0x01 is current page number
    data: page 1
    Not effected by the bkcmd setting

  23. 0x67
    Touch Coordinate (awake)
    Return Length: Fixed 9 bytes

    0x67 0x00 0x7A 0x00 0x1E 0x01 0xFF 0xFF 0xFF

    Returned when sendxy=1 and not in sleep mode
    0x00 0x7A is x coordinate in big endian order,
    0x00 0x1E is y coordinate in big endian order,
    0x01 is event (0x01 Press and 0x00 Release)
    (0x00*256+0x71,0x00*256+0x1E)
    data: (122,30) Pressed
    Not effected by the bkcmd setting

  24. 0x68
    Touch Coordinate (sleep)
    Return Length: Fixed 9 bytes

    0x68 0x00 0x7A 0x00 0x1E 0x01 0xFF 0xFF 0xFF

    Returned when sendxy=1 and in sleep mode, also on exiting sleep by touch
    0x00 0x7A is x coordinate in big endian order,
    0x00 0x1E is y coordinate in big endian order,
    0x01 is event (0x01 Press and 0x00 Release)
    (0x00*256+0x71,0x00*256+0x1E)
    data: (122,30) Pressed
    Not effected by the bkcmd setting

  25. 0x70
    String Data Enclosed
    Return Length: Varied number of bytes

    0x70 0x61 0x62 0x31 0x32 0x33 0xFF 0xFF 0xFF

    Returned when using get command for a string.
    Each byte is converted to char.
    data: ab123
    Not effected by the bkcmd setting

  26. 0x71
    Numeric Data Enclosed
    Return Length: Fixed 8 bytes

    0x71 0x01 0x02 0x03 0x04 0xFF 0xFF 0xFF

    Returned when get command to return a number
    4 byte 32-bit value in little endian order.
    (0x01+0x02*256+0x03*65536+0x04*16777216)
    data: 67305985
    Not effected by the bkcmd setting

  27. 0x86
    Auto Entered Sleep Mode
    Return Length: Fixed 4 bytes

    0x86 0xFF 0xFF 0xFF

    Returned when Nextion enters sleep automatically
    Using sleep=1 will not return an 0x86
    Not effected by the bkcmd setting

  28. 0x87
    Auto Wake from Sleep
    Return Length: Fixed 4 bytes

    0x87 0xFF 0xFF 0xFF

    Returned when Nextion leaves sleep automatically
    Using sleep=0 will not return an 0x87
    Not effected by the bkcmd setting

  29. 0x88
    Nextion Ready
    Return Length: Fixed 4 bytes

    0x88 0xFF 0xFF 0xFF

    Returned when Nextion has powered up
    and is now initialized successfully
    Not effected by the bkcmd setting

  30. 0x89
    Start microSD Upgrade
    Return Length: Fixed 4 bytes

    0x89 0xFF 0xFF 0xFF

    Returned when power on detects inserted microSD
    and begins Upgrade by microSD process
    Not effected by the bkcmd setting

  31. 0xFD
    Transparent Data Finished
    Return Length: Fixed 4 bytes

    0xFD 0xFF 0xFF 0xFF

    Returned when all requested bytes of Transparent
    Data mode have been received, and is now leaving transparent data mode (see 1.16)
    Not effected by the bkcmd setting

  32. 0xFE
    Transparent Data Ready
    Return Length: Fixed 4 bytes

    0xFE 0xFF 0xFF 0xFF

    Returned when requesting Transparent Data
    mode, and device is now ready to begin receiving
    the specified quantity of data (see 1.16)
    Not effected by the bkcmd setting

Index

= Assignment Text 2.1, Numeric 2.7
+= Addition Text 2.2, Numeric 2.8
-= Subtraction Text 2.3, Numeric 2.9
\ Escape character 2.4
== Boolean Equality Text 2.5, Numeric 2.18
!= Boolean Inequality Text 2.6, Numeric 2.19
*= Multiplication Numeric, 2.10
/= Division Numeric, 2.11
%= Modulo Division Numeric, 2.12
<< Arithmetic Shift Left Numeric, 2.13
>> Arithmetic Shift Right Numeric, 2.14
& Logical AND Numeric, 2.15
&& Condition Joiner AND, 2.25
| Logical OR Numeric, 2.16
|| Condition Joiner OR, 2.26
< Boolean Less than Numeric, 2.20
<= Boolean Less than Equal Numeric, 2.21
> Boolean Greater than Numeric, 2.22
>= Boolean Greater than Equal Numeric, 2.23
{ } Code Block Brace, 2.24
( ) Code Block Condition, 2.27
. Code Period Separator, 2.28
[ ] Code Array[index], 2.29
// Comment, 2.30
^=Logical Bitwise XOR, 2.17

0x00 Invalid Instruction, 7.1
0x00 Nextion Startup, 7.19
0x01 Instruction Successful, 7.2
0x02 Invalid Component ID, 7.3
0x03 Invalid Page ID, 7.4
0x04 Invalid Picture ID, 7.5
0x05 Invalid Font ID, 7.6
0x06 Invalid File Operation, 7.7
0x09 Invalid CRC, 7.8
0x11 Invalid Baud rate Setting, 7.9
0x12 Invalid Waveform ID or Channel #, 7.10
0x1A Invalid Variable name or attribute, 7.11
0x1B Invalid Variable Operation, 7.12
0x1C Assignment failed to assign, 7.13
0x1D EEPROM Operation failed, 7.14
0x1E Invalid Quantity of Parameters, 7.15
0x1F IO Operation failed, 7.16
0x20 Escape Character Invalid, 7.17
0x23 Variable name too long, 7.18
0x24 Serial Buffer Overflow, 7.20
0x65 Touch Event, 7.21
0x66 Current Page Number, 7.22
0x67 Touch Coordinate (awake), 7.23
0x68 Touch Coordinate (sleep), 7.24
0x70 String Data Enclosed, 7.25
0x71 Numeric Data Enclosed, 7.26
0x86 Auto Entered Sleep Mode, 7.27
0x87 Auto Wake from Sleep, 7.28
0x88 Nextion Ready, 7.29
0x89 Start microSD Upgrade, 7.30
0xFD Transparent Data Finished, 7.31
0xFE Transparent Data Ready, 7.32

add Add a value to Waveform, 3.19
addr Address, 6.22
addt Add many values to Waveform, 3.20
audio0 Audio Channel Control 0, 6.30
audio1 Audio Channel Control 1, 6.30

baud Nextion Baud Rate, 6.3
bauds Nextion Baud Rate, 6.3
bkcmd Pass/Fail Return Data, 6.13
BLACK Black Constant, 5.1
BLUE Blue Constant, 5.3
BROWN Brown Constant, 5.8
btlen String Length double-byte, 3.24

cfgpio Configure Nextion GPIO, 3.22
cir GUI Draw Hollow Circle, 4.9
cirs GUI Draw Hollow Circle, 4.10
cle Clear Waveform Channel, 3.21
click Trigger Touch Event, 3.3
cls GUI Clear Screen, 4.1
code_c Clear Serial Buffer, 3.16
com_stop Serial Execution Stop, 3.13
com_star Serial Execution Resume, 3.14
cov Convert Value to/from Text, 3.8
covx Convert Value to/from Text, 3.8
crcputh Accumulate CRC for hex string, 3.49
crcputs Accumulate CRC for Variable or constant, 3.48
crcputu Accumulate CRC on Serial Buffer, 3.50
crcrest Reset CRC and Initialize, 3.47
crcval CRC Value, 6.31

delay Delay, 6.11
deldir Remove a directory, 3.43
delfile Delete external file, 3.37
dim Nextion Backlight, 6.2
dims Nextion Backlight, 6.2
doevents Force Refresh, 3.23
dp Current Page ID, 6.1
draw GUI Draw Hollow Rectangle, 4.8

eq0 Equalizer Individual Band 0, 6.28
eq1 Equalizer Individual Band 1, 6.28
eq2 Equalizer Individual Band 2, 6.28
eq3 Equalizer Individual Band 3, 6.28
eq4 Equalizer Individual Band 4, 6.28
eq5 Equalizer Individual Band 5, 6.28
eq6 Equalizer Individual Band 6, 6.28
eq7 Equalizer Individual Band 7, 6.28
eq8 Equalizer Individual Band 8, 6.28
eq9 Equalizer Individual Band 9, 6.28
eqh Equalizer Groupings High, 6.27
eql Equalizer Groupings Low, 6.27
eqm Equalizer Groupings Medium, 6.27

fill GUI Draw Solid Rectangle, 4.6
finddir Test if directory exists, 3.45
findfile Find external file , 3.39
for for Iteration Loop Block, 3.27

get Send Serial Attribute Value, 3.6
GRAY Gray Constant, 5.6
GREEN Green Constant, 5.4

if Conditional Block, 3.25

line GUI Draw Line, 4.7

move Move component, 3.34

newdir Create a new directory, 3.42

page Change Page, 3.1
pic GUI Display Picture, 4.2
picq GUI Crop Picture, 4.3
pio0 Nextion GPIO, 6.19
pio1 Nextion GPIO, 6.19
pio2 Nextion GPIO, 6.19
pio3 Nextion GPIO, 6.19
pio4 Nextion GPIO, 6.19
pio5 Nextion GPIO, 6.19
pio6 Nextion GPIO, 6.19
pio7 Nextion GPIO, 6.19
play Play audio resource on selected Channel, 3.34
print Print to Serial, 3.17
printh Print HEX to Serial, 3.18
prints Print to Serial, 3.17
pwm4 PWM Duty Cycle, 6.20
pwm5 PWM Duty Cycle, 6.20
pwm6 PWM Duty Cycle, 6.20
pwm7 PWM Duty Cycle, 6.20
pwmf PWM Frequency, 6.21

rand Random Value, 6.14
randset Random Generator Range, 3.15
rdfile Read external file, 3.40
recmod Protocol Reparse Mode, 6.24
RED Red Constant, 5.5
redir Rename a directory, 3.44
ref Refresh Component, 3.2
refile Rename external file, 3.38
ref_stop Waveform Refresh Stop, 3.4
ref_star Waveform Refresh Resume, 3.5
repo Restore from EEPROM single value, 3.29
rept Restore from EEPROM multi value, 3.31
rest Reset Nextion, 3.22
rtc0 Real Time Clock, 6.18
rtc1 Real Time Clock, 6.18
rtc2 Real Time Clock, 6.18
rtc3 Real Time Clock, 6.18
rtc4 Real Time Clock, 6.18
rtc5 Real Time Clock, 6.18
rtc6 Real Time Clock, 6.18

sendme Send Serial Current Page, 3.7
sendxy RealTime Touch Coordinates, 6.10
setlayer Set Component Layer, 3.41
sleep Sleep, 6.12
spax Font Spacing, 6.4
spay Font Spacing, 6.4
spstr Split String, 3.51
strlen String Length single-byte, 3.24
substr SubString, 3.10
sys0 Numeric System Variables, 6.15
sys1 Numeric System Variables, 6.15
sys2 Numeric System Variables, 6.15

tch0 Realtime Touch Coordinates, 6.23
tch1 Realtime Touch Coordinates, 6.23
tch2 Realtime Touch Coordinates, 6.23
tch3 Realtime Touch Coordinates, 6.23
thc Touch Draw Brush Color, 6.5
thdra Touch Drawing, 6.6
thsp Sleep on No Touch, 6.8
thup Auto Wake on Touch, 6.9
touch_j Resistive Touch Calibration, 3.9
tsw Enable/Disable Component Touch, 3.12
twfile Transfer file over Serial, 3.36

u[index] Serial Buffer Data, 6.26
ucopy Copy from Serial Buffer, 3.33
udelete Remove bytes from Serial Buffer, 3.46
usize Bytes in Serial Buffer, 6.25
ussp Sleep on No Serial, 6.7
usup Wake On Serial Data, 6.17

vis Hide/Show Component, 3.11
volume Audio Volume, 6.29

wepo Store to EEPROM single value, 3.28
wept Store to EEPROM multi value, 3.30
while while Conditional Block, 3.26
WHITE White Constant, 5.2
wup Wake Up Page, 6.16

xpic GUI Advanced Crop Picture, 4.4
xstr GUI Display Text, 4.5

YELLOW Yellow Constant, 5.7