Giter Club home page Giter Club logo

ota-programmer.github.io's Introduction

Over-The-Air Programmer (OTA Programmer)

Over-the-air programming (OTA programming) refers to various methods of distributing new software, configuration settings, and even updating encryption keys to devices like mobile phones, set-top boxes, electric cars. This project is implemented to program BlueBill Board (STM32 Micro-controller) over the air using a website connected to a cloud database (Firebase) and NodeMCU board to get the code from internet for sending it to STM to write it to the Flash Memory using the Bootloader flashed on the first 8 kB of Flash Memory.

‣ Circuit Diagram

Circuit Diagram

‣ The project is divided into three mini-projects

1. Website

The website is responsible for letting the user upload a .hex file to a cloud database (Firebase) to be ready to be received by NodeMCU. The website only allows .hex to be uploaded, it also have some .hex file examples to let the user test the project. Examples are

  • .hex file to only erase the application area in Flash memory.
  • .hex file to blink the leds connected to pin A0,A1,A2 every 0.5 second.
  • .hex file to left-shift two leeds connected to pin A0,A1,A2 every 0.5 second.
  • .hex file to right-shift two leeds connected to pin A0,A1,A2 every 0.5 second.

The website also allows the user to vheck if NodeMCU is connected to Internet.

2. NodeMCU

Once a new .hex file is uploaded to Firebase, NodeMCU reads its content to try sending it line by line to STM through UART. NodeMCU code has a config.h file to let the user choose the following

  • UART Baudrate.
  • Wi-Fi SSID and Password.
  • The timeout interval of trying to connect to Wi-Fi.

3. STM

On reset, STM Bootloader waits for 5 seconds if there is any code received from NodeMCU. If any, it will first erase the application area and then flash the code received. Once it finished, it will run the application code. If no code received from NodeMCU for 5 seconds, it will jump to latest flashed application code.

‣ Future Improvements

  • Let the user upload multiple application files, and choose which application to run.
  • Impove how STM receives the code, instead of waiting 5 seconds on every reset.

‣ Programming Languages

C, C++, HTML, CSS, JavaScript.

‣ Hardware Required

  • NodeMCU V1.0 Board
  • BlueBill Board

‣ Links

  • The source code of all project can be found on this GitHub Organization.
  • The website for uploading the .hex file can be found on this link.

‣ Video:

A video illustrating the project can be found on this youtube video.

Video

‣ Developer

This project is developed by Ahmed Hassan.

ota-programmer.github.io's People

Contributors

ahmadmhasann avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.