# Conflicts: # code/components/esp32-camera-master # code/components/esp32-camera-master/.github/workflows/build.yml # code/components/esp32-camera-master/.github/workflows/upload_component.yml # code/components/esp32-camera-master/CMakeLists.txt # code/components/esp32-camera-master/Kconfig # code/components/esp32-camera-master/README.md # code/components/esp32-camera-master/conversions/esp_jpg_decode.c # code/components/esp32-camera-master/conversions/jpge.cpp # code/components/esp32-camera-master/conversions/to_bmp.c # code/components/esp32-camera-master/conversions/to_jpg.cpp # code/components/esp32-camera-master/driver/cam_hal.c # code/components/esp32-camera-master/driver/esp_camera.c # code/components/esp32-camera-master/driver/include/esp_camera.h # code/components/esp32-camera-master/driver/include/sensor.h # code/components/esp32-camera-master/driver/private_include/sccb.h # code/components/esp32-camera-master/driver/sccb.c # code/components/esp32-camera-master/driver/sensor.c # code/components/esp32-camera-master/examples/main/take_picture.c # code/components/esp32-camera-master/idf_component.yml # code/components/esp32-camera-master/sensors/bf20a6.c # code/components/esp32-camera-master/sensors/gc0308.c # code/components/esp32-camera-master/sensors/private_include/bf20a6.h # code/components/esp32-camera-master/sensors/private_include/gc0308_settings.h # code/components/esp32-camera-master/sensors/private_include/ov5640_settings.h # code/components/esp32-camera-master/sensors/private_include/sc030iot.h # code/components/esp32-camera-master/sensors/private_include/sc101iot.h # code/components/esp32-camera-master/target/esp32/ll_cam.c # code/components/esp32-camera-master/target/esp32s2/ll_cam.c # code/components/esp32-camera-master/target/esp32s3/ll_cam.c # code/components/esp32-camera-master/target/private_include/ll_cam.h # code/components/esp32-camera-master/test/test_camera.c # code/components/tflite-lib/CMakeLists.txt # code/components/tflite-lib/tensorflow/lite/builtin_ops.h # code/components/tflite-lib/tensorflow/lite/c/common.cc # code/components/tflite-lib/tensorflow/lite/c/common.h # code/components/tflite-lib/tensorflow/lite/context_util.h # code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.cc # code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.h # code/components/tflite-lib/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc # code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/hard_swish.h # code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/mul.h # code/components/tflite-lib/tensorflow/lite/micro/all_ops_resolver.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/add.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/add_n.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/arg_min_max.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/batch_to_space_nd.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/circular_buffer.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/comparisons.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/concatenation.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/cumsum.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/depth_to_space.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/depthwise_conv.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/div.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/elementwise.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/elu.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/conv.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/depthwise_conv.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/softmax.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/exp.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/expand_dims.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/fill.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_div.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_mod.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/fully_connected.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/gather.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/gather_nd.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/l2_pool_2d.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/l2norm.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/log_softmax.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/lstm_eval.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/maximum_minimum.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_ops.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_tensor_utils.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/mul.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/neg.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/pack.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/pad.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/prelu.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/reduce_common.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_bilinear.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/shape.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/slice.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/softmax.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_batch_nd.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_depth.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/split_v.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/squeeze.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/strided_slice.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/svdf.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/tanh.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose_conv.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm_test_config.h # code/components/tflite-lib/tensorflow/lite/micro/kernels/unpack.cc # code/components/tflite-lib/tensorflow/lite/micro/kernels/zeros_like.cc # code/components/tflite-lib/tensorflow/lite/micro/micro_allocation_info.cc # code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.cc # code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.h # code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.cc # code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.h # code/components/tflite-lib/tensorflow/lite/micro/micro_mutable_op_resolver.h # code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.cc # code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.h # code/components/tflite-lib/tensorflow/lite/micro/recording_micro_allocator.cc # code/components/tflite-lib/tensorflow/lite/schema/schema_generated.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/base.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffers.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flexbuffers.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/stl_emulation.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/table.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/util.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/vector.h # code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/verifier.h
Build
Preparations
git clone https://github.com/jomjol/AI-on-the-edge-device.git
cd AI-on-the-edge-device
git checkout rolling
git submodule update --init
Build and Flash within terminal
See further down to build it within an IDE.
Compile
cd code
platformio run --environment esp32cam
Upload
pio run --target upload
If it doesnt find the device:
- make sure it is in bootloader mode
- set the UART device correctly: In
platformio.ini, setupload_portcorrectly, eg.upload_port = /dev/ttyUSB0
Monitor UART Log
pio device monitor
Build and Flash with Visual Code IDE
-
Download and install VS Code
-
Install the VS Code platform io plugin
-
git clone this project
-
in Linux:
git clone https://github.com/jomjol/AI-on-the-edge-device.git cd AI-on-the-edge-device git checkout rolling git submodule update --init
-
-
in VS code, open the
AI-on-the-edge-device/code- from terminal:
cd AI-on-the-edge-device/code && code .
- from terminal:
-
open a pio terminal (click on the terminal sign in the bottom menu bar)
-
make sure you are in the
codedirectory -
To build, type
platformio run --environment esp32cam -
Connect the device and type
pio device monitor. There you will see your device and can copy the name to the next instruction -
Add
upload_port = you_device_portto theplatformio.inifile -
make sure an sd card with the contents of the
sd_cardfolder is inserted and you have changed the wifi details -
pio run --target eraseto erase the flash -
pio run --target uploadthis will upload thebootloader.bin, partitions.bin,firmware.binfrom thecode/.pio/build/esp32cam/folder. -
pio device monitorto observe the logs via uart

