# TinyML for RTL8720DN

**URL:** <https://forum.amebaiot.com/t/tinyml-for-rtl8720dn/1405>\
**Category:** AI\
**Tags:** evb-bw16, rtl872xd\
**Created:** [August 17, 2022, 7:49am UTC](https://forum.amebaiot.com/t/tinyml-for-rtl8720dn/1405 "2022-08-17T07:49:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rkuo2000](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/rkuo2000/32/1105_2.png) [@rkuo2000](https://forum.amebaiot.com/u/rkuo2000)\
**Post date:** [August 17, 2022, 7:49am UTC](https://forum.amebaiot.com/t/tinyml-for-rtl8720dn/1405/1 "2022-08-17T07:49:43Z")

</div>

[TinyML\_AirDigit.ino](https://github.com/rkuo2000/arduino/blob/master/examples/TinyML/TinyML_AirDigit/TinyML_AirDigit.ino)  
This code runs well using ESP32 (NodeMCU-32S).

Arduino:1.8.19 (Windows 10), 開發板:“BW16 (RTL8720DN), Disable, Enable”

## Compilation Errors:

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\core\api\flatbuffer\_conversions.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\core\api\op\_resolver.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\kernels\kernel\_util.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\all\_ops\_resolver.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\cmsis-nn\add.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\cmsis-nn\mul.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\cmsis-nn\pooling.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\conv\_test\_common.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\detection\_postprocess.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\reshape.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\kernels\shape.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\memory\_helpers.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\micro\_allocator.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\micro\_interpreter.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\recording\_micro\_allocator.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\simple\_memory\_allocator.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\test\_helpers.cpp

Error while detecting libraries included by D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\schema\schema\_utils.cpp

In file included from c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\ext\string\_conversions.h:43:0,  
from c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\bits\basic\_string.h:5429,  
from c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\string:52,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/third\_party/flatbuffers/include/flatbuffers/base.h:42,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/third\_party/flatbuffers/include/flatbuffers/flatbuffers.h:21,  
from d:\users\rkuo2\documents\arduino\libraries\eloquenttinyml\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\schema\schema\_generated.h:22,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow.h:39,  
from D:\Users\rkuo2\Documents\Arduino\examples\TinyML\TinyML\_AirDigit\TinyML\_AirDigit.ino:2:  
c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\cstdio:127:11: error: ‘::printf’ has not been declared  
using ::printf;  
^ ~~~~~  
c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\cstdio:137:11: error: ‘::sprintf’ has not been declared  
using ::sprintf;  
^ ~~~~~~  
In file included from c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\algorithm:62:0,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/third\_party/flatbuffers/include/flatbuffers/base.h:46,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/third\_party/flatbuffers/include/flatbuffers/flatbuffers.h:21,  
from d:\users\rkuo2\documents\arduino\libraries\eloquenttinyml\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\schema\schema\_generated.h:22,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow.h:39,  
from D:\Users\rkuo2\Documents\Arduino\examples\TinyML\TinyML\_AirDigit\TinyML\_AirDigit.ino:2:  
c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\bits\stl\_algo.h: In function ‘void std::random\_shuffle(\_RAIter, \_RAIter)’:  
c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\bits\stl\_algo.h:4451:8: error: ‘Rand’ is not a member of ‘std’  
+ std::rand() % ((\_\_i - \_\_first) + 1);  
^~~  
c:\users\rkuo2\appdata\local\arduino15\packages\realtek\tools\ameba\_d\_asdk\_toolchain\1.0.1\arm-none-eabi\include\c++\6.5.0\bits\stl\_algo.h:4451:8: note: suggested alternative:  
In file included from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\system/component/soc/realtek/amebad/fwlib/include/rtl8721d.h:24:0,  
from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\system/component/soc/realtek/amebad/fwlib/include/ameba\_soc.h:13,  
from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\system/component/soc/realtek/amebad/cmsis/cmsis.h:35,  
from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\system/component/common/mbed/targets/hal/rtl8721d/PinNames.h:5,  
from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\variants\rtl8720dn\_bw16/variant.h:30,  
from C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\cores\ambd/Arduino.h:126,  
from C:\Users\rkuo2\AppData\Local\Temp\arduino\_build\_408516\sketch\TinyML\_AirDigit.ino.cpp:1:  
C:\Users\rkuo2\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.3\system/component/soc/realtek/amebad/swlib/string/rand.h:14:1: note: ‘Rand’  
Rand (  
^~~~  
In file included from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_op\_resolver.h:22:0,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_mutable\_op\_resolver.h:31,  
from d:\users\rkuo2\documents\arduino\libraries\eloquenttinyml\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\all\_ops\_resolver.h:20,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow.h:41,  
from D:\Users\rkuo2\Documents\Arduino\examples\TinyML\TinyML\_AirDigit\TinyML\_AirDigit.ino:2:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/op\_resolver.h: In member function ‘virtual tflite::OpResolver::TfLiteDelegatePtrVector tflite::OpResolver::GetDelegates(int) const’:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/op\_resolver.h:44:52: warning: unused parameter ‘num\_threads’ [-Wunused-parameter]  
virtual TfLiteDelegatePtrVector GetDelegates(int num\_threads) const {  
^ ~~~~~~~~~~  
In file included from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_mutable\_op\_resolver.h:31:0,  
from d:\users\rkuo2\documents\arduino\libraries\eloquenttinyml\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\all\_ops\_resolver.h:20,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow.h:41,  
from D:\Users\rkuo2\Documents\Arduino\examples\TinyML\TinyML\_AirDigit\TinyML\_AirDigit.ino:2:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_op\_resolver.h: In member function ‘virtual const TfLiteRegistration\* tflite::MicroOpResolver::FindOp(tflite::BuiltinOperator, int) const’:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_op\_resolver.h:55:40: warning: unused parameter ‘version’ [-Wunused-parameter]  
int version) const final {  
^ ~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_op\_resolver.h: In member function ‘virtual const TfLiteRegistration\* tflite::MicroOpResolver::FindOp(const char\*, int) const’:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/micro/micro\_op\_resolver.h:61:56: warning: unused parameter ‘version’ [-Wunused-parameter]  
const TfLiteRegistration\* FindOp(const char\* op, int version) const final {  
^ ~~~~~~  
In file included from d:\users\rkuo2\documents\arduino\libraries\eloquenttinyml\src\eloquent\_tinyml\tensorflow\arm\tensorflow\lite\micro\micro\_interpreter.h:25:0,  
from D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow.h:43,  
from D:\Users\rkuo2\Documents\Arduino\examples\TinyML\TinyML\_AirDigit\TinyML\_AirDigit.ino:2:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h: In member function ‘virtual void tflite::Profiler::EndEvent(uint32\_t, int64\_t, int64\_t)’:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:74:34: warning: unused parameter ‘event\_handle’ [-Wunused-parameter]  
virtual void EndEvent(uint32\_t event\_handle, int64\_t event\_metadata1,  
^ ~~~~~~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:74:56: warning: unused parameter ‘event\_metadata1’ [-Wunused-parameter]  
virtual void EndEvent(uint32\_t event\_handle, int64\_t event\_metadata1,  
^ ~~~~~~~~~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:75:33: warning: unused parameter ‘event\_metadata2’ [-Wunused-parameter]  
int64\_t event\_metadata2) {}  
^ ~~~~~~~~~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h: In member function ‘virtual void tflite::Profiler::AddEvent(const char\*, tflite::Profiler::EventType, uint64\_t, uint64\_t, int64\_t, int64\_t)’:  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:92:37: warning: unused parameter ‘tag’ [-Wunused-parameter]  
virtual void AddEvent(const char\* tag, EventType event\_type, uint64\_t start,  
^~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:92:52: warning: unused parameter ‘event\_type’ [-Wunused-parameter]  
virtual void AddEvent(const char\* tag, EventType event\_type, uint64\_t start,  
^ ~~~~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:92:73: warning: unused parameter ‘start’ [-Wunused-parameter]  
virtual void AddEvent(const char\* tag, EventType event\_type, uint64\_t start,  
^ ~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:93:34: warning: unused parameter ‘end’ [-Wunused-parameter]  
uint64\_t end, int64\_t event\_metadata1,  
^~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:93:47: warning: unused parameter ‘event\_metadata1’ [-Wunused-parameter]  
uint64\_t end, int64\_t event\_metadata1,  
^ ~~~~~~~~~~~~~~  
D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML\src/eloquent\_tinyml/tensorflow/arm/tensorflow/lite/core/api/profiler.h:94:33: warning: unused parameter ‘event\_metadata2’ [-Wunused-parameter]  
int64\_t event\_metadata2) {}  
^ ~~~~~~~~~~~~~~  
使用程式庫EloquentTinyML、版本2.4.3，位於資料夾：D:\Users\rkuo2\Documents\Arduino\libraries\EloquentTinyML  
exit status 1  
開發板 BW16 (RTL8720DN) 編譯錯誤。

---

<div class="post-metadata">

**Author:** ![xidameng](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/xidameng/32/18_2.png) [@xidameng](https://forum.amebaiot.com/u/xidameng)\
**Post date:** [August 18, 2022, 5:57am UTC](https://forum.amebaiot.com/t/tinyml-for-rtl8720dn/1405/2 "2022-08-18T05:57:05Z")

</div>

@rkuo2000

Hi, not all libraries working for ESP32 can also be used on other boards, there are usually a lot of work to be done to port a popular library to another platform since the underlying API and hardware are designed differently.

However, BW16 already supported TensorFlow Lite examples, you may check out this link for more information on how to set up your environment,  
[https://www.amebaiot.com/zh/amebad-arduino-audio-tensorflow-basic/](https://www.amebaiot.com/zh/amebad-arduino-audio-tensorflow-basic/)

---

<div class="post-metadata">

**Author:** ![rkuo2000](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/rkuo2000/32/1105_2.png) [@rkuo2000](https://forum.amebaiot.com/u/rkuo2000)\
**Post date:** [August 18, 2022, 6:45am UTC](https://forum.amebaiot.com/t/tinyml-for-rtl8720dn/1405/3 "2022-08-18T06:45:13Z")

</div>

I saw the Tensorflow Lite implementation, the sample code is too complicated to use. I prefer to use TinyML, since I have train a few models on Kaggle and successfully running on ESP32. It would be good to see RTL8720DN support TinyML.

SimonXI via Realtek Ameba IOT Developers Forum (RTL8722 RTL8195 RTL8710 RTL8720 BW16 Development board) - IOT / MCU Solutions 瑞昱開發者論壇 開發板 开發者论坛 开發板 \<[notifications@ameba.discoursemail.com](mailto:notifications@ameba.discoursemail.com)\> 於 2022年8月18日 週四 14:07 寫道：
