Skip to content
View PATEmbedded's full-sized avatar
😍
😍

Block or report PATEmbedded

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
PATEmbedded/README.md

Pourya Afshintabar · Embedded Systems Engineer · Firmware, hardware and Edge AI · 10+ years building embedded products

Email LinkedIn

I build complete embedded products, from system architecture, schematics and multilayer PCBs to C/C++ firmware on bare metal, FreeRTOS and embedded Linux, and I carry them through bring-up and testing to series production. In more than ten years my work has spanned industrial automation, oil & gas, power, medical devices and IoT, and I have led hardware teams along the way. Today my focus is Edge AI: small neural networks that run directly on microcontrollers, with no cloud.

C C++17 Python FreeRTOS Embedded Linux ESP-IDF STM32 Altium Designer TensorFlow Lite Micro

FirmwareC, C++ (11/14/17), Python · bare metal, FreeRTOS, embedded Linux · GCC, CMake, Yocto/Buildroot
ProcessorsARM Cortex-M (ST, NXP, TI) · Cortex-A (TI Sitara, Allwinner) · ESP32 · Xilinx FPGA · TI C2000 DSP
HardwareAltium Designer · multilayer, high-speed and low-noise PCBs · signal and power integrity · EMI/EMC · DFM
ConnectivityGigabit Ethernet, PoE, CAN, RS-485, USB · Wi-Fi, BLE, LoRa · MQTT, HTTP/REST, TLS, OTA
Edge AITensorFlow Lite Micro, Edge Impulse, STM32Cube.AI · quantization, pruning · CMSIS-NN

Featured project

esp32-secure-ota: signed firmware updates for ESP32

CI Release

Firmware updates over HTTPS for ESP32 and ESP32-S3 with ESP-IDF. A device in the field never installs a forged or an older image, and never stays on a broken one.

Check How
Server identity TLS against the ESP-IDF certificate bundle or one pinned CA; plain HTTP is refused
Image origin Only images signed with the release key: ECDSA P-256 on ESP32, RSA-3072 on ESP32-S3
Integrity SHA-256 checked before the new slot is selected, so an interrupted download never boots
No downgrade The image header is read first; another project or an older version is rejected before the download goes on
Health after the update The new image must pass a self-test, or the bootloader returns to the previous one

With a written threat model, unit tests, and CI that builds and signs the firmware with ESP-IDF 5.5 and 6.0.

Open-source libraries

Header-only firmware building blocks: a table-driven state machine, observable values, weekly schedules, JSON request validation, a debouncer and a periodic timer. No hardware dependency.

CI C++17, any MCU

Standard C++ containers in the external PSRAM of ESP32 chips, with an optional fallback to internal RAM, so large data leaves the internal RAM to Wi-Fi and FreeRTOS.

CI C++17, ESP-IDF

Debounced buttons with click, multi-click and long-press events, and outputs that blink and pulse. One task handles them all and sleeps while nothing happens.

CI C++17, ESP-IDF

SNTP with time zones, a status that says how far the clock can be trusted, and a sensible clock after a power cut instead of 1970.

CI C, ESP-IDF

Every repository here is built the same way:

  • unit tests on a PC with GCC and Clang, under AddressSanitizer and UndefinedBehaviorSanitizer
  • firmware and example builds in CI, for ESP-IDF 5.5 and 6.0 where ESP-IDF is used
  • documentation with diagrams and examples, a changelog, tagged releases and the MIT license

Contact: [email protected] · LinkedIn

Popular repositories Loading

  1. BananaPi-M2-Zero-OV5640 BananaPi-M2-Zero-OV5640 Public

    Forked from Qengineering/BananaPi-M2-Zero-OV5640

    Banana Pi M2 zero with OV5640, WiringPi and OpenCV image.

    2

  2. FreeRTOS-Kernel-Book FreeRTOS-Kernel-Book Public

    Forked from FreeRTOS/FreeRTOS-Kernel-Book

    1

  3. PATEmbedded PATEmbedded Public

    Profile README

  4. Embedded-Graphics-Video-Engine Embedded-Graphics-Video-Engine Public

    PAT_GUI: high-level graphics, animation and video library for STM32F1 (Cortex-M3) touch displays. Demos and documentation; source sold to a client.

  5. esp32-psram-allocator esp32-psram-allocator Public

    C++17 allocators and standard-container aliases that place data in ESP32 PSRAM, for ESP-IDF and Arduino.

    C++

  6. esp32-secure-ota esp32-secure-ota Public

    Signed, rollback-protected firmware updates over HTTPS for ESP32 and ESP32-S3 with ESP-IDF.

    C