├── .github └── workflows │ └── sync-labels.yml ├── .gitignore ├── .travis.yml ├── README.md ├── assets └── default.html ├── build.sh ├── firmwares ├── NINA │ ├── 1.0.0 │ │ └── NINA_W102.bin │ ├── 1.1.0 │ │ └── NINA_W102.bin │ ├── 1.2.1 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.2.2 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.2.3 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.2.4 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.3.0 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.0 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.1 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.2 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.3 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.4 │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.5 │ │ ├── NINA_W102-Nano_RP2040_Connect.bin │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.6 │ │ ├── NINA_W102-Nano_RP2040_Connect.bin │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ ├── 1.4.7 │ │ ├── NINA_W102-Nano_RP2040_Connect.bin │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin │ └── 1.4.8 │ │ ├── NINA_W102-Nano_RP2040_Connect.bin │ │ ├── NINA_W102-Uno_WiFi_Rev2.bin │ │ └── NINA_W102.bin └── WINC1500 │ ├── 19.4.4 │ ├── m2m_aio_2b0.bin │ └── m2m_aio_3a0.bin │ ├── 19.5.2 │ └── m2m_aio_3a0.bin │ ├── 19.5.4 │ └── m2m_aio_3a0.bin │ └── 19.6.1 │ └── m2m_aio_3a0.bin ├── screenshot-0.png ├── screenshot-1.png ├── screenshot-2.png └── src └── cc └── arduino └── plugins └── wifi101 ├── CertificateListModel.java ├── SerialPortListModel.java ├── UpdaterImpl.java ├── UpdaterJFrame.java ├── WiFi101.java ├── certs ├── WiFi101Certificate.java └── WiFi101CertificateBundle.java └── flashers ├── Flasher.java └── java ├── FlasherSerialClient.java ├── NinaFlasher.java ├── SSLCertDownloader.java └── WINCFlasher.java /.github/workflows/sync-labels.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/sync-labels.md 2 | name: Sync Labels 3 | 4 | # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows 5 | on: 6 | push: 7 | paths: 8 | - ".github/workflows/sync-labels.ya?ml" 9 | - ".github/label-configuration-files/*.ya?ml" 10 | pull_request: 11 | paths: 12 | - ".github/workflows/sync-labels.ya?ml" 13 | - ".github/label-configuration-files/*.ya?ml" 14 | schedule: 15 | # Run daily at 8 AM UTC to sync with changes to shared label configurations. 16 | - cron: "0 8 * * *" 17 | workflow_dispatch: 18 | repository_dispatch: 19 | 20 | env: 21 | CONFIGURATIONS_FOLDER: .github/label-configuration-files 22 | CONFIGURATIONS_ARTIFACT: label-configuration-files 23 | 24 | jobs: 25 | check: 26 | runs-on: ubuntu-latest 27 | 28 | steps: 29 | - name: Checkout repository 30 | uses: actions/checkout@v2 31 | 32 | - name: Download JSON schema for labels configuration file 33 | id: download-schema 34 | uses: carlosperate/download-file-action@v1 35 | with: 36 | file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/arduino-tooling-gh-label-configuration-schema.json 37 | location: ${{ runner.temp }}/label-configuration-schema 38 | 39 | - name: Install JSON schema validator 40 | run: | 41 | sudo npm install \ 42 | --global \ 43 | ajv-cli \ 44 | ajv-formats 45 | 46 | - name: Validate local labels configuration 47 | run: | 48 | # See: https://github.com/ajv-validator/ajv-cli#readme 49 | ajv validate \ 50 | --all-errors \ 51 | -c ajv-formats \ 52 | -s "${{ steps.download-schema.outputs.file-path }}" \ 53 | -d "${{ env.CONFIGURATIONS_FOLDER }}/*.{yml,yaml}" 54 | 55 | download: 56 | needs: check 57 | runs-on: ubuntu-latest 58 | 59 | strategy: 60 | matrix: 61 | filename: 62 | # Filenames of the shared configurations to apply to the repository in addition to the local configuration. 63 | # https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/sync-labels 64 | - universal.yml 65 | - tooling.yml 66 | 67 | steps: 68 | - name: Download 69 | uses: carlosperate/download-file-action@v1 70 | with: 71 | file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} 72 | 73 | - name: Pass configuration files to next job via workflow artifact 74 | uses: actions/upload-artifact@v2 75 | with: 76 | path: | 77 | *.yaml 78 | *.yml 79 | if-no-files-found: error 80 | name: ${{ env.CONFIGURATIONS_ARTIFACT }} 81 | 82 | sync: 83 | needs: download 84 | runs-on: ubuntu-latest 85 | 86 | steps: 87 | - name: Set environment variables 88 | run: | 89 | # See: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable 90 | echo "MERGED_CONFIGURATION_PATH=${{ runner.temp }}/labels.yml" >> "$GITHUB_ENV" 91 | 92 | - name: Determine whether to dry run 93 | id: dry-run 94 | if: > 95 | github.event_name == 'pull_request' || 96 | ( 97 | ( 98 | github.event_name == 'push' || 99 | github.event_name == 'workflow_dispatch' 100 | ) && 101 | github.ref != format('refs/heads/{0}', github.event.repository.default_branch) 102 | ) 103 | run: | 104 | # Use of this flag in the github-label-sync command will cause it to only check the validity of the 105 | # configuration. 106 | echo "::set-output name=flag::--dry-run" 107 | 108 | - name: Checkout repository 109 | uses: actions/checkout@v2 110 | 111 | - name: Download configuration files artifact 112 | uses: actions/download-artifact@v2 113 | with: 114 | name: ${{ env.CONFIGURATIONS_ARTIFACT }} 115 | path: ${{ env.CONFIGURATIONS_FOLDER }} 116 | 117 | - name: Remove unneeded artifact 118 | uses: geekyeggo/delete-artifact@v1 119 | with: 120 | name: ${{ env.CONFIGURATIONS_ARTIFACT }} 121 | 122 | - name: Merge label configuration files 123 | run: | 124 | # Merge all configuration files 125 | shopt -s extglob 126 | cat "${{ env.CONFIGURATIONS_FOLDER }}"/*.@(yml|yaml) > "${{ env.MERGED_CONFIGURATION_PATH }}" 127 | 128 | - name: Install github-label-sync 129 | run: sudo npm install --global github-label-sync 130 | 131 | - name: Sync labels 132 | env: 133 | GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} 134 | run: | 135 | # See: https://github.com/Financial-Times/github-label-sync 136 | github-label-sync \ 137 | --labels "${{ env.MERGED_CONFIGURATION_PATH }}" \ 138 | ${{ steps.dry-run.outputs.flag }} \ 139 | ${{ github.repository }} 140 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | dist 3 | .classpath 4 | .project 5 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: java 4 | 5 | os: 6 | - linux 7 | 8 | addons: 9 | apt: 10 | packages: 11 | - ant 12 | 13 | jdk: 14 | - openjdk8 15 | 16 | script: 17 | - export SRC=$PWD 18 | - export TAG=1.8.13 19 | - wget https://github.com/arduino/Arduino/archive/$TAG.zip 20 | - unzip $TAG.zip 21 | - pushd Arduino-$TAG/build 22 | - echo "" | ant build 23 | - popd 24 | - export IDE_FOLDER=Arduino-$TAG/build/linux/work 25 | - ./build.sh 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WiFi101 Firmware Updater Tool for Arduino IDE [](https://travis-ci.org/arduino-libraries/WiFi101-FirmwareUpdater-Plugin) 2 | 3 | This plugin is a GUI to update Firmware or SSL Certificates on shield or boards based 4 | on the Atmel WINC1500 WiFi chipset (for example the Arduino WiFi 101 Shield or the 5 | Arduino/Genuino MKR1000 board). This plugin is bundled with the IDE starting from v.1.6.10 6 | 7 | ## Installation 8 | 9 | - Download the tool [from this page](https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/latest). 10 | - Create a `tools` folder in your sketchbook, if it doesn't exist yet. 11 | - Unpack the zip archive into `tools` folder (it will look like `.../Arduino/tools/WiFi101/tool/WiFi101.jar`) 12 | - Restart the Arduino IDE. 13 | 14 | ## Usage 15 | 16 | - Follow instructions [on this page](https://www.arduino.cc/en/Tutorial/FirmwareUpdater). 17 | 18 | ## Screenshots 19 | 20 |  21 | 22 |  23 | 24 |  25 | 26 | ## Issues and suggestions 27 | 28 | Please open an issue [on github](https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/issues/new). 29 | 30 | ### Security 31 | 32 | If you think you found a vulnerability or other security-related bug in this project, please read our 33 | [security policy](https://github.com/arduino/WiFi101-FirmwareUpdater-Plugin/security/policy) and report the bug to our 34 | Security Team 🛡️ 35 | Thank you! 36 | 37 | e-mail contact: security@arduino.cc 38 | 39 | ## Credits and license 40 | 41 | ``` 42 | Copyright 2016 Arduino LLC (http://www.arduino.cc/) 43 | 44 | Arduino is free software; you can redistribute it and/or modify 45 | it under the terms of the GNU General Public License as published by 46 | the Free Software Foundation; either version 2 of the License, or 47 | (at your option) any later version. 48 | 49 | This program is distributed in the hope that it will be useful, 50 | but WITHOUT ANY WARRANTY; without even the implied warranty of 51 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 52 | GNU General Public License for more details. 53 | 54 | You should have received a copy of the GNU General Public License 55 | along with this program; if not, write to the Free Software 56 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 57 | 58 | As a special exception, you may use this file as part of a free software 59 | library without restriction. Specifically, if other files instantiate 60 | templates or use macros or inline functions from this file, or you compile 61 | this file and link it with other files to produce an executable, this 62 | file does not by itself cause the resulting executable to be covered by 63 | the GNU General Public License. This exception does not however 64 | invalidate any other reasons why the executable file might be covered by 65 | the GNU General Public License. 66 | ``` 67 | 68 | -------------------------------------------------------------------------------- /assets/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |Please enter your WiFi network credentials.
148 |
Then the board will attempt to connect to your WiFi network.
149 |