All Projects → andrewrapp → arduino-remote-uploader

andrewrapp / arduino-remote-uploader

Licence: GPL-2.0 license
Over-the-air arduino programming via xbee, wifi or nordic

Programming Languages

java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to arduino-remote-uploader

extEEPROM
Arduino library to support external I2C EEPROMs.
Stars: ✭ 111 (+258.06%)
Mutual labels:  arduino-library, eeprom
miniboot
🏗️ An I2C bootloader for Arduino.
Stars: ✭ 62 (+100%)
Mutual labels:  arduino-library, eeprom
I2C EEPROM
Library for I2C EEPROM - 24LC256
Stars: ✭ 27 (-12.9%)
Mutual labels:  arduino-library, eeprom
NvTx
Transactional non volatile storage for Arduino
Stars: ✭ 17 (-45.16%)
Mutual labels:  arduino-library, eeprom
T-BOTS
Software for controlling and analysing T-Bots (Balancing robots)
Stars: ✭ 21 (-32.26%)
Mutual labels:  firmware, arduino-library
FastX9CXXX
Arduino library for digital potentiometers X9C102, X9C103, X9C104 and X9C504
Stars: ✭ 36 (+16.13%)
Mutual labels:  arduino-library
Adafruit SI1145 Library
Arduino library for the SI1145 sensors in the Adafruit shop
Stars: ✭ 20 (-35.48%)
Mutual labels:  arduino-library
FabScanPi-Firmware
Firmware of FabScanPi 3D Laser Scanner
Stars: ✭ 20 (-35.48%)
Mutual labels:  firmware
Syslog
An Arduino library for logging to Syslog server in IETF format (RFC 5424) and BSD format (RFC 3164)
Stars: ✭ 105 (+238.71%)
Mutual labels:  arduino-library
EByte LoRa E22 Series Library
Arduino LoRa EBYTE E22 device library complete and tested with Arduino, esp8266, esp32, STM32 and Raspberry Pi Pico (rp2040 boards).. sx1262/sx1268
Stars: ✭ 67 (+116.13%)
Mutual labels:  arduino-library
mu oem sample
Project Mu OEM Sample Code
Stars: ✭ 27 (-12.9%)
Mutual labels:  firmware
FASTUSBasp
This is the fast avr programmer for AVR MCUs based on cheap stm32f103c8t6 board with usb-to-serial support.
Stars: ✭ 78 (+151.61%)
Mutual labels:  firmware
device-epd
E-Paper Display Device
Stars: ✭ 26 (-16.13%)
Mutual labels:  firmware
Adafruit MP3
mp3 decoding on arduino
Stars: ✭ 29 (-6.45%)
Mutual labels:  arduino-library
rf bridge
RF (433Mhz) to MQTT Bridge - with hardware
Stars: ✭ 38 (+22.58%)
Mutual labels:  firmware
remote-pinetime-bot
Telegram Bot to flash and test PineTime firmware remotely
Stars: ✭ 23 (-25.81%)
Mutual labels:  firmware
PsxNewLib
Playstation controller interface library for Arduino
Stars: ✭ 81 (+161.29%)
Mutual labels:  arduino-library
ESP32Time
An Arduino library for setting and retrieving internal RTC time on ESP32 boards
Stars: ✭ 120 (+287.1%)
Mutual labels:  arduino-library
PCF8591 library
Library to use i2c analog IC with arduino and esp8266. Can read analog value and write analog value with only 2 wire (perfect for ESP-01).
Stars: ✭ 24 (-22.58%)
Mutual labels:  arduino-library
TLV493D-A1B6-3DMagnetic-Sensor
Library for the TLV493D-A1B6 3D magnetic sensor for Arduino.
Stars: ✭ 27 (-12.9%)
Mutual labels:  arduino-library

arduino-remote-uploader

The goal of this project is provide over-the-air (OTA) upload of Arduino sketches to a remote Arduino. There is support for XBee (Series 1 and 2), Wifi (ESP8266), and Nordic nRF24L01+. This is accomplished by programming one Arduino with another. The circuit is conceptually very simple:

xbee prototype

One Arduino receives firmware packets from a wireless device (XBee in this case) and writes to EEPROM. Then, once it receives the entire sketch it flashes the firmware on the other Arduino. There are other tricks for remote firmware programming but nearly all involve unfortunate tradeoffs. This solution is fault tolerant, in that it checksums every firmware page (packet), acks and retries dropped packets and only flashes when a complete firmware image has been written to EEPROM. You can unplug the remote during programming, then plug back in and it will resume and flash successfully.

It's also quite cost-effective: the Microchip EEPROM costs $1. Arduino Pros can be found online for about $3 each. Nordic radios can be found for about $1 online.

Here's a prototype I built to control my garage door. A Modern Device RBBB performs the programming while the app runs on a Arduino Pro. I'm using an Arduino XBee shield just for the XBee socket and 3.3V conversion.

The client is a simple command-line app:

Here's a screenshare of an upload in action.

Version 0.1 is in Maven Central

I've written about the project in detail on Medium https://medium.com/@nowir3s/arduino-remote-uploader-aa61e4d620b1

Demo

vine

The remote Arduino starts with a sketch that blinks fast. Then, I change the sketch to blink slow, compile and flash the sketch on the remote Arduino, via XBee. The command completes and indicates that the flash was successful. And lastly we see the Arduino is running the new sketch and blinking slowly. So there it is: over-the-air Arduino programming via XBee in six seconds!

vine

Here's the same thing but over wifi with a esp8266 and 3.3V Arduino Pros at 8Mhz.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].