'Unable to run tensorflow lite on ESP32 and Arduino Due both are 32 bits microcontrollers

I got two microcontrollers, one ESP32 and one Arduino DUE R3, both has an architecture of 32 bits and should be able to run a tensorflow lite model, however I tested this two boards and I'm getting the same problem: This:

from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: unknown type name 'int16_t'
 #  define kiss_fft_scalar int16_t

error: unknown type name 'int16_t'

And this is the complete output errors:

In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:19:0,
                 from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: unknown type name 'int16_t'
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:58:5: note: in expansion of macro 'kiss_fft_scalar'
     kiss_fft_scalar r;
     ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: unknown type name 'int16_t'
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:59:5: note: in expansion of macro 'kiss_fft_scalar'
     kiss_fft_scalar i;
     ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c: In function 'kf_bfly2':
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: 'int16_t' undeclared (first use in this function)
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:26: note: in expansion of macro 'kiss_fft_scalar'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:8: note: in expansion of macro 'sround'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
        ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:33:9: note: in expansion of macro 'C_FIXDIV'
         C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2);
         ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: note: each undeclared identifier is reported only once for each function it appears in
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:26: note: in expansion of macro 'kiss_fft_scalar'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:8: note: in expansion of macro 'sround'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
        ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:33:9: note: in expansion of macro 'C_FIXDIV'
         C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2);
         ^
In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:0:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:51:19: error: 'int32_t' undeclared (first use in this function)
 # define SAMPPROD int32_t 
                   ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:47: note: in definition of macro 'sround'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                                               ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:64:25: note: in expansion of macro 'SAMPPROD'
 #   define smul(a,b) ( (SAMPPROD)(a)*(b) )
                         ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:16: note: in expansion of macro 'smul'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
                ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:33:9: note: in expansion of macro 'C_FIXDIV'
         C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2);
         ^
In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:19:0,
                 from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c: In function 'kf_bfly4':
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: 'int16_t' undeclared (first use in this function)
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:26: note: in expansion of macro 'kiss_fft_scalar'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:8: note: in expansion of macro 'sround'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
        ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:61:9: note: in expansion of macro 'C_FIXDIV'
         C_FIXDIV(*Fout,4); C_FIXDIV(Fout[m],4); C_FIXDIV(Fout[m2],4); C_FIXDIV(Fout[m3],4);
         ^
In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:0:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:51:19: error: 'int32_t' undeclared (first use in this function)
 # define SAMPPROD int32_t 
                   ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:47: note: in definition of macro 'sround'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                                               ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:64:25: note: in expansion of macro 'SAMPPROD'
 #   define smul(a,b) ( (SAMPPROD)(a)*(b) )
                         ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:16: note: in expansion of macro 'smul'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
                ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:61:9: note: in expansion of macro 'C_FIXDIV'
         C_FIXDIV(*Fout,4); C_FIXDIV(Fout[m],4); C_FIXDIV(Fout[m2],4); C_FIXDIV(Fout[m3],4);
         ^
In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:19:0,
                 from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c: In function 'kf_bfly3':
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/kiss_fft.h:48:27: error: 'int16_t' undeclared (first use in this function)
 #  define kiss_fft_scalar int16_t
                           ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:26: note: in expansion of macro 'kiss_fft_scalar'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:8: note: in expansion of macro 'sround'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
        ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:109:10: note: in expansion of macro 'C_FIXDIV'
          C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3);
          ^
In file included from C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:16:0:
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:51:19: error: 'int32_t' undeclared (first use in this function)
 # define SAMPPROD int32_t 
                   ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:65:47: note: in definition of macro 'sround'
 #   define sround( x )  (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS )
                                               ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:64:25: note: in expansion of macro 'SAMPPROD'
 #   define smul(a,b) ( (SAMPPROD)(a)*(b) )
                         ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:74:16: note: in expansion of macro 'smul'
  (x) = sround( smul(  x, SAMP_MAX/k ) )
                ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src/third_party/kissfft/_kiss_fft_guts.h:77:10: note: in expansion of macro 'DIVSCALAR'
  do {    DIVSCALAR( (c).r , div);  \
          ^
C:\Users\freddydev\Documents\Arduino\libraries\Arduino_TensorFlowLite\src\tensorflow\lite\experimental\micro\tools\make\downloads\kissfft\kiss_fft.c:109:10: note: in expansion of macro 'C_FIXDIV'
          C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3);

......

And more errors were comming out.

Really I don't know why I can't run basic examples on this two boards, supposedly this ara capable of run it due his power. I found evidences that this could be possible like this https://www.youtube.com/watch?v=kZdIO82059E

I don't have one Arduino nano 33 ble sense to try to compile again this examples. I just installed the tensorflow lite library versions 1.14.0-alpha, 1.15.0-alpha and the latest versions and it doesn't worke properly.

Please guys help me to fix this problem, I will appreciate it. Thanks so much.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source