From 93a38bb2dd41cfcb2843ef8bd5e044dfa157edad Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 27 May 2021 15:57:35 +0200 Subject: [PATCH 01/23] add first draft of index download --- cli/cli.go | 3 + cli/globals/globals.go | 25 +++++++ go.mod | 9 +-- go.sum | 41 ++++++++++-- indexes/indexes.go | 140 ++++++++++++++++++++++++++++++++++++++++ indexes/indexes_test.go | 28 ++++++++ 6 files changed, 237 insertions(+), 9 deletions(-) create mode 100644 cli/globals/globals.go create mode 100644 indexes/indexes.go create mode 100644 indexes/indexes_test.go diff --git a/cli/cli.go b/cli/cli.go index d259e446..3e6988b1 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -29,6 +29,7 @@ import ( "time" "github.com/arduino/FirmwareUploader/cli/version" + "github.com/arduino/FirmwareUploader/indexes" "github.com/arduino/FirmwareUploader/modules/nina" "github.com/arduino/FirmwareUploader/modules/sara" "github.com/arduino/FirmwareUploader/modules/winc" @@ -210,6 +211,8 @@ func preRun(cmd *cobra.Command, args []string) { logrus.SetLevel(lvl) } + indexes.DownloadIndex() + // // Prepare the Feedback system // diff --git a/cli/globals/globals.go b/cli/globals/globals.go new file mode 100644 index 00000000..5ef6bf51 --- /dev/null +++ b/cli/globals/globals.go @@ -0,0 +1,25 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package globals + +var DefaultIndexURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json", + // "board_index.json", +} diff --git a/go.mod b/go.mod index 38a64f0c..42416c1c 100644 --- a/go.mod +++ b/go.mod @@ -6,13 +6,14 @@ go 1.14 replace go.bug.st/serial => github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e require ( - github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 - github.com/arduino/go-paths-helper v1.4.0 - github.com/mattn/go-colorable v0.1.8 // indirect + github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d + github.com/arduino/go-paths-helper v1.5.0 + github.com/mattn/go-colorable v0.1.8 github.com/pkg/errors v0.9.1 - github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 // indirect + github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 github.com/sirupsen/logrus v1.8.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.6.1 + go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.1.2 ) diff --git a/go.sum b/go.sum index b54b049a..c15e035a 100644 --- a/go.sum +++ b/go.sum @@ -11,6 +11,7 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= @@ -20,16 +21,18 @@ github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/g github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 h1:YzxiXS2tBkotw65inAy9hYkXEHcCmszj9mRNQXNEEnU= -github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026/go.mod h1:5dWroFPvaWuBNVuYMV0X8osqIhyUG5otRgJlRHN831E= +github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d h1:JwB+f71HvhMs2GG7/675wdr8XWQStHzI5UX2mWJsl9Y= +github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d/go.mod h1:HNbHWr7qq+9M2rhzBUJIBIpCMRlB6+mptNDLMDZNlG0= github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.4.0 h1:ilnseAdxmN1bFnLxxXHRtcdmt9jBf3O4jtYfWfqule4= -github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.5.0 h1:RVo189hD+GhUS1rQ3gixwK1nSbvVR8MGIGa7Gxv2bdM= +github.com/arduino/go-paths-helper v1.5.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/arduino/go-properties-orderedmap v1.1.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= +github.com/arduino/go-properties-orderedmap v1.3.0 h1:4No/vQopB36e7WUIk6H6TxiSEJPiMrVOCZylYmua39o= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= +github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b h1:3PjgYG5gVPA7cipp7vIR2lF96KkEJIFBJ+ANnuv6J20= github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= @@ -45,9 +48,11 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e h1:XETkjcWmNrh5M9hIpkgI0uANZsdD8zg2wjDzspe3bRw= github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e/go.mod h1:k7j3AWnS4CLHK94Z32+qkukjlSyASt1YYrbWcnr9r4E= +github.com/cmaglie/go.rice v1.0.3 h1:ZBLmBdQp6ejc+n8eMNH0uuRSKkg6kKe6ORjXKnyHBYw= github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54GWFPAsc= github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= github.com/codeclysm/cc v1.2.2/go.mod h1:XtW4ArCNgQwFphcRGG9+sPX5WM1J6/u0gMy5ZdV3obA= +github.com/codeclysm/extract/v3 v3.0.2 h1:sB4LcE3Php7LkhZwN0n2p8GCwZe92PEQutdbGURf5xc= github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -61,6 +66,7 @@ github.com/creack/goselect v0.1.1 h1:tiSSgKE1eJtxs1h/VgGQWuXUP0YS4CDIFMp6vaI1ls0 github.com/creack/goselect v0.1.1/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/daaku/go.zipexe v1.0.0 h1:VSOgZtH418pH9L16hC/JrgSNJbbAL26pj7lmD1+CGdY= github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -74,6 +80,7 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fluxio/iohelpers v0.0.0-20160419043813-3a4dd67a94d2/go.mod h1:c7sGIpDbBo0JZZ1tKyC1p5smWf8QcUjK4bFtZjHAecg= github.com/fluxio/multierror v0.0.0-20160419044231-9c68d39025e5/go.mod h1:BEUDl7FG1cc76sM0J0x8dqr6RhiL4uqvk6oFkwuNyuM= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= @@ -116,6 +123,7 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -123,6 +131,7 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/h2non/filetype v1.0.6/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= +github.com/h2non/filetype v1.0.8 h1:le8gpf+FQA0/DlDABbtisA1KiTS0Xi+YSC/E8yY3Y14= github.com/h2non/filetype v1.0.8/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= @@ -139,6 +148,7 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= @@ -151,13 +161,17 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/clock v0.0.0-20180524022203-d293bb356ca4/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA= github.com/juju/errors v0.0.0-20150916125642-1b5e39b83d18/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5 h1:rhqTjzJlm7EbkELJDKMTU7udov+Se0xZkWmugr6zGok= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20170605014607-8232ab8918d9/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/retry v0.0.0-20160928201858-1998d01ba1c3/go.mod h1:OohPQGsr4pnxwD5YljhQ+TZnuVRYpa5irjugL1Yuif4= +github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0 h1:+WWUkhnTjV6RNOxkcwk79qrjeyHEHvBzlneueBsatX4= github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbNBraRLZEhoQwFLMrjK8PSlO4D3nDjKYXo= github.com/juju/utils v0.0.0-20180808125547-9dfc6dbfb02b/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= github.com/juju/version v0.0.0-20161031051906-1f41e27e54f2/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U= @@ -175,6 +189,7 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84/go.mod h1:Pb6XcsXyropB9LNHhnqaknG/vEwYztLkQzVCHv8sQ3M= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -199,6 +214,7 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -210,6 +226,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -217,6 +234,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583 h1:ogHi8YLNeIxABOaH6UgtbwkODheuAK+ErP8gWXYQVj0= github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583/go.mod h1:sFPiU/UgDcsQVu3vkqpZLCXWFwUoQRpHGu9ATihPAl0= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -247,21 +265,27 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v1.0.1-0.20200710201246-675ae5f5a98c/go.mod h1:aeNIJzz/GSSVlS+gpCpQWZ83BKbsoW57mr90+YthtkQ= github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -272,6 +296,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -280,8 +305,11 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +go.bug.st/cleanup v1.0.0 h1:XVj1HZxkBXeq3gMT7ijWUpHyIC1j8XAoNSyQ06CskgA= go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= +go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= +go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18 h1:F1qxtaFuewctYc/SsHRn+Q7Dtwi+yJGPgVq8YLtQz98= go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18/go.mod h1:Cx1VqMtEhE9pIkEyUj3LVVVPkv89dgW8aCKrRPDR/uE= go.bug.st/serial.v1 v0.0.0-20180827123349-5f7892a7bb45/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -298,6 +326,7 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200406173513-056763e48d71 h1:DOmugCavvUtnUD114C1Wh+UgTgQZ4pMLzXxi1pSt+/Y= golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -312,7 +341,6 @@ golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTk golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -442,8 +470,10 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20160818015218-f2b6f6c918c4/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= @@ -456,6 +486,7 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/indexes/indexes.go b/indexes/indexes.go new file mode 100644 index 00000000..60a4d35f --- /dev/null +++ b/indexes/indexes.go @@ -0,0 +1,140 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package indexes + +import ( + "errors" + "fmt" + "io/ioutil" + "net/url" + "path" + + "github.com/arduino/FirmwareUploader/cli/globals" + "github.com/arduino/arduino-cli/arduino/cores/packageindex" + "github.com/arduino/arduino-cli/arduino/security" + "github.com/arduino/arduino-cli/arduino/utils" + "github.com/arduino/go-paths-helper" + "go.bug.st/downloader/v2" +) + +func DownloadIndex() error { + indexpath := paths.New("/tmp/fwuploader") // TODO: place to download the indexes + + urls := globals.DefaultIndexURL + for _, u := range urls { + + URL, err := utils.URLParse(u) + if err != nil { + return fmt.Errorf("unable to parse URL %s: %s", u, err) + } + + // Download index + var tmp *paths.Path // TODO rename tmp to something meaningful + if tmpFile, err := ioutil.TempFile("", ""); err != nil { + return fmt.Errorf("creating temp file for index download: %s", err) + } else if err := tmpFile.Close(); err != nil { + return fmt.Errorf("creating temp file for index download: %s", err) + } else { + tmp = paths.New(tmpFile.Name()) + } + defer tmp.Remove() // not needed ? + d, err := downloader.Download(tmp.String(), URL.String()) + if err != nil { + return fmt.Errorf("downloading index %s: %s", u, err) + } + indexPath := indexpath.Join(path.Base(URL.Path)) + Download(d) + if d.Error() != nil { + return fmt.Errorf("downloading index %s: %s", URL, d.Error()) + } + + // Check for signature + var tmpSig *paths.Path + var indexSigPath *paths.Path + + URLSig, err := url.Parse(URL.String()) + if err != nil { + return fmt.Errorf("parsing url for index signature check: %s", err) + } + URLSig.Path += ".sig" + + if t, err := ioutil.TempFile("", ""); err != nil { + return fmt.Errorf("creating temp file for index signature download: %s", err) + } else if err := t.Close(); err != nil { + return fmt.Errorf("creating temp file for index signature download: %s", err) + } else { + tmpSig = paths.New(t.Name()) + } + // defer tmpSig.Remove() // not needed ? + + d, err = downloader.Download(tmpSig.String(), URLSig.String()) + if err != nil { + return fmt.Errorf("downloading index signature %s: %s", URLSig, err) + } + + indexSigPath = indexpath.Join(path.Base(URLSig.Path)) + Download(d) + if d.Error() != nil { + return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) + } + + valid, _, err := security.VerifyArduinoDetachedSignature(tmp, tmpSig) + if err != nil { + return fmt.Errorf("signature verification error: %s", err) + } + if !valid { + return fmt.Errorf("index has an invalid signature") + } + // TODO: required?? + if _, err := packageindex.LoadIndex(tmp); err != nil { + return fmt.Errorf("invalid package index in %s: %s", URL, err) + } + + if err := indexpath.MkdirAll(); err != nil { + return fmt.Errorf("can't create data directory %s: %s", indexpath, err) + } + + if err := tmp.CopyTo(indexPath); err != nil { + return fmt.Errorf("saving downloaded index %s: %s", URL, err) + } + if tmpSig != nil { + if err := tmpSig.CopyTo(indexSigPath); err != nil { + return fmt.Errorf("saving downloaded index signature: %s", err) + } + } + } + return nil +} + +func Download(d *downloader.Downloader) error { + if d == nil { + // This signal means that the file is already downloaded + return nil + } + err := d.Run() + if err != nil { + return fmt.Errorf("failed to download file from %s : %s", d.URL, err) + } + // The URL is not reachable for some reason + if d.Resp.StatusCode >= 400 && d.Resp.StatusCode <= 599 { + return errors.New(d.Resp.Status) + } + return nil +} diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go new file mode 100644 index 00000000..a1b45de9 --- /dev/null +++ b/indexes/indexes_test.go @@ -0,0 +1,28 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package indexes + +import ( + "testing" +) + +func TestDownloadIndex(t *testing.T) { + +} From 65ec40b6c742bae4e9a6c0a81f319bd1bb52cce5 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 27 May 2021 17:21:58 +0200 Subject: [PATCH 02/23] DownloadIndex takes the url as parameter now --- cli/cli.go | 5 +- indexes/indexes.go | 151 ++++++++++++++++++++++----------------------- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/cli/cli.go b/cli/cli.go index 3e6988b1..0778c336 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -28,6 +28,7 @@ import ( "strings" "time" + "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/cli/version" "github.com/arduino/FirmwareUploader/indexes" "github.com/arduino/FirmwareUploader/modules/nina" @@ -211,7 +212,9 @@ func preRun(cmd *cobra.Command, args []string) { logrus.SetLevel(lvl) } - indexes.DownloadIndex() + for _, u := range globals.DefaultIndexURL { + indexes.DownloadIndex(u) + } // // Prepare the Feedback system diff --git a/indexes/indexes.go b/indexes/indexes.go index 60a4d35f..3a64480c 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -26,7 +26,6 @@ import ( "net/url" "path" - "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/arduino-cli/arduino/utils" @@ -34,91 +33,89 @@ import ( "go.bug.st/downloader/v2" ) -func DownloadIndex() error { - indexpath := paths.New("/tmp/fwuploader") // TODO: place to download the indexes +// DownloadIndex will download the index in the os temp directory +func DownloadIndex(indexURL string) error { + // TODO: handle if path is already present + indexpath := paths.New(paths.TempDir().String(), "fwuploader") - urls := globals.DefaultIndexURL - for _, u := range urls { - - URL, err := utils.URLParse(u) - if err != nil { - return fmt.Errorf("unable to parse URL %s: %s", u, err) - } - - // Download index - var tmp *paths.Path // TODO rename tmp to something meaningful - if tmpFile, err := ioutil.TempFile("", ""); err != nil { - return fmt.Errorf("creating temp file for index download: %s", err) - } else if err := tmpFile.Close(); err != nil { - return fmt.Errorf("creating temp file for index download: %s", err) - } else { - tmp = paths.New(tmpFile.Name()) - } - defer tmp.Remove() // not needed ? - d, err := downloader.Download(tmp.String(), URL.String()) - if err != nil { - return fmt.Errorf("downloading index %s: %s", u, err) - } - indexPath := indexpath.Join(path.Base(URL.Path)) - Download(d) - if d.Error() != nil { - return fmt.Errorf("downloading index %s: %s", URL, d.Error()) - } + URL, err := utils.URLParse(indexURL) + if err != nil { + return fmt.Errorf("unable to parse URL %s: %s", indexURL, err) + } - // Check for signature - var tmpSig *paths.Path - var indexSigPath *paths.Path + // Download index + var tmp *paths.Path // TODO rename tmp to something meaningful + if tmpFile, err := ioutil.TempFile("", ""); err != nil { + return fmt.Errorf("creating temp file for index download: %s", err) + } else if err := tmpFile.Close(); err != nil { + return fmt.Errorf("creating temp file for index download: %s", err) + } else { + tmp = paths.New(tmpFile.Name()) + } + defer tmp.Remove() + d, err := downloader.Download(tmp.String(), URL.String()) + if err != nil { + return fmt.Errorf("downloading index %s: %s", indexURL, err) + } + indexPath := indexpath.Join(path.Base(URL.Path)) + Download(d) + if d.Error() != nil { + return fmt.Errorf("downloading index %s: %s", URL, d.Error()) + } - URLSig, err := url.Parse(URL.String()) - if err != nil { - return fmt.Errorf("parsing url for index signature check: %s", err) - } - URLSig.Path += ".sig" - - if t, err := ioutil.TempFile("", ""); err != nil { - return fmt.Errorf("creating temp file for index signature download: %s", err) - } else if err := t.Close(); err != nil { - return fmt.Errorf("creating temp file for index signature download: %s", err) - } else { - tmpSig = paths.New(t.Name()) - } - // defer tmpSig.Remove() // not needed ? + // Check for signature + var tmpSig *paths.Path + var indexSigPath *paths.Path - d, err = downloader.Download(tmpSig.String(), URLSig.String()) - if err != nil { - return fmt.Errorf("downloading index signature %s: %s", URLSig, err) - } + URLSig, err := url.Parse(URL.String()) + if err != nil { + return fmt.Errorf("parsing url for index signature check: %s", err) + } + URLSig.Path += ".sig" + + if t, err := ioutil.TempFile("", ""); err != nil { + return fmt.Errorf("creating temp file for index signature download: %s", err) + } else if err := t.Close(); err != nil { + return fmt.Errorf("creating temp file for index signature download: %s", err) + } else { + tmpSig = paths.New(t.Name()) + } + defer tmpSig.Remove() + d, err = downloader.Download(tmpSig.String(), URLSig.String()) + if err != nil { + return fmt.Errorf("downloading index signature %s: %s", URLSig, err) + } - indexSigPath = indexpath.Join(path.Base(URLSig.Path)) - Download(d) - if d.Error() != nil { - return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) - } + indexSigPath = indexpath.Join(path.Base(URLSig.Path)) + Download(d) + if d.Error() != nil { + return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) + } - valid, _, err := security.VerifyArduinoDetachedSignature(tmp, tmpSig) - if err != nil { - return fmt.Errorf("signature verification error: %s", err) - } - if !valid { - return fmt.Errorf("index has an invalid signature") - } - // TODO: required?? - if _, err := packageindex.LoadIndex(tmp); err != nil { - return fmt.Errorf("invalid package index in %s: %s", URL, err) - } + valid, _, err := security.VerifyArduinoDetachedSignature(tmp, tmpSig) + if err != nil { + return fmt.Errorf("signature verification error: %s", err) + } + if !valid { + return fmt.Errorf("index has an invalid signature") + } + // TODO: required?? + if _, err := packageindex.LoadIndex(tmp); err != nil { + return fmt.Errorf("invalid package index in %s: %s", URL, err) + } - if err := indexpath.MkdirAll(); err != nil { - return fmt.Errorf("can't create data directory %s: %s", indexpath, err) - } + if err := indexpath.MkdirAll(); err != nil { //does not overwrite + return fmt.Errorf("can't create data directory %s: %s", indexpath, err) + } - if err := tmp.CopyTo(indexPath); err != nil { - return fmt.Errorf("saving downloaded index %s: %s", URL, err) - } - if tmpSig != nil { - if err := tmpSig.CopyTo(indexSigPath); err != nil { - return fmt.Errorf("saving downloaded index signature: %s", err) - } + if err := tmp.CopyTo(indexPath); err != nil { //does overwrite if already present + return fmt.Errorf("saving downloaded index %s: %s", URL, err) + } + if tmpSig != nil { + if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite if already present + return fmt.Errorf("saving downloaded index signature: %s", err) } + // } } return nil } From 516af4139e4b116a572017fc41173aa27a271f84 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 27 May 2021 17:25:05 +0200 Subject: [PATCH 03/23] minor enhancements --- indexes/indexes.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/indexes/indexes.go b/indexes/indexes.go index 3a64480c..7c3dd48e 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -35,7 +35,6 @@ import ( // DownloadIndex will download the index in the os temp directory func DownloadIndex(indexURL string) error { - // TODO: handle if path is already present indexpath := paths.New(paths.TempDir().String(), "fwuploader") URL, err := utils.URLParse(indexURL) @@ -44,16 +43,16 @@ func DownloadIndex(indexURL string) error { } // Download index - var tmp *paths.Path // TODO rename tmp to something meaningful + var tmpIndex *paths.Path if tmpFile, err := ioutil.TempFile("", ""); err != nil { return fmt.Errorf("creating temp file for index download: %s", err) } else if err := tmpFile.Close(); err != nil { return fmt.Errorf("creating temp file for index download: %s", err) } else { - tmp = paths.New(tmpFile.Name()) + tmpIndex = paths.New(tmpFile.Name()) } - defer tmp.Remove() - d, err := downloader.Download(tmp.String(), URL.String()) + defer tmpIndex.Remove() + d, err := downloader.Download(tmpIndex.String(), URL.String()) if err != nil { return fmt.Errorf("downloading index %s: %s", indexURL, err) } @@ -92,15 +91,14 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) } - valid, _, err := security.VerifyArduinoDetachedSignature(tmp, tmpSig) + valid, _, err := security.VerifyArduinoDetachedSignature(tmpIndex, tmpSig) if err != nil { return fmt.Errorf("signature verification error: %s", err) } if !valid { return fmt.Errorf("index has an invalid signature") } - // TODO: required?? - if _, err := packageindex.LoadIndex(tmp); err != nil { + if _, err := packageindex.LoadIndex(tmpIndex); err != nil { return fmt.Errorf("invalid package index in %s: %s", URL, err) } @@ -108,14 +106,13 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("can't create data directory %s: %s", indexpath, err) } - if err := tmp.CopyTo(indexPath); err != nil { //does overwrite if already present + if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite if already present return fmt.Errorf("saving downloaded index %s: %s", URL, err) } if tmpSig != nil { if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite if already present return fmt.Errorf("saving downloaded index signature: %s", err) } - // } } return nil } From 0289d6c17d53030946cce40376ffc5ca819ede78 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 27 May 2021 18:45:26 +0200 Subject: [PATCH 04/23] added extensions and removed a warning, added a simple test --- indexes/indexes.go | 9 ++++++--- indexes/indexes_test.go | 10 +++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/indexes/indexes.go b/indexes/indexes.go index 7c3dd48e..9893db05 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -49,7 +49,8 @@ func DownloadIndex(indexURL string) error { } else if err := tmpFile.Close(); err != nil { return fmt.Errorf("creating temp file for index download: %s", err) } else { - tmpIndex = paths.New(tmpFile.Name()) + tmpIndex = paths.New(tmpFile.Name() + ".json") + // TODO remove tmpFile } defer tmpIndex.Remove() d, err := downloader.Download(tmpIndex.String(), URL.String()) @@ -77,7 +78,8 @@ func DownloadIndex(indexURL string) error { } else if err := t.Close(); err != nil { return fmt.Errorf("creating temp file for index signature download: %s", err) } else { - tmpSig = paths.New(t.Name()) + tmpSig = paths.New(t.Name() + ".sig") + // TODO remove tmpSig } defer tmpSig.Remove() d, err = downloader.Download(tmpSig.String(), URLSig.String()) @@ -98,7 +100,8 @@ func DownloadIndex(indexURL string) error { if !valid { return fmt.Errorf("index has an invalid signature") } - if _, err := packageindex.LoadIndex(tmpIndex); err != nil { + // the signature verification is already done above + if _, err := packageindex.LoadIndexNoSign(tmpIndex); err != nil { return fmt.Errorf("invalid package index in %s: %s", URL, err) } diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go index a1b45de9..b3eb343f 100644 --- a/indexes/indexes_test.go +++ b/indexes/indexes_test.go @@ -21,8 +21,16 @@ package indexes import ( "testing" + + "github.com/arduino/FirmwareUploader/cli/globals" ) func TestDownloadIndex(t *testing.T) { - + for _, u := range globals.DefaultIndexURL { + t.Logf("testing with index: %s", u) + err := DownloadIndex(u) + if err != nil { + t.Errorf("Downloading of %s index failed, encountered following error: %s", u, err) + } + } } From a4622601b6f59947cff325fb90693cdb89ef6ff1 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Fri, 28 May 2021 17:39:38 +0200 Subject: [PATCH 05/23] TestDownloadIndex should be complete, applied suggestions by Silvano --- cli/globals/globals.go | 3 ++- indexes/indexes.go | 50 ++++++++++++++++++----------------------- indexes/indexes_test.go | 31 ++++++++++++++++++++----- 3 files changed, 50 insertions(+), 34 deletions(-) diff --git a/cli/globals/globals.go b/cli/globals/globals.go index 5ef6bf51..9f2ef40b 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -21,5 +21,6 @@ package globals var DefaultIndexURL = []string{ "https://downloads.arduino.cc/packages/package_index.json", - // "board_index.json", + // "http://downloads-dev.arduino.cc/arduino-fwuploader/arduino-fwuploader/boards/board_index.json", // the index currently do not have the signature + // There is no sugnature, and the path is not correct see fwuploader/fwuploader. Also add downloads-dev } diff --git a/indexes/indexes.go b/indexes/indexes.go index 9893db05..44f09322 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -22,8 +22,8 @@ package indexes import ( "errors" "fmt" - "io/ioutil" "net/url" + "os" "path" "github.com/arduino/arduino-cli/arduino/cores/packageindex" @@ -35,7 +35,7 @@ import ( // DownloadIndex will download the index in the os temp directory func DownloadIndex(indexURL string) error { - indexpath := paths.New(paths.TempDir().String(), "fwuploader") + fwUploaderPath := paths.TempDir().Join("fwuploader") URL, err := utils.URLParse(indexURL) if err != nil { @@ -44,50 +44,44 @@ func DownloadIndex(indexURL string) error { // Download index var tmpIndex *paths.Path - if tmpFile, err := ioutil.TempFile("", ""); err != nil { - return fmt.Errorf("creating temp file for index download: %s", err) - } else if err := tmpFile.Close(); err != nil { + if tmpFile, err := paths.MkTempFile(nil, ""); err != nil { return fmt.Errorf("creating temp file for index download: %s", err) } else { tmpIndex = paths.New(tmpFile.Name() + ".json") - // TODO remove tmpFile + defer os.Remove(tmpFile.Name()) + defer tmpIndex.Remove() } - defer tmpIndex.Remove() d, err := downloader.Download(tmpIndex.String(), URL.String()) if err != nil { return fmt.Errorf("downloading index %s: %s", indexURL, err) } - indexPath := indexpath.Join(path.Base(URL.Path)) + indexPath := fwUploaderPath.Join(path.Base(URL.Path)) Download(d) if d.Error() != nil { return fmt.Errorf("downloading index %s: %s", URL, d.Error()) } // Check for signature - var tmpSig *paths.Path - var indexSigPath *paths.Path - - URLSig, err := url.Parse(URL.String()) + sigURL, err := url.Parse(URL.String()) if err != nil { - return fmt.Errorf("parsing url for index signature check: %s", err) + return fmt.Errorf("unable to parse URL %s: %s", sigURL, err) } - URLSig.Path += ".sig" + sigURL.Path += ".sig" - if t, err := ioutil.TempFile("", ""); err != nil { - return fmt.Errorf("creating temp file for index signature download: %s", err) - } else if err := t.Close(); err != nil { + var tmpSig *paths.Path + if t, err := paths.MkTempFile(nil, ""); err != nil { return fmt.Errorf("creating temp file for index signature download: %s", err) } else { tmpSig = paths.New(t.Name() + ".sig") - // TODO remove tmpSig + defer tmpSig.Remove() + defer os.Remove(t.Name()) } - defer tmpSig.Remove() - d, err = downloader.Download(tmpSig.String(), URLSig.String()) + d, err = downloader.Download(tmpSig.String(), sigURL.String()) if err != nil { - return fmt.Errorf("downloading index signature %s: %s", URLSig, err) + return fmt.Errorf("downloading index signature %s: %s", sigURL, err) } - indexSigPath = indexpath.Join(path.Base(URLSig.Path)) + indexSigPath := fwUploaderPath.Join(path.Base(sigURL.Path)) Download(d) if d.Error() != nil { return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) @@ -98,22 +92,22 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("signature verification error: %s", err) } if !valid { - return fmt.Errorf("index has an invalid signature") + return fmt.Errorf("index \"%s\" has an invalid signature", sigURL) } - // the signature verification is already done above + // the signature verification is already done with VerifyArduinoDetachedSignature if _, err := packageindex.LoadIndexNoSign(tmpIndex); err != nil { return fmt.Errorf("invalid package index in %s: %s", URL, err) } - if err := indexpath.MkdirAll(); err != nil { //does not overwrite - return fmt.Errorf("can't create data directory %s: %s", indexpath, err) + if err := fwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present + return fmt.Errorf("can't create data directory %s: %s", fwUploaderPath, err) } - if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite if already present + if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite return fmt.Errorf("saving downloaded index %s: %s", URL, err) } if tmpSig != nil { - if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite if already present + if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite return fmt.Errorf("saving downloaded index signature: %s", err) } } diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go index b3eb343f..40a76c54 100644 --- a/indexes/indexes_test.go +++ b/indexes/indexes_test.go @@ -20,17 +20,38 @@ package indexes import ( + "net/url" + "os" + "path" "testing" - "github.com/arduino/FirmwareUploader/cli/globals" + "github.com/arduino/arduino-cli/arduino/utils" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" ) +var DefaultIndexURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json", + // "http://downloads-dev.arduino.cc/arduino-fwuploader/arduino-fwuploader/boards/board_index.json", // the index currently do not have the signature + // There is no sugnature, and the path is not correct see fwuploader/fwuploader. Also add downloads-dev +} + func TestDownloadIndex(t *testing.T) { - for _, u := range globals.DefaultIndexURL { + for _, u := range DefaultIndexURL { t.Logf("testing with index: %s", u) err := DownloadIndex(u) - if err != nil { - t.Errorf("Downloading of %s index failed, encountered following error: %s", u, err) - } + require.NoError(t, err) + indexPath := paths.TempDir().Join("fwuploader") + require.DirExists(t, indexPath.String()) + URL, err := utils.URLParse(u) + require.NoError(t, err) + packageIndex := indexPath.Join(path.Base(URL.Path)).String() + require.FileExists(t, packageIndex) + sigURL, err := url.Parse(URL.String()) + require.NoError(t, err) + sigURL.Path += ".sig" + signature := indexPath.Join(path.Base(sigURL.Path)).String() + require.FileExists(t, signature) + os.RemoveAll(indexPath.String()) // cleanup afer tests } } From c7ef491b950a1ab6f6fd0417804c84551045f370 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 3 Jun 2021 19:44:06 +0200 Subject: [PATCH 06/23] `DownloadIndex` func should be complete. Tests are fine and we download gzipped version of the index --- cli/globals/globals.go | 7 +- go.mod | 5 +- go.sum | 7 +- .../module_firmware_index_public.gpg.key | Bin 0 -> 1754 bytes indexes/indexes.go | 100 ++++++++++++------ indexes/indexes_test.go | 26 ++--- indexes/rice-box.go | 44 ++++++++ 7 files changed, 132 insertions(+), 57 deletions(-) create mode 100644 indexes/gpg_keys/module_firmware_index_public.gpg.key create mode 100644 indexes/rice-box.go diff --git a/cli/globals/globals.go b/cli/globals/globals.go index 9f2ef40b..a231dbd0 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -19,8 +19,7 @@ package globals -var DefaultIndexURL = []string{ - "https://downloads.arduino.cc/packages/package_index.json", - // "http://downloads-dev.arduino.cc/arduino-fwuploader/arduino-fwuploader/boards/board_index.json", // the index currently do not have the signature - // There is no sugnature, and the path is not correct see fwuploader/fwuploader. Also add downloads-dev +var DefaultIndexGZURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json.gz", + "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", } diff --git a/go.mod b/go.mod index 42416c1c..a8909014 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,9 @@ go 1.14 replace go.bug.st/serial => github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e require ( - github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d - github.com/arduino/go-paths-helper v1.5.0 + github.com/arduino/arduino-cli v0.0.0-20210603144340-aef5a54882fa + github.com/arduino/go-paths-helper v1.6.0 + github.com/cmaglie/go.rice v1.0.3 github.com/mattn/go-colorable v0.1.8 github.com/pkg/errors v0.9.1 github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 diff --git a/go.sum b/go.sum index c15e035a..9da9dc2a 100644 --- a/go.sum +++ b/go.sum @@ -21,13 +21,14 @@ github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/g github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d h1:JwB+f71HvhMs2GG7/675wdr8XWQStHzI5UX2mWJsl9Y= -github.com/arduino/arduino-cli v0.0.0-20210526080233-c342eacae40d/go.mod h1:HNbHWr7qq+9M2rhzBUJIBIpCMRlB6+mptNDLMDZNlG0= +github.com/arduino/arduino-cli v0.0.0-20210603144340-aef5a54882fa h1:DvyTptT9ftE3wLIsg5xfh7okLWicmV2pSiVcZjuStJQ= +github.com/arduino/arduino-cli v0.0.0-20210603144340-aef5a54882fa/go.mod h1:HNbHWr7qq+9M2rhzBUJIBIpCMRlB6+mptNDLMDZNlG0= github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.5.0 h1:RVo189hD+GhUS1rQ3gixwK1nSbvVR8MGIGa7Gxv2bdM= github.com/arduino/go-paths-helper v1.5.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.6.0 h1:S7/d7DqB9XlnvF9KrgSiGmo2oWKmYW6O/DTjj3Bijx4= +github.com/arduino/go-paths-helper v1.6.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/arduino/go-properties-orderedmap v1.1.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-properties-orderedmap v1.3.0 h1:4No/vQopB36e7WUIk6H6TxiSEJPiMrVOCZylYmua39o= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= diff --git a/indexes/gpg_keys/module_firmware_index_public.gpg.key b/indexes/gpg_keys/module_firmware_index_public.gpg.key new file mode 100644 index 0000000000000000000000000000000000000000..22fb62e0c35977167febd1056ddd2f51967650ee GIT binary patch literal 1754 zcmajeSu`7n0)SyjkOWntjFQo~6sTw!p>?-&&zZOT{=fa_D+FZndp1G101>{WaWW}s3?g=(o5U!e zX%28?rRLu&%kC4q5B{d5qtR1u^-%&4DOT$7#o|ZLmG(reX>wETWbkT!@x|~xHVxAA z4dqG>L4PS!QdUopBxlbnx|^i&c2}=$zhRlRQmjHe7u#8`J1?wB&YK?6+?_6DQ%C9h zmPnxy<@CjhDwI#D={{*pDj@52B~n@Y2$kjL7$MadjQuLpN2hQmK(Eo85jpxr*M?;3 z?Y86Q6l>PjDWskAS4?ZGT}T(gPhwS7JJMo3lyHk60?Y;FH_qeyTukjlTvWA9^1kSfS{6t)6||PdTIzvSe6`1_UfOl{j{$AaHBHrdTK ztoi@de9#=<8~2IrqZ2Heas78fCWuwn7lWVFj}57_{>LdU7n!rY8RTu!pPZuzFycj6 zF%K0-+c7xdsZX~aE_74z4qaX@#>JV$oi^ooqqQby4IAMy#<0}G4ddEh2_HFl@jw%Y zF!@U@<&gbNtUb1tNEfS-3fd{dI(-muVOl0M)Gk<^e>ji?gDdQW%a9I)3QxDj5KVz* zw~us4yE}(D?`f3q=*#7494BzD$kRw~Zyb zC1$i!j%=zapbb0yf!{N;=5lkC66@8DWuvqQe>?lGq9KCuH;|pPdeO&h?{6plQUo?_{go^MNJek4+JBY|cc5Y7MGK1M=EU%dmg z6uyX9or0xXJVo~milE`oCl!Ak^Cy0QpVpmDOpJJNCU_U`FJNF8Owxn9_VZe1U%bYB zF>%q}DWQ4Y5pSs;zB&vAhe2f$wQ%^Ls}~%{yI;(Tx z=l_6A12pkV{|gx6{{R#DJ0zPt5x#*whwUCYr3(0^uc>|zW3|HENu ziv3~M6$}{e@F&vvRa0iosQT4uJ$kp+JsxJ{WO zr%^PTpD&OktA6!FwXV1U|F|_OdmY-~xeUlQU-Nbv*QLHRDnzu9&!%swFlkPlj$KNe z5U2A_iN`Um4pyOU(eB;)+9{+X*kSSV#rzd}T z0^PyCl&5f4J*y2}a;@TaPF^LcD~|TfANWtiP>EGbHkjpGVnPFyDeBSV)>~q0N>CUIZ r>=f6M7hCFG5{;hNb{K*ZE%`XOq7e~eba=J90-bVo`c~wqTo~=2OlC~# literal 0 HcmV?d00001 diff --git a/indexes/indexes.go b/indexes/indexes.go index 44f09322..0291028a 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -20,16 +20,17 @@ package indexes import ( - "errors" "fmt" "net/url" "os" "path" + "strings" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/arduino-cli/arduino/utils" "github.com/arduino/go-paths-helper" + rice "github.com/cmaglie/go.rice" "go.bug.st/downloader/v2" ) @@ -43,36 +44,47 @@ func DownloadIndex(indexURL string) error { } // Download index + var tmpGZIndex *paths.Path + if tmpGZFile, err := paths.MkTempFile(nil, ""); err != nil { + return fmt.Errorf("creating temp file for compressed index download: %s", err) + } else { + tmpGZIndex = paths.New(tmpGZFile.Name()) + defer os.Remove(tmpGZFile.Name()) + defer tmpGZIndex.Remove() + } + d, err := downloader.Download(tmpGZIndex.String(), URL.String()) + if err != nil { + return fmt.Errorf("downloading index %s: %s", indexURL, err) + } + indexPath := fwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + if err := Download(d); err != nil || d.Error() != nil { + return fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) + } + + // Extract the real index var tmpIndex *paths.Path if tmpFile, err := paths.MkTempFile(nil, ""); err != nil { - return fmt.Errorf("creating temp file for index download: %s", err) + return fmt.Errorf("creating temp file for index extraction: %s", err) } else { - tmpIndex = paths.New(tmpFile.Name() + ".json") + tmpIndex = paths.New(tmpFile.Name()) defer os.Remove(tmpFile.Name()) defer tmpIndex.Remove() } - d, err := downloader.Download(tmpIndex.String(), URL.String()) - if err != nil { - return fmt.Errorf("downloading index %s: %s", indexURL, err) - } - indexPath := fwUploaderPath.Join(path.Base(URL.Path)) - Download(d) - if d.Error() != nil { - return fmt.Errorf("downloading index %s: %s", URL, d.Error()) + if err := paths.GUnzip(tmpGZIndex, tmpIndex); err != nil { + return fmt.Errorf("unzipping %s", URL) } - // Check for signature + // Download Signature sigURL, err := url.Parse(URL.String()) if err != nil { return fmt.Errorf("unable to parse URL %s: %s", sigURL, err) } - sigURL.Path += ".sig" - + sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") var tmpSig *paths.Path if t, err := paths.MkTempFile(nil, ""); err != nil { return fmt.Errorf("creating temp file for index signature download: %s", err) } else { - tmpSig = paths.New(t.Name() + ".sig") + tmpSig = paths.New(t.Name()) defer tmpSig.Remove() defer os.Remove(t.Name()) } @@ -80,29 +92,16 @@ func DownloadIndex(indexURL string) error { if err != nil { return fmt.Errorf("downloading index signature %s: %s", sigURL, err) } - indexSigPath := fwUploaderPath.Join(path.Base(sigURL.Path)) - Download(d) - if d.Error() != nil { - return fmt.Errorf("downloading index signature %s: %s", URL, d.Error()) - } - - valid, _, err := security.VerifyArduinoDetachedSignature(tmpIndex, tmpSig) - if err != nil { - return fmt.Errorf("signature verification error: %s", err) - } - if !valid { - return fmt.Errorf("index \"%s\" has an invalid signature", sigURL) + if err := Download(d); err != nil || d.Error() != nil { + return fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) } - // the signature verification is already done with VerifyArduinoDetachedSignature - if _, err := packageindex.LoadIndexNoSign(tmpIndex); err != nil { - return fmt.Errorf("invalid package index in %s: %s", URL, err) + if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { + return fmt.Errorf("signature verification failed: %s", err) } - if err := fwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present return fmt.Errorf("can't create data directory %s: %s", fwUploaderPath, err) } - if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite return fmt.Errorf("saving downloaded index %s: %s", URL, err) } @@ -119,13 +118,44 @@ func Download(d *downloader.Downloader) error { // This signal means that the file is already downloaded return nil } - err := d.Run() - if err != nil { + if err := d.Run(); err != nil { return fmt.Errorf("failed to download file from %s : %s", d.URL, err) } // The URL is not reachable for some reason if d.Resp.StatusCode >= 400 && d.Resp.StatusCode <= 599 { - return errors.New(d.Resp.Status) + return fmt.Errorf(d.Resp.Status) + } + return nil +} + +func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { + var valid bool + var err error + if path.Base(URL.Path) == "package_index.json.gz" { + valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) + // the signature verification is already done above + if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { + return fmt.Errorf("invalid package index: %s", err) + } + } else if path.Base(URL.Path) == "module_firmware_index.json.gz" { + keysBox, err := rice.FindBox("gpg_keys") + if err != nil { + return fmt.Errorf("could not find bundled signature keys") + } + key, err := keysBox.Open("module_firmware_index_public.gpg.key") + if err != nil { + return fmt.Errorf("could not find bundled signature keys") + } + valid, _, err = security.VerifySignature(targetPath, signaturePath, key) + //TODO missing something like packageindex.LoadIndexNoSign(targetPath) for firmware_module_index.json + } else { + return fmt.Errorf("index %s not supported", URL.Path) + } + if err != nil { + return fmt.Errorf("signature verification error: %s for index %s", err, URL) + } + if !valid { + return fmt.Errorf("index \"%s\" has an invalid signature", sigURL) } return nil } diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go index 40a76c54..a9f17c29 100644 --- a/indexes/indexes_test.go +++ b/indexes/indexes_test.go @@ -23,6 +23,7 @@ import ( "net/url" "os" "path" + "strings" "testing" "github.com/arduino/arduino-cli/arduino/utils" @@ -30,28 +31,27 @@ import ( "github.com/stretchr/testify/require" ) -var DefaultIndexURL = []string{ - "https://downloads.arduino.cc/packages/package_index.json", - // "http://downloads-dev.arduino.cc/arduino-fwuploader/arduino-fwuploader/boards/board_index.json", // the index currently do not have the signature - // There is no sugnature, and the path is not correct see fwuploader/fwuploader. Also add downloads-dev +var DefaultIndexGZURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json.gz", + "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", } func TestDownloadIndex(t *testing.T) { - for _, u := range DefaultIndexURL { + for _, u := range DefaultIndexGZURL { t.Logf("testing with index: %s", u) err := DownloadIndex(u) require.NoError(t, err) - indexPath := paths.TempDir().Join("fwuploader") - require.DirExists(t, indexPath.String()) + indexFolder := paths.TempDir().Join("fwuploader") + require.DirExists(t, indexFolder.String()) URL, err := utils.URLParse(u) require.NoError(t, err) - packageIndex := indexPath.Join(path.Base(URL.Path)).String() - require.FileExists(t, packageIndex) + indexPath := indexFolder.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + require.FileExists(t, indexPath.String()) sigURL, err := url.Parse(URL.String()) require.NoError(t, err) - sigURL.Path += ".sig" - signature := indexPath.Join(path.Base(sigURL.Path)).String() - require.FileExists(t, signature) - os.RemoveAll(indexPath.String()) // cleanup afer tests + sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") + signaturePath := indexFolder.Join(path.Base(sigURL.Path)).String() + require.FileExists(t, signaturePath) + defer os.RemoveAll(indexFolder.String()) // cleanup afer tests } } diff --git a/indexes/rice-box.go b/indexes/rice-box.go new file mode 100644 index 00000000..4421964a --- /dev/null +++ b/indexes/rice-box.go @@ -0,0 +1,44 @@ +// Code generated by rice embed-go; DO NOT EDIT. +package indexes + +import ( + "time" + + "github.com/cmaglie/go.rice/embedded" +) + +func init() { + + // define files + file2 := &embedded.EmbeddedFile{ + Filename: "module_firmware_index_public.gpg.key", + FileModTime: time.Unix(1622724649, 0), + + Content: string("\x99\x01\x8d\x04`\xb6\b\xe6\x01\f\x00\xddђ\x8c\x82\xd0\b\x10\x0f悹\xa5\u05f7iUԇ\x97j\xa3\x8f\xc4\x10k\a\xfe571±L\xee\x13\x01x\x10\xa0_\xf6J?`༁HE\x83\xb6\xaf\xd3nᗞ\x19u\xf2\xe2\xa8\b\xc2\xfe9Z\x92o:\xf6\x99&'.\x80\x15\x92\x8f\xda$]D\x89\xec\xf1\xe1,\xeb\xab\xd4F\xba\x96Lo`ܼ\xd4Z\xed\x9bN\x8cW\xe8_\x18\xe6\xed\xc04\xb6\xbe\xa0\u07b8x\n\xce'\x8aܦ\xaa9e\xa0E\xf3\x8c\xd0\x16i\x8eX\xa74'6\xf89\x8e[Uw\x16\xb4nH\xfd\x1aij\x96\xe5\xd2\x03\xa4:\xe8w\x91<\x9a,\xcb\x1a\xb1R\xeb~\xd9$\xae\xe3䖌\xed\x0f)E\xaf\xadY\x8c\x14u\xfb}++\xbf\xe4h\xaa\x8bZ;\x11\xb9z(ه\xe6\xebZn\x1cB\aI\x81\x14\xcbi\x1c\x04\xd0\x15\xecR\a\x03\x89\xe4q\x8d\x10ߧ\xa5\xf3\t\xb9\x01}\x1c\xddHYI7\x1b\xab\xff\xd33\xeeH\xa2:\x98\xef[\x84Ǣ\x05îhYp\xd41R\xff%Ue\xd4rA\x11\x12\xce\u0aa9_{\x87}\xb8\xd5F\xaam\U000c3552\xdeг\xc9\xff\xd3h\x95\x016͔-\xff\xb4\xe2\x03\xe6Ѝ\n\xae\b\xfd\xd8Dӣ{\n8\a\x8a \x89\xa3\xc0\x0e\t}óaG!H\xc3\xe5I\x15\x96\x83 \xd4s:\u007f5\xc2\xf38\uf44co\x92\x15t\xb8K\xca\xe6ʇ\xd8]\xe2pѪ\xf4\xdbJ\xe5=L\xa7\x00\x11\x01\x00\x01\xb4.Arduino Firmware Uploader \x89\x01\xce\x04\x13\x01\n\x008\x16!\x04\xc7$\xf3\x1a\u007f\xdf\xfc|\x90#\xb65\x82\xf2\xd7\xc7Ţ*s\x05\x02`\xb6\b\xe6\x02\x1b\x03\x05\v\t\b\a\x02\x06\x15\n\t\b\v\x02\x04\x16\x02\x03\x01\x02\x1e\x01\x02\x17\x80\x00\n\t\x10\x82\xf2\xd7\xc7Ţ*s۱\v\xff^\xa8\t\x03\xff\xd9z\r֒XR\xff:\x9d\u007f\xe8\x1e\xf2J=\xc4\xeaW\xa2\xbb\xeb\xe2}\aƴ\xb6Rز\xe3h\xfa\xb7\xf5\xb7\u007f\xc3~\xef\xe2e7n\x0e\x8b0\xbdp\x8d\x03\u0530\xc4{a\xd3<}o\xb0N\"\xfc\\\x934\x91\xeb\xe8mdDǃ\x91$\x01@\xecwL\xc5\xf7$ϼG\\\v\xd5\xefMv\xdb\xc1\xa2aT\xc0cYB\x9e\x8dr\xed\xbb'\u007f@\xe3\xb6W1O\v\xa3\xb9\xcc\x16v\xe7B\xaf\xacp\xee\xe5a\x11lDTt!\x1f\xb8\xa5\b\xf3\xe8HSH\xafr\xb3\x10\xae\x16m\xed\xa3HV\xea\x05Y\xc5K\x80\xb2\xaf\xdbL\x0fvɂ\x12\x1c#\xedu\x1a\x8c\xf5\n\x99\xfc\xe9\xd0 \xb6lFX\xf87\x8c\xf17c\x8c;\xf9\xa8\xa6C K\xb5\xb0_\xcbǣ\x19ʆ\xec\xa2\xc4\n$\xa0\x0e\x80#ڋEBHm\xec\xa19G\t!\x9a\x8f\\\x9b\xd0E\xc8\f\xb3[\xbfب\xb2\xaf\\\xbf\x93\xb8\x8f4\xf7\xd2\x10\x84\xa8\x132\xd0gٯ#\xa8\xcc{\xf3\x8a\\\b\xea\xdbF\xf8\\\xba\xcd\xc1)\xf0\xba\x00zO`\x80\xf2\xa0\x81\x10rsW\xcf\x1e\xd6\x11\xfb\xe8\x9a\xcb\xf0\x87\xa8\xb3a\xcfgI\x98\xccE\xcf\x1a\x11y\x06\xcb\xc9\xe34\bs\xdaw\x05J$(\x1b\xe0\xe6\xabNč1\xa4XB\x13\xc1\x13\xd76\x85\xf8O\xad\x96\x03\xe7R<ɽ\x8d\x8eٓ\x91&\x81\xb1-\xf9\x1by6ʵ\xff\x17\xa6\xb2w\xb9\x01\x8d\x04`\xb6\b\xe6\x01\f\x00ݿ\xd8;z\xf9\xe2d\xfe\xfb\xc7\x16=}D\xbcz\x9c< U|\xc7\xc96\x12?G\x83\xa8\x04\\\xc2n5\xb7p9e\xa6\xb9TIQ\x8f\xf1WJԻ>\xcaV(\x92\x98\xe29\xf9r\xd9U9fG\x92\x93\xfb\xe6t[\xb7k\xf1s:\xf2#\x91(\\0\xad\x1a\x03~-\xc5U\x95\x13\x9e\xe2p\a;\xb1\x1a\x90\xec\xc5|Ob\xfa\\Q\x15\xd44\x12ɛq1\x96Ɵ\xfb\x86S\xb9\x8b\x9f\x8b\xb0; 6`\u007f\xf5\x01\xaf\\ݖ\x0e4W\xd5\xddi@2\rf+\xe0\xf4\xe78\xdfR\x15\xaemt\x85\xfb\xe8\xd9Q>\x92\xfc\xd9\xf0C\x9f\xc6-&\x0f\x8el(\v\xa5\xb4pNE\xb3\x97Ku\x1d\x99^\xa2\v4\xf9\xe9B\xb9\xec$\xa0\xd5;f\xb8x\x97x43瀨Qiz\x04\x94S{\x137<.\xbe\x03\xddu\xdc \xe1\xd5\x12\x8aJ\x88:\xc2\xca\f:\x1c\x94\xd3$\xac\xd0hr\xea\x1c\xfc\xb0\xfc\xd2\xd2\xce_\xe5\xd2\xec\x19k\xdbG\x12GG\x82qbS\xda5F\xf6c\xd1fG~zd\x85s\x95\xc1wƢ_f7\xb9#T\xca'\x8c\xa2\x99\xcc\xf5\xc0\xc3\a~\xe60\xa3]\r\x125\x93\x11G\xd7{f\x9f=GYh\a\xf8K\xe2\xc8G\xba9\xf7\xe9V\x83U3ŝD\x87\xba:\u007fj\xec\x1dM估{\xc9\x11lۯ\x14\x1c\xb35\t\xf2|\x02\x05\xfcD]\x02\x98\x15\v\x12G\xc0\xa0\xc5\xe1\xd87\x14\xa1\x00\x11\x01\x00\x01\x89\x01\xb6\x04\x18\x01\n\x00 \x16!\x04\xc7$\xf3\x1a\u007f\xdf\xfc|\x90#\xb65\x82\xf2\xd7\xc7Ţ*s\x05\x02`\xb6\b\xe6\x02\x1b\f\x00\n\t\x10\x82\xf2\xd7\xc7Ţ*sO\x95\f\x00\xc9\xc4T\xeb\xc2\x1e&\xa6\x1c\x1f\xfd\x87g\bB-\x99\x93\xa7;d\rl\xdc!'ó\xe9=\x96S\xf7\x8e)GH\a\xcc79\x00\xf5\xdc])\xb0L\xddߋ\xd3\xdc\t\x81\xc0\xa8\x98\xe0JiF\xa8E\xect_\xfc^\xcd\xccH\xf5ڥ+\f\x90\xec۞r\xe7\x98[\x1f\xde\x0e\xdeo\bt\xe1厑U\xe3\xc1F\xc10i3\xf7CHx\x185\xd4R\xe1\xae\x12\x90\xed\xad\x8d\x01s\xa5I5FQ4\xce\xdbh\x02\a\xbb'\xe5\x1e1\x9aϗ\x97\x05\x82\x1b.*\xfb+\xb0\x9e\xb2a\x84\xbay\x8f\xe4\t\xb2`\xdf\x01\x8fI\xe3dV\xd18\xa2\x9c@\x99 \xb8\x92\xff\xd6M(ŨV\xe5\xbe\xf1\x96~\n\xe5\xbf^\x9f_\xf9\xa8\xb0\x12\xa66J\xbcd\xba\xa4Vo\xbenO\xe0,\x81\xeb\u007f!\x81\x8a6\x1c}9\x16B\x06y\xba\x89\xbb\xbc\xbe\x9aEVDNa\xb3\x83\xf6\x86\t\xeda\x9c!\x96\xe6\xe1`\xad>Y\x93L~\xed\xfb\x9d\x82.&\xd1g\x863\x1ef\x8e_m4\xa3Ť\\%\xd7@\xfb\xec\x92\xda'g\x88/\xe5\xe0\x18\xa3\xb9ַy\x8a\xd1b\x1c\xcc\xd7bR2~\f`B\x8d\xf2\x9e\xc3>\xc1\xe4\x12\\\x8cn:j\x8a\xfe\x1c\xf1\b%\xd4\x06\x1a\xccŎ\u007f\x95\xcc\xdc\x1b\x94\x06\xa7\x18\xbf\x88\v\xe2\x85Z\x9f\x9b\xe9.\xc0\x13\xb4`H\xbc\x12 \x96z\x15\x84n\xa6\xb4 {@\xf7*\xc1\xa6:\x85*\xd6Mx\xcf\x1et\xa8"), + } + + // define dirs + dir1 := &embedded.EmbeddedDir{ + Filename: "", + DirModTime: time.Unix(1622733813, 0), + ChildFiles: []*embedded.EmbeddedFile{ + file2, // "module_firmware_index_public.gpg.key" + + }, + } + + // link ChildDirs + dir1.ChildDirs = []*embedded.EmbeddedDir{} + + // register embeddedBox + embedded.RegisterEmbeddedBox(`gpg_keys`, &embedded.EmbeddedBox{ + Name: `gpg_keys`, + Time: time.Unix(1622733813, 0), + Dirs: map[string]*embedded.EmbeddedDir{ + "": dir1, + }, + Files: map[string]*embedded.EmbeddedFile{ + "module_firmware_index_public.gpg.key": file2, + }, + }) +} From b380b2717c655b8a6574bfebc7343980e2d6d577 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Fri, 4 Jun 2021 11:46:17 +0200 Subject: [PATCH 07/23] add first implementation of module_firmware_index struct to parse json --- .../module_firmware_index.go | 108 ++++++++++++++++++ .../module_firmware_index_test.go | 53 +++++++++ 2 files changed, 161 insertions(+) create mode 100644 module_firmware_index/module_firmware_index.go create mode 100644 module_firmware_index/module_firmware_index_test.go diff --git a/module_firmware_index/module_firmware_index.go b/module_firmware_index/module_firmware_index.go new file mode 100644 index 00000000..0b5d5d24 --- /dev/null +++ b/module_firmware_index/module_firmware_index.go @@ -0,0 +1,108 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package index + +import ( + "encoding/json" + + "github.com/arduino/arduino-cli/arduino/security" + "github.com/arduino/go-paths-helper" + "github.com/sirupsen/logrus" +) + +// Index represents Boards struct as seen from module_firmware_index.json file. +type Index struct { + Boards []indexBoard // correct? + IsTrusted bool +} + +// indexPackage represents a single entry from module_firmware_index.json file. +type indexBoard struct { + Fqbn string `json:"fqbn"` // TODO what's "required"? + Firmwares []indexFirmware `json:"firmware"` + LoaderSketch *indexLoaderSketch `json:"loader_sketch"` // single object? + Module string `json:"module"` + Name string `json:"name"` + Uploader string `json:"uploader"` + UploadTouch string `json:"upload.use_1200bps_touch"` // TODO remove "" in json otherwise is a string and not a bool + UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above + UploaderCommand string `json:"uploader.command"` +} + +// indexFirmware represents a single Firmware version from module_firmware_index.json file. +type indexFirmware struct { + Version string `json:"version"` // use `*semver.Version` instead but SARA version is giving problems + URL string `json:"url"` + Checksum string `json:"checksum"` + Size json.Number `json:"size"` +} + +// indexLoaderSketch represents the sketch used to upload the new firmware on a board. +type indexLoaderSketch struct { + URL string `json:"url"` + Checksum string `json:"checksum"` + Size json.Number `json:"size"` +} + +// LoadIndex reads a module_firmware_index.json from a file and returns the corresponding Index structure. +func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { + buff, err := jsonIndexFile.ReadFile() + if err != nil { + return nil, err + } + var index Index + err = json.Unmarshal(buff, &index) + if err != nil { + return nil, err + } + + jsonSignatureFile := jsonIndexFile.Parent().Join(jsonIndexFile.Base() + ".sig") + trusted, _, err := security.VerifyArduinoDetachedSignature(jsonIndexFile, jsonSignatureFile) + if err != nil { + logrus. + WithField("index", jsonIndexFile). + WithField("signatureFile", jsonSignatureFile). + WithError(err).Infof("Checking signature") + } else { + logrus. + WithField("index", jsonIndexFile). + WithField("signatureFile", jsonSignatureFile). + WithField("trusted", trusted).Infof("Checking signature") + index.IsTrusted = trusted + } + return &index, nil +} + +// LoadIndexNoSign reads a module_firmware_index.json from a file and returns the corresponding Index structure. +func LoadIndexNoSign(jsonIndexFile *paths.Path) (*[]indexBoard, error) { + buff, err := jsonIndexFile.ReadFile() + if err != nil { + return nil, err + } + var index []indexBoard + err = json.Unmarshal(buff, &index) + if err != nil { + return nil, err + } + + // index.IsTrusted = true + + return &index, nil +} diff --git a/module_firmware_index/module_firmware_index_test.go b/module_firmware_index/module_firmware_index_test.go new file mode 100644 index 00000000..3cc997ab --- /dev/null +++ b/module_firmware_index/module_firmware_index_test.go @@ -0,0 +1,53 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package index + +import ( + "os" + "path" + "strings" + "testing" + + "github.com/arduino/FirmwareUploader/indexes" + "github.com/arduino/arduino-cli/arduino/utils" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" +) + +var DefaultIndexGZURL = []string{ + "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", +} + +func TestIndexParsing(t *testing.T) { + // semver.WarnInvalidVersionWhenParsingRelaxed = true + for _, u := range DefaultIndexGZURL { + t.Logf("testing with index: %s", u) + err := indexes.DownloadIndex(u) // prepare for the test (indexes must be downloaded) + require.NoError(t, err) + indexFolder := paths.TempDir().Join("fwuploader") + URL, err := utils.URLParse(u) + require.NoError(t, err) + indexPath := indexFolder.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + require.FileExists(t, indexPath.String()) + _, e := LoadIndexNoSign(indexPath) + require.NoError(t, e) + defer os.RemoveAll(indexFolder.String()) + } +} From d4378d6f7e4dd7c6ee74492f7b16d218a191ba69 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Fri, 4 Jun 2021 12:18:26 +0200 Subject: [PATCH 08/23] general enhancements, fix `LoadIndex`, add test --- .../module_firmware_index.go | 41 +++++++++++-------- .../module_firmware_index_test.go | 8 +++- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/module_firmware_index/module_firmware_index.go b/module_firmware_index/module_firmware_index.go index 0b5d5d24..82cf5830 100644 --- a/module_firmware_index/module_firmware_index.go +++ b/module_firmware_index/module_firmware_index.go @@ -24,26 +24,27 @@ import ( "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/go-paths-helper" + rice "github.com/cmaglie/go.rice" "github.com/sirupsen/logrus" ) // Index represents Boards struct as seen from module_firmware_index.json file. type Index struct { - Boards []indexBoard // correct? + Boards []indexBoard `json:"-"` // correct? IsTrusted bool } // indexPackage represents a single entry from module_firmware_index.json file. type indexBoard struct { - Fqbn string `json:"fqbn"` // TODO what's "required"? - Firmwares []indexFirmware `json:"firmware"` - LoaderSketch *indexLoaderSketch `json:"loader_sketch"` // single object? - Module string `json:"module"` - Name string `json:"name"` - Uploader string `json:"uploader"` - UploadTouch string `json:"upload.use_1200bps_touch"` // TODO remove "" in json otherwise is a string and not a bool - UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above - UploaderCommand string `json:"uploader.command"` + Fqbn string `json:"fqbn"` + Firmwares []indexFirmware `json:"firmware"` + LoaderSketch indexLoaderSketch `json:"loader_sketch"` + Module string `json:"module"` + Name string `json:"name"` + Uploader string `json:"uploader"` + UploadTouch string `json:"upload.use_1200bps_touch"` // TODO remove "" in json otherwise is a string and not a bool + UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above + UploaderCommand string `json:"uploader.command"` } // indexFirmware represents a single Firmware version from module_firmware_index.json file. @@ -68,13 +69,21 @@ func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { return nil, err } var index Index - err = json.Unmarshal(buff, &index) + err = json.Unmarshal(buff, &index.Boards) if err != nil { return nil, err } jsonSignatureFile := jsonIndexFile.Parent().Join(jsonIndexFile.Base() + ".sig") - trusted, _, err := security.VerifyArduinoDetachedSignature(jsonIndexFile, jsonSignatureFile) + keysBox, err := rice.FindBox("gpg_keys") + if err != nil { + return nil, err + } + key, err := keysBox.Open("module_firmware_index_public.gpg.key") + if err != nil { + return nil, err + } + trusted, _, err := security.VerifySignature(jsonIndexFile, jsonSignatureFile, key) if err != nil { logrus. WithField("index", jsonIndexFile). @@ -91,18 +100,18 @@ func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { } // LoadIndexNoSign reads a module_firmware_index.json from a file and returns the corresponding Index structure. -func LoadIndexNoSign(jsonIndexFile *paths.Path) (*[]indexBoard, error) { +func LoadIndexNoSign(jsonIndexFile *paths.Path) (*Index, error) { buff, err := jsonIndexFile.ReadFile() if err != nil { return nil, err } - var index []indexBoard - err = json.Unmarshal(buff, &index) + var index Index + err = json.Unmarshal(buff, &index.Boards) if err != nil { return nil, err } - // index.IsTrusted = true + index.IsTrusted = true return &index, nil } diff --git a/module_firmware_index/module_firmware_index_test.go b/module_firmware_index/module_firmware_index_test.go index 3cc997ab..293e7c86 100644 --- a/module_firmware_index/module_firmware_index_test.go +++ b/module_firmware_index/module_firmware_index_test.go @@ -46,8 +46,14 @@ func TestIndexParsing(t *testing.T) { require.NoError(t, err) indexPath := indexFolder.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) require.FileExists(t, indexPath.String()) - _, e := LoadIndexNoSign(indexPath) + Index, e := LoadIndexNoSign(indexPath) require.NoError(t, e) + require.NotEmpty(t, Index) + + Index, e = LoadIndex(indexPath) + require.NoError(t, e) + require.NotEmpty(t, Index) + defer os.RemoveAll(indexFolder.String()) } } From 451617da336866709d2bd7d653c92da12d351861 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Fri, 4 Jun 2021 17:13:27 +0200 Subject: [PATCH 09/23] fixed circular include, uniformed test like in cli (index_test.go) --- indexes/indexes.go | 4 +- .../module_firmware_index.go | 8 +- .../module_firmware_index_test.go | 29 +- .../testdata/module_firmware_index.json | 455 ++++++++++++++++++ .../testdata/module_firmware_index.json.sig | Bin 0 -> 438 bytes 5 files changed, 472 insertions(+), 24 deletions(-) create mode 100644 module_firmware_index/testdata/module_firmware_index.json create mode 100644 module_firmware_index/testdata/module_firmware_index.json.sig diff --git a/indexes/indexes.go b/indexes/indexes.go index 0291028a..c918dbec 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -26,6 +26,7 @@ import ( "path" "strings" + fwindex "github.com/arduino/FirmwareUploader/module_firmware_index" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/arduino-cli/arduino/utils" @@ -147,7 +148,8 @@ func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL return fmt.Errorf("could not find bundled signature keys") } valid, _, err = security.VerifySignature(targetPath, signaturePath, key) - //TODO missing something like packageindex.LoadIndexNoSign(targetPath) for firmware_module_index.json + // the signature verification is already done above + fwindex.LoadIndexNoSign(targetPath) } else { return fmt.Errorf("index %s not supported", URL.Path) } diff --git a/module_firmware_index/module_firmware_index.go b/module_firmware_index/module_firmware_index.go index 82cf5830..64ad13dd 100644 --- a/module_firmware_index/module_firmware_index.go +++ b/module_firmware_index/module_firmware_index.go @@ -17,7 +17,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -package index +package fwindex import ( "encoding/json" @@ -30,7 +30,7 @@ import ( // Index represents Boards struct as seen from module_firmware_index.json file. type Index struct { - Boards []indexBoard `json:"-"` // correct? + Boards []indexBoard `json:"-"` IsTrusted bool } @@ -42,7 +42,7 @@ type indexBoard struct { Module string `json:"module"` Name string `json:"name"` Uploader string `json:"uploader"` - UploadTouch string `json:"upload.use_1200bps_touch"` // TODO remove "" in json otherwise is a string and not a bool + UploadTouch string `json:"upload.use_1200bps_touch"` // TODO replace "true" with true in json otherwise is a string and not a bool UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above UploaderCommand string `json:"uploader.command"` } @@ -75,7 +75,7 @@ func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { } jsonSignatureFile := jsonIndexFile.Parent().Join(jsonIndexFile.Base() + ".sig") - keysBox, err := rice.FindBox("gpg_keys") + keysBox, err := rice.FindBox("../indexes/gpg_keys") if err != nil { return nil, err } diff --git a/module_firmware_index/module_firmware_index_test.go b/module_firmware_index/module_firmware_index_test.go index 293e7c86..396febf2 100644 --- a/module_firmware_index/module_firmware_index_test.go +++ b/module_firmware_index/module_firmware_index_test.go @@ -17,16 +17,11 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -package index +package fwindex import ( - "os" - "path" - "strings" "testing" - "github.com/arduino/FirmwareUploader/indexes" - "github.com/arduino/arduino-cli/arduino/utils" "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" ) @@ -37,23 +32,19 @@ var DefaultIndexGZURL = []string{ func TestIndexParsing(t *testing.T) { // semver.WarnInvalidVersionWhenParsingRelaxed = true - for _, u := range DefaultIndexGZURL { - t.Logf("testing with index: %s", u) - err := indexes.DownloadIndex(u) // prepare for the test (indexes must be downloaded) - require.NoError(t, err) - indexFolder := paths.TempDir().Join("fwuploader") - URL, err := utils.URLParse(u) - require.NoError(t, err) - indexPath := indexFolder.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) - require.FileExists(t, indexPath.String()) - Index, e := LoadIndexNoSign(indexPath) + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + for _, indexFile := range list { + if indexFile.Ext() != ".json" { + continue + } + t.Logf("testing with index: %s", indexFile) + Index, e := LoadIndexNoSign(indexFile) require.NoError(t, e) require.NotEmpty(t, Index) - Index, e = LoadIndex(indexPath) + Index, e = LoadIndex(indexFile) require.NoError(t, e) require.NotEmpty(t, Index) - - defer os.RemoveAll(indexFolder.String()) } } diff --git a/module_firmware_index/testdata/module_firmware_index.json b/module_firmware_index/testdata/module_firmware_index.json new file mode 100644 index 00000000..38503734 --- /dev/null +++ b/module_firmware_index/testdata/module_firmware_index.json @@ -0,0 +1,455 @@ +[ + { + "fqbn": "arduino:samd:mkr1000", + "firmware": [ + { + "version": "19.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", + "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27", + "size": "412308" + }, + { + "version": "19.5.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", + "checksum": "SHA-256:e2e5aa2cf185745582002e2fed27c079d4228bc8d756281f43638c72061c9110", + "size": "413604" + }, + { + "version": "19.5.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", + "checksum": "SHA-256:146d3d5fccf65ff6d732e34077e56f1f0b2f69584fd8499db914ea11ed463042", + "size": "413604" + }, + { + "version": "19.6.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", + "checksum": "SHA-256:629a2553cb738be1424eaa707c00403ebce179fdb94008acec1f185a19a60c81", + "size": "359356" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", + "checksum": "SHA-256:1d904bf745c8df448358d70837a36ee8dec4c2a01e0e3b2ef8ef51c6a6c9d385", + "size": "16328" + }, + "module": "WINC1500", + "name": "Arduino MKR1000", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:mkrwifi1010", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkrwifi1010/loader.bin", + "checksum": "SHA-256:a4f9b0586bf78b8e1c5a6660df6b749d1ad4e3ee79ee4928371a465899a4a1c4", + "size": "13688" + }, + "module": "NINA", + "name": "Arduino MKR WiFi 1010", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:nano_33_iot", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.nano_33_iot/loader.bin", + "checksum": "SHA-256:f643fd763ba6aec835bb708669a6a5f5709357990d9eab6f4e6d5223ea3ca2a3", + "size": "14348" + }, + "module": "NINA", + "name": "Arduino NANO 33 IoT", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:mkrvidor4000", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "module": "NINA", + "name": "Arduino MKR Vidor 4000", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -I -U true -i -e -w \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:megaavr:uno2018", + "firmware": [ + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:bac23326dd4c3b6358ee88ff322da8c16e24e9917b8b0bbd18f663aacfb758cf", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:d1f496b185eff6b2ab2f839f6673afc80e1b3e3b2056fc8d9290a74895baf0e5", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:53668eb76be80fffdd67ced7cbb8ab231638b9ee428ae83568dfe48359008bb4", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:37b042cf759b52a96304c35af6a066038184533cc6256f795e92ed1b4fbda3d5", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:c538028f428b3fc219d2f7c0d9debacd07bababf43dbc28680ed452225ff4629", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:fe852e28eb0547a324069194dcce524b5a9f18adce2983bbe11a818a7ae8200a", + "size": "1041408" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:f11deb8ce5abe908353eebca7253c18359eb8ea2a601908d5cdb56bf035b4158", + "size": "1044480" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:7adff887267297dccc6c3ce77f41a986a23a1f7dfce9e8f3b70b3aa038371d47", + "size": "1132544" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:c026f967bd3add27716a1afaf729d669a5e093771098329bab2477980d6879b5", + "size": "1132544" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:6b7809357a57946638b271dd1b0b43a84cbcbea9b854d3ff093752fa0fe7b818", + "size": "1132544" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:b641c4f6f76ab4c7a529848da54f15b9b9857a9627920129a0a6f65edc465c67", + "size": "1133568" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.megaavr.uno2018/loader.hex", + "checksum": "SHA-256:0d4c2bf93da575245e92595b1d0f55db1fa79583f1c3361646da051dab020afe", + "size": "18954" + }, + "module": "NINA", + "name": "Arduino Uno WiFi Rev2", + "uploader": "arduino:avrdude@6.3.0-arduino17", + "uploader.command": "\"{uploader}\" \"-C{config.path}\" -v -patmega4809 -cxplainedmini_updi -Pusb -b115200 -e -D \"-Uflash:w:{loader.sketch}.hex:i\" \"-Ufuse2:w:0x01:m\" \"-Ufuse5:w:0xC9:m\" \"-Ufuse8:w:0x02:m\" " + }, + { + "fqbn": "arduino:samd:mkrnb1500", + "firmware": [ + { + "version": "5.6A2.00-to-5.6A2.01", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2.00-to-5.6A2.01/5.6A2.00-to-5.6A2.01.pkg", + "checksum": "SHA-256:8f04bd7fa1833cf2d3762e086d79191e76bf66c6e108e852b5fe89ca4f2b72c9", + "size": "529880" + }, + { + "version": "5.6A2_01_to_99", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2_01_to_99/5.6A2_01_to_99.pkg", + "checksum": "SHA-256:abb947accdeb980d7aeafed45ac7ce797eb90445eeb8d0bd57ca5b3ad204dbf6", + "size": "1738" + }, + { + "version": "99_to_5.6A2_01", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/99_to_5.6A2_01/99_to_5.6A2_01.pkg", + "checksum": "SHA-256:81618148c677d8c36df5089c931b46476f4a78fd9d9fd231fee0a9dbb38aa970", + "size": "1724" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkrnb1500/loader.bin", + "checksum": "SHA-256:a627ff76588626eacaaec2a2f5719e3fcf069fda2b32f8ace4f2703f1768f142", + "size": "11312" + }, + "module": "SARA", + "name": "Arduino MKR NB 1500", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:mbed_nano:nanorp2040connect", + "firmware": [ + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", + "checksum": "SHA-256:5cc391414abd2233001923221a0103dd5ca37222cf885dace065962c962ccd2b", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.mbed_nano.nanorp2040connect/loader.elf", + "checksum": "SHA-256:263fe2389f9a4ee3ba5938f2115faad3bbb9c775821a598a66f0f1708e64fc01", + "size": "1649504" + }, + "module": "NINA", + "name": "Arduino Nano RP2040 Connect", + "uploader": "arduino:rp2040tools@1.0.2", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "false", + "uploader.command": "\"{uploader}\" -v -D \"{loader.sketch}.elf\"" + } +] \ No newline at end of file diff --git a/module_firmware_index/testdata/module_firmware_index.json.sig b/module_firmware_index/testdata/module_firmware_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..c2bce9ecbdc662568bbdf9732e348cd4e99ab49e GIT binary patch literal 438 zcmV;n0ZIOe0kZ@E0SW*e79j-3B=Z`7-~4=#Bepey^4G`3qAGI*0${c;TL20P5Q6g8 z$Hk&5bNZhQ0FXm3L;&77tUL+!e)b%VkBcl;!8#N|j+1&7cxl6orNN7eBf;)9c;>+J znowp9TvWTT#H13N7TqjP^3DqyryL9LK-aXIwd7bpMk_aBG#K9rp}N}a907rj6&qX? zf|>&Ey;0`M3>U86j)Eh2+Kn0bB1#g;;)s{E6r1{IKZx@ z+Pq}O1X*xr$x2ZD;CHz^nrkbq!gXTws2%y zdf0A}mxj&^1$O9(IyZe)vfIOXs4GOg)EN%cJ$X-mcQ}EWRDsV1fu+yv+xL}d&{mrO gs>H;(APl?YIA$qGCTydQoLIJA_oNaFnR2_6vv5q;E&u=k literal 0 HcmV?d00001 From e760fa570e84b6197095472405783363fa9d67b3 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Fri, 4 Jun 2021 18:57:18 +0200 Subject: [PATCH 10/23] started working on cli.go (WIP) --- cli/cli.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/cli/cli.go b/cli/cli.go index 0778c336..51d8634b 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -31,12 +31,14 @@ import ( "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/cli/version" "github.com/arduino/FirmwareUploader/indexes" + fwindex "github.com/arduino/FirmwareUploader/module_firmware_index" "github.com/arduino/FirmwareUploader/modules/nina" "github.com/arduino/FirmwareUploader/modules/sara" "github.com/arduino/FirmwareUploader/modules/winc" "github.com/arduino/FirmwareUploader/utils" "github.com/arduino/FirmwareUploader/utils/context" v "github.com/arduino/FirmwareUploader/version" + "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/cli/errorcodes" "github.com/arduino/arduino-cli/cli/feedback" "github.com/arduino/go-paths-helper" @@ -212,13 +214,31 @@ func preRun(cmd *cobra.Command, args []string) { logrus.SetLevel(lvl) } - for _, u := range globals.DefaultIndexURL { + // download indexes in /tmp/fwuloader/package_index.json etc.. + for _, u := range globals.DefaultIndexGZURL { indexes.DownloadIndex(u) } - // + list, err := paths.TempDir().Join("fwuploader").ReadDir() + if err != nil { + feedback.Errorf("Can't read fwuploader directory: %s", err) + } + for _, indexFile := range list { + if indexFile.Ext() != ".json" { + continue + } + if indexFile.String() == "package_index.json" { + PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) + } else if indexFile.String() == "module_firmware_index.json" { + ModuleFWIndex, err := fwindex.LoadIndexNoSign(indexFile) + } else { + feedback.Errorf("Unknown index: %s", indexFile.String()) + } + } + + //TODO ⬇️ study in the CLI how the indexes are passed to other modules + // Prepare the Feedback system - // // normalize the format strings outputFormat = strings.ToLower(outputFormat) From 104a039a322a7d866b1e482ca2a00a9234b5f88b Mon Sep 17 00:00:00 2001 From: umbynos Date: Mon, 7 Jun 2021 15:10:34 +0200 Subject: [PATCH 11/23] enhancements --- cli/cli.go | 7 +-- .../firmwareindex/firmwareindex.go | 44 ++++++++++-------- .../firmwareindex/firmwareindex_test.go | 18 +++---- .../testdata/module_firmware_index.json | 0 .../testdata/module_firmware_index.json.sig | Bin indexes/indexes.go | 12 +++-- indexes/indexes_test.go | 8 ++-- 7 files changed, 46 insertions(+), 43 deletions(-) rename module_firmware_index/module_firmware_index.go => indexes/firmwareindex/firmwareindex.go (68%) rename module_firmware_index/module_firmware_index_test.go => indexes/firmwareindex/firmwareindex_test.go (78%) rename {module_firmware_index => indexes/firmwareindex}/testdata/module_firmware_index.json (100%) rename {module_firmware_index => indexes/firmwareindex}/testdata/module_firmware_index.json.sig (100%) diff --git a/cli/cli.go b/cli/cli.go index 51d8634b..aa76fc83 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -31,7 +31,7 @@ import ( "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/cli/version" "github.com/arduino/FirmwareUploader/indexes" - fwindex "github.com/arduino/FirmwareUploader/module_firmware_index" + "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/FirmwareUploader/modules/nina" "github.com/arduino/FirmwareUploader/modules/sara" "github.com/arduino/FirmwareUploader/modules/winc" @@ -214,6 +214,7 @@ func preRun(cmd *cobra.Command, args []string) { logrus.SetLevel(lvl) } + //TODO fare in un altro posto tutto ció ⬇️ // download indexes in /tmp/fwuloader/package_index.json etc.. for _, u := range globals.DefaultIndexGZURL { indexes.DownloadIndex(u) @@ -228,9 +229,9 @@ func preRun(cmd *cobra.Command, args []string) { continue } if indexFile.String() == "package_index.json" { - PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) + PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) // TODO fare funzione che ti ritorna le strutture dati, e fa tutto quello che ci sta dietro. } else if indexFile.String() == "module_firmware_index.json" { - ModuleFWIndex, err := fwindex.LoadIndexNoSign(indexFile) + ModuleFWIndex, e := firmwareindex.LoadIndexNoSign(indexFile) } else { feedback.Errorf("Unknown index: %s", indexFile.String()) } diff --git a/module_firmware_index/module_firmware_index.go b/indexes/firmwareindex/firmwareindex.go similarity index 68% rename from module_firmware_index/module_firmware_index.go rename to indexes/firmwareindex/firmwareindex.go index 64ad13dd..ada5e481 100644 --- a/module_firmware_index/module_firmware_index.go +++ b/indexes/firmwareindex/firmwareindex.go @@ -17,7 +17,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -package fwindex +package firmwareindex import ( "encoding/json" @@ -30,36 +30,36 @@ import ( // Index represents Boards struct as seen from module_firmware_index.json file. type Index struct { - Boards []indexBoard `json:"-"` + Boards []*indexBoard IsTrusted bool } // indexPackage represents a single entry from module_firmware_index.json file. type indexBoard struct { - Fqbn string `json:"fqbn"` - Firmwares []indexFirmware `json:"firmware"` - LoaderSketch indexLoaderSketch `json:"loader_sketch"` - Module string `json:"module"` - Name string `json:"name"` - Uploader string `json:"uploader"` - UploadTouch string `json:"upload.use_1200bps_touch"` // TODO replace "true" with true in json otherwise is a string and not a bool - UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above - UploaderCommand string `json:"uploader.command"` + Fqbn string `json:"fqbn,required"` + Firmwares []*indexFirmware `json:"firmware,required"` + LoaderSketch *indexLoaderSketch `json:"loader_sketch,required"` + Module string `json:"module,required"` + Name string `json:"name,required"` + Uploader string `json:"uploader,required"` + UploadTouch string `json:"upload.use_1200bps_touch"` // TODO replace "true" with true in json otherwise is a string and not a bool + UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above + UploaderCommand string `json:"uploader.command,required"` } // indexFirmware represents a single Firmware version from module_firmware_index.json file. type indexFirmware struct { - Version string `json:"version"` // use `*semver.Version` instead but SARA version is giving problems - URL string `json:"url"` - Checksum string `json:"checksum"` - Size json.Number `json:"size"` + Version string `json:"version,required"` // `*semver.Version` but with SARA version is giving problems + URL string `json:"url,required"` + Checksum string `json:"checksum,required"` + Size json.Number `json:"size,required"` } // indexLoaderSketch represents the sketch used to upload the new firmware on a board. type indexLoaderSketch struct { - URL string `json:"url"` - Checksum string `json:"checksum"` - Size json.Number `json:"size"` + URL string `json:"url,required"` + Checksum string `json:"checksum,required"` + Size json.Number `json:"size,required"` } // LoadIndex reads a module_firmware_index.json from a file and returns the corresponding Index structure. @@ -75,7 +75,7 @@ func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { } jsonSignatureFile := jsonIndexFile.Parent().Join(jsonIndexFile.Base() + ".sig") - keysBox, err := rice.FindBox("../indexes/gpg_keys") + keysBox, err := rice.FindBox("../gpg_keys") if err != nil { return nil, err } @@ -115,3 +115,9 @@ func LoadIndexNoSign(jsonIndexFile *paths.Path) (*Index, error) { return &index, nil } + +// implement functions that gived the id of a tool... returns the url to download it +// member function! +func (i *Index) GetUploaderURL(id string) string { + return "" // TODO implement +} diff --git a/module_firmware_index/module_firmware_index_test.go b/indexes/firmwareindex/firmwareindex_test.go similarity index 78% rename from module_firmware_index/module_firmware_index_test.go rename to indexes/firmwareindex/firmwareindex_test.go index 396febf2..394a744c 100644 --- a/module_firmware_index/module_firmware_index_test.go +++ b/indexes/firmwareindex/firmwareindex_test.go @@ -17,7 +17,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -package fwindex +package firmwareindex import ( "testing" @@ -26,25 +26,19 @@ import ( "github.com/stretchr/testify/require" ) -var DefaultIndexGZURL = []string{ - "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", -} - func TestIndexParsing(t *testing.T) { // semver.WarnInvalidVersionWhenParsingRelaxed = true list, err := paths.New("testdata").ReadDir() require.NoError(t, err) + list.FilterSuffix(".json") for _, indexFile := range list { - if indexFile.Ext() != ".json" { - continue - } t.Logf("testing with index: %s", indexFile) - Index, e := LoadIndexNoSign(indexFile) + index, e := LoadIndexNoSign(indexFile) require.NoError(t, e) - require.NotEmpty(t, Index) + require.NotEmpty(t, index) - Index, e = LoadIndex(indexFile) + index, e = LoadIndex(indexFile) require.NoError(t, e) - require.NotEmpty(t, Index) + require.NotEmpty(t, index) } } diff --git a/module_firmware_index/testdata/module_firmware_index.json b/indexes/firmwareindex/testdata/module_firmware_index.json similarity index 100% rename from module_firmware_index/testdata/module_firmware_index.json rename to indexes/firmwareindex/testdata/module_firmware_index.json diff --git a/module_firmware_index/testdata/module_firmware_index.json.sig b/indexes/firmwareindex/testdata/module_firmware_index.json.sig similarity index 100% rename from module_firmware_index/testdata/module_firmware_index.json.sig rename to indexes/firmwareindex/testdata/module_firmware_index.json.sig diff --git a/indexes/indexes.go b/indexes/indexes.go index c918dbec..16757fbb 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -26,7 +26,7 @@ import ( "path" "strings" - fwindex "github.com/arduino/FirmwareUploader/module_firmware_index" + "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/arduino-cli/arduino/utils" @@ -37,7 +37,7 @@ import ( // DownloadIndex will download the index in the os temp directory func DownloadIndex(indexURL string) error { - fwUploaderPath := paths.TempDir().Join("fwuploader") + fwUploaderPath := paths.TempDir().Join("fwuploader") // TODO make global URL, err := utils.URLParse(indexURL) if err != nil { @@ -64,7 +64,7 @@ func DownloadIndex(indexURL string) error { // Extract the real index var tmpIndex *paths.Path - if tmpFile, err := paths.MkTempFile(nil, ""); err != nil { + if tmpFile, err := paths.MkTempFile(nil, ""); err != nil { //TODO mettere tmpdir.join(URL.Base()) in modo da usare LoadIndex() e non LoadIndexNoSign return fmt.Errorf("creating temp file for index extraction: %s", err) } else { tmpIndex = paths.New(tmpFile.Name()) @@ -114,6 +114,7 @@ func DownloadIndex(indexURL string) error { return nil } +// TODO commento e fare privato, probabilmente va spostato in altre parti (download dei tool) func Download(d *downloader.Downloader) error { if d == nil { // This signal means that the file is already downloaded @@ -129,10 +130,11 @@ func Download(d *downloader.Downloader) error { return nil } +// TODO mettere commento di spiegazione func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { var valid bool var err error - if path.Base(URL.Path) == "package_index.json.gz" { + if path.Base(URL.Path) == "package_index.json.gz" { // TODO path.Base chiamare una sola volta valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) // the signature verification is already done above if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { @@ -149,7 +151,7 @@ func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL } valid, _, err = security.VerifySignature(targetPath, signaturePath, key) // the signature verification is already done above - fwindex.LoadIndexNoSign(targetPath) + firmwareindex.LoadIndexNoSign(targetPath) } else { return fmt.Errorf("index %s not supported", URL.Path) } diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go index a9f17c29..b9aac074 100644 --- a/indexes/indexes_test.go +++ b/indexes/indexes_test.go @@ -31,17 +31,18 @@ import ( "github.com/stretchr/testify/require" ) -var DefaultIndexGZURL = []string{ +var defaultIndexGZURL = []string{ "https://downloads.arduino.cc/packages/package_index.json.gz", "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", } func TestDownloadIndex(t *testing.T) { - for _, u := range DefaultIndexGZURL { + indexFolder := paths.TempDir().Join("fwuploader") + defer os.RemoveAll(indexFolder.String()) // cleanup after tests + for _, u := range defaultIndexGZURL { t.Logf("testing with index: %s", u) err := DownloadIndex(u) require.NoError(t, err) - indexFolder := paths.TempDir().Join("fwuploader") require.DirExists(t, indexFolder.String()) URL, err := utils.URLParse(u) require.NoError(t, err) @@ -52,6 +53,5 @@ func TestDownloadIndex(t *testing.T) { sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") signaturePath := indexFolder.Join(path.Base(sigURL.Path)).String() require.FileExists(t, signaturePath) - defer os.RemoveAll(indexFolder.String()) // cleanup afer tests } } From 4d719a959d427efea62e38f1102d6df8f4d8d83a Mon Sep 17 00:00:00 2001 From: umbynos Date: Mon, 7 Jun 2021 16:04:43 +0200 Subject: [PATCH 12/23] make fwUploaderPath global --- cli/cli.go | 2 +- cli/globals/globals.go | 13 +++++++++---- indexes/indexes.go | 11 +++++------ indexes/indexes_test.go | 11 +++++------ 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/cli/cli.go b/cli/cli.go index aa76fc83..106a5696 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -220,7 +220,7 @@ func preRun(cmd *cobra.Command, args []string) { indexes.DownloadIndex(u) } - list, err := paths.TempDir().Join("fwuploader").ReadDir() + list, err := globals.FwUploaderPath.ReadDir() if err != nil { feedback.Errorf("Can't read fwuploader directory: %s", err) } diff --git a/cli/globals/globals.go b/cli/globals/globals.go index a231dbd0..0466de9e 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -19,7 +19,12 @@ package globals -var DefaultIndexGZURL = []string{ - "https://downloads.arduino.cc/packages/package_index.json.gz", - "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", -} +import "github.com/arduino/go-paths-helper" + +var ( + DefaultIndexGZURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json.gz", + "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", + } + FwUploaderPath = paths.TempDir().Join("fwuploader") +) diff --git a/indexes/indexes.go b/indexes/indexes.go index 16757fbb..ab4584ba 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -26,6 +26,7 @@ import ( "path" "strings" + "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" @@ -37,8 +38,6 @@ import ( // DownloadIndex will download the index in the os temp directory func DownloadIndex(indexURL string) error { - fwUploaderPath := paths.TempDir().Join("fwuploader") // TODO make global - URL, err := utils.URLParse(indexURL) if err != nil { return fmt.Errorf("unable to parse URL %s: %s", indexURL, err) @@ -57,7 +56,7 @@ func DownloadIndex(indexURL string) error { if err != nil { return fmt.Errorf("downloading index %s: %s", indexURL, err) } - indexPath := fwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) if err := Download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) } @@ -93,15 +92,15 @@ func DownloadIndex(indexURL string) error { if err != nil { return fmt.Errorf("downloading index signature %s: %s", sigURL, err) } - indexSigPath := fwUploaderPath.Join(path.Base(sigURL.Path)) + indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) if err := Download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) } if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { return fmt.Errorf("signature verification failed: %s", err) } - if err := fwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present - return fmt.Errorf("can't create data directory %s: %s", fwUploaderPath, err) + if err := globals.FwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present + return fmt.Errorf("can't create data directory %s: %s", globals.FwUploaderPath, err) } if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite return fmt.Errorf("saving downloaded index %s: %s", URL, err) diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go index b9aac074..394f6619 100644 --- a/indexes/indexes_test.go +++ b/indexes/indexes_test.go @@ -26,8 +26,8 @@ import ( "strings" "testing" + "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/arduino-cli/arduino/utils" - "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" ) @@ -37,21 +37,20 @@ var defaultIndexGZURL = []string{ } func TestDownloadIndex(t *testing.T) { - indexFolder := paths.TempDir().Join("fwuploader") - defer os.RemoveAll(indexFolder.String()) // cleanup after tests + defer os.RemoveAll(globals.FwUploaderPath.String()) // cleanup after tests for _, u := range defaultIndexGZURL { t.Logf("testing with index: %s", u) err := DownloadIndex(u) require.NoError(t, err) - require.DirExists(t, indexFolder.String()) + require.DirExists(t, globals.FwUploaderPath.String()) URL, err := utils.URLParse(u) require.NoError(t, err) - indexPath := indexFolder.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) require.FileExists(t, indexPath.String()) sigURL, err := url.Parse(URL.String()) require.NoError(t, err) sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") - signaturePath := indexFolder.Join(path.Base(sigURL.Path)).String() + signaturePath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)).String() require.FileExists(t, signaturePath) } } From ae51a4fa5bfeacf60acd1484872fe4d03d7ee2d1 Mon Sep 17 00:00:00 2001 From: umbynos Date: Tue, 8 Jun 2021 10:53:33 +0200 Subject: [PATCH 13/23] enhancements pt2 --- indexes/indexes.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/indexes/indexes.go b/indexes/indexes.go index ab4584ba..5f5058b8 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -57,7 +57,7 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("downloading index %s: %s", indexURL, err) } indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) - if err := Download(d); err != nil || d.Error() != nil { + if err := download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) } @@ -93,7 +93,7 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("downloading index signature %s: %s", sigURL, err) } indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) - if err := Download(d); err != nil || d.Error() != nil { + if err := download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) } if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { @@ -113,8 +113,9 @@ func DownloadIndex(indexURL string) error { return nil } -// TODO commento e fare privato, probabilmente va spostato in altre parti (download dei tool) -func Download(d *downloader.Downloader) error { +// TODO probably move to tool downloads +// download will take a downloader.Downloader as parameter. It will download the file specified in the downloader +func download(d *downloader.Downloader) error { if d == nil { // This signal means that the file is already downloaded return nil @@ -129,17 +130,19 @@ func Download(d *downloader.Downloader) error { return nil } -// TODO mettere commento di spiegazione +// verifySignature will take the indexPath and the signaturePath as parameters and verify if the signature is correct. +// it will also verify if the index is parsable. func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { var valid bool var err error - if path.Base(URL.Path) == "package_index.json.gz" { // TODO path.Base chiamare una sola volta + index := path.Base(URL.Path) + if index == "package_index.json.gz" { valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) // the signature verification is already done above if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { return fmt.Errorf("invalid package index: %s", err) } - } else if path.Base(URL.Path) == "module_firmware_index.json.gz" { + } else if index == "module_firmware_index.json.gz" { keysBox, err := rice.FindBox("gpg_keys") if err != nil { return fmt.Errorf("could not find bundled signature keys") From 5bf048956ef03d5022f2c8a2498cdacc1529f6af Mon Sep 17 00:00:00 2001 From: umbynos Date: Mon, 7 Jun 2021 18:47:56 +0200 Subject: [PATCH 14/23] implement some (hopefully) useful functions and relative tests --- go.mod | 1 + indexes/firmwareindex/firmwareindex.go | 77 +++++++++++++- indexes/firmwareindex/firmwareindex_test.go | 105 ++++++++++++++++++++ 3 files changed, 179 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index a8909014..ce5af737 100644 --- a/go.mod +++ b/go.mod @@ -16,5 +16,6 @@ require ( github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.6.1 go.bug.st/downloader/v2 v2.1.1 + go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18 go.bug.st/serial v1.1.2 ) diff --git a/indexes/firmwareindex/firmwareindex.go b/indexes/firmwareindex/firmwareindex.go index ada5e481..d98f6f51 100644 --- a/indexes/firmwareindex/firmwareindex.go +++ b/indexes/firmwareindex/firmwareindex.go @@ -21,11 +21,13 @@ package firmwareindex import ( "encoding/json" + "fmt" "github.com/arduino/arduino-cli/arduino/security" "github.com/arduino/go-paths-helper" rice "github.com/cmaglie/go.rice" "github.com/sirupsen/logrus" + semver "go.bug.st/relaxed-semver" ) // Index represents Boards struct as seen from module_firmware_index.json file. @@ -116,8 +118,75 @@ func LoadIndexNoSign(jsonIndexFile *paths.Path) (*Index, error) { return &index, nil } -// implement functions that gived the id of a tool... returns the url to download it -// member function! -func (i *Index) GetUploaderURL(id string) string { - return "" // TODO implement +// GetLatestFirmwareURL takes the fqbn as parameter and returns the URL of the latest available firmware. +// Not currently implemented for SARA, as the version for it's firmware is a bit strange +func (i *Index) GetLatestFirmwareURL(fqbn string) (string, error) { + for _, board := range i.Boards { + var latestVersion *semver.RelaxedVersion + var latestFirmwareURL string + if board.Fqbn == fqbn && board.Module != "SARA" { + for _, firmware := range board.Firmwares { + version := semver.ParseRelaxed(firmware.Version) + if latestVersion == nil || version.GreaterThan(latestVersion) { // TODO check the condition + latestVersion = version + latestFirmwareURL = firmware.URL + } + } + if latestVersion != nil { + return latestFirmwareURL, nil + } else { + return "", fmt.Errorf("cannot find latest version") + } + } else if board.Fqbn == fqbn { // SARA + // TODO implement?? + return "", fmt.Errorf("not implemented for SARA module") + } + } + return "", fmt.Errorf("invalid FQBN: %s", fqbn) +} + +// GetFirmwareURL will take the fqbn of the required board and the version of the firmware as parameters. +// It will return the URL of the required firmware +func (i *Index) GetFirmwareURL(fqbn, version string) (string, error) { + for _, board := range i.Boards { + if board.Fqbn == fqbn { + for _, firmware := range board.Firmwares { + if firmware.Version == version { + return firmware.URL, nil + } + } + return "", fmt.Errorf("invalid version: %s", version) + } + } + return "", fmt.Errorf("invalid FQBN: %s", fqbn) +} + +// GetLoaderSketchURL will take the board's fqbn and return the url of the loader sketch +func (i *Index) GetLoaderSketchURL(fqbn string) (string, error) { + for _, board := range i.Boards { + if board.Fqbn == fqbn { + return board.LoaderSketch.URL, nil + } + } + return "", fmt.Errorf("invalid FQBN: %s", fqbn) +} + +// GetUploaderCommand will take the board's fqbn and return the command used for upload +func (i *Index) GetUploaderCommand(fqbn string) (string, error) { + for _, board := range i.Boards { + if board.Fqbn == fqbn { + return board.UploaderCommand, nil + } + } + return "", fmt.Errorf("invalid FQBN: %s", fqbn) +} + +// GetModule will take the board's fqbn and return the name of the module +func (i *Index) GetModule(fqbn string) (string, error) { + for _, board := range i.Boards { + if board.Fqbn == fqbn { + return board.Module, nil + } + } + return "", fmt.Errorf("invalid FQBN: %s", fqbn) } diff --git a/indexes/firmwareindex/firmwareindex_test.go b/indexes/firmwareindex/firmwareindex_test.go index 394a744c..640347b3 100644 --- a/indexes/firmwareindex/firmwareindex_test.go +++ b/indexes/firmwareindex/firmwareindex_test.go @@ -42,3 +42,108 @@ func TestIndexParsing(t *testing.T) { require.NotEmpty(t, index) } } + +func TestGetLatestFirmwareURL(t *testing.T) { + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix(".json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetLatestFirmwareURL("arduino:samd:mkr1000") + require.NoError(t, err) + require.NotEmpty(t, result) + require.Equal(t, "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", result) + + result, err = index.GetLatestFirmwareURL("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) + } +} + +func TestGetFirmwareURL(t *testing.T) { + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix(".json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetFirmwareURL("arduino:samd:mkr1000", "19.6.1") + require.NoError(t, err) + require.NotEmpty(t, result) + + result, err = index.GetFirmwareURL("arduino:samd:mkr1000", "0.0.0") + require.Error(t, err) + require.Empty(t, result) + + result, err = index.GetFirmwareURL("arduino:samd:mkr1001", "19.6.1") + require.Error(t, err) + require.Empty(t, result) + } +} + +func TestGetLoaderSketchURL(t *testing.T) { + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix(".json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetLoaderSketchURL("arduino:samd:mkr1000") + require.NoError(t, err) + require.NotEmpty(t, result) + + result, err = index.GetLoaderSketchURL("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) + } +} + +func TestGetUploaderCommand(t *testing.T) { + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix(".json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetUploaderCommand("arduino:samd:mkr1000") + require.NoError(t, err) + require.NotEmpty(t, result) + + result, err = index.GetUploaderCommand("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) + } +} + +func TestGetModule(t *testing.T) { + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix(".json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetModule("arduino:samd:mkr1000") + require.NoError(t, err) + require.Equal(t, result, "WINC1500") + + result, err = index.GetModule("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) + } +} From 55ab1fe80ec35e8516eaf99dd41517cdbb69265b Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 9 Jun 2021 09:48:46 +0200 Subject: [PATCH 15/23] enhance firmwareindex.go --- go.sum | 1 + indexes/firmwareindex/firmwareindex.go | 17 +++++++++-------- indexes/firmwareindex/firmwareindex_test.go | 12 ++++++------ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/go.sum b/go.sum index 9da9dc2a..18f29d48 100644 --- a/go.sum +++ b/go.sum @@ -342,6 +342,7 @@ golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTk golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= diff --git a/indexes/firmwareindex/firmwareindex.go b/indexes/firmwareindex/firmwareindex.go index d98f6f51..b55e9782 100644 --- a/indexes/firmwareindex/firmwareindex.go +++ b/indexes/firmwareindex/firmwareindex.go @@ -39,8 +39,8 @@ type Index struct { // indexPackage represents a single entry from module_firmware_index.json file. type indexBoard struct { Fqbn string `json:"fqbn,required"` - Firmwares []*indexFirmware `json:"firmware,required"` - LoaderSketch *indexLoaderSketch `json:"loader_sketch,required"` + Firmwares []*IndexFirmware `json:"firmware,required"` + LoaderSketch *IndexLoaderSketch `json:"loader_sketch,required"` Module string `json:"module,required"` Name string `json:"name,required"` Uploader string `json:"uploader,required"` @@ -49,16 +49,17 @@ type indexBoard struct { UploaderCommand string `json:"uploader.command,required"` } -// indexFirmware represents a single Firmware version from module_firmware_index.json file. -type indexFirmware struct { +// IndexFirmware represents a single Firmware version from module_firmware_index.json file. +type IndexFirmware struct { Version string `json:"version,required"` // `*semver.Version` but with SARA version is giving problems URL string `json:"url,required"` Checksum string `json:"checksum,required"` Size json.Number `json:"size,required"` + Module string `json:module,required` } -// indexLoaderSketch represents the sketch used to upload the new firmware on a board. -type indexLoaderSketch struct { +// IndexLoaderSketch represents the sketch used to upload the new firmware on a board. +type IndexLoaderSketch struct { URL string `json:"url,required"` Checksum string `json:"checksum,required"` Size json.Number `json:"size,required"` @@ -124,7 +125,7 @@ func (i *Index) GetLatestFirmwareURL(fqbn string) (string, error) { for _, board := range i.Boards { var latestVersion *semver.RelaxedVersion var latestFirmwareURL string - if board.Fqbn == fqbn && board.Module != "SARA" { + if board.Fqbn == fqbn && board.Module != "SARA" { // TODO togliere sara, lo assumo giá nel comando for _, firmware := range board.Firmwares { version := semver.ParseRelaxed(firmware.Version) if latestVersion == nil || version.GreaterThan(latestVersion) { // TODO check the condition @@ -138,7 +139,7 @@ func (i *Index) GetLatestFirmwareURL(fqbn string) (string, error) { return "", fmt.Errorf("cannot find latest version") } } else if board.Fqbn == fqbn { // SARA - // TODO implement?? + // TODO implement?? by defualt you have to specify the version return "", fmt.Errorf("not implemented for SARA module") } } diff --git a/indexes/firmwareindex/firmwareindex_test.go b/indexes/firmwareindex/firmwareindex_test.go index 640347b3..afd859b1 100644 --- a/indexes/firmwareindex/firmwareindex_test.go +++ b/indexes/firmwareindex/firmwareindex_test.go @@ -28,7 +28,7 @@ import ( func TestIndexParsing(t *testing.T) { // semver.WarnInvalidVersionWhenParsingRelaxed = true - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { @@ -44,7 +44,7 @@ func TestIndexParsing(t *testing.T) { } func TestGetLatestFirmwareURL(t *testing.T) { - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { @@ -65,7 +65,7 @@ func TestGetLatestFirmwareURL(t *testing.T) { } func TestGetFirmwareURL(t *testing.T) { - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { @@ -89,7 +89,7 @@ func TestGetFirmwareURL(t *testing.T) { } func TestGetLoaderSketchURL(t *testing.T) { - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { @@ -109,7 +109,7 @@ func TestGetLoaderSketchURL(t *testing.T) { } func TestGetUploaderCommand(t *testing.T) { - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { @@ -129,7 +129,7 @@ func TestGetUploaderCommand(t *testing.T) { } func TestGetModule(t *testing.T) { - list, err := paths.New("testdata").ReadDir() + list, err := paths.New("../testdata").ReadDir() require.NoError(t, err) list.FilterSuffix(".json") for _, indexFile := range list { From 32c8447c41ae5963a2b01c237fd1fcfa5e391caf Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 9 Jun 2021 09:49:39 +0200 Subject: [PATCH 16/23] move testdata and manually patch url and module for testing and add package_index.json --- .../testdata/module_firmware_index.json | 7 +- .../testdata/module_firmware_index.json.sig | Bin indexes/testdata/package_index.json | 9456 +++++++++++++++++ indexes/testdata/package_index.json.sig | Bin 0 -> 543 bytes 4 files changed, 9460 insertions(+), 3 deletions(-) rename indexes/{firmwareindex => }/testdata/module_firmware_index.json (98%) rename indexes/{firmwareindex => }/testdata/module_firmware_index.json.sig (100%) create mode 100644 indexes/testdata/package_index.json create mode 100644 indexes/testdata/package_index.json.sig diff --git a/indexes/firmwareindex/testdata/module_firmware_index.json b/indexes/testdata/module_firmware_index.json similarity index 98% rename from indexes/firmwareindex/testdata/module_firmware_index.json rename to indexes/testdata/module_firmware_index.json index 38503734..dd68c21d 100644 --- a/indexes/firmwareindex/testdata/module_firmware_index.json +++ b/indexes/testdata/module_firmware_index.json @@ -4,9 +4,10 @@ "firmware": [ { "version": "19.4.4", - "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", + "url": "https://downloads-dev.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27", - "size": "412308" + "size": "412308", + "module": "WINC1500" }, { "version": "19.5.2", @@ -28,7 +29,7 @@ } ], "loader_sketch": { - "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", + "url": "https://downloads-dev.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", "checksum": "SHA-256:1d904bf745c8df448358d70837a36ee8dec4c2a01e0e3b2ef8ef51c6a6c9d385", "size": "16328" }, diff --git a/indexes/firmwareindex/testdata/module_firmware_index.json.sig b/indexes/testdata/module_firmware_index.json.sig similarity index 100% rename from indexes/firmwareindex/testdata/module_firmware_index.json.sig rename to indexes/testdata/module_firmware_index.json.sig diff --git a/indexes/testdata/package_index.json b/indexes/testdata/package_index.json new file mode 100644 index 00000000..03f747ab --- /dev/null +++ b/indexes/testdata/package_index.json @@ -0,0 +1,9456 @@ +{ + "packages": [ + { + "name": "arduino", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", + "archiveFileName": "avr-1.6.2.tar.bz2", + "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", + "size": "4877442", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", + "archiveFileName": "avr-1.6.3.tar.bz2", + "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", + "size": "4876816", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino3" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino3" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", + "archiveFileName": "avr-1.6.4.tar.bz2", + "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", + "size": "4780884", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", + "archiveFileName": "avr-1.6.5.tar.bz2", + "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", + "size": "4876957", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", + "archiveFileName": "avr-1.6.6.tar.bz2", + "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", + "size": "4876916", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", + "archiveFileName": "avr-1.6.7.tar.bz2", + "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", + "size": "4904283", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", + "archiveFileName": "avr-1.6.8.tar.bz2", + "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", + "size": "4885536", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", + "archiveFileName": "avr-1.6.9.tar.bz2", + "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", + "size": "4890702", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", + "archiveFileName": "avr-1.6.10.tar.bz2", + "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", + "size": "4991331", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", + "archiveFileName": "avr-1.6.11.tar.bz2", + "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", + "size": "4991634", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.12", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", + "archiveFileName": "avr-1.6.12.tar.bz2", + "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", + "size": "4993586", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.13", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", + "archiveFileName": "avr-1.6.13.tar.bz2", + "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", + "size": "4993644", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.14", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", + "archiveFileName": "avr-1.6.14.tar.bz2", + "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", + "size": "4993455", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.15", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", + "archiveFileName": "avr-1.6.15.tar.bz2", + "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", + "size": "4993959", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.16", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", + "archiveFileName": "avr-1.6.16.tar.bz2", + "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", + "size": "5011829", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.17", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", + "archiveFileName": "avr-1.6.17.tar.bz2", + "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", + "size": "5011912", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.18", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", + "archiveFileName": "avr-1.6.18.tar.bz2", + "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", + "size": "4897659", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.19", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", + "archiveFileName": "avr-1.6.19.tar.bz2", + "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", + "size": "4959420", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.20", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", + "archiveFileName": "avr-1.6.20.tar.bz2", + "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", + "size": "4897949", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.21", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", + "archiveFileName": "avr-1.6.21.tar.bz2", + "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", + "size": "4897460", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", + "archiveFileName": "avr-1.6.22.tar.bz2", + "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", + "size": "4907422", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", + "archiveFileName": "avr-1.6.23.tar.bz2", + "checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", + "size": "5001988", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.1.tar.bz2", + "archiveFileName": "avr-1.8.1.tar.bz2", + "checksum": "SHA-256:4791a52fd058f72557af333abc2dea564c8be47fb38fbd7be75ce2fcfdc214b5", + "size": "4941605", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2", + "archiveFileName": "avr-1.8.2.tar.bz2", + "checksum": "SHA-256:6213d41c6e91a75ac931527da5b10f2dbe0140c8cc1dd41b06cd4e78b943f41b", + "size": "4918242", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", + "archiveFileName": "avr-1.8.3.tar.bz2", + "checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", + "size": "4941548", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", + "archiveFileName": "megaavr-1.6.23.tar.bz2", + "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", + "size": "717681", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.24.tar.bz2", + "archiveFileName": "megaavr-1.6.24.tar.bz2", + "checksum": "SHA-256:0910af1d6eb44b65fee77c81a7a83ee420e6a7c1622f90754e91a5127d317a1d", + "size": "709516", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.25.tar.bz2", + "archiveFileName": "megaavr-1.6.25.tar.bz2", + "checksum": "SHA-256:f776e0b8996d1d199699382b311595825911539f2809dec24780c4c0014d45ff", + "size": "712366", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.26", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.26.tar.bz2", + "archiveFileName": "megaavr-1.6.26.tar.bz2", + "checksum": "SHA-256:d7fe4b40d489c21a89feed6713a2ca9bfb7ed3925536a18de7e5379ffc26737e", + "size": "712719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.1.tar.bz2", + "archiveFileName": "megaavr-1.8.1.tar.bz2", + "checksum": "SHA-256:51da414ba5372788ebcd38c8f652cb08152cf20e6a9fd3c398134b2325bf4c68", + "size": "817179", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.2.tar.bz2", + "archiveFileName": "megaavr-1.8.2.tar.bz2", + "checksum": "SHA-256:0f59e2d9e5f7b7b80ca3bc54cef00beb653c9a9b6454166dfb0e17cd2160a377", + "size": "840041", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.3.tar.bz2", + "archiveFileName": "megaavr-1.8.3.tar.bz2", + "checksum": "SHA-256:9791d62551f1e6539769a026f903082344b8ae8b921c1796de94a2af368d866d", + "size": "856037", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.4.tar.bz2", + "archiveFileName": "megaavr-1.8.4.tar.bz2", + "checksum": "SHA-256:ff25944bc6f7b766f8a71b836763517de3b12008b0b08cf24460b8af5a05abd1", + "size": "855455", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.5.tar.bz2", + "archiveFileName": "megaavr-1.8.5.tar.bz2", + "checksum": "SHA-256:d35ca76fa081fb3a282584d498fadb5712a4330fa39cde560e31d72185c940d8", + "size": "876954", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.6.tar.bz2", + "archiveFileName": "megaavr-1.8.6.tar.bz2", + "checksum": "SHA-256:d6d34aa9d7f2934c92c0a39cd8b48c6a1efb1820c59f558b5f8eddde63409eaa", + "size": "856719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "archiveFileName": "core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "checksum": "SHA-256:24853e59bfcfcfa09d7ab51011b65f2246e082228b1f14fdaa4cbb2c6aae23b4", + "size": "875098", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", + "archiveFileName": "sam-1.6.2.tar.bz2", + "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", + "size": "16174730", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", + "archiveFileName": "sam-1.6.3.tar.bz2", + "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", + "size": "16174017", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", + "archiveFileName": "sam-1.6.4.tar.bz2", + "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", + "size": "16174992", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", + "archiveFileName": "sam-1.6.5.tar.bz2", + "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", + "size": "16529130", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", + "archiveFileName": "sam-1.6.6.tar.bz2", + "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", + "size": "16528101", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", + "archiveFileName": "sam-1.6.7.tar.bz2", + "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", + "size": "16473479", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", + "archiveFileName": "sam-1.6.8.tar.bz2", + "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", + "size": "16471779", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", + "archiveFileName": "sam-1.6.9.tar.bz2", + "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", + "size": "16473503", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", + "archiveFileName": "sam-1.6.10.tar.bz2", + "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", + "size": "16474738", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", + "archiveFileName": "sam-1.6.11.tar.bz2", + "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", + "size": "16474757", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.12.tar.bz2", + "archiveFileName": "sam-1.6.12.tar.bz2", + "checksum": "SHA-256:1d56d0ceea12a920c4a5c12fff793499354ffba7e93d330786bd2d6f3a191c47", + "size": "16496493", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", + "archiveFileName": "samd-1.6.1.tar.bz2", + "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", + "size": "178354", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", + "archiveFileName": "samd-1.6.2.tar.bz2", + "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", + "size": "179578", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", + "archiveFileName": "samd-1.6.3.tar.bz2", + "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", + "size": "978163", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", + "archiveFileName": "samd-1.6.4.tar.bz2", + "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", + "size": "977481", + "boards": [ + { "name": "Arduino Zero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", + "archiveFileName": "samd-1.6.5.tar.bz2", + "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", + "size": "979548", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", + "archiveFileName": "samd-1.6.6.tar.bz2", + "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", + "size": "997331", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", + "archiveFileName": "samd-1.6.7.tar.bz2", + "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", + "size": "841503", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", + "archiveFileName": "samd-1.6.8.tar.bz2", + "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", + "size": "841801", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", + "archiveFileName": "samd-1.6.9.tar.bz2", + "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", + "size": "855221", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", + "archiveFileName": "samd-1.6.10.tar.bz2", + "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", + "size": "2765368", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", + "archiveFileName": "samd-1.6.11.tar.bz2", + "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", + "size": "2764312", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", + "archiveFileName": "samd-1.6.12.tar.bz2", + "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", + "size": "2754767", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruti Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino5-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.13", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", + "archiveFileName": "samd-1.6.13.tar.bz2", + "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", + "size": "2777384", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.14", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", + "archiveFileName": "samd-1.6.14.tar.bz2", + "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", + "size": "2746416", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.15", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", + "archiveFileName": "samd-1.6.15.tar.bz2", + "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", + "size": "2795099", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.16", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", + "archiveFileName": "samd-1.6.16.tar.bz2", + "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", + "size": "2796651", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.17", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", + "archiveFileName": "samd-1.6.17.tar.bz2", + "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", + "size": "2849852", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.18", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", + "archiveFileName": "samd-1.6.18.tar.bz2", + "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", + "size": "2808624", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.19", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", + "archiveFileName": "samd-1.6.19.tar.bz2", + "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", + "size": "2844050", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.20", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.20.tar.bz2", + "archiveFileName": "samd-1.6.20.tar.bz2", + "checksum": "SHA-256:65a07751d858c7096d4ed9e842768530d41f84c30e26baa398c82e6ad92649bf", + "size": "2854887", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", + "archiveFileName": "samd-beta-1.6.22.tar.bz2", + "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", + "size": "2880064", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.21", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.21.tar.bz2", + "archiveFileName": "samd-1.6.21.tar.bz2", + "checksum": "SHA-256:6ccd8aa87eb0a81ae8b7f34103c2e37edbeb0b358b886f6066db3688c0c5aa54", + "size": "2848675", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", + "archiveFileName": "samd-beta-1.6.23.tar.gz", + "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", + "size": "3634633", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", + "archiveFileName": "samd-beta-1.6.24.tar.bz2", + "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", + "size": "2885903", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.25.tar.bz2", + "archiveFileName": "samd-beta-1.6.25.tar.bz2", + "checksum": "SHA-256:95e22b75d2ff1e3a1c9baabad205fbd48964b195390951943035bfbd88286961", + "size": "2890759", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.1.tar.bz2", + "archiveFileName": "samd-1.8.1.tar.bz2", + "checksum": "SHA-256:a8492b777f7f719fb5270f641b6b13b91ec242f5132b325ede2649dc2bda3117", + "size": "2849370", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.2.tar.bz2", + "archiveFileName": "samd-1.8.2.tar.bz2", + "checksum": "SHA-256:af75e0d37b63df3b92ecca60285aa59bab66e0bd03bcc4092ea3a1fab3df5258", + "size": "2894202", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.3.tar.bz2", + "archiveFileName": "samd-1.8.3.tar.bz2", + "checksum": "SHA-256:ceac942d67c374e02c3f7586d17a7a4f0ef7bc022627577fd437af928cc21ad3", + "size": "2897712", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.4.tar.bz2", + "archiveFileName": "samd-1.8.4.tar.bz2", + "checksum": "SHA-256:2b32e54542211360ba6fb133e7d507dedd7a8ea8583f6fa714605a1f003acb27", + "size": "2905449", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.5.tar.bz2", + "archiveFileName": "samd-1.8.5.tar.bz2", + "checksum": "SHA-256:b518709eb7dd0ad93dfce28c44d53b7873d9d184755672635fa5053a4684354e", + "size": "2882230", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.6.tar.bz2", + "archiveFileName": "samd-1.8.6.tar.bz2", + "checksum": "SHA-256:68a4fffa6fe6aa7886aab2e69dff7d3f94c02935bbbeb42de37f692d7daf823b", + "size": "2980953", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.7.tar.bz2", + "archiveFileName": "samd-1.8.7.tar.bz2", + "checksum": "SHA-256:2e465cc08f0f5dc19a95bb10115fd8d1451a7857fd21f2a91f5605e7a8c1dc12", + "size": "3049628", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.8.tar.bz2", + "archiveFileName": "samd-1.8.8.tar.bz2", + "checksum": "SHA-256:7b93eb705cba9125d9ee52eba09b51fb5fe34520ada351508f4253abbc9f27fa", + "size": "3061568", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.9.tar.bz2", + "archiveFileName": "samd-1.8.9.tar.bz2", + "checksum": "SHA-256:41c04740f7b61b561a7134a847678845e91219164f4d125951e13756f53a865b", + "size": "3059968", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.10.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.10.tar.bz2", + "checksum": "SHA-256:f925755f5f104f9b175b562cc64d9e075e93faa248119a2305029ac49ceb0c6b", + "size": "3072717", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.11.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.11.tar.bz2", + "checksum": "SHA-256:3c152827c37cc236f24a81b7142b5c82db7c308991a2544d32239501a7a6498c", + "size": "3057742", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "checksum": "SHA-256:d70d8c98fd5ec9cc0cc05722dda344c325910cdc4c5dddfa976dc9a8f00f5f5b", + "size": "35128465", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.1", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "checksum": "SHA-256:ac8d6ec83f8c42e27b4dac9d4b565779ff213dd6bcd879dad876cfdf4a492c07", + "size": "35127935", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.2", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "checksum": "SHA-256:ebe30e9a2cf2d0e18a84df9cd3b1238249c5b1248e0d5238edb36180f1c33d13", + "size": "36372757", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.3", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "checksum": "SHA-256:64e7ded2c068e415d862caa200f09a1f9e17c36bb0fc924869b24b205a924845", + "size": "12373194", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.4", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "checksum": "SHA-256:a946b25d426d4e2430b4756e929268094f0b150566f79d6502f3f1819d86ac14", + "size": "12377522", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.5", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "checksum": "SHA-256:eda6c708d32e8bac33b1ee5e5bd70f7af0feaa5d83c683da80eca1f21dc25cd7", + "size": "12760869", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.6", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "checksum": "SHA-256:5a05ac9cb13549472edc313403a58bcd56db0f3abeffe4072da4f2ec6ab3c795", + "size": "12760476", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-1.3.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-1.3.0.tar.bz2", + "checksum": "SHA-256:f6617b34b53af37dbc2e6805097cf961f2032dbfc3750a003ba1902d7469258b", + "size": "93357731", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.1", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.1.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.1.tar.bz2", + "checksum": "SHA-256:9f659a88c1b246a69537e585e10188b8a654dc6c51797c89e42bcc9aa26cab8d", + "size": "93181681", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.2", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.2.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.2.tar.bz2", + "checksum": "SHA-256:689602d7380f394d092ef627138e434950bb4c8f698fbdaa7d1edd141d2ff0ea", + "size": "93257117", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.0.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.0.0.tar.bz2", + "checksum": "SHA-256:7d1c67a75f871382c52b7822ebedf85849be35266204cd3749087b70793c8740", + "size": "33510861", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "checksum": "SHA-256:1264f90c3094282f09aa0f76fb7670fb79ab5abeb321bca41531a586778188c7", + "size": "5180388", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "checksum": "SHA-256:93cf3b6b552601395a4cf8b9aed465d9aab7906f2aeebe6cf638c8a952220857", + "size": "6014638", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "checksum": "SHA-256:d8a0fd481357febe4246a616e859e644616f03208d70dbcda11e7850b454c0cc", + "size": "27024661", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "checksum": "SHA-256:36c5499d4bd119861828c787010c07ac31fe7b3b920d56efe30118b44838a587", + "size": "3841101", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.1.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.1.0.tar.bz2", + "checksum": "SHA-256:6ec882fe5ea1728659f56373df2f06077d156517004b50502c836e68b9a9751a", + "size": "32179151", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "checksum": "SHA-256:68591a6a901916cada4164f09ccd6e8a2e04b1f4244514bc8aeca5c170972b7d", + "size": "5195498", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "checksum": "SHA-256:3b7362662254a4b7e2e06d7ddd9831820e4909787a7dce02fa8e9c653740b1a8", + "size": "6086135", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "checksum": "SHA-256:b74105f5b4c375dcbb095343aaf6d9adda2a1922f925b7b70e84588610f8aa3c", + "size": "25622118", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "checksum": "SHA-256:f2732b910449a8ec1ff0a90e32b07276a5d082911a5c639452484ca853e05e9e", + "size": "3844940", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino NRF52 Boards", + "architecture": "nrf52", + "version": "1.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", + "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", + "size": "2438905", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", + "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", + "size": "2262233", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", + "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", + "size": "2308695", + "boards": [ + { "name": "Arduino Primo" }, + { "name": "Arduino Primo Core" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + } + ], + "tools": [ + { + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", + "size": "44423906" + }, + { + "host": "i686-mingw32", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", + "size": "84537449" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", + "size": "52518522" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", + "size": "51395093" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", + "size": "51029223" + } + ] + }, + { + "name": "arm-none-eabi-gcc", + "version": "7-2017q4", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b", + "size": "96613739" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", + "size": "99558726" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", + "size": "131761924" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", + "size": "104550003" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", + "size": "99857645" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", + "size": "97427309" + } + ] + }, + { + "name": "bossac", + "version": "1.3-arduino", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", + "size": "147359" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", + "size": "26179" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", + "size": "265647" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", + "size": "39475" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino2", + "systems": [ + { + "size": "24443285", + "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27152002", + "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25876628", + "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046691", + "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino2", + "systems": [ + { + "size": "264965", + "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292541", + "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283209", + "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241618", + "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino3", + "systems": [ + { + "size": "24447175", + "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "30556996", + "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "28768022", + "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046917", + "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino3", + "systems": [ + { + "size": "264682", + "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "748634", + "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "495482", + "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241619", + "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino5", + "systems": [ + { + "size": "24403768", + "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "24437400", + "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27093036", + "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25882375", + "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46044779", + "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino5", + "systems": [ + { + "size": "267095", + "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "264894", + "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292629", + "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283121", + "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241634", + "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino", + "systems": [ + { + "size": "27046965", + "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27400001", + "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "29904544", + "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "29077606", + "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "43847566", + "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2", + "systems": [ + { + "size": "27400889", + "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "27048070", + "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "43847945", + "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" + }, + { + "size": "29292729", + "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "29882960", + "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2", + "systems": [ + { + "size": "27764772", + "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "28574644", + "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "44386446", + "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" + }, + { + "size": "29723974", + "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "30374404", + "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2", + "systems": [ + { + "size": "31449123", + "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "33141295", + "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "31894498", + "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "45923772", + "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" + }, + { + "size": "33022916", + "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "33522375", + "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5", + "systems": [ + { + "size": "34462042", + "checksum": "SHA-256:f4acd5531c6b82c715e2edfa0aadb13fb718b4095b3ea1aa1f7fbde680069639", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "39381972", + "checksum": "SHA-256:dd9c70190be370a44fb47dab1514de6d8852b861dfa527964b65c740d8d50c10", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "38492678", + "checksum": "SHA-256:f48706317f04452544ab90e75bd1bb193f8af2cb1002f53aa702f27202c1b38f", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "53727984", + "checksum": "SHA-256:6d4a5d089a36e5b5252befc73da204555b49e376ce7577ee19ca7f028b295830", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip" + }, + { + "size": "38710087", + "checksum": "SHA-256:2ff12739d7ed09688d6b3c2c126e8df69b5bda1a07ab558799f0e576571e0e1d", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "39114120", + "checksum": "SHA-256:3effed8ffa1978b6e4a46f1aa2acc629e440b4d77244f71f9b79a916025206fb", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7", + "systems": [ + { + "size": "34683056", + "checksum": "SHA-256:3903553d035da59e33cff9941b857c3cb379cb0638105dfdf69c97f0acc8e7b5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "38045723", + "checksum": "SHA-256:03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "36684546", + "checksum": "SHA-256:f6ed2346953fcf88df223469088633eb86de997fa27ece117fd1ef170d69c1f8", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "52519412", + "checksum": "SHA-256:a54f64755fff4cb792a1495e5defdd789902a2a3503982e81b898299cf39800e", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip" + }, + { + "size": "37176991", + "checksum": "SHA-256:954bbffb33545bcdcd473af993da2980bf32e8461ff55a18e0eebc7b2ef69a4c", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "37630618", + "checksum": "SHA-256:bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino2", + "systems": [ + { + "size": "643484", + "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "653968", + "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "745081", + "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "731802", + "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "608496", + "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino6", + "systems": [ + { + "size": "644600", + "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "696273", + "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" + }, + { + "size": "746653", + "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "733127", + "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645859", + "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino8", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697268", + "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711544", + "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701718", + "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645996", + "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino9", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697309", + "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711229", + "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701590", + "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645974", + "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino14", + "systems": [ + { + "size": "219616", + "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229688", + "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "256917", + "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" + }, + { + "size": "253366", + "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244293", + "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328363", + "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino16", + "systems": [ + { + "size": "219642", + "checksum": "SHA-256:6fc443445440f0e2d95d70013ed075bceffc2a1babc1e7d4f1ae69c3fe268c57", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229997", + "checksum": "SHA-256:7a2726ab2fd18b910abc3d9dd33c4b40d18c34cf12c46f3367932e7fd87c0197", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279172", + "checksum": "SHA-256:f93dc12a4b30a335ab24b3c628e6cad0ebf2f8adfb7ef50f87c0fc17165b2156", + "host": "x86_64-apple-darwin15", + "archiveFileName": "avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2" + }, + { + "size": "254085", + "checksum": "SHA-256:57856d6e388d333d924afa3e2d5525161dbe0dc670e7caae2720e249606175a7", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244393", + "checksum": "SHA-256:bdf73358991243a9a8de11a42c80c4ec4b14c82f2222cb0c3c181f62656c41fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328456", + "checksum": "SHA-256:781c16a8bf813fa68fc0f47d427279053c9e098c3aed7165449ac4f0137304dd", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino18", + "systems": [ + { + "size": "220677", + "checksum": "SHA-256:2e25c9e99c255d595a1072679a88ecddfa12c223b18510760bb867039f35efa5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "231047", + "checksum": "SHA-256:4f88bb50d2235182ed7aa9e0a1d08e4bb956378ac9569b8e1141e37ed314fb2d", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "280072", + "checksum": "SHA-256:df1dfd18e2e287c47232605cd4fa41751eb70df8c300aeb7a00a3a09b524a1b8", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254460", + "checksum": "SHA-256:1ae46972b276b8a54c459f87c4ff326abdad0be2b1a293d73bf86e47765eddc3", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "329515", + "checksum": "SHA-256:0781f4183e91a9783c2330035520144ab76b8f75c0a9f7a25877c063bc984c4d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino18-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.0.0", + "systems": [ + { + "size": "2044124", + "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" + }, + { + "size": "2178772", + "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" + }, + { + "size": "1961623", + "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" + }, + { + "size": "2180617", + "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" + }, + { + "size": "2247970", + "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.0.0-windows.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.1.1", + "systems": [ + { + "size": "2045036", + "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" + }, + { + "size": "2178288", + "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" + }, + { + "size": "1962115", + "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" + }, + { + "size": "2181376", + "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" + }, + { + "size": "2248431", + "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.0", + "systems": [ + { + "size": "1839854", + "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" + }, + { + "size": "1974030", + "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" + }, + { + "size": "1787138", + "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" + }, + { + "size": "1992476", + "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" + }, + { + "size": "2003964", + "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.1", + "systems": [ + { + "size": "2133779", + "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" + }, + { + "size": "2257689", + "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2244088", + "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" + }, + { + "size": "2237511", + "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.3.0", + "systems": [ + { + "size": "2633516", + "checksum": "SHA-256:3e7f59d6fbc7a724598303f0d3289d0c4fd137a8973437980658379a024887b2", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2" + }, + { + "size": "2716248", + "checksum": "SHA-256:aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2" + }, + { + "size": "2567435", + "checksum": "SHA-256:1888587409b56aef4ba0ab0e6703b3dccba7cc3a022756ba9b908247e5d5a656", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2" + }, + { + "size": "2472427", + "checksum": "SHA-256:835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm64.tar.bz2" + }, + { + "size": "2766116", + "checksum": "SHA-256:d5d0f82ff829c0e434d12a2ee640a6fbd78f893ab37782edbb8b5bf2359d119e", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.3.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64.tar.bz2" + }, + { + "size": "2768948", + "checksum": "SHA-256:051943844eee442460d2c709edefadca184287fffd2b6c100dd53aa742aa05f6", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.3.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-windows_386.zip" + } + ] + }, + { + "name": "bossac", + "version": "1.5-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", + "size": "199550" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", + "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", + "size": "222283" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", + "size": "64120" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", + "size": "30431" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", + "size": "29783" + } + ] + }, + { + "name": "bossac", + "version": "1.6-arduino", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz", + "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", + "size": "222517" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", + "size": "64538" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", + "size": "30649" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", + "size": "30072" + } + ] + }, + { + "name": "bossac", + "version": "1.6.1-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-mingw32.tar.gz", + "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", + "size": "243066" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", + "size": "63822" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", + "size": "31373" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", + "size": "31086" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", + "size": "27382" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0-arduino3", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "name": "bossac", + "version": "1.8.0-48-gb176eee", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", + "size": "91219" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", + "size": "39150" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", + "size": "37798" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", + "size": "37374" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", + "size": "34825" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino1", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz", + "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a", + "size": "1260118" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz", + "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6", + "size": "47835" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz", + "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86", + "size": "399453" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz", + "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f", + "size": "384792" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz", + "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba", + "size": "361799" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868", + "size": "442657" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", + "size": "1402283" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", + "size": "2360705" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", + "size": "2275101" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", + "size": "1210796" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", + "size": "1129654" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino5-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", + "size": "1319000" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", + "size": "1641209" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", + "size": "1235752" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", + "size": "1393855" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", + "size": "1341739" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino6-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", + "size": "1319020" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", + "size": "1641514" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", + "size": "1222523" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", + "size": "1394293" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", + "size": "1340444" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino7", + "systems": [ + { + "size": "1638575", + "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1580739", + "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1498970", + "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1701581", + "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1626347", + "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2016965", + "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino8", + "systems": [ + { + "size": "1714346", + "checksum": "SHA-256:86c4ea3086b4a1475fd8a1e1daf4585748be093dad4160e816b1bf2502501fb2", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1778371", + "checksum": "SHA-256:500cb112ee92092bbfce69649b90d0284752c5766f5aaf5c24dc754100788ef9", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1653652", + "checksum": "SHA-256:584b513ebbc4a645a68234d964ba56f042aaf7668d84ba47398a07a294516cc4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1845547", + "checksum": "SHA-256:455d4123146bf6b4b095de86d3340fd01e39bba9c70b2f0bb8e979ac4dddac39", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1781892", + "checksum": "SHA-256:5b44889984daefa966b8251edb98445169107ca32f974ca598d4c59e7d2c8901", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190397", + "checksum": "SHA-256:35a92f32f2762ef9405d2c684ec7bea2e70c01068f380251aecd9290f5bd5b24", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino9", + "systems": [ + { + "size": "1714657", + "checksum": "SHA-256:b814b16b52cef21eacf456cc7a89d7b5d4cb1385bfb8fb82963b7d8151824d93", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1778177", + "checksum": "SHA-256:f0443e771f5e3a779949498d3c9bfffd1dd27cdf0ad7136a2db5e80447a7175a", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1782958", + "checksum": "SHA-256:a22872918df899cb808f9286141d42438ae5611156c143cfb692069f52a2bddd", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190484", + "checksum": "SHA-256:f53f9a2b7f48a2ebc00ea9196bf559d15987d3779bcea4118ebec8925da5a1f6", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip" + }, + { + "size": "1655311", + "checksum": "SHA-256:6d47f97919f317bb6e5f1f903127604271d66d149f4625f29b8e0eb5f6c94c64", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1844365", + "checksum": "SHA-256:f624552b5ba56aa78d0c1a0e5d18cf2b5694db2ed44080968e22aa1af8f23c1b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino12", + "systems": [ + { + "size": "1778706", + "checksum": "SHA-256:86e15186a44b87c00f5ddd9c05849d2ec107783dd18a5ac984ce2a71e34084ed", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1855234", + "checksum": "SHA-256:5c6ca6189f61894ee77b29bc342f96cd14e4d7627fabeb2a8d2e2c534316cc38", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1844359", + "checksum": "SHA-256:4938742d3fec62941187666b8ded44d8f6c7a404920ff49d97fca484b9fd08af", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2276602", + "checksum": "SHA-256:1e23c0f1f809725db3e1f8d1e1f460a37fb7b2cf95e93c6e328e527501ab084c", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip" + }, + { + "size": "1723600", + "checksum": "SHA-256:b40d135449401870302bec073326d6f1df79da38d9dd21326314a5a90189a06e", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1918845", + "checksum": "SHA-256:bc48be10916f69f3a4b050f04babc14ee99dad1fc5da55ce606077991edab1d0", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino13", + "systems": [ + { + "size": "1820630", + "checksum": "SHA-256:47ae7a1a7961ac9daef001b011505b38777baac3c02dd7e673f62601df841427", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1896478", + "checksum": "SHA-256:4dd38b701019ad2fbb58173a3bc6c58effd39501a4a8266256dfe169e7516655", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1883854", + "checksum": "SHA-256:788093504b25d2b9b772657215254ba178ed37773364ce240de68281efe40bd5", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2334654", + "checksum": "SHA-256:2f3b87c644569f47780b16b071cd0929a64a8899ec769f4ca7480d20d5503365", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip" + }, + { + "size": "1767137", + "checksum": "SHA-256:0f3f6e5e03355ffbbc84c4b4750e63c9315b7638c56d63df1b7795968208e6ba", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1955043", + "checksum": "SHA-256:e4b2ffbc9a29be21c32c6921c2e7c0ee39c664c4faca28a5f839c1df32d3bd24", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino1", + "systems": [ + { + "size": "1882308", + "checksum": "SHA-256:f4bc15523a9777a61befb67ee46b0c567572029cf2dbb8bc092d1175f188a62b", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1967523", + "checksum": "SHA-256:c56e88b34c82748b015c9e11f62c1d6aa98da00c2642f0027b1a5781085c56f9", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1948258", + "checksum": "SHA-256:dbee4de8e838996067444fa1c775bc64418af5660f96d9a9e92a95e85c762d16", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2443521", + "checksum": "SHA-256:13455c55bb089bd0b4005fd77d8522c691b60a4a40bc101afe817db6f1d05695", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip" + }, + { + "size": "1865080", + "checksum": "SHA-256:c9ab5f32038551318434feb8ffba5cf2932b8956443c284997431eb784eacaee", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2023084", + "checksum": "SHA-256:beb45bb95e43d2d592ee62342e6fdfbb15b87c20c96177b8f6bbc2a57cddbeb1", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino2", + "systems": [ + { + "size": "1902818", + "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1986716", + "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1971364", + "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2460087", + "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" + }, + { + "size": "1893150", + "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2052080", + "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "CMSIS", + "version": "4.0.0-atmel", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + } + ] + }, + { + "name": "CMSIS", + "version": "4.5.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.0.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.1.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.2.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "all", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2", + "size": "68361", + "checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2", + "size": "194826", + "checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "size": "66230", + "checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "size": "62608", + "checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2", + "size": "377537", + "checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-osx.tar.bz2", + "size": "65137", + "checksum": "SHA-256:00e87178b81d5721f334d4b688267f19f36eed1d9710a912c9e44bb1a748f766" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-arm.tar.bz2", + "size": "198568", + "checksum": "SHA-256:b364a8fe1de697d7dd6c4135d341ddff6dbda7e33c707321c7dceab85dfc560b" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "size": "70996", + "checksum": "SHA-256:628e01772007e622dff6af82220c27bcdf1d0726ba886bd2b36807601f66e4e8" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "size": "71002", + "checksum": "SHA-256:7a6cec3d89c65119c52b6109cd92a9ec84bdf8a9d12083444d2c89e7ac16c84b" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-windows.tar.bz2", + "size": "394993", + "checksum": "SHA-256:8ec0e66acdc41941b6e25545f8c12e7eb7ba01a0bafae0b4ab4c99a70deb2ea5" + } + ] + }, + { + "name": "dfu-util", + "version": "0.10.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", + "size": "73921", + "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", + "size": "272153", + "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "size": "277886", + "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "size": "77184", + "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "size": "81826", + "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", + "size": "464314", + "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" + } + ] + }, + { + "name": "rp2040tools", + "version": "1.0.2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "size": "1665895", + "checksum": "SHA-256:039e0ddb7a407c5c20c3ef6def8d7cc2abdc7a4fc6dcb039abb3b41c4791f69f" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm.tar.bz2", + "size": "5438204", + "checksum": "SHA-256:8981155a50bac8c7e3621f22b8e9c87f7d6aace4e28dddb03f41d704301da94d" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm64.tar.bz2", + "size": "5650185", + "checksum": "SHA-256:4f102352d702fc89757c119cd46c231b998f9900956183b0f7874994dc3965d5" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_amd64.tar.bz2", + "size": "4180308", + "checksum": "SHA-256:f6faafdfdf3cb780b884fe7d092679963e95f88ea78a9ed38312c511045d15c7" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_386.tar.bz2", + "size": "4423488", + "checksum": "SHA-256:9af1aaf46402ab27d60a6b5d28da5ab8807f3099d78ee6e681bf7a36911ee690" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-windows_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-windows_386.tar.bz2", + "size": "2493234", + "checksum": "SHA-256:8aa684c431b1194d9af4958b116a0a96e4ebf6c90764f9f3420db0515dc6e2c7" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.6.9", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip", + "archiveFileName": "drivers-arduino-windows-1.6.9.zip", + "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", + "size": "7071714" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.8.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip", + "archiveFileName": "drivers-arduino-windows-1.8.0.zip", + "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", + "size": "16302148" + } + ] + }, + { + "name": "dfu-util", + "version": "0.8.0-stm32-arduino1", + "systems": [ + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", + "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", + "host": "i386-apple-darwin11", + "size": "68381", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2", + "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", + "host": "arm-linux-gnueabihf", + "size": "213760", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2", + "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", + "host": "x86_64-linux-gnu", + "size": "68575", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2", + "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", + "host": "i686-linux-gnu", + "size": "69097", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2", + "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", + "host": "i686-mingw32", + "size": "159753", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" + } + ] + }, + { + "name": "arduinoSTM32load", + "version": "2.0.0", + "systems": [ + { + "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", + "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", + "host": "i386-apple-darwin11", + "size": "807514", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", + "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", + "host": "arm-linux-gnueabihf", + "size": "809480", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", + "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", + "host": "x86_64-linux-gnu", + "size": "818885", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", + "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", + "host": "i686-linux-gnu", + "size": "814283", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", + "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", + "host": "i686-mingw32", + "size": "786335", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino1-static", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "size": "1529841", + "checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "size": "1777984", + "checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "size": "1713236", + "checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip", + "archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip", + "size": "1773642", + "checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "size": "1526863", + "checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux32.tar.bz2", + "checksum": "SHA-256:8c4e562a8e6fa3d916c4bf6bb24d7eec0df013d8cc45dff187e5c63086a92c11", + "size": "7334059" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux64.tar.bz2", + "checksum": "SHA-256:0e9132518acfe66e5a4e17ba4b6dd0c89dbd90cc0d9b4a54e007ac24d51fd36a", + "size": "7383853" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.6-windows.zip", + "checksum": "SHA-256:33a92661f43b8d025ca5f57be1116537ed153703067d9c86297619d58988feff", + "size": "7580663" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-osx.tar.bz2", + "checksum": "SHA-256:3584d7581ff2469bdfde9de6f57d87b2a0370de5c902e9df687b7322a5405018", + "size": "7368819" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "checksum": "SHA-256:276f027e552eb620064b09591c7a7c79927c93c017428436c81f71bad666803c", + "size": "7180391" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "checksum": "SHA-256:d6a2e72b4869c031b434380da6e6a8a4a6269f8ee6312a3d23e85ea133a37ae9", + "size": "7149332" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux32.tar.bz2", + "checksum": "SHA-256:05e26d5df253246cf68ba8a8f5f2de1032ac6f4d7af5310b8080ef6f54030fb4", + "size": "13077590" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux64.tar.bz2", + "checksum": "SHA-256:e8a36b7ae19060748b8b0540c9c0c9341d8d4c7a630441922a030223f767258d", + "size": "13134534" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.7-windows.zip", + "checksum": "SHA-256:e881dd8a4bbb35f7271157e8dd226c2e032ac1115106170b0aaf9c969817df86", + "size": "13337495" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-osx.tar.bz2", + "checksum": "SHA-256:647ad713d68a1531ba56c88e5b3db9516cc0072ca1d401de5142d85ffcfd931a", + "size": "13064291" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "checksum": "SHA-256:b6e09c07e816a35935585db07e07437023d44e66d1d2f05861708ea6ceff7629", + "size": "12929770" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "checksum": "SHA-256:620f81148b13f70cdecbe59bbcbf605c7e0aae85f9cbee8ec48202f6018f23ce", + "size": "12897349" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.8", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux32.tar.bz2", + "checksum": "SHA-256:e1f43aa225e6e2ad1f2bccc07898ddb439e980905385a8d7e0615f804a69eee8", + "size": "20137214" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux64.tar.bz2", + "checksum": "SHA-256:423f67767d5b861a3c39ca6f6a18b2358a30b76bdc3d3d3d870e102b2b2271a8", + "size": "20167410" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_64bit.zip", + "checksum": "SHA-256:c3386fdc440638186541f92f920462865308e0f5dde9f45e4dd1c35d2570b808", + "size": "13645709" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_32bit.zip", + "checksum": "SHA-256:dc3ce2e824b2f8ab6ee4c7d2f836311450d60825db95cbb51eeb076a28a1e2af", + "size": "13578670" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-osx.tar.bz2", + "checksum": "SHA-256:635cbe786cd11ead26e5af0662991d8c3b647469f1874195eeb7f1dba5530b39", + "size": "20091397" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "checksum": "SHA-256:c027389528e9b04d622167943fe04badbd2f63923f08cc1b22935e5158b2545b", + "size": "19984154" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "checksum": "SHA-256:b6846bb84034e6a8486ce3165dabeb9b32b4fd3804639cd6137a37a00d0157c8", + "size": "19952489" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.9", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "checksum": "SHA-256:a45c536be798e6fc023044ee13911b9b567fb9d0b1c41c5cc9b722346f306425", + "size": "13221786" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "checksum": "SHA-256:89d08d4b75dae676bc6e982723f3b07ee5ab4c2fe6071fc97fe850697a0c5398", + "size": "13255356" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_32bit.zip", + "checksum": "SHA-256:523b2f09a38ef36dcd96558a31e072c5b244e511690326a03af9406eccda2650", + "size": "13589082" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_64bit.zip", + "checksum": "SHA-256:51eacfcaba9279ef42050d15cf86d98e79511879a84a8e960a8994f6343f74a8", + "size": "13658133" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "checksum": "SHA-256:26c0b8764a67f945037a461ead756bee0b453e383dee741548d03322327bd17d", + "size": "13202065" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "checksum": "SHA-256:3cde04fa96479bb5342f07752b9cbabdf159f1dcbe7074b642a163ff2a363a28", + "size": "13063437" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:3a41fac33917c4b5d8f5e0720afa780b2250b2561dd6090ed5338d7ab147524f", + "size": "13014703" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.1", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22bd6410b39043b0608285a51fbad7abcef0b8361f54936b362935a9bbddeeba", + "size": "13221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "checksum": "SHA-256:ba4b1b620796e352da2821bb1101cd86340649badf67abf7e7d030efee107159", + "size": "13255213" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_32bit.zip", + "checksum": "SHA-256:29ecdd651336eca9fbddde96415087e2f19a2d7330e1938e256d7acf31a0ff74", + "size": "13589219" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_64bit.zip", + "checksum": "SHA-256:a2ff1b6672e56c97aa4eccfa4258b0d91a726d0116f51227e6cc2c5c984afb5d", + "size": "13657363" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "checksum": "SHA-256:8c7602dee33e6806eefc0525a9f43512c4d89201869e677ad8d34f7e82276e38", + "size": "13201438" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "checksum": "SHA-256:65ddc38d9cfa555979bf9c7a371f887561b7d7af6a07a6adfb354628a8e69801", + "size": "13062843" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:0be6adb21791fb64134356b2ef56c9054e19fb7522e368cad9ee5c1222835e13", + "size": "13014398" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "checksum": "SHA-256:973ce3cd2d604f8750c9b62dabccdf8689013f0380d62eee29f8d6427dd37e8e", + "size": "13222221" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "checksum": "SHA-256:9303c50f051b459ba89a4b218bcb39c3348f469c55feb2c63ac53f7f12eb5048", + "size": "13255805" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_32bit.zip", + "checksum": "SHA-256:e3986ae565b658a4bcaf50c0592c5801166ade30255571154ad5729f9b8649eb", + "size": "13589237" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_64bit.zip", + "checksum": "SHA-256:a3094a4c9589812e2c9751ce324315de9011481575c53a772b3c4950cb0310d0", + "size": "13657381" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "checksum": "SHA-256:01f952aa365ddbf2072e3181f95f1b0a82d9c85bd1707a4b913e7500f833ff5f", + "size": "13201523" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "checksum": "SHA-256:824dec1d62c1a8b835e2692991b017ce21cd0c95287c9282ff9621620157b3d6", + "size": "13063327" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:057243d5ee65b14772035a2402ac48cefb208e59102f75928b4004530227cd47", + "size": "13015184" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.3", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22f72fee3a1682c30b0bf4579a1ecc2759a5063c2be9342dd3c46858db43d7ef", + "size": "15794726" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "checksum": "SHA-256:1f998f8f5d9ef9487beb00d2f434682cbcdc4b13337fd82271df8ad931121324", + "size": "15927812" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_32bit.zip", + "checksum": "SHA-256:d23dd1ef5ea19b46633980b47964834d0718d11b375c64725b28d4e39660ff3c", + "size": "16139436" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_64bit.zip", + "checksum": "SHA-256:fd6eb93b2737ae3a49800d4f42abd7fa925e985b043d3a418412f26dc61b3baa", + "size": "16189555" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "checksum": "SHA-256:ba53f679baca0f5ab6bbd4991da89702437932d67ae6c589c4da6ced3a4dc66b", + "size": "15832036" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "checksum": "SHA-256:91a85be7d657b4f31f69aba7e1a0390234d4ede5d138474b3eef928119a21df4", + "size": "15734716" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:7b2ebd25998c441b4a4da1cc5bf227285f0fd321b2107497d29910213d8ad039", + "size": "15557114" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.4", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "checksum": "SHA-256:794192e4463191308687ca10d361f6e86d06b57384800ead82ff9f1c32e3462b", + "size": "17369582" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e7e5a7f3c3f1c363a4e1e3cce3bbd48faa806da9153ade19336c68adcbc80464", + "size": "17346963" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_32bit.zip", + "checksum": "SHA-256:8bc96ea4a8e8232b7798feda9bd5e2e745c14ba7584b936a6588dcd44e69bcca", + "size": "16792636" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_64bit.zip", + "checksum": "SHA-256:29b753610b9b285a31471fe35fa7938f54d461b773f3fcf4e5bff27ca72c20e8", + "size": "16940370" + }, + { + "host": "i386-apple-darwin11", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "checksum": "SHA-256:f4c5542c209e5b7f09b020c9714889d846e8e6a96d1e2ab6e22cdae8d3ad8ef4", + "size": "16913255" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "checksum": "SHA-256:93503377d29a84f63433a608f3a2320ef27ca7f4b54a5cef6857ad16aa464842", + "size": "16992130" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:d68ddc8c78902f164f701d974d2b0deffdbe3a58bd4d62f0d2e10263c2292c0b", + "size": "17042502" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.5", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "checksum": "SHA-256:32cf24ae74d0b11ae5d41cf0b7d99a30ed5120a54ca06bfa9f5d7f02b03ad7f7", + "size": "16099680" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e619e67e5296c0e1a76bfb32b646972340083578ab216e1d298a2d3e9ddfe04c", + "size": "16077879" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_32bit.zip", + "checksum": "SHA-256:ed08415371b126bf28fdefedc7527f5679ae822e23392a918f687ffa6614a299", + "size": "15392456" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_64bit.zip", + "checksum": "SHA-256:193bde05298c7cde87b0b212eec2e104650cf44a7fe9dec44df6fde2299686e8", + "size": "15620440" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "checksum": "SHA-256:256f884a295a7b49f08124549ca25bd16e5ff46c0f50ea73e163363b40ec2c60", + "size": "15449203" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "checksum": "SHA-256:6cbecb92ef0a8014aef3b8692cf64869d13c2fc0483332695ef42fef39c0b989", + "size": "15573837" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:e09d3880d9fd51b5257c44c6304e12422523dfdc1c378a978e9596caadac6a89", + "size": "15621405" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "checksum": "SHA-256:67b413dd15afca65d327e45329b1c2e64614126ef1fae27a1323155bbdc74c20", + "size": "17458014" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e299bea991778a388e611c3e9a4b1f5a7d5cf1b121465f7a843570602d0b6f39", + "size": "17433263" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_32bit.zip", + "checksum": "SHA-256:4be9f5208841150ffc0148feccd819d77c7fbb477f41597fc3198f633a09a8ac", + "size": "16950481" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_64bit.zip", + "checksum": "SHA-256:2490cdceb24b17d8269d8c144172c02c37a81c2275ed395973d22f0017d53713", + "size": "17079617" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2d4af33020a0291e54197b133de8f278a8d68c0272e0bc93953941fd06508694", + "size": "17000606" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "checksum": "SHA-256:1b392a5ec7d4b7f8fd052e0e249f85538fbcce790bc5a442980ce6be215b5872", + "size": "17147561" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:538a24a8f7c6831477d39ae166695ed411eb29a6d5aec3b2bc69bc1ef7b4d7b1", + "size": "17186826" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "checksum": "SHA-256:5c2a04c6f84bca68a77f884d905de67970035a652d4113e2772effa03f151ac9", + "size": "20037466" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "checksum": "SHA-256:95cf13032c1a83a175ed6b87f2e6f3f33a5a5c656e98ab7caadbc07d29f6eed0", + "size": "20013555" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_32bit.zip", + "checksum": "SHA-256:28377ebe89d22a2a8246865aba93d215ed1f0c99cdbff9ae4f0149dec5bee20a", + "size": "19504654" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_64bit.zip", + "checksum": "SHA-256:47e93e135cc074305e03b7b156d8a5788611063ed28e0b8d98bc84d94ab69f27", + "size": "19693655" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2255013a1065a13ff3980678888b56aecce38d236944f53a64aae6889aa567ec", + "size": "19556591" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "checksum": "SHA-256:0f83ed1cfa04adc35dd828b17b96903c075b8c71116d2c41f3db29d20e838b46", + "size": "19698330" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:235f5e157cbe31f647bd8092f6e1146c796641e1fc0ae366222228636c62f2db", + "size": "19736165" + } + ] + }, + { + "name": "nrf5x-cl-tools", + "version": "9.3.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "size": "341674", + "checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "size": "167414", + "checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "size": "155680", + "checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "size": "812257", + "checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00" + } + ] + } + ] + }, + { + "email": "support@intel.com", + "maintainer": "Intel", + "websiteURL": "http://maker.intel.com/", + "name": "Intel", + "platforms": [ + { + "name": "Intel i586 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", + "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", + "size": "272961", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.2.tar.gz", + "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", + "size": "271420", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i586 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", + "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", + "size": "273392", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.7.tar.gz", + "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", + "size": "272002", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.4", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", + "archiveFileName": "arduino101-1.0.4.zip", + "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", + "size": "806100", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.14", + "name": "sketchUploader" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.5", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", + "archiveFileName": "arduino101-1.0.5.zip", + "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", + "size": "776592", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.18", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.6", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.6.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", + "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", + "size": "672314", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.24", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.7", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.7.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", + "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", + "size": "729297", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.28", + "name": "arduino101load" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "1.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.2", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.2.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", + "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", + "size": "6242776", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.4", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.4.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.3.zip", + "checksum": "SHA-256:466027da55175ba69115bc5aa859e10d1432cd6b6abfccc10a2687eff35ca906", + "size": "6243652", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.5", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.5.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.5.zip", + "checksum": "SHA-256:afc71056b6df11d69bb8c8204cb28e65ad557b611a42a180de682c520c7311f9", + "size": "6247928", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + } + ], + "tools": [ + { + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "30587705", + "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", + "host": "i386-apple-darwin11", + "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "45948648", + "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", + "host": "i686-mingw32", + "archiveFileName": "galileo-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "56227185", + "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", + "host": "x86_64-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "55098166", + "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", + "host": "i686-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "42720934", + "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", + "host": "i386-apple-darwin11", + "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "56683094", + "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", + "host": "i686-mingw32", + "archiveFileName": "edison-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "78998436", + "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", + "host": "x86_64-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "76488215", + "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", + "host": "i686-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.4+1.0", + "systems": [ + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", + "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem.zip", + "size": "218816528" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", + "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", + "size": "78371400" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", + "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", + "size": "182899676" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", + "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", + "size": "177840353" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.9+1.0.1", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-windows-arcem-1.0.1.zip", + "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", + "size": "172455793" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "size": "30014953" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "size": "116481978" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "size": "129250679" + } + ] + }, + { + "name": "sketchUploader", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "61789", + "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", + "host": "i386-apple-darwin11", + "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" + }, + { + "size": "2534586", + "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", + "host": "i686-mingw32", + "archiveFileName": "intel-arduino-tools-20150316-windows.zip", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" + }, + { + "size": "178239", + "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", + "host": "x86_64-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" + }, + { + "size": "187995", + "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", + "host": "i686-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" + } + ] + }, + { + "version": "1.6.4+1.14", + "name": "sketchUploader", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", + "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.14-windows.zip", + "size": "8239124" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", + "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.14-osx.tar.gz", + "size": "324645" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", + "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux32.tar.gz", + "size": "224137" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", + "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux64.tar.gz", + "size": "216542" + } + ] + }, + { + "version": "1.6.4+1.18", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", + "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.19-windows.zip", + "size": "9367650" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", + "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.18-osx.tar.gz", + "size": "1236355" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", + "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux32.tar.gz", + "size": "1269508" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", + "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux64.tar.gz", + "size": "1467166" + } + ] + }, + { + "version": "1.6.9+1.24", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", + "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", + "size": "9418690" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", + "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", + "size": "1241701" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", + "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", + "size": "1305107" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", + "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", + "size": "1507392" + } + ] + }, + { + "version": "1.6.9+1.28", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", + "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", + "size": "9331111" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", + "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", + "size": "1134614" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", + "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", + "size": "1202482" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", + "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", + "size": "1411007" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", + "size": "1115949", + "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", + "size": "992362", + "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", + "size": "1111450", + "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", + "size": "1002073", + "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", + "size": "1046285", + "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", + "size": "1114375", + "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", + "size": "992557", + "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", + "size": "1111519", + "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", + "size": "1001211", + "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", + "size": "1046214", + "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" + } + ] + }, + { + "name": "arduino101load", + "version": "2.1.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", + "size": "1188264", + "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", + "size": "1110912", + "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", + "size": "1184509", + "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", + "size": "1065618", + "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", + "size": "1078361", + "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" + } + ] + }, + { + "version": "0.9.0+0.1", + "name": "openocd", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-windows.zip", + "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", + "host": "i686-mingw32", + "archiveFileName": "openocd-windows-0.9.0.zip", + "size": "9181935" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-osx.tar.bz2", + "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-osx-0.9.0.tar.bz2", + "size": "896625" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux32.tar.bz2", + "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", + "size": "3923308" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux64.tar.bz2", + "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", + "size": "4010990" + } + ] + }, + { + "version": "1.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-mingw32", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + } + ] + }, + { + "version": "2.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-mingw32", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i386-apple-darwin11", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "x86_64-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + } + ] + } + ] + }, + { + "name": "atmel-avr-xminis", + "maintainer": "Atmel University France", + "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", + "help": + { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": + [ + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.3.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", + "size": "95352", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.4.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", + "size": "95452", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.5.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", + "size": "95573", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.6.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", + "size": "95447", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + } + ], + "tools": + [ + ] + }, + { + "name":"littleBits", + "maintainer":"littleBits Electronics", + "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", + "email":"support@littlebits.cc", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "platforms":[ + { + "name":"littleBits Arduino AVR Modules", + "architecture":"avr", + "version":"1.0.0", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", + "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", + "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", + "size":"27762", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "boards":[ + { "name":"littleBits w6 Arduino module" } + ], + "toolsDependencies":[ + { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, + { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } + ] + } + ], + "tools":[] + }, + { + "name": "Microsoft", + "maintainer": "Microsoft.IoT", + "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", + "email": "bfjelds@microsoft.com", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "platforms": [ + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.0.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", + "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", + "size": "47325480", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", + "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", + "size": "48316890", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.1", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", + "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", + "size": "48317624", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.2", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", + "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", + "size": "48317648", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + } + ], + "tools":[] + }, + { + "name": "Arrow", + "maintainer": "Axel Elettronica S.r.l.", + "websiteURL": "http://axelelettronica.it/", + "email": "development@axelelettronica.it", + "help": { + "online": "http://www.arrowsmarteverything.com/support/" + }, + "platforms": [ + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "1.2.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", + "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", + "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", + "size": "36575", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.0.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", + "archiveFileName": "Arrow-samd-2.0.0.tar.gz", + "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", + "size": "772778", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.1.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", + "archiveFileName": "Arrow-samd-2.1.0.tar.gz", + "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", + "size": "780064", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "emoro", + "maintainer": "Inovatic-ICT", + "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", + "email": "support@inovatic-ict.com", + "help": { + "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" + }, + "platforms": [ + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.1", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", + "archiveFileName": "EMoRo_2560-3.2.1.zip", + "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", + "size": "846444", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.2", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", + "archiveFileName": "EMoRo_2560-3.2.2.zip", + "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", + "size": "565744", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "industruino", + "maintainer": "Industruino", + "websiteURL": "https://industruino.com/", + "email": "connect@industruino.com", + "help": { + "online": "https://github.com/Industruino/IndustruinoSAMD" + }, + "platforms": [ + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.0", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", + "archiveFileName": "industruino-samd-1.0.0.tar.bz2", + "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", + "size": "172665", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.1", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", + "archiveFileName": "industruino-samd-1.0.1.tar.bz2", + "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", + "size": "203844", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + } + ], + "tools": [ + { + "name": "bossac", + "version": "1.7.0-industruino", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", + "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", + "size": "565844" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", + "size": "128421" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", + "size": "62348" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", + "size": "63204" + } + ] + }, + { + "name": "windows-drivers", + "version": "0.0.1", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", + "archiveFileName": "drivers-industruino-windows-0.0.1.zip", + "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", + "size": "2545" + } + ] + } + ] + } + ] +} diff --git a/indexes/testdata/package_index.json.sig b/indexes/testdata/package_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..1038023299b8a52afad53cc70d633fbf5448e836 GIT binary patch literal 543 zcmV+)0^t3L0vrSY0RjL91p;8WqCx-)2@oWrYps7NLXl}#5B@m!=okF~7;tJL;i&gs zBbrK1n)n%t$EyM#?qKO=OtQ!h8bTX%xi38)Jav=DjXWM@3@7po={Qdf?JL+QCbICr z>W{ql{YeWSzptT=H1%2mdbVwHf)ZgVxhw2dfW7l73VA3+Ix`36`|(9+S$^4q zEXzUoz89mR?Z|nwoixYTxav+S8P;Crky}xDGvuqYiFe3$>@W8CD2NPr*{U{NPDXcX z80+G-G8FmV&giVLk+q^2JHvHEGex@Umcwhj+;aIUno2m|#1M|`AGxsPEP$vgQhR2c zo~-W}$LW;jTj+HtQF5GT7gvvd)n8!VOdI1}*PntMk-%8kHz|4!3h!TT_7C@>KyY=8 zQrUb{lP2h2jF?Ar`Z*9eZCty*^sB{pVt-Z&5jsPhoI-iSf z&_YsD`u>F3;$?vtaELC32p2i{e!^mH4GLTCUmU6TLxcup`JEomhL@8Js)?hMEwnEZ hXY11J?PnI@Nxk~c*oHQ-oS(^66lsIkn*P8(@{prS4A}qx literal 0 HcmV?d00001 From 6912927aa9991007097cfc97d8ebe4b94e75746b Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 9 Jun 2021 09:54:45 +0200 Subject: [PATCH 17/23] add first implementation of download package. DownloadTool is still not working. Also move Download function in correct package --- indexes/download/download.go | 185 + indexes/download/download_test.go | 145 + .../testdata/module_firmware_index.json | 455 + .../testdata/module_firmware_index.json.sig | Bin 0 -> 438 bytes indexes/download/testdata/package_index.json | 9456 +++++++++++++++++ .../download/testdata/package_index.json.sig | Bin 0 -> 543 bytes indexes/indexes.go | 22 +- 7 files changed, 10244 insertions(+), 19 deletions(-) create mode 100644 indexes/download/download.go create mode 100644 indexes/download/download_test.go create mode 100644 indexes/download/testdata/module_firmware_index.json create mode 100644 indexes/download/testdata/module_firmware_index.json.sig create mode 100644 indexes/download/testdata/package_index.json create mode 100644 indexes/download/testdata/package_index.json.sig diff --git a/indexes/download/download.go b/indexes/download/download.go new file mode 100644 index 00000000..860c0757 --- /dev/null +++ b/indexes/download/download.go @@ -0,0 +1,185 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package download + +import ( + "bytes" + "crypto" + "encoding/hex" + "fmt" + "hash" + "io" + "path" + "strings" + + "github.com/arduino/FirmwareUploader/cli/globals" + "github.com/arduino/FirmwareUploader/indexes/firmwareindex" + "github.com/arduino/arduino-cli/arduino/cores" + "github.com/arduino/go-paths-helper" + "github.com/sirupsen/logrus" + "go.bug.st/downloader/v2" +) + +func DownloadTool(toolRelease *cores.ToolRelease) (*paths.Path, error) { + resource := toolRelease.GetCompatibleFlavour() + installDir := globals.FwUploaderPath.Join( + "tools", + toolRelease.Tool.Name, + toolRelease.Version.String()) + installDir.Parent().MkdirAll() + if err := resource.Install(paths.TempDir(), paths.TempDir(), installDir); err != nil { + logrus.Error(err) + return nil, err + } + return installDir, nil +} + +func DownloadFirmware(firmware *firmwareindex.IndexFirmware) (*paths.Path, error) { + firmwarePath := globals.FwUploaderPath.Join( + "firmwares", + firmware.Module, + firmware.Version, + path.Base(firmware.URL)) + firmwarePath.Parent().MkdirAll() + if err := firmwarePath.WriteFile(nil); err != nil { + logrus.Error(err) + return nil, err + } + d, err := downloader.Download(firmwarePath.String(), firmware.URL) + if err != nil { + logrus.Error(err) + return nil, err + } + if err := Download(d); err != nil { + logrus.Error(err) + return nil, err + } + if err := VerifyFileChecksum(firmware.Checksum, firmwarePath); err != nil { + logrus.Error(err) + return nil, err + } + size, _ := firmware.Size.Int64() + if err := VerifyFileSize(size, firmwarePath); err != nil { + logrus.Error(err) + return nil, err + } + return firmwarePath, nil +} + +func DownloadLoaderSketch(loader *firmwareindex.IndexLoaderSketch) (*paths.Path, error) { + loaderPath := globals.FwUploaderPath.Join( + "loader", + path.Base(loader.URL)) + loaderPath.Parent().MkdirAll() + if err := loaderPath.WriteFile(nil); err != nil { + logrus.Error(err) + return nil, err + } + d, err := downloader.Download(loaderPath.String(), loader.URL) + if err != nil { + logrus.Error(err) + return nil, err + } + if err := Download(d); err != nil { + logrus.Error(err) + return nil, err + } + if err := VerifyFileChecksum(loader.Checksum, loaderPath); err != nil { + logrus.Error(err) + return nil, err + } + size, _ := loader.Size.Int64() + if err := VerifyFileSize(size, loaderPath); err != nil { + logrus.Error(err) + return nil, err + } + return loaderPath, nil +} + +// Download will take a downloader.Downloader as parameter. It will Download the file specified in the downloader +func Download(d *downloader.Downloader) error { + if d == nil { + // This signal means that the file is already downloaded + return nil + } + if err := d.Run(); err != nil { + return fmt.Errorf("failed to download file from %s : %s", d.URL, err) + } + // The URL is not reachable for some reason + if d.Resp.StatusCode >= 400 && d.Resp.StatusCode <= 599 { + return fmt.Errorf(d.Resp.Status) + } + return nil +} + +// taken and adapted from https://github.com/arduino/arduino-cli/blob/59b6277a4d6731a1c1579d43aef6df2a46a771d5/arduino/resources/checksums.go +func VerifyFileChecksum(checksum string, filePath *paths.Path) error { + if checksum == "" { + return fmt.Errorf("missing checksum for: %s", filePath) + } + split := strings.SplitN(checksum, ":", 2) + if len(split) != 2 { + return fmt.Errorf("invalid checksum format: %s", checksum) + } + digest, err := hex.DecodeString(split[1]) + if err != nil { + return fmt.Errorf("invalid hash '%s': %s", split[1], err) + } + + // names based on: https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#MessageDigest + var algo hash.Hash + switch split[0] { + case "SHA-256": + algo = crypto.SHA256.New() + case "SHA-1": + algo = crypto.SHA1.New() + case "MD5": + algo = crypto.MD5.New() + default: + return fmt.Errorf("unsupported hash algorithm: %s", split[0]) + } + + file, err := filePath.Open() + if err != nil { + return fmt.Errorf("opening file: %s", err) + } + defer file.Close() + if _, err := io.Copy(algo, file); err != nil { + return fmt.Errorf("computing hash: %s", err) + } + if bytes.Compare(algo.Sum(nil), digest) != 0 { + return fmt.Errorf("archive hash differs from hash in index") + } + + return nil +} + +// taken and adapted from https://github.com/arduino/arduino-cli/blob/59b6277a4d6731a1c1579d43aef6df2a46a771d5/arduino/resources/checksums.go +func VerifyFileSize(size int64, filePath *paths.Path) error { + info, err := filePath.Stat() + if err != nil { + return fmt.Errorf("getting archive info: %s", err) + } + if info.Size() != size { + return fmt.Errorf("fetched archive size differs from size specified in index") + } + + return nil +} diff --git a/indexes/download/download_test.go b/indexes/download/download_test.go new file mode 100644 index 00000000..6b15abaa --- /dev/null +++ b/indexes/download/download_test.go @@ -0,0 +1,145 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package download + +import ( + "os" + "strings" + "testing" + + "github.com/arduino/FirmwareUploader/cli/globals" + "github.com/arduino/FirmwareUploader/indexes/firmwareindex" + "github.com/arduino/arduino-cli/arduino/cores" + "github.com/arduino/arduino-cli/arduino/cores/packageindex" + "github.com/arduino/arduino-cli/arduino/resources" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" + semver "go.bug.st/relaxed-semver" +) + +// TODO not working because of include loop +// func TestDownloadTool(t *testing.T) { +// defer os.RemoveAll(globals.FwUploaderPath.String()) // cleanup after tests +// t.Logf("testing with index: %s", packageIndexGZURL) +// err := DownloadIndex(packageIndexGZURL) +// require.NoError(t, err) +// require.DirExists(t, globals.FwUploaderPath.String()) +// URL, err := utils.URLParse(packageIndexGZURL) +// require.NoError(t, err) +// indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) +// require.FileExists(t, indexPath.String()) +// sigURL, err := url.Parse(URL.String()) +// require.NoError(t, err) +// sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") +// signaturePath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)).String() +// require.FileExists(t, signaturePath) +// } + +func TestDownloadTool(t *testing.T) { + defer os.RemoveAll(globals.FwUploaderPath.String()) + // semver.WarnInvalidVersionWhenParsingRelaxed = true + list, err := paths.New("testdata").ReadDir() + require.NoError(t, err) + list.FilterSuffix("package_index.json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := packageindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + tool := GetToolRelease(index, "arduino:bossac@1.7.0-arduino3") + toolPath, err := DownloadTool(tool) + // TODO verify that the tool is installed + require.NoError(t, err) + require.NotEmpty(t, toolPath) + require.FileExists(t, toolPath.String()) + } +} + +func TestDownloadFirmware(t *testing.T) { + defer os.RemoveAll(globals.FwUploaderPath.String()) + list, err := paths.New("../testdata").ReadDir() // TODO fix this + require.NoError(t, err) + list.FilterSuffix("module_firmware_index.json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := firmwareindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + firmwarePath, err := DownloadFirmware(index.Boards[0].Firmwares[0]) + require.NoError(t, err) + require.NotEmpty(t, firmwarePath) + require.FileExists(t, firmwarePath.String()) + } +} + +func TestDownloadLoaderSketch(t *testing.T) { + defer os.RemoveAll(globals.FwUploaderPath.String()) + list, err := paths.New("../testdata").ReadDir() // TODO fix this + require.NoError(t, err) + list.FilterSuffix("module_firmware_index.json") + for _, indexFile := range list { + t.Logf("testing with index: %s", indexFile) + index, e := firmwareindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + loaderPath, err := DownloadLoaderSketch(index.Boards[0].LoaderSketch) + require.NoError(t, err) + require.NotEmpty(t, loaderPath) + require.FileExists(t, loaderPath.String()) + } +} + +func GetToolRelease(index *packageindex.Index, toolID string) *cores.ToolRelease { // TODO put this logic in index.go in cli + split := strings.Split(toolID, ":") + packageName := split[0] + split = strings.Split(split[1], "@") + toolName := split[0] + version := semver.ParseRelaxed(split[1]) + for _, pack := range index.Packages { + if pack.Name != packageName { + continue + } + for _, tool := range pack.Tools { + if tool.Name == toolName && tool.Version.Equal(version) { + flavors := []*cores.Flavor{} + for _, system := range tool.Systems { + size, _ := system.Size.Int64() + flavors = append(flavors, &cores.Flavor{ + OS: system.OS, + Resource: &resources.DownloadResource{ + URL: system.URL, + ArchiveFileName: system.ArchiveFileName, + Checksum: system.Checksum, + Size: size, + }, + }) + } + return &cores.ToolRelease{ + Version: version, + Flavors: flavors, + Tool: &cores.Tool{ + Name: toolName, + }, + } + } + } + } + return nil +} diff --git a/indexes/download/testdata/module_firmware_index.json b/indexes/download/testdata/module_firmware_index.json new file mode 100644 index 00000000..38503734 --- /dev/null +++ b/indexes/download/testdata/module_firmware_index.json @@ -0,0 +1,455 @@ +[ + { + "fqbn": "arduino:samd:mkr1000", + "firmware": [ + { + "version": "19.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", + "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27", + "size": "412308" + }, + { + "version": "19.5.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", + "checksum": "SHA-256:e2e5aa2cf185745582002e2fed27c079d4228bc8d756281f43638c72061c9110", + "size": "413604" + }, + { + "version": "19.5.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", + "checksum": "SHA-256:146d3d5fccf65ff6d732e34077e56f1f0b2f69584fd8499db914ea11ed463042", + "size": "413604" + }, + { + "version": "19.6.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", + "checksum": "SHA-256:629a2553cb738be1424eaa707c00403ebce179fdb94008acec1f185a19a60c81", + "size": "359356" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", + "checksum": "SHA-256:1d904bf745c8df448358d70837a36ee8dec4c2a01e0e3b2ef8ef51c6a6c9d385", + "size": "16328" + }, + "module": "WINC1500", + "name": "Arduino MKR1000", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:mkrwifi1010", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkrwifi1010/loader.bin", + "checksum": "SHA-256:a4f9b0586bf78b8e1c5a6660df6b749d1ad4e3ee79ee4928371a465899a4a1c4", + "size": "13688" + }, + "module": "NINA", + "name": "Arduino MKR WiFi 1010", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:nano_33_iot", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.nano_33_iot/loader.bin", + "checksum": "SHA-256:f643fd763ba6aec835bb708669a6a5f5709357990d9eab6f4e6d5223ea3ca2a3", + "size": "14348" + }, + "module": "NINA", + "name": "Arduino NANO 33 IoT", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:samd:mkrvidor4000", + "firmware": [ + { + "version": "1.0.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", + "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", + "size": "736256" + }, + { + "version": "1.1.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", + "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", + "size": "814080" + }, + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", + "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", + "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", + "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", + "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", + "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", + "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", + "size": "1035264" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", + "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", + "size": "1208320" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", + "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", + "size": "1125376" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", + "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", + "size": "1125376" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", + "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", + "size": "1125376" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", + "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", + "size": "1127424" + } + ], + "module": "NINA", + "name": "Arduino MKR Vidor 4000", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -I -U true -i -e -w \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:megaavr:uno2018", + "firmware": [ + { + "version": "1.2.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:bac23326dd4c3b6358ee88ff322da8c16e24e9917b8b0bbd18f663aacfb758cf", + "size": "880640" + }, + { + "version": "1.2.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:d1f496b185eff6b2ab2f839f6673afc80e1b3e3b2056fc8d9290a74895baf0e5", + "size": "893952" + }, + { + "version": "1.2.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:53668eb76be80fffdd67ced7cbb8ab231638b9ee428ae83568dfe48359008bb4", + "size": "893952" + }, + { + "version": "1.2.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:37b042cf759b52a96304c35af6a066038184533cc6256f795e92ed1b4fbda3d5", + "size": "917504" + }, + { + "version": "1.3.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:c538028f428b3fc219d2f7c0d9debacd07bababf43dbc28680ed452225ff4629", + "size": "986112" + }, + { + "version": "1.4.0", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:fe852e28eb0547a324069194dcce524b5a9f18adce2983bbe11a818a7ae8200a", + "size": "1041408" + }, + { + "version": "1.4.1", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:f11deb8ce5abe908353eebca7253c18359eb8ea2a601908d5cdb56bf035b4158", + "size": "1044480" + }, + { + "version": "1.4.2", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:7adff887267297dccc6c3ce77f41a986a23a1f7dfce9e8f3b70b3aa038371d47", + "size": "1132544" + }, + { + "version": "1.4.3", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:c026f967bd3add27716a1afaf729d669a5e093771098329bab2477980d6879b5", + "size": "1132544" + }, + { + "version": "1.4.4", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:6b7809357a57946638b271dd1b0b43a84cbcbea9b854d3ff093752fa0fe7b818", + "size": "1132544" + }, + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", + "checksum": "SHA-256:b641c4f6f76ab4c7a529848da54f15b9b9857a9627920129a0a6f65edc465c67", + "size": "1133568" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.megaavr.uno2018/loader.hex", + "checksum": "SHA-256:0d4c2bf93da575245e92595b1d0f55db1fa79583f1c3361646da051dab020afe", + "size": "18954" + }, + "module": "NINA", + "name": "Arduino Uno WiFi Rev2", + "uploader": "arduino:avrdude@6.3.0-arduino17", + "uploader.command": "\"{uploader}\" \"-C{config.path}\" -v -patmega4809 -cxplainedmini_updi -Pusb -b115200 -e -D \"-Uflash:w:{loader.sketch}.hex:i\" \"-Ufuse2:w:0x01:m\" \"-Ufuse5:w:0xC9:m\" \"-Ufuse8:w:0x02:m\" " + }, + { + "fqbn": "arduino:samd:mkrnb1500", + "firmware": [ + { + "version": "5.6A2.00-to-5.6A2.01", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2.00-to-5.6A2.01/5.6A2.00-to-5.6A2.01.pkg", + "checksum": "SHA-256:8f04bd7fa1833cf2d3762e086d79191e76bf66c6e108e852b5fe89ca4f2b72c9", + "size": "529880" + }, + { + "version": "5.6A2_01_to_99", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2_01_to_99/5.6A2_01_to_99.pkg", + "checksum": "SHA-256:abb947accdeb980d7aeafed45ac7ce797eb90445eeb8d0bd57ca5b3ad204dbf6", + "size": "1738" + }, + { + "version": "99_to_5.6A2_01", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/99_to_5.6A2_01/99_to_5.6A2_01.pkg", + "checksum": "SHA-256:81618148c677d8c36df5089c931b46476f4a78fd9d9fd231fee0a9dbb38aa970", + "size": "1724" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkrnb1500/loader.bin", + "checksum": "SHA-256:a627ff76588626eacaaec2a2f5719e3fcf069fda2b32f8ace4f2703f1768f142", + "size": "11312" + }, + "module": "SARA", + "name": "Arduino MKR NB 1500", + "uploader": "arduino:bossac@1.7.0-arduino3", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "true", + "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" + }, + { + "fqbn": "arduino:mbed_nano:nanorp2040connect", + "firmware": [ + { + "version": "1.4.5", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", + "checksum": "SHA-256:5cc391414abd2233001923221a0103dd5ca37222cf885dace065962c962ccd2b", + "size": "1127424" + } + ], + "loader_sketch": { + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.mbed_nano.nanorp2040connect/loader.elf", + "checksum": "SHA-256:263fe2389f9a4ee3ba5938f2115faad3bbb9c775821a598a66f0f1708e64fc01", + "size": "1649504" + }, + "module": "NINA", + "name": "Arduino Nano RP2040 Connect", + "uploader": "arduino:rp2040tools@1.0.2", + "upload.use_1200bps_touch": "true", + "upload.wait_for_upload_port": "false", + "uploader.command": "\"{uploader}\" -v -D \"{loader.sketch}.elf\"" + } +] \ No newline at end of file diff --git a/indexes/download/testdata/module_firmware_index.json.sig b/indexes/download/testdata/module_firmware_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..c2bce9ecbdc662568bbdf9732e348cd4e99ab49e GIT binary patch literal 438 zcmV;n0ZIOe0kZ@E0SW*e79j-3B=Z`7-~4=#Bepey^4G`3qAGI*0${c;TL20P5Q6g8 z$Hk&5bNZhQ0FXm3L;&77tUL+!e)b%VkBcl;!8#N|j+1&7cxl6orNN7eBf;)9c;>+J znowp9TvWTT#H13N7TqjP^3DqyryL9LK-aXIwd7bpMk_aBG#K9rp}N}a907rj6&qX? zf|>&Ey;0`M3>U86j)Eh2+Kn0bB1#g;;)s{E6r1{IKZx@ z+Pq}O1X*xr$x2ZD;CHz^nrkbq!gXTws2%y zdf0A}mxj&^1$O9(IyZe)vfIOXs4GOg)EN%cJ$X-mcQ}EWRDsV1fu+yv+xL}d&{mrO gs>H;(APl?YIA$qGCTydQoLIJA_oNaFnR2_6vv5q;E&u=k literal 0 HcmV?d00001 diff --git a/indexes/download/testdata/package_index.json b/indexes/download/testdata/package_index.json new file mode 100644 index 00000000..03f747ab --- /dev/null +++ b/indexes/download/testdata/package_index.json @@ -0,0 +1,9456 @@ +{ + "packages": [ + { + "name": "arduino", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", + "archiveFileName": "avr-1.6.2.tar.bz2", + "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", + "size": "4877442", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", + "archiveFileName": "avr-1.6.3.tar.bz2", + "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", + "size": "4876816", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino3" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino3" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", + "archiveFileName": "avr-1.6.4.tar.bz2", + "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", + "size": "4780884", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", + "archiveFileName": "avr-1.6.5.tar.bz2", + "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", + "size": "4876957", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", + "archiveFileName": "avr-1.6.6.tar.bz2", + "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", + "size": "4876916", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", + "archiveFileName": "avr-1.6.7.tar.bz2", + "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", + "size": "4904283", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", + "archiveFileName": "avr-1.6.8.tar.bz2", + "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", + "size": "4885536", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", + "archiveFileName": "avr-1.6.9.tar.bz2", + "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", + "size": "4890702", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", + "archiveFileName": "avr-1.6.10.tar.bz2", + "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", + "size": "4991331", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", + "archiveFileName": "avr-1.6.11.tar.bz2", + "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", + "size": "4991634", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.12", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", + "archiveFileName": "avr-1.6.12.tar.bz2", + "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", + "size": "4993586", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.13", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", + "archiveFileName": "avr-1.6.13.tar.bz2", + "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", + "size": "4993644", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.14", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", + "archiveFileName": "avr-1.6.14.tar.bz2", + "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", + "size": "4993455", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.15", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", + "archiveFileName": "avr-1.6.15.tar.bz2", + "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", + "size": "4993959", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.16", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", + "archiveFileName": "avr-1.6.16.tar.bz2", + "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", + "size": "5011829", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.17", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", + "archiveFileName": "avr-1.6.17.tar.bz2", + "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", + "size": "5011912", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.18", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", + "archiveFileName": "avr-1.6.18.tar.bz2", + "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", + "size": "4897659", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.19", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", + "archiveFileName": "avr-1.6.19.tar.bz2", + "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", + "size": "4959420", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.20", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", + "archiveFileName": "avr-1.6.20.tar.bz2", + "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", + "size": "4897949", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.21", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", + "archiveFileName": "avr-1.6.21.tar.bz2", + "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", + "size": "4897460", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", + "archiveFileName": "avr-1.6.22.tar.bz2", + "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", + "size": "4907422", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", + "archiveFileName": "avr-1.6.23.tar.bz2", + "checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", + "size": "5001988", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.1.tar.bz2", + "archiveFileName": "avr-1.8.1.tar.bz2", + "checksum": "SHA-256:4791a52fd058f72557af333abc2dea564c8be47fb38fbd7be75ce2fcfdc214b5", + "size": "4941605", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2", + "archiveFileName": "avr-1.8.2.tar.bz2", + "checksum": "SHA-256:6213d41c6e91a75ac931527da5b10f2dbe0140c8cc1dd41b06cd4e78b943f41b", + "size": "4918242", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", + "archiveFileName": "avr-1.8.3.tar.bz2", + "checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", + "size": "4941548", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", + "archiveFileName": "megaavr-1.6.23.tar.bz2", + "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", + "size": "717681", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.24.tar.bz2", + "archiveFileName": "megaavr-1.6.24.tar.bz2", + "checksum": "SHA-256:0910af1d6eb44b65fee77c81a7a83ee420e6a7c1622f90754e91a5127d317a1d", + "size": "709516", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.25.tar.bz2", + "archiveFileName": "megaavr-1.6.25.tar.bz2", + "checksum": "SHA-256:f776e0b8996d1d199699382b311595825911539f2809dec24780c4c0014d45ff", + "size": "712366", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.26", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.26.tar.bz2", + "archiveFileName": "megaavr-1.6.26.tar.bz2", + "checksum": "SHA-256:d7fe4b40d489c21a89feed6713a2ca9bfb7ed3925536a18de7e5379ffc26737e", + "size": "712719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.1.tar.bz2", + "archiveFileName": "megaavr-1.8.1.tar.bz2", + "checksum": "SHA-256:51da414ba5372788ebcd38c8f652cb08152cf20e6a9fd3c398134b2325bf4c68", + "size": "817179", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.2.tar.bz2", + "archiveFileName": "megaavr-1.8.2.tar.bz2", + "checksum": "SHA-256:0f59e2d9e5f7b7b80ca3bc54cef00beb653c9a9b6454166dfb0e17cd2160a377", + "size": "840041", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.3.tar.bz2", + "archiveFileName": "megaavr-1.8.3.tar.bz2", + "checksum": "SHA-256:9791d62551f1e6539769a026f903082344b8ae8b921c1796de94a2af368d866d", + "size": "856037", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.4.tar.bz2", + "archiveFileName": "megaavr-1.8.4.tar.bz2", + "checksum": "SHA-256:ff25944bc6f7b766f8a71b836763517de3b12008b0b08cf24460b8af5a05abd1", + "size": "855455", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.5.tar.bz2", + "archiveFileName": "megaavr-1.8.5.tar.bz2", + "checksum": "SHA-256:d35ca76fa081fb3a282584d498fadb5712a4330fa39cde560e31d72185c940d8", + "size": "876954", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.6.tar.bz2", + "archiveFileName": "megaavr-1.8.6.tar.bz2", + "checksum": "SHA-256:d6d34aa9d7f2934c92c0a39cd8b48c6a1efb1820c59f558b5f8eddde63409eaa", + "size": "856719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "archiveFileName": "core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "checksum": "SHA-256:24853e59bfcfcfa09d7ab51011b65f2246e082228b1f14fdaa4cbb2c6aae23b4", + "size": "875098", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", + "archiveFileName": "sam-1.6.2.tar.bz2", + "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", + "size": "16174730", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", + "archiveFileName": "sam-1.6.3.tar.bz2", + "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", + "size": "16174017", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", + "archiveFileName": "sam-1.6.4.tar.bz2", + "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", + "size": "16174992", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", + "archiveFileName": "sam-1.6.5.tar.bz2", + "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", + "size": "16529130", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", + "archiveFileName": "sam-1.6.6.tar.bz2", + "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", + "size": "16528101", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", + "archiveFileName": "sam-1.6.7.tar.bz2", + "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", + "size": "16473479", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", + "archiveFileName": "sam-1.6.8.tar.bz2", + "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", + "size": "16471779", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", + "archiveFileName": "sam-1.6.9.tar.bz2", + "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", + "size": "16473503", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", + "archiveFileName": "sam-1.6.10.tar.bz2", + "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", + "size": "16474738", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", + "archiveFileName": "sam-1.6.11.tar.bz2", + "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", + "size": "16474757", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.12.tar.bz2", + "archiveFileName": "sam-1.6.12.tar.bz2", + "checksum": "SHA-256:1d56d0ceea12a920c4a5c12fff793499354ffba7e93d330786bd2d6f3a191c47", + "size": "16496493", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", + "archiveFileName": "samd-1.6.1.tar.bz2", + "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", + "size": "178354", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", + "archiveFileName": "samd-1.6.2.tar.bz2", + "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", + "size": "179578", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", + "archiveFileName": "samd-1.6.3.tar.bz2", + "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", + "size": "978163", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", + "archiveFileName": "samd-1.6.4.tar.bz2", + "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", + "size": "977481", + "boards": [ + { "name": "Arduino Zero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", + "archiveFileName": "samd-1.6.5.tar.bz2", + "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", + "size": "979548", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", + "archiveFileName": "samd-1.6.6.tar.bz2", + "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", + "size": "997331", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", + "archiveFileName": "samd-1.6.7.tar.bz2", + "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", + "size": "841503", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", + "archiveFileName": "samd-1.6.8.tar.bz2", + "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", + "size": "841801", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", + "archiveFileName": "samd-1.6.9.tar.bz2", + "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", + "size": "855221", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", + "archiveFileName": "samd-1.6.10.tar.bz2", + "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", + "size": "2765368", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", + "archiveFileName": "samd-1.6.11.tar.bz2", + "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", + "size": "2764312", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", + "archiveFileName": "samd-1.6.12.tar.bz2", + "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", + "size": "2754767", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruti Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino5-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.13", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", + "archiveFileName": "samd-1.6.13.tar.bz2", + "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", + "size": "2777384", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.14", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", + "archiveFileName": "samd-1.6.14.tar.bz2", + "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", + "size": "2746416", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.15", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", + "archiveFileName": "samd-1.6.15.tar.bz2", + "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", + "size": "2795099", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.16", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", + "archiveFileName": "samd-1.6.16.tar.bz2", + "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", + "size": "2796651", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.17", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", + "archiveFileName": "samd-1.6.17.tar.bz2", + "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", + "size": "2849852", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.18", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", + "archiveFileName": "samd-1.6.18.tar.bz2", + "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", + "size": "2808624", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.19", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", + "archiveFileName": "samd-1.6.19.tar.bz2", + "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", + "size": "2844050", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.20", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.20.tar.bz2", + "archiveFileName": "samd-1.6.20.tar.bz2", + "checksum": "SHA-256:65a07751d858c7096d4ed9e842768530d41f84c30e26baa398c82e6ad92649bf", + "size": "2854887", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", + "archiveFileName": "samd-beta-1.6.22.tar.bz2", + "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", + "size": "2880064", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.21", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.21.tar.bz2", + "archiveFileName": "samd-1.6.21.tar.bz2", + "checksum": "SHA-256:6ccd8aa87eb0a81ae8b7f34103c2e37edbeb0b358b886f6066db3688c0c5aa54", + "size": "2848675", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", + "archiveFileName": "samd-beta-1.6.23.tar.gz", + "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", + "size": "3634633", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", + "archiveFileName": "samd-beta-1.6.24.tar.bz2", + "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", + "size": "2885903", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.25.tar.bz2", + "archiveFileName": "samd-beta-1.6.25.tar.bz2", + "checksum": "SHA-256:95e22b75d2ff1e3a1c9baabad205fbd48964b195390951943035bfbd88286961", + "size": "2890759", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.1.tar.bz2", + "archiveFileName": "samd-1.8.1.tar.bz2", + "checksum": "SHA-256:a8492b777f7f719fb5270f641b6b13b91ec242f5132b325ede2649dc2bda3117", + "size": "2849370", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.2.tar.bz2", + "archiveFileName": "samd-1.8.2.tar.bz2", + "checksum": "SHA-256:af75e0d37b63df3b92ecca60285aa59bab66e0bd03bcc4092ea3a1fab3df5258", + "size": "2894202", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.3.tar.bz2", + "archiveFileName": "samd-1.8.3.tar.bz2", + "checksum": "SHA-256:ceac942d67c374e02c3f7586d17a7a4f0ef7bc022627577fd437af928cc21ad3", + "size": "2897712", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.4.tar.bz2", + "archiveFileName": "samd-1.8.4.tar.bz2", + "checksum": "SHA-256:2b32e54542211360ba6fb133e7d507dedd7a8ea8583f6fa714605a1f003acb27", + "size": "2905449", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.5.tar.bz2", + "archiveFileName": "samd-1.8.5.tar.bz2", + "checksum": "SHA-256:b518709eb7dd0ad93dfce28c44d53b7873d9d184755672635fa5053a4684354e", + "size": "2882230", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.6.tar.bz2", + "archiveFileName": "samd-1.8.6.tar.bz2", + "checksum": "SHA-256:68a4fffa6fe6aa7886aab2e69dff7d3f94c02935bbbeb42de37f692d7daf823b", + "size": "2980953", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.7.tar.bz2", + "archiveFileName": "samd-1.8.7.tar.bz2", + "checksum": "SHA-256:2e465cc08f0f5dc19a95bb10115fd8d1451a7857fd21f2a91f5605e7a8c1dc12", + "size": "3049628", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.8.tar.bz2", + "archiveFileName": "samd-1.8.8.tar.bz2", + "checksum": "SHA-256:7b93eb705cba9125d9ee52eba09b51fb5fe34520ada351508f4253abbc9f27fa", + "size": "3061568", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.9.tar.bz2", + "archiveFileName": "samd-1.8.9.tar.bz2", + "checksum": "SHA-256:41c04740f7b61b561a7134a847678845e91219164f4d125951e13756f53a865b", + "size": "3059968", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.10.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.10.tar.bz2", + "checksum": "SHA-256:f925755f5f104f9b175b562cc64d9e075e93faa248119a2305029ac49ceb0c6b", + "size": "3072717", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.11.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.11.tar.bz2", + "checksum": "SHA-256:3c152827c37cc236f24a81b7142b5c82db7c308991a2544d32239501a7a6498c", + "size": "3057742", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "checksum": "SHA-256:d70d8c98fd5ec9cc0cc05722dda344c325910cdc4c5dddfa976dc9a8f00f5f5b", + "size": "35128465", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.1", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "checksum": "SHA-256:ac8d6ec83f8c42e27b4dac9d4b565779ff213dd6bcd879dad876cfdf4a492c07", + "size": "35127935", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.2", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "checksum": "SHA-256:ebe30e9a2cf2d0e18a84df9cd3b1238249c5b1248e0d5238edb36180f1c33d13", + "size": "36372757", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.3", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "checksum": "SHA-256:64e7ded2c068e415d862caa200f09a1f9e17c36bb0fc924869b24b205a924845", + "size": "12373194", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.4", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "checksum": "SHA-256:a946b25d426d4e2430b4756e929268094f0b150566f79d6502f3f1819d86ac14", + "size": "12377522", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.5", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "checksum": "SHA-256:eda6c708d32e8bac33b1ee5e5bd70f7af0feaa5d83c683da80eca1f21dc25cd7", + "size": "12760869", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.6", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "checksum": "SHA-256:5a05ac9cb13549472edc313403a58bcd56db0f3abeffe4072da4f2ec6ab3c795", + "size": "12760476", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-1.3.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-1.3.0.tar.bz2", + "checksum": "SHA-256:f6617b34b53af37dbc2e6805097cf961f2032dbfc3750a003ba1902d7469258b", + "size": "93357731", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.1", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.1.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.1.tar.bz2", + "checksum": "SHA-256:9f659a88c1b246a69537e585e10188b8a654dc6c51797c89e42bcc9aa26cab8d", + "size": "93181681", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.2", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.2.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.2.tar.bz2", + "checksum": "SHA-256:689602d7380f394d092ef627138e434950bb4c8f698fbdaa7d1edd141d2ff0ea", + "size": "93257117", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.0.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.0.0.tar.bz2", + "checksum": "SHA-256:7d1c67a75f871382c52b7822ebedf85849be35266204cd3749087b70793c8740", + "size": "33510861", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "checksum": "SHA-256:1264f90c3094282f09aa0f76fb7670fb79ab5abeb321bca41531a586778188c7", + "size": "5180388", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "checksum": "SHA-256:93cf3b6b552601395a4cf8b9aed465d9aab7906f2aeebe6cf638c8a952220857", + "size": "6014638", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "checksum": "SHA-256:d8a0fd481357febe4246a616e859e644616f03208d70dbcda11e7850b454c0cc", + "size": "27024661", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "checksum": "SHA-256:36c5499d4bd119861828c787010c07ac31fe7b3b920d56efe30118b44838a587", + "size": "3841101", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.1.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.1.0.tar.bz2", + "checksum": "SHA-256:6ec882fe5ea1728659f56373df2f06077d156517004b50502c836e68b9a9751a", + "size": "32179151", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "checksum": "SHA-256:68591a6a901916cada4164f09ccd6e8a2e04b1f4244514bc8aeca5c170972b7d", + "size": "5195498", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "checksum": "SHA-256:3b7362662254a4b7e2e06d7ddd9831820e4909787a7dce02fa8e9c653740b1a8", + "size": "6086135", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "checksum": "SHA-256:b74105f5b4c375dcbb095343aaf6d9adda2a1922f925b7b70e84588610f8aa3c", + "size": "25622118", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "checksum": "SHA-256:f2732b910449a8ec1ff0a90e32b07276a5d082911a5c639452484ca853e05e9e", + "size": "3844940", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino NRF52 Boards", + "architecture": "nrf52", + "version": "1.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", + "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", + "size": "2438905", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", + "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", + "size": "2262233", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", + "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", + "size": "2308695", + "boards": [ + { "name": "Arduino Primo" }, + { "name": "Arduino Primo Core" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + } + ], + "tools": [ + { + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", + "size": "44423906" + }, + { + "host": "i686-mingw32", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", + "size": "84537449" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", + "size": "52518522" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", + "size": "51395093" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", + "size": "51029223" + } + ] + }, + { + "name": "arm-none-eabi-gcc", + "version": "7-2017q4", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b", + "size": "96613739" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", + "size": "99558726" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", + "size": "131761924" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", + "size": "104550003" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", + "size": "99857645" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", + "size": "97427309" + } + ] + }, + { + "name": "bossac", + "version": "1.3-arduino", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", + "size": "147359" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", + "size": "26179" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", + "size": "265647" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", + "size": "39475" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino2", + "systems": [ + { + "size": "24443285", + "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27152002", + "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25876628", + "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046691", + "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino2", + "systems": [ + { + "size": "264965", + "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292541", + "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283209", + "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241618", + "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino3", + "systems": [ + { + "size": "24447175", + "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "30556996", + "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "28768022", + "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046917", + "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino3", + "systems": [ + { + "size": "264682", + "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "748634", + "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "495482", + "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241619", + "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino5", + "systems": [ + { + "size": "24403768", + "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "24437400", + "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27093036", + "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25882375", + "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46044779", + "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino5", + "systems": [ + { + "size": "267095", + "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "264894", + "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292629", + "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283121", + "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241634", + "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino", + "systems": [ + { + "size": "27046965", + "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27400001", + "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "29904544", + "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "29077606", + "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "43847566", + "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2", + "systems": [ + { + "size": "27400889", + "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "27048070", + "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "43847945", + "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" + }, + { + "size": "29292729", + "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "29882960", + "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2", + "systems": [ + { + "size": "27764772", + "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "28574644", + "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "44386446", + "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" + }, + { + "size": "29723974", + "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "30374404", + "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2", + "systems": [ + { + "size": "31449123", + "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "33141295", + "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "31894498", + "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "45923772", + "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" + }, + { + "size": "33022916", + "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "33522375", + "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5", + "systems": [ + { + "size": "34462042", + "checksum": "SHA-256:f4acd5531c6b82c715e2edfa0aadb13fb718b4095b3ea1aa1f7fbde680069639", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "39381972", + "checksum": "SHA-256:dd9c70190be370a44fb47dab1514de6d8852b861dfa527964b65c740d8d50c10", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "38492678", + "checksum": "SHA-256:f48706317f04452544ab90e75bd1bb193f8af2cb1002f53aa702f27202c1b38f", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "53727984", + "checksum": "SHA-256:6d4a5d089a36e5b5252befc73da204555b49e376ce7577ee19ca7f028b295830", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip" + }, + { + "size": "38710087", + "checksum": "SHA-256:2ff12739d7ed09688d6b3c2c126e8df69b5bda1a07ab558799f0e576571e0e1d", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "39114120", + "checksum": "SHA-256:3effed8ffa1978b6e4a46f1aa2acc629e440b4d77244f71f9b79a916025206fb", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7", + "systems": [ + { + "size": "34683056", + "checksum": "SHA-256:3903553d035da59e33cff9941b857c3cb379cb0638105dfdf69c97f0acc8e7b5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "38045723", + "checksum": "SHA-256:03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "36684546", + "checksum": "SHA-256:f6ed2346953fcf88df223469088633eb86de997fa27ece117fd1ef170d69c1f8", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "52519412", + "checksum": "SHA-256:a54f64755fff4cb792a1495e5defdd789902a2a3503982e81b898299cf39800e", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip" + }, + { + "size": "37176991", + "checksum": "SHA-256:954bbffb33545bcdcd473af993da2980bf32e8461ff55a18e0eebc7b2ef69a4c", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "37630618", + "checksum": "SHA-256:bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino2", + "systems": [ + { + "size": "643484", + "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "653968", + "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "745081", + "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "731802", + "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "608496", + "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino6", + "systems": [ + { + "size": "644600", + "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "696273", + "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" + }, + { + "size": "746653", + "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "733127", + "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645859", + "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino8", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697268", + "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711544", + "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701718", + "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645996", + "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino9", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697309", + "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711229", + "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701590", + "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645974", + "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino14", + "systems": [ + { + "size": "219616", + "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229688", + "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "256917", + "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" + }, + { + "size": "253366", + "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244293", + "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328363", + "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino16", + "systems": [ + { + "size": "219642", + "checksum": "SHA-256:6fc443445440f0e2d95d70013ed075bceffc2a1babc1e7d4f1ae69c3fe268c57", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229997", + "checksum": "SHA-256:7a2726ab2fd18b910abc3d9dd33c4b40d18c34cf12c46f3367932e7fd87c0197", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279172", + "checksum": "SHA-256:f93dc12a4b30a335ab24b3c628e6cad0ebf2f8adfb7ef50f87c0fc17165b2156", + "host": "x86_64-apple-darwin15", + "archiveFileName": "avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2" + }, + { + "size": "254085", + "checksum": "SHA-256:57856d6e388d333d924afa3e2d5525161dbe0dc670e7caae2720e249606175a7", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244393", + "checksum": "SHA-256:bdf73358991243a9a8de11a42c80c4ec4b14c82f2222cb0c3c181f62656c41fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328456", + "checksum": "SHA-256:781c16a8bf813fa68fc0f47d427279053c9e098c3aed7165449ac4f0137304dd", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino18", + "systems": [ + { + "size": "220677", + "checksum": "SHA-256:2e25c9e99c255d595a1072679a88ecddfa12c223b18510760bb867039f35efa5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "231047", + "checksum": "SHA-256:4f88bb50d2235182ed7aa9e0a1d08e4bb956378ac9569b8e1141e37ed314fb2d", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "280072", + "checksum": "SHA-256:df1dfd18e2e287c47232605cd4fa41751eb70df8c300aeb7a00a3a09b524a1b8", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254460", + "checksum": "SHA-256:1ae46972b276b8a54c459f87c4ff326abdad0be2b1a293d73bf86e47765eddc3", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "329515", + "checksum": "SHA-256:0781f4183e91a9783c2330035520144ab76b8f75c0a9f7a25877c063bc984c4d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino18-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.0.0", + "systems": [ + { + "size": "2044124", + "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" + }, + { + "size": "2178772", + "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" + }, + { + "size": "1961623", + "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" + }, + { + "size": "2180617", + "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" + }, + { + "size": "2247970", + "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.0.0-windows.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.1.1", + "systems": [ + { + "size": "2045036", + "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" + }, + { + "size": "2178288", + "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" + }, + { + "size": "1962115", + "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" + }, + { + "size": "2181376", + "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" + }, + { + "size": "2248431", + "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.0", + "systems": [ + { + "size": "1839854", + "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" + }, + { + "size": "1974030", + "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" + }, + { + "size": "1787138", + "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" + }, + { + "size": "1992476", + "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" + }, + { + "size": "2003964", + "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.1", + "systems": [ + { + "size": "2133779", + "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" + }, + { + "size": "2257689", + "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2244088", + "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" + }, + { + "size": "2237511", + "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.3.0", + "systems": [ + { + "size": "2633516", + "checksum": "SHA-256:3e7f59d6fbc7a724598303f0d3289d0c4fd137a8973437980658379a024887b2", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2" + }, + { + "size": "2716248", + "checksum": "SHA-256:aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2" + }, + { + "size": "2567435", + "checksum": "SHA-256:1888587409b56aef4ba0ab0e6703b3dccba7cc3a022756ba9b908247e5d5a656", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2" + }, + { + "size": "2472427", + "checksum": "SHA-256:835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm64.tar.bz2" + }, + { + "size": "2766116", + "checksum": "SHA-256:d5d0f82ff829c0e434d12a2ee640a6fbd78f893ab37782edbb8b5bf2359d119e", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.3.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64.tar.bz2" + }, + { + "size": "2768948", + "checksum": "SHA-256:051943844eee442460d2c709edefadca184287fffd2b6c100dd53aa742aa05f6", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.3.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-windows_386.zip" + } + ] + }, + { + "name": "bossac", + "version": "1.5-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", + "size": "199550" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", + "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", + "size": "222283" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", + "size": "64120" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", + "size": "30431" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", + "size": "29783" + } + ] + }, + { + "name": "bossac", + "version": "1.6-arduino", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz", + "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", + "size": "222517" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", + "size": "64538" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", + "size": "30649" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", + "size": "30072" + } + ] + }, + { + "name": "bossac", + "version": "1.6.1-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-mingw32.tar.gz", + "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", + "size": "243066" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", + "size": "63822" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", + "size": "31373" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", + "size": "31086" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", + "size": "27382" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0-arduino3", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "name": "bossac", + "version": "1.8.0-48-gb176eee", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", + "size": "91219" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", + "size": "39150" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", + "size": "37798" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", + "size": "37374" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", + "size": "34825" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino1", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz", + "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a", + "size": "1260118" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz", + "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6", + "size": "47835" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz", + "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86", + "size": "399453" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz", + "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f", + "size": "384792" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz", + "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba", + "size": "361799" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868", + "size": "442657" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", + "size": "1402283" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", + "size": "2360705" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", + "size": "2275101" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", + "size": "1210796" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", + "size": "1129654" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino5-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", + "size": "1319000" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", + "size": "1641209" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", + "size": "1235752" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", + "size": "1393855" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", + "size": "1341739" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino6-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", + "size": "1319020" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", + "size": "1641514" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", + "size": "1222523" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", + "size": "1394293" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", + "size": "1340444" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino7", + "systems": [ + { + "size": "1638575", + "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1580739", + "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1498970", + "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1701581", + "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1626347", + "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2016965", + "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino8", + "systems": [ + { + "size": "1714346", + "checksum": "SHA-256:86c4ea3086b4a1475fd8a1e1daf4585748be093dad4160e816b1bf2502501fb2", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1778371", + "checksum": "SHA-256:500cb112ee92092bbfce69649b90d0284752c5766f5aaf5c24dc754100788ef9", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1653652", + "checksum": "SHA-256:584b513ebbc4a645a68234d964ba56f042aaf7668d84ba47398a07a294516cc4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1845547", + "checksum": "SHA-256:455d4123146bf6b4b095de86d3340fd01e39bba9c70b2f0bb8e979ac4dddac39", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1781892", + "checksum": "SHA-256:5b44889984daefa966b8251edb98445169107ca32f974ca598d4c59e7d2c8901", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190397", + "checksum": "SHA-256:35a92f32f2762ef9405d2c684ec7bea2e70c01068f380251aecd9290f5bd5b24", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino9", + "systems": [ + { + "size": "1714657", + "checksum": "SHA-256:b814b16b52cef21eacf456cc7a89d7b5d4cb1385bfb8fb82963b7d8151824d93", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1778177", + "checksum": "SHA-256:f0443e771f5e3a779949498d3c9bfffd1dd27cdf0ad7136a2db5e80447a7175a", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1782958", + "checksum": "SHA-256:a22872918df899cb808f9286141d42438ae5611156c143cfb692069f52a2bddd", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190484", + "checksum": "SHA-256:f53f9a2b7f48a2ebc00ea9196bf559d15987d3779bcea4118ebec8925da5a1f6", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip" + }, + { + "size": "1655311", + "checksum": "SHA-256:6d47f97919f317bb6e5f1f903127604271d66d149f4625f29b8e0eb5f6c94c64", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1844365", + "checksum": "SHA-256:f624552b5ba56aa78d0c1a0e5d18cf2b5694db2ed44080968e22aa1af8f23c1b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino12", + "systems": [ + { + "size": "1778706", + "checksum": "SHA-256:86e15186a44b87c00f5ddd9c05849d2ec107783dd18a5ac984ce2a71e34084ed", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1855234", + "checksum": "SHA-256:5c6ca6189f61894ee77b29bc342f96cd14e4d7627fabeb2a8d2e2c534316cc38", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1844359", + "checksum": "SHA-256:4938742d3fec62941187666b8ded44d8f6c7a404920ff49d97fca484b9fd08af", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2276602", + "checksum": "SHA-256:1e23c0f1f809725db3e1f8d1e1f460a37fb7b2cf95e93c6e328e527501ab084c", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip" + }, + { + "size": "1723600", + "checksum": "SHA-256:b40d135449401870302bec073326d6f1df79da38d9dd21326314a5a90189a06e", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1918845", + "checksum": "SHA-256:bc48be10916f69f3a4b050f04babc14ee99dad1fc5da55ce606077991edab1d0", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino13", + "systems": [ + { + "size": "1820630", + "checksum": "SHA-256:47ae7a1a7961ac9daef001b011505b38777baac3c02dd7e673f62601df841427", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1896478", + "checksum": "SHA-256:4dd38b701019ad2fbb58173a3bc6c58effd39501a4a8266256dfe169e7516655", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1883854", + "checksum": "SHA-256:788093504b25d2b9b772657215254ba178ed37773364ce240de68281efe40bd5", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2334654", + "checksum": "SHA-256:2f3b87c644569f47780b16b071cd0929a64a8899ec769f4ca7480d20d5503365", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip" + }, + { + "size": "1767137", + "checksum": "SHA-256:0f3f6e5e03355ffbbc84c4b4750e63c9315b7638c56d63df1b7795968208e6ba", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1955043", + "checksum": "SHA-256:e4b2ffbc9a29be21c32c6921c2e7c0ee39c664c4faca28a5f839c1df32d3bd24", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino1", + "systems": [ + { + "size": "1882308", + "checksum": "SHA-256:f4bc15523a9777a61befb67ee46b0c567572029cf2dbb8bc092d1175f188a62b", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1967523", + "checksum": "SHA-256:c56e88b34c82748b015c9e11f62c1d6aa98da00c2642f0027b1a5781085c56f9", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1948258", + "checksum": "SHA-256:dbee4de8e838996067444fa1c775bc64418af5660f96d9a9e92a95e85c762d16", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2443521", + "checksum": "SHA-256:13455c55bb089bd0b4005fd77d8522c691b60a4a40bc101afe817db6f1d05695", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip" + }, + { + "size": "1865080", + "checksum": "SHA-256:c9ab5f32038551318434feb8ffba5cf2932b8956443c284997431eb784eacaee", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2023084", + "checksum": "SHA-256:beb45bb95e43d2d592ee62342e6fdfbb15b87c20c96177b8f6bbc2a57cddbeb1", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino2", + "systems": [ + { + "size": "1902818", + "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1986716", + "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1971364", + "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2460087", + "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" + }, + { + "size": "1893150", + "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2052080", + "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "CMSIS", + "version": "4.0.0-atmel", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + } + ] + }, + { + "name": "CMSIS", + "version": "4.5.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.0.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.1.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.2.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "all", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2", + "size": "68361", + "checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2", + "size": "194826", + "checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "size": "66230", + "checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "size": "62608", + "checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2", + "size": "377537", + "checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-osx.tar.bz2", + "size": "65137", + "checksum": "SHA-256:00e87178b81d5721f334d4b688267f19f36eed1d9710a912c9e44bb1a748f766" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-arm.tar.bz2", + "size": "198568", + "checksum": "SHA-256:b364a8fe1de697d7dd6c4135d341ddff6dbda7e33c707321c7dceab85dfc560b" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "size": "70996", + "checksum": "SHA-256:628e01772007e622dff6af82220c27bcdf1d0726ba886bd2b36807601f66e4e8" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "size": "71002", + "checksum": "SHA-256:7a6cec3d89c65119c52b6109cd92a9ec84bdf8a9d12083444d2c89e7ac16c84b" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-windows.tar.bz2", + "size": "394993", + "checksum": "SHA-256:8ec0e66acdc41941b6e25545f8c12e7eb7ba01a0bafae0b4ab4c99a70deb2ea5" + } + ] + }, + { + "name": "dfu-util", + "version": "0.10.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", + "size": "73921", + "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", + "size": "272153", + "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "size": "277886", + "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "size": "77184", + "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "size": "81826", + "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", + "size": "464314", + "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" + } + ] + }, + { + "name": "rp2040tools", + "version": "1.0.2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "size": "1665895", + "checksum": "SHA-256:039e0ddb7a407c5c20c3ef6def8d7cc2abdc7a4fc6dcb039abb3b41c4791f69f" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm.tar.bz2", + "size": "5438204", + "checksum": "SHA-256:8981155a50bac8c7e3621f22b8e9c87f7d6aace4e28dddb03f41d704301da94d" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm64.tar.bz2", + "size": "5650185", + "checksum": "SHA-256:4f102352d702fc89757c119cd46c231b998f9900956183b0f7874994dc3965d5" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_amd64.tar.bz2", + "size": "4180308", + "checksum": "SHA-256:f6faafdfdf3cb780b884fe7d092679963e95f88ea78a9ed38312c511045d15c7" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_386.tar.bz2", + "size": "4423488", + "checksum": "SHA-256:9af1aaf46402ab27d60a6b5d28da5ab8807f3099d78ee6e681bf7a36911ee690" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-windows_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-windows_386.tar.bz2", + "size": "2493234", + "checksum": "SHA-256:8aa684c431b1194d9af4958b116a0a96e4ebf6c90764f9f3420db0515dc6e2c7" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.6.9", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip", + "archiveFileName": "drivers-arduino-windows-1.6.9.zip", + "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", + "size": "7071714" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.8.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip", + "archiveFileName": "drivers-arduino-windows-1.8.0.zip", + "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", + "size": "16302148" + } + ] + }, + { + "name": "dfu-util", + "version": "0.8.0-stm32-arduino1", + "systems": [ + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", + "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", + "host": "i386-apple-darwin11", + "size": "68381", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2", + "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", + "host": "arm-linux-gnueabihf", + "size": "213760", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2", + "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", + "host": "x86_64-linux-gnu", + "size": "68575", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2", + "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", + "host": "i686-linux-gnu", + "size": "69097", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2", + "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", + "host": "i686-mingw32", + "size": "159753", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" + } + ] + }, + { + "name": "arduinoSTM32load", + "version": "2.0.0", + "systems": [ + { + "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", + "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", + "host": "i386-apple-darwin11", + "size": "807514", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", + "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", + "host": "arm-linux-gnueabihf", + "size": "809480", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", + "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", + "host": "x86_64-linux-gnu", + "size": "818885", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", + "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", + "host": "i686-linux-gnu", + "size": "814283", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", + "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", + "host": "i686-mingw32", + "size": "786335", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino1-static", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "size": "1529841", + "checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "size": "1777984", + "checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "size": "1713236", + "checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip", + "archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip", + "size": "1773642", + "checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "size": "1526863", + "checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux32.tar.bz2", + "checksum": "SHA-256:8c4e562a8e6fa3d916c4bf6bb24d7eec0df013d8cc45dff187e5c63086a92c11", + "size": "7334059" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux64.tar.bz2", + "checksum": "SHA-256:0e9132518acfe66e5a4e17ba4b6dd0c89dbd90cc0d9b4a54e007ac24d51fd36a", + "size": "7383853" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.6-windows.zip", + "checksum": "SHA-256:33a92661f43b8d025ca5f57be1116537ed153703067d9c86297619d58988feff", + "size": "7580663" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-osx.tar.bz2", + "checksum": "SHA-256:3584d7581ff2469bdfde9de6f57d87b2a0370de5c902e9df687b7322a5405018", + "size": "7368819" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "checksum": "SHA-256:276f027e552eb620064b09591c7a7c79927c93c017428436c81f71bad666803c", + "size": "7180391" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "checksum": "SHA-256:d6a2e72b4869c031b434380da6e6a8a4a6269f8ee6312a3d23e85ea133a37ae9", + "size": "7149332" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux32.tar.bz2", + "checksum": "SHA-256:05e26d5df253246cf68ba8a8f5f2de1032ac6f4d7af5310b8080ef6f54030fb4", + "size": "13077590" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux64.tar.bz2", + "checksum": "SHA-256:e8a36b7ae19060748b8b0540c9c0c9341d8d4c7a630441922a030223f767258d", + "size": "13134534" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.7-windows.zip", + "checksum": "SHA-256:e881dd8a4bbb35f7271157e8dd226c2e032ac1115106170b0aaf9c969817df86", + "size": "13337495" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-osx.tar.bz2", + "checksum": "SHA-256:647ad713d68a1531ba56c88e5b3db9516cc0072ca1d401de5142d85ffcfd931a", + "size": "13064291" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "checksum": "SHA-256:b6e09c07e816a35935585db07e07437023d44e66d1d2f05861708ea6ceff7629", + "size": "12929770" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "checksum": "SHA-256:620f81148b13f70cdecbe59bbcbf605c7e0aae85f9cbee8ec48202f6018f23ce", + "size": "12897349" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.8", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux32.tar.bz2", + "checksum": "SHA-256:e1f43aa225e6e2ad1f2bccc07898ddb439e980905385a8d7e0615f804a69eee8", + "size": "20137214" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux64.tar.bz2", + "checksum": "SHA-256:423f67767d5b861a3c39ca6f6a18b2358a30b76bdc3d3d3d870e102b2b2271a8", + "size": "20167410" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_64bit.zip", + "checksum": "SHA-256:c3386fdc440638186541f92f920462865308e0f5dde9f45e4dd1c35d2570b808", + "size": "13645709" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_32bit.zip", + "checksum": "SHA-256:dc3ce2e824b2f8ab6ee4c7d2f836311450d60825db95cbb51eeb076a28a1e2af", + "size": "13578670" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-osx.tar.bz2", + "checksum": "SHA-256:635cbe786cd11ead26e5af0662991d8c3b647469f1874195eeb7f1dba5530b39", + "size": "20091397" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "checksum": "SHA-256:c027389528e9b04d622167943fe04badbd2f63923f08cc1b22935e5158b2545b", + "size": "19984154" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "checksum": "SHA-256:b6846bb84034e6a8486ce3165dabeb9b32b4fd3804639cd6137a37a00d0157c8", + "size": "19952489" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.9", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "checksum": "SHA-256:a45c536be798e6fc023044ee13911b9b567fb9d0b1c41c5cc9b722346f306425", + "size": "13221786" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "checksum": "SHA-256:89d08d4b75dae676bc6e982723f3b07ee5ab4c2fe6071fc97fe850697a0c5398", + "size": "13255356" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_32bit.zip", + "checksum": "SHA-256:523b2f09a38ef36dcd96558a31e072c5b244e511690326a03af9406eccda2650", + "size": "13589082" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_64bit.zip", + "checksum": "SHA-256:51eacfcaba9279ef42050d15cf86d98e79511879a84a8e960a8994f6343f74a8", + "size": "13658133" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "checksum": "SHA-256:26c0b8764a67f945037a461ead756bee0b453e383dee741548d03322327bd17d", + "size": "13202065" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "checksum": "SHA-256:3cde04fa96479bb5342f07752b9cbabdf159f1dcbe7074b642a163ff2a363a28", + "size": "13063437" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:3a41fac33917c4b5d8f5e0720afa780b2250b2561dd6090ed5338d7ab147524f", + "size": "13014703" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.1", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22bd6410b39043b0608285a51fbad7abcef0b8361f54936b362935a9bbddeeba", + "size": "13221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "checksum": "SHA-256:ba4b1b620796e352da2821bb1101cd86340649badf67abf7e7d030efee107159", + "size": "13255213" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_32bit.zip", + "checksum": "SHA-256:29ecdd651336eca9fbddde96415087e2f19a2d7330e1938e256d7acf31a0ff74", + "size": "13589219" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_64bit.zip", + "checksum": "SHA-256:a2ff1b6672e56c97aa4eccfa4258b0d91a726d0116f51227e6cc2c5c984afb5d", + "size": "13657363" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "checksum": "SHA-256:8c7602dee33e6806eefc0525a9f43512c4d89201869e677ad8d34f7e82276e38", + "size": "13201438" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "checksum": "SHA-256:65ddc38d9cfa555979bf9c7a371f887561b7d7af6a07a6adfb354628a8e69801", + "size": "13062843" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:0be6adb21791fb64134356b2ef56c9054e19fb7522e368cad9ee5c1222835e13", + "size": "13014398" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "checksum": "SHA-256:973ce3cd2d604f8750c9b62dabccdf8689013f0380d62eee29f8d6427dd37e8e", + "size": "13222221" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "checksum": "SHA-256:9303c50f051b459ba89a4b218bcb39c3348f469c55feb2c63ac53f7f12eb5048", + "size": "13255805" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_32bit.zip", + "checksum": "SHA-256:e3986ae565b658a4bcaf50c0592c5801166ade30255571154ad5729f9b8649eb", + "size": "13589237" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_64bit.zip", + "checksum": "SHA-256:a3094a4c9589812e2c9751ce324315de9011481575c53a772b3c4950cb0310d0", + "size": "13657381" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "checksum": "SHA-256:01f952aa365ddbf2072e3181f95f1b0a82d9c85bd1707a4b913e7500f833ff5f", + "size": "13201523" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "checksum": "SHA-256:824dec1d62c1a8b835e2692991b017ce21cd0c95287c9282ff9621620157b3d6", + "size": "13063327" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:057243d5ee65b14772035a2402ac48cefb208e59102f75928b4004530227cd47", + "size": "13015184" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.3", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22f72fee3a1682c30b0bf4579a1ecc2759a5063c2be9342dd3c46858db43d7ef", + "size": "15794726" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "checksum": "SHA-256:1f998f8f5d9ef9487beb00d2f434682cbcdc4b13337fd82271df8ad931121324", + "size": "15927812" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_32bit.zip", + "checksum": "SHA-256:d23dd1ef5ea19b46633980b47964834d0718d11b375c64725b28d4e39660ff3c", + "size": "16139436" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_64bit.zip", + "checksum": "SHA-256:fd6eb93b2737ae3a49800d4f42abd7fa925e985b043d3a418412f26dc61b3baa", + "size": "16189555" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "checksum": "SHA-256:ba53f679baca0f5ab6bbd4991da89702437932d67ae6c589c4da6ced3a4dc66b", + "size": "15832036" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "checksum": "SHA-256:91a85be7d657b4f31f69aba7e1a0390234d4ede5d138474b3eef928119a21df4", + "size": "15734716" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:7b2ebd25998c441b4a4da1cc5bf227285f0fd321b2107497d29910213d8ad039", + "size": "15557114" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.4", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "checksum": "SHA-256:794192e4463191308687ca10d361f6e86d06b57384800ead82ff9f1c32e3462b", + "size": "17369582" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e7e5a7f3c3f1c363a4e1e3cce3bbd48faa806da9153ade19336c68adcbc80464", + "size": "17346963" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_32bit.zip", + "checksum": "SHA-256:8bc96ea4a8e8232b7798feda9bd5e2e745c14ba7584b936a6588dcd44e69bcca", + "size": "16792636" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_64bit.zip", + "checksum": "SHA-256:29b753610b9b285a31471fe35fa7938f54d461b773f3fcf4e5bff27ca72c20e8", + "size": "16940370" + }, + { + "host": "i386-apple-darwin11", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "checksum": "SHA-256:f4c5542c209e5b7f09b020c9714889d846e8e6a96d1e2ab6e22cdae8d3ad8ef4", + "size": "16913255" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "checksum": "SHA-256:93503377d29a84f63433a608f3a2320ef27ca7f4b54a5cef6857ad16aa464842", + "size": "16992130" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:d68ddc8c78902f164f701d974d2b0deffdbe3a58bd4d62f0d2e10263c2292c0b", + "size": "17042502" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.5", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "checksum": "SHA-256:32cf24ae74d0b11ae5d41cf0b7d99a30ed5120a54ca06bfa9f5d7f02b03ad7f7", + "size": "16099680" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e619e67e5296c0e1a76bfb32b646972340083578ab216e1d298a2d3e9ddfe04c", + "size": "16077879" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_32bit.zip", + "checksum": "SHA-256:ed08415371b126bf28fdefedc7527f5679ae822e23392a918f687ffa6614a299", + "size": "15392456" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_64bit.zip", + "checksum": "SHA-256:193bde05298c7cde87b0b212eec2e104650cf44a7fe9dec44df6fde2299686e8", + "size": "15620440" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "checksum": "SHA-256:256f884a295a7b49f08124549ca25bd16e5ff46c0f50ea73e163363b40ec2c60", + "size": "15449203" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "checksum": "SHA-256:6cbecb92ef0a8014aef3b8692cf64869d13c2fc0483332695ef42fef39c0b989", + "size": "15573837" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:e09d3880d9fd51b5257c44c6304e12422523dfdc1c378a978e9596caadac6a89", + "size": "15621405" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "checksum": "SHA-256:67b413dd15afca65d327e45329b1c2e64614126ef1fae27a1323155bbdc74c20", + "size": "17458014" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e299bea991778a388e611c3e9a4b1f5a7d5cf1b121465f7a843570602d0b6f39", + "size": "17433263" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_32bit.zip", + "checksum": "SHA-256:4be9f5208841150ffc0148feccd819d77c7fbb477f41597fc3198f633a09a8ac", + "size": "16950481" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_64bit.zip", + "checksum": "SHA-256:2490cdceb24b17d8269d8c144172c02c37a81c2275ed395973d22f0017d53713", + "size": "17079617" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2d4af33020a0291e54197b133de8f278a8d68c0272e0bc93953941fd06508694", + "size": "17000606" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "checksum": "SHA-256:1b392a5ec7d4b7f8fd052e0e249f85538fbcce790bc5a442980ce6be215b5872", + "size": "17147561" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:538a24a8f7c6831477d39ae166695ed411eb29a6d5aec3b2bc69bc1ef7b4d7b1", + "size": "17186826" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "checksum": "SHA-256:5c2a04c6f84bca68a77f884d905de67970035a652d4113e2772effa03f151ac9", + "size": "20037466" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "checksum": "SHA-256:95cf13032c1a83a175ed6b87f2e6f3f33a5a5c656e98ab7caadbc07d29f6eed0", + "size": "20013555" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_32bit.zip", + "checksum": "SHA-256:28377ebe89d22a2a8246865aba93d215ed1f0c99cdbff9ae4f0149dec5bee20a", + "size": "19504654" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_64bit.zip", + "checksum": "SHA-256:47e93e135cc074305e03b7b156d8a5788611063ed28e0b8d98bc84d94ab69f27", + "size": "19693655" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2255013a1065a13ff3980678888b56aecce38d236944f53a64aae6889aa567ec", + "size": "19556591" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "checksum": "SHA-256:0f83ed1cfa04adc35dd828b17b96903c075b8c71116d2c41f3db29d20e838b46", + "size": "19698330" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:235f5e157cbe31f647bd8092f6e1146c796641e1fc0ae366222228636c62f2db", + "size": "19736165" + } + ] + }, + { + "name": "nrf5x-cl-tools", + "version": "9.3.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "size": "341674", + "checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "size": "167414", + "checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "size": "155680", + "checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "size": "812257", + "checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00" + } + ] + } + ] + }, + { + "email": "support@intel.com", + "maintainer": "Intel", + "websiteURL": "http://maker.intel.com/", + "name": "Intel", + "platforms": [ + { + "name": "Intel i586 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", + "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", + "size": "272961", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.2.tar.gz", + "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", + "size": "271420", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i586 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", + "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", + "size": "273392", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.7.tar.gz", + "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", + "size": "272002", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.4", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", + "archiveFileName": "arduino101-1.0.4.zip", + "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", + "size": "806100", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.14", + "name": "sketchUploader" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.5", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", + "archiveFileName": "arduino101-1.0.5.zip", + "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", + "size": "776592", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.18", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.6", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.6.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", + "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", + "size": "672314", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.24", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.7", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.7.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", + "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", + "size": "729297", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.28", + "name": "arduino101load" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "1.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.2", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.2.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", + "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", + "size": "6242776", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.4", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.4.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.3.zip", + "checksum": "SHA-256:466027da55175ba69115bc5aa859e10d1432cd6b6abfccc10a2687eff35ca906", + "size": "6243652", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.5", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.5.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.5.zip", + "checksum": "SHA-256:afc71056b6df11d69bb8c8204cb28e65ad557b611a42a180de682c520c7311f9", + "size": "6247928", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + } + ], + "tools": [ + { + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "30587705", + "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", + "host": "i386-apple-darwin11", + "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "45948648", + "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", + "host": "i686-mingw32", + "archiveFileName": "galileo-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "56227185", + "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", + "host": "x86_64-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "55098166", + "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", + "host": "i686-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "42720934", + "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", + "host": "i386-apple-darwin11", + "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "56683094", + "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", + "host": "i686-mingw32", + "archiveFileName": "edison-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "78998436", + "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", + "host": "x86_64-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "76488215", + "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", + "host": "i686-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.4+1.0", + "systems": [ + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", + "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem.zip", + "size": "218816528" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", + "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", + "size": "78371400" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", + "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", + "size": "182899676" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", + "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", + "size": "177840353" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.9+1.0.1", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-windows-arcem-1.0.1.zip", + "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", + "size": "172455793" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "size": "30014953" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "size": "116481978" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "size": "129250679" + } + ] + }, + { + "name": "sketchUploader", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "61789", + "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", + "host": "i386-apple-darwin11", + "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" + }, + { + "size": "2534586", + "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", + "host": "i686-mingw32", + "archiveFileName": "intel-arduino-tools-20150316-windows.zip", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" + }, + { + "size": "178239", + "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", + "host": "x86_64-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" + }, + { + "size": "187995", + "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", + "host": "i686-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" + } + ] + }, + { + "version": "1.6.4+1.14", + "name": "sketchUploader", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", + "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.14-windows.zip", + "size": "8239124" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", + "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.14-osx.tar.gz", + "size": "324645" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", + "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux32.tar.gz", + "size": "224137" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", + "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux64.tar.gz", + "size": "216542" + } + ] + }, + { + "version": "1.6.4+1.18", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", + "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.19-windows.zip", + "size": "9367650" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", + "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.18-osx.tar.gz", + "size": "1236355" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", + "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux32.tar.gz", + "size": "1269508" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", + "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux64.tar.gz", + "size": "1467166" + } + ] + }, + { + "version": "1.6.9+1.24", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", + "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", + "size": "9418690" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", + "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", + "size": "1241701" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", + "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", + "size": "1305107" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", + "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", + "size": "1507392" + } + ] + }, + { + "version": "1.6.9+1.28", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", + "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", + "size": "9331111" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", + "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", + "size": "1134614" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", + "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", + "size": "1202482" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", + "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", + "size": "1411007" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", + "size": "1115949", + "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", + "size": "992362", + "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", + "size": "1111450", + "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", + "size": "1002073", + "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", + "size": "1046285", + "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", + "size": "1114375", + "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", + "size": "992557", + "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", + "size": "1111519", + "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", + "size": "1001211", + "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", + "size": "1046214", + "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" + } + ] + }, + { + "name": "arduino101load", + "version": "2.1.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", + "size": "1188264", + "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", + "size": "1110912", + "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", + "size": "1184509", + "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", + "size": "1065618", + "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", + "size": "1078361", + "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" + } + ] + }, + { + "version": "0.9.0+0.1", + "name": "openocd", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-windows.zip", + "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", + "host": "i686-mingw32", + "archiveFileName": "openocd-windows-0.9.0.zip", + "size": "9181935" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-osx.tar.bz2", + "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-osx-0.9.0.tar.bz2", + "size": "896625" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux32.tar.bz2", + "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", + "size": "3923308" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux64.tar.bz2", + "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", + "size": "4010990" + } + ] + }, + { + "version": "1.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-mingw32", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + } + ] + }, + { + "version": "2.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-mingw32", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i386-apple-darwin11", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "x86_64-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + } + ] + } + ] + }, + { + "name": "atmel-avr-xminis", + "maintainer": "Atmel University France", + "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", + "help": + { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": + [ + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.3.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", + "size": "95352", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.4.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", + "size": "95452", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.5.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", + "size": "95573", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.6.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", + "size": "95447", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + } + ], + "tools": + [ + ] + }, + { + "name":"littleBits", + "maintainer":"littleBits Electronics", + "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", + "email":"support@littlebits.cc", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "platforms":[ + { + "name":"littleBits Arduino AVR Modules", + "architecture":"avr", + "version":"1.0.0", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", + "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", + "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", + "size":"27762", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "boards":[ + { "name":"littleBits w6 Arduino module" } + ], + "toolsDependencies":[ + { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, + { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } + ] + } + ], + "tools":[] + }, + { + "name": "Microsoft", + "maintainer": "Microsoft.IoT", + "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", + "email": "bfjelds@microsoft.com", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "platforms": [ + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.0.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", + "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", + "size": "47325480", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", + "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", + "size": "48316890", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.1", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", + "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", + "size": "48317624", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.2", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", + "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", + "size": "48317648", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + } + ], + "tools":[] + }, + { + "name": "Arrow", + "maintainer": "Axel Elettronica S.r.l.", + "websiteURL": "http://axelelettronica.it/", + "email": "development@axelelettronica.it", + "help": { + "online": "http://www.arrowsmarteverything.com/support/" + }, + "platforms": [ + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "1.2.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", + "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", + "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", + "size": "36575", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.0.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", + "archiveFileName": "Arrow-samd-2.0.0.tar.gz", + "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", + "size": "772778", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.1.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", + "archiveFileName": "Arrow-samd-2.1.0.tar.gz", + "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", + "size": "780064", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "emoro", + "maintainer": "Inovatic-ICT", + "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", + "email": "support@inovatic-ict.com", + "help": { + "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" + }, + "platforms": [ + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.1", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", + "archiveFileName": "EMoRo_2560-3.2.1.zip", + "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", + "size": "846444", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.2", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", + "archiveFileName": "EMoRo_2560-3.2.2.zip", + "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", + "size": "565744", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "industruino", + "maintainer": "Industruino", + "websiteURL": "https://industruino.com/", + "email": "connect@industruino.com", + "help": { + "online": "https://github.com/Industruino/IndustruinoSAMD" + }, + "platforms": [ + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.0", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", + "archiveFileName": "industruino-samd-1.0.0.tar.bz2", + "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", + "size": "172665", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.1", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", + "archiveFileName": "industruino-samd-1.0.1.tar.bz2", + "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", + "size": "203844", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + } + ], + "tools": [ + { + "name": "bossac", + "version": "1.7.0-industruino", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", + "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", + "size": "565844" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", + "size": "128421" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", + "size": "62348" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", + "size": "63204" + } + ] + }, + { + "name": "windows-drivers", + "version": "0.0.1", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", + "archiveFileName": "drivers-industruino-windows-0.0.1.zip", + "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", + "size": "2545" + } + ] + } + ] + } + ] +} diff --git a/indexes/download/testdata/package_index.json.sig b/indexes/download/testdata/package_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..1038023299b8a52afad53cc70d633fbf5448e836 GIT binary patch literal 543 zcmV+)0^t3L0vrSY0RjL91p;8WqCx-)2@oWrYps7NLXl}#5B@m!=okF~7;tJL;i&gs zBbrK1n)n%t$EyM#?qKO=OtQ!h8bTX%xi38)Jav=DjXWM@3@7po={Qdf?JL+QCbICr z>W{ql{YeWSzptT=H1%2mdbVwHf)ZgVxhw2dfW7l73VA3+Ix`36`|(9+S$^4q zEXzUoz89mR?Z|nwoixYTxav+S8P;Crky}xDGvuqYiFe3$>@W8CD2NPr*{U{NPDXcX z80+G-G8FmV&giVLk+q^2JHvHEGex@Umcwhj+;aIUno2m|#1M|`AGxsPEP$vgQhR2c zo~-W}$LW;jTj+HtQF5GT7gvvd)n8!VOdI1}*PntMk-%8kHz|4!3h!TT_7C@>KyY=8 zQrUb{lP2h2jF?Ar`Z*9eZCty*^sB{pVt-Z&5jsPhoI-iSf z&_YsD`u>F3;$?vtaELC32p2i{e!^mH4GLTCUmU6TLxcup`JEomhL@8Js)?hMEwnEZ hXY11J?PnI@Nxk~c*oHQ-oS(^66lsIkn*P8(@{prS4A}qx literal 0 HcmV?d00001 diff --git a/indexes/indexes.go b/indexes/indexes.go index 5f5058b8..ea7a5dc3 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -27,6 +27,7 @@ import ( "strings" "github.com/arduino/FirmwareUploader/cli/globals" + "github.com/arduino/FirmwareUploader/indexes/download" "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/security" @@ -57,7 +58,7 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("downloading index %s: %s", indexURL, err) } indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) - if err := download(d); err != nil || d.Error() != nil { + if err := download.Download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) } @@ -93,7 +94,7 @@ func DownloadIndex(indexURL string) error { return fmt.Errorf("downloading index signature %s: %s", sigURL, err) } indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) - if err := download(d); err != nil || d.Error() != nil { + if err := download.Download(d); err != nil || d.Error() != nil { return fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) } if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { @@ -113,23 +114,6 @@ func DownloadIndex(indexURL string) error { return nil } -// TODO probably move to tool downloads -// download will take a downloader.Downloader as parameter. It will download the file specified in the downloader -func download(d *downloader.Downloader) error { - if d == nil { - // This signal means that the file is already downloaded - return nil - } - if err := d.Run(); err != nil { - return fmt.Errorf("failed to download file from %s : %s", d.URL, err) - } - // The URL is not reachable for some reason - if d.Resp.StatusCode >= 400 && d.Resp.StatusCode <= 599 { - return fmt.Errorf(d.Resp.Status) - } - return nil -} - // verifySignature will take the indexPath and the signaturePath as parameters and verify if the signature is correct. // it will also verify if the index is parsable. func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { From e407e45bb9458ce08840e4e5b2364294050f7530 Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 9 Jun 2021 12:33:03 +0200 Subject: [PATCH 18/23] latest enhancements with Silvano --- cli/cli.go | 29 - cli/globals/globals.go | 8 +- indexes/download/download.go | 138 +- indexes/download/download_test.go | 185 +- .../module_firmware_index_public.gpg.key | Bin indexes/{ => download}/rice-box.go | 2 +- .../testdata/module_firmware_index.json | 198 +- .../testdata/module_firmware_index.json.sig | Bin 438 -> 438 bytes indexes/firmwareindex/firmwareindex.go | 4 +- indexes/firmwareindex/firmwareindex_test.go | 173 +- .../testdata/module_firmware_index.json | 199 +- .../testdata/module_firmware_index.json.sig | Bin 0 -> 438 bytes indexes/indexes.go | 183 +- indexes/indexes_test.go | 56 - .../testdata/module_firmware_index.json.sig | Bin 438 -> 0 bytes indexes/testdata/package_index.json | 9456 ----------------- indexes/testdata/package_index.json.sig | Bin 543 -> 0 bytes 17 files changed, 649 insertions(+), 9982 deletions(-) rename indexes/{ => download}/gpg_keys/module_firmware_index_public.gpg.key (100%) rename indexes/{ => download}/rice-box.go (99%) rename indexes/{ => firmwareindex}/testdata/module_firmware_index.json (83%) create mode 100644 indexes/firmwareindex/testdata/module_firmware_index.json.sig delete mode 100644 indexes/indexes_test.go delete mode 100644 indexes/testdata/module_firmware_index.json.sig delete mode 100644 indexes/testdata/package_index.json delete mode 100644 indexes/testdata/package_index.json.sig diff --git a/cli/cli.go b/cli/cli.go index 106a5696..a3f8f433 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -28,17 +28,13 @@ import ( "strings" "time" - "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/cli/version" - "github.com/arduino/FirmwareUploader/indexes" - "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/FirmwareUploader/modules/nina" "github.com/arduino/FirmwareUploader/modules/sara" "github.com/arduino/FirmwareUploader/modules/winc" "github.com/arduino/FirmwareUploader/utils" "github.com/arduino/FirmwareUploader/utils/context" v "github.com/arduino/FirmwareUploader/version" - "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/cli/errorcodes" "github.com/arduino/arduino-cli/cli/feedback" "github.com/arduino/go-paths-helper" @@ -214,31 +210,6 @@ func preRun(cmd *cobra.Command, args []string) { logrus.SetLevel(lvl) } - //TODO fare in un altro posto tutto ció ⬇️ - // download indexes in /tmp/fwuloader/package_index.json etc.. - for _, u := range globals.DefaultIndexGZURL { - indexes.DownloadIndex(u) - } - - list, err := globals.FwUploaderPath.ReadDir() - if err != nil { - feedback.Errorf("Can't read fwuploader directory: %s", err) - } - for _, indexFile := range list { - if indexFile.Ext() != ".json" { - continue - } - if indexFile.String() == "package_index.json" { - PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) // TODO fare funzione che ti ritorna le strutture dati, e fa tutto quello che ci sta dietro. - } else if indexFile.String() == "module_firmware_index.json" { - ModuleFWIndex, e := firmwareindex.LoadIndexNoSign(indexFile) - } else { - feedback.Errorf("Unknown index: %s", indexFile.String()) - } - } - - //TODO ⬇️ study in the CLI how the indexes are passed to other modules - // Prepare the Feedback system // normalize the format strings diff --git a/cli/globals/globals.go b/cli/globals/globals.go index 0466de9e..a22a4569 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -22,9 +22,7 @@ package globals import "github.com/arduino/go-paths-helper" var ( - DefaultIndexGZURL = []string{ - "https://downloads.arduino.cc/packages/package_index.json.gz", - "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", - } - FwUploaderPath = paths.TempDir().Join("fwuploader") + PackageIndexGZURL = "https://downloads.arduino.cc/packages/package_index.json.gz" + ModuleFirmwareIndexGZURL = "http://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz" + FwUploaderPath = paths.TempDir().Join("fwuploader") ) diff --git a/indexes/download/download.go b/indexes/download/download.go index 860c0757..5068c3d7 100644 --- a/indexes/download/download.go +++ b/indexes/download/download.go @@ -26,13 +26,19 @@ import ( "fmt" "hash" "io" + "net/url" + "os" "path" "strings" "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/indexes/firmwareindex" "github.com/arduino/arduino-cli/arduino/cores" + "github.com/arduino/arduino-cli/arduino/cores/packageindex" + "github.com/arduino/arduino-cli/arduino/security" + "github.com/arduino/arduino-cli/arduino/utils" "github.com/arduino/go-paths-helper" + rice "github.com/cmaglie/go.rice" "github.com/sirupsen/logrus" "go.bug.st/downloader/v2" ) @@ -43,8 +49,24 @@ func DownloadTool(toolRelease *cores.ToolRelease) (*paths.Path, error) { "tools", toolRelease.Tool.Name, toolRelease.Version.String()) - installDir.Parent().MkdirAll() - if err := resource.Install(paths.TempDir(), paths.TempDir(), installDir); err != nil { + installDir.MkdirAll() + downloadsDir := globals.FwUploaderPath.Join("downloads") + archivePath := downloadsDir.Join(resource.ArchiveFileName) + archivePath.Parent().MkdirAll() + if err := archivePath.WriteFile(nil); err != nil { + logrus.Error(err) + return nil, err + } + d, err := downloader.Download(archivePath.String(), resource.URL) + if err != nil { + logrus.Error(err) + return nil, err + } + if err := Download(d); err != nil { + logrus.Error(err) + return nil, err + } + if err := resource.Install(downloadsDir, paths.TempDir(), installDir); err != nil { logrus.Error(err) return nil, err } @@ -183,3 +205,115 @@ func VerifyFileSize(size int64, filePath *paths.Path) error { return nil } + +// DownloadIndex will download the index in the os temp directory +func DownloadIndex(indexURL string) (*paths.Path, error) { + URL, err := utils.URLParse(indexURL) + if err != nil { + return nil, fmt.Errorf("unable to parse URL %s: %s", indexURL, err) + } + + // Download index + tmpGZFile, err := paths.MkTempFile(nil, "") + if err != nil { + return nil, fmt.Errorf("creating temp file for compressed index download: %s", err) + } + tmpGZIndex := paths.New(tmpGZFile.Name()) + defer os.Remove(tmpGZFile.Name()) + defer tmpGZIndex.Remove() + + d, err := downloader.Download(tmpGZIndex.String(), URL.String()) + if err != nil { + return nil, fmt.Errorf("downloading index %s: %s", indexURL, err) + } + indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) + if err := Download(d); err != nil || d.Error() != nil { + return nil, fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) + } + + // Extract the real index + tmpFile, err := paths.MkTempFile(nil, "") + if err != nil { //TODO mettere tmpdir.join(URL.Base()) in modo da usare LoadIndex() e non LoadIndexNoSign + return nil, fmt.Errorf("creating temp file for index extraction: %s", err) + } + tmpIndex := paths.New(tmpFile.Name()) + defer os.Remove(tmpFile.Name()) + defer tmpIndex.Remove() + if err := paths.GUnzip(tmpGZIndex, tmpIndex); err != nil { + return nil, fmt.Errorf("unzipping %s", URL) + } + + // Download Signature + sigURL, err := url.Parse(URL.String()) + if err != nil { + return nil, fmt.Errorf("unable to parse URL %s: %s", sigURL, err) + } + sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") + var tmpSig *paths.Path + if t, err := paths.MkTempFile(nil, ""); err != nil { + return nil, fmt.Errorf("creating temp file for index signature download: %s", err) + } else { + tmpSig = paths.New(t.Name()) + defer tmpSig.Remove() + defer os.Remove(t.Name()) + } + d, err = downloader.Download(tmpSig.String(), sigURL.String()) + if err != nil { + return nil, fmt.Errorf("downloading index signature %s: %s", sigURL, err) + } + indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) + if err := Download(d); err != nil || d.Error() != nil { + return nil, fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) + } + if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { + return nil, fmt.Errorf("signature verification failed: %s", err) + } + if err := globals.FwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present + return nil, fmt.Errorf("can't create data directory %s: %s", globals.FwUploaderPath, err) + } + if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite + return nil, fmt.Errorf("saving downloaded index %s: %s", URL, err) + } + if tmpSig != nil { + if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite + return nil, fmt.Errorf("saving downloaded index signature: %s", err) + } + } + return indexPath, nil +} + +// verifySignature will take the indexPath and the signaturePath as parameters and verify if the signature is correct. +// it will also verify if the index is parsable. +func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { + var valid bool + var err error + index := path.Base(URL.Path) + if index == "package_index.json.gz" { + valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) + // the signature verification is already done above + if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { + return fmt.Errorf("invalid package index: %s", err) + } + } else if index == "module_firmware_index.json.gz" { + keysBox, err := rice.FindBox("gpg_keys") + if err != nil { + return fmt.Errorf("could not find bundled signature keys") + } + key, err := keysBox.Open("module_firmware_index_public.gpg.key") + if err != nil { + return fmt.Errorf("could not find bundled signature keys") + } + valid, _, err = security.VerifySignature(targetPath, signaturePath, key) + // the signature verification is already done above + firmwareindex.LoadIndexNoSign(targetPath) + } else { + return fmt.Errorf("index %s not supported", URL.Path) + } + if err != nil { + return fmt.Errorf("signature verification error: %s for index %s", err, URL) + } + if !valid { + return fmt.Errorf("index \"%s\" has an invalid signature", URL) + } + return nil +} diff --git a/indexes/download/download_test.go b/indexes/download/download_test.go index 6b15abaa..3bce88b6 100644 --- a/indexes/download/download_test.go +++ b/indexes/download/download_test.go @@ -21,7 +21,6 @@ package download import ( "os" - "strings" "testing" "github.com/arduino/FirmwareUploader/cli/globals" @@ -52,94 +51,124 @@ import ( // require.FileExists(t, signaturePath) // } +var defaultIndexGZURL = []string{ + "https://downloads.arduino.cc/packages/package_index.json.gz", + "http://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", +} + +func TestDownloadIndex(t *testing.T) { + defer os.RemoveAll(globals.FwUploaderPath.String()) // cleanup after tests + for _, u := range defaultIndexGZURL { + t.Logf("testing with index: %s", u) + indexPath, err := DownloadIndex(u) + require.NoError(t, err) + require.DirExists(t, globals.FwUploaderPath.String()) + require.FileExists(t, indexPath.String()) + signaturePath := globals.FwUploaderPath.Join(indexPath.Base() + ".sig").String() + require.FileExists(t, signaturePath) + } +} + func TestDownloadTool(t *testing.T) { + toolRelease := &cores.ToolRelease{ + Version: semver.ParseRelaxed("1.7.0-arduino3"), + Tool: &cores.Tool{ + Name: "bossac", + }, + Flavors: []*cores.Flavor{ + { + OS: "i686-mingw32", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-windows.tar.gz", + Checksum: "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + Size: 3607421, + }, + }, + { + OS: "x86_64-apple-darwin", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-osx.tar.gz", + Checksum: "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + Size: 75510, + }, + }, + { + OS: "x86_64-pc-linux-gnu", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-linux64.tar.gz", + Checksum: "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + Size: 207271, + }, + }, + { + OS: "i686-pc-linux-gnu", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-linux32.tar.gz", + Checksum: "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + Size: 193577, + }, + }, + { + OS: "arm-linux-gnueabihf", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-linuxarm.tar.gz", + Checksum: "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + Size: 193941, + }, + }, + { + OS: "aarch64-linux-gnu", + Resource: &resources.DownloadResource{ + URL: "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + ArchiveFileName: "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + Checksum: "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + Size: 268365, + }, + }, + }, + } defer os.RemoveAll(globals.FwUploaderPath.String()) - // semver.WarnInvalidVersionWhenParsingRelaxed = true - list, err := paths.New("testdata").ReadDir() + indexFile := paths.New("testdata/package_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := packageindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + toolDir, err := DownloadTool(toolRelease) require.NoError(t, err) - list.FilterSuffix("package_index.json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := packageindex.LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - tool := GetToolRelease(index, "arduino:bossac@1.7.0-arduino3") - toolPath, err := DownloadTool(tool) - // TODO verify that the tool is installed - require.NoError(t, err) - require.NotEmpty(t, toolPath) - require.FileExists(t, toolPath.String()) - } + require.NotEmpty(t, toolDir) + require.DirExists(t, toolDir.String()) + toolDirContent, err := toolDir.ReadDir() + require.NoError(t, err) + require.True(t, len(toolDirContent) > 0) } func TestDownloadFirmware(t *testing.T) { defer os.RemoveAll(globals.FwUploaderPath.String()) - list, err := paths.New("../testdata").ReadDir() // TODO fix this + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := firmwareindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + firmwarePath, err := DownloadFirmware(index.Boards[0].Firmwares[0]) require.NoError(t, err) - list.FilterSuffix("module_firmware_index.json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := firmwareindex.LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - firmwarePath, err := DownloadFirmware(index.Boards[0].Firmwares[0]) - require.NoError(t, err) - require.NotEmpty(t, firmwarePath) - require.FileExists(t, firmwarePath.String()) - } + require.NotEmpty(t, firmwarePath) + require.FileExists(t, firmwarePath.String()) } func TestDownloadLoaderSketch(t *testing.T) { defer os.RemoveAll(globals.FwUploaderPath.String()) - list, err := paths.New("../testdata").ReadDir() // TODO fix this + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := firmwareindex.LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + loaderPath, err := DownloadLoaderSketch(index.Boards[0].LoaderSketch) require.NoError(t, err) - list.FilterSuffix("module_firmware_index.json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := firmwareindex.LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - loaderPath, err := DownloadLoaderSketch(index.Boards[0].LoaderSketch) - require.NoError(t, err) - require.NotEmpty(t, loaderPath) - require.FileExists(t, loaderPath.String()) - } -} - -func GetToolRelease(index *packageindex.Index, toolID string) *cores.ToolRelease { // TODO put this logic in index.go in cli - split := strings.Split(toolID, ":") - packageName := split[0] - split = strings.Split(split[1], "@") - toolName := split[0] - version := semver.ParseRelaxed(split[1]) - for _, pack := range index.Packages { - if pack.Name != packageName { - continue - } - for _, tool := range pack.Tools { - if tool.Name == toolName && tool.Version.Equal(version) { - flavors := []*cores.Flavor{} - for _, system := range tool.Systems { - size, _ := system.Size.Int64() - flavors = append(flavors, &cores.Flavor{ - OS: system.OS, - Resource: &resources.DownloadResource{ - URL: system.URL, - ArchiveFileName: system.ArchiveFileName, - Checksum: system.Checksum, - Size: size, - }, - }) - } - return &cores.ToolRelease{ - Version: version, - Flavors: flavors, - Tool: &cores.Tool{ - Name: toolName, - }, - } - } - } - } - return nil + require.NotEmpty(t, loaderPath) + require.FileExists(t, loaderPath.String()) } diff --git a/indexes/gpg_keys/module_firmware_index_public.gpg.key b/indexes/download/gpg_keys/module_firmware_index_public.gpg.key similarity index 100% rename from indexes/gpg_keys/module_firmware_index_public.gpg.key rename to indexes/download/gpg_keys/module_firmware_index_public.gpg.key diff --git a/indexes/rice-box.go b/indexes/download/rice-box.go similarity index 99% rename from indexes/rice-box.go rename to indexes/download/rice-box.go index 4421964a..93fa0655 100644 --- a/indexes/rice-box.go +++ b/indexes/download/rice-box.go @@ -1,5 +1,5 @@ // Code generated by rice embed-go; DO NOT EDIT. -package indexes +package download import ( "time" diff --git a/indexes/download/testdata/module_firmware_index.json b/indexes/download/testdata/module_firmware_index.json index 38503734..89ec7faf 100644 --- a/indexes/download/testdata/module_firmware_index.json +++ b/indexes/download/testdata/module_firmware_index.json @@ -6,25 +6,29 @@ "version": "19.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27", - "size": "412308" + "size": "412308", + "module": "WINC1500" }, { "version": "19.5.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", "checksum": "SHA-256:e2e5aa2cf185745582002e2fed27c079d4228bc8d756281f43638c72061c9110", - "size": "413604" + "size": "413604", + "module": "WINC1500" }, { "version": "19.5.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", "checksum": "SHA-256:146d3d5fccf65ff6d732e34077e56f1f0b2f69584fd8499db914ea11ed463042", - "size": "413604" + "size": "413604", + "module": "WINC1500" }, { "version": "19.6.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", "checksum": "SHA-256:629a2553cb738be1424eaa707c00403ebce179fdb94008acec1f185a19a60c81", - "size": "359356" + "size": "359356", + "module": "WINC1500" } ], "loader_sketch": { @@ -35,8 +39,8 @@ "module": "WINC1500", "name": "Arduino MKR1000", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -46,79 +50,92 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -129,8 +146,8 @@ "module": "NINA", "name": "Arduino MKR WiFi 1010", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -140,79 +157,92 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -223,8 +253,8 @@ "module": "NINA", "name": "Arduino NANO 33 IoT", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -234,86 +264,99 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "module": "NINA", "name": "Arduino MKR Vidor 4000", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -I -U true -i -e -w \"{loader.sketch}.bin\" -R" }, { @@ -323,67 +366,78 @@ "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:bac23326dd4c3b6358ee88ff322da8c16e24e9917b8b0bbd18f663aacfb758cf", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:d1f496b185eff6b2ab2f839f6673afc80e1b3e3b2056fc8d9290a74895baf0e5", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:53668eb76be80fffdd67ced7cbb8ab231638b9ee428ae83568dfe48359008bb4", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:37b042cf759b52a96304c35af6a066038184533cc6256f795e92ed1b4fbda3d5", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:c538028f428b3fc219d2f7c0d9debacd07bababf43dbc28680ed452225ff4629", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:fe852e28eb0547a324069194dcce524b5a9f18adce2983bbe11a818a7ae8200a", - "size": "1041408" + "size": "1041408", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:f11deb8ce5abe908353eebca7253c18359eb8ea2a601908d5cdb56bf035b4158", - "size": "1044480" + "size": "1044480", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:7adff887267297dccc6c3ce77f41a986a23a1f7dfce9e8f3b70b3aa038371d47", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:c026f967bd3add27716a1afaf729d669a5e093771098329bab2477980d6879b5", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:6b7809357a57946638b271dd1b0b43a84cbcbea9b854d3ff093752fa0fe7b818", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:b641c4f6f76ab4c7a529848da54f15b9b9857a9627920129a0a6f65edc465c67", - "size": "1133568" + "size": "1133568", + "module": "NINA" } ], "loader_sketch": { @@ -403,19 +457,22 @@ "version": "5.6A2.00-to-5.6A2.01", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2.00-to-5.6A2.01/5.6A2.00-to-5.6A2.01.pkg", "checksum": "SHA-256:8f04bd7fa1833cf2d3762e086d79191e76bf66c6e108e852b5fe89ca4f2b72c9", - "size": "529880" + "size": "529880", + "module": "SARA" }, { "version": "5.6A2_01_to_99", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2_01_to_99/5.6A2_01_to_99.pkg", "checksum": "SHA-256:abb947accdeb980d7aeafed45ac7ce797eb90445eeb8d0bd57ca5b3ad204dbf6", - "size": "1738" + "size": "1738", + "module": "SARA" }, { "version": "99_to_5.6A2_01", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/99_to_5.6A2_01/99_to_5.6A2_01.pkg", "checksum": "SHA-256:81618148c677d8c36df5089c931b46476f4a78fd9d9fd231fee0a9dbb38aa970", - "size": "1724" + "size": "1724", + "module": "SARA" } ], "loader_sketch": { @@ -426,8 +483,8 @@ "module": "SARA", "name": "Arduino MKR NB 1500", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -437,7 +494,8 @@ "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", "checksum": "SHA-256:5cc391414abd2233001923221a0103dd5ca37222cf885dace065962c962ccd2b", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -448,8 +506,8 @@ "module": "NINA", "name": "Arduino Nano RP2040 Connect", "uploader": "arduino:rp2040tools@1.0.2", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "false", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -v -D \"{loader.sketch}.elf\"" } ] \ No newline at end of file diff --git a/indexes/download/testdata/module_firmware_index.json.sig b/indexes/download/testdata/module_firmware_index.json.sig index c2bce9ecbdc662568bbdf9732e348cd4e99ab49e..7eff359167be658a3e4877faf83ec12cb0a12c52 100644 GIT binary patch delta 413 zcmV;O0b>5P1GWQ@BY(hma{vkn5Q6g8$Hk&5b4gnZ{y(audV1XIu{$nz(0U0<$*Q?F z)$A3Au~}iZdEic|!<{=CtilZQW~y!fmmptGNbcngSF0$#=|z6#zDmqZ3pmTPY2}@Y zzkXKxy=^1;DH^bEMpbs}TsKI(44dp{?vse8=Gcrm+Y^82_#E z9C(9jlK*IZT*noShGm)enCOr|+YdhGdsw$?Q=Uo~%O_k(046Fm$i-6U?u?+;L-dXW zT^783Q71;Zcq{e;^TA3iE+f^0!SC_1bI=v=neRu@EKie}sLh5P1GWQ@BY(CpTL20P5Q6g8$Hk&5bNZhQ0FXm3L;&77tUL+!e)b%VkBcl; z!8#N|j+1&7cxl6orNN7eBf;)9c;>+Jnowp9TvWTT#H13N7TqjP^3DqyryL9LK-aXI zwd7bpMk_aBG#K9rp}N}a907rj6&qX?f|>&Ey;0`M3>U86j(>t9c-oB__##RY$>NBY zwG^BBXFrN}J+U6@jVFJri=UL4mu=xT>L^|C==C9ePRmJ3E&5;${fq&jx)6FjfKQJ& zqgkwh5U!Rc;xi&IxT(FdqR8BWNzO|n(?+g>W7`pPI?NMjkg1Qcdpylf<1_0`JlL8b zGkV!-;#aWZOMm-c?59OH$nxG@(n{9dm;lk;&UfP1=!rTveO0pC!+EGHM7-1) z4%9t)Pk(nfftgf+&jx{|&+Oaxm1xjbn*gfB#JM00yB6d)W+_M}Y@?2xShimGq!J66 Ha=VkW&(qCW diff --git a/indexes/firmwareindex/firmwareindex.go b/indexes/firmwareindex/firmwareindex.go index b55e9782..ab462ebb 100644 --- a/indexes/firmwareindex/firmwareindex.go +++ b/indexes/firmwareindex/firmwareindex.go @@ -44,8 +44,8 @@ type indexBoard struct { Module string `json:"module,required"` Name string `json:"name,required"` Uploader string `json:"uploader,required"` - UploadTouch string `json:"upload.use_1200bps_touch"` // TODO replace "true" with true in json otherwise is a string and not a bool - UploadWait string `json:"upload.wait_for_upload_port"` // TODO see above + UploadTouch bool `json:"upload.use_1200bps_touch"` + UploadWait bool `json:"upload.wait_for_upload_port"` UploaderCommand string `json:"uploader.command,required"` } diff --git a/indexes/firmwareindex/firmwareindex_test.go b/indexes/firmwareindex/firmwareindex_test.go index afd859b1..158a2239 100644 --- a/indexes/firmwareindex/firmwareindex_test.go +++ b/indexes/firmwareindex/firmwareindex_test.go @@ -27,123 +27,98 @@ import ( ) func TestIndexParsing(t *testing.T) { - // semver.WarnInvalidVersionWhenParsingRelaxed = true - list, err := paths.New("../testdata").ReadDir() - require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - index, e = LoadIndex(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - } + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + index, e = LoadIndex(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) } func TestGetLatestFirmwareURL(t *testing.T) { - list, err := paths.New("../testdata").ReadDir() + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetLatestFirmwareURL("arduino:samd:mkr1000") require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - result, err := index.GetLatestFirmwareURL("arduino:samd:mkr1000") - require.NoError(t, err) - require.NotEmpty(t, result) - require.Equal(t, "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", result) - - result, err = index.GetLatestFirmwareURL("arduino:samd:mkr1001") - require.Error(t, err) - require.Empty(t, result) - } + require.NotEmpty(t, result) + require.Equal(t, "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", result) + + result, err = index.GetLatestFirmwareURL("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) } func TestGetFirmwareURL(t *testing.T) { - list, err := paths.New("../testdata").ReadDir() + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetFirmwareURL("arduino:samd:mkr1000", "19.6.1") require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - result, err := index.GetFirmwareURL("arduino:samd:mkr1000", "19.6.1") - require.NoError(t, err) - require.NotEmpty(t, result) - - result, err = index.GetFirmwareURL("arduino:samd:mkr1000", "0.0.0") - require.Error(t, err) - require.Empty(t, result) - - result, err = index.GetFirmwareURL("arduino:samd:mkr1001", "19.6.1") - require.Error(t, err) - require.Empty(t, result) - } + require.NotEmpty(t, result) + + result, err = index.GetFirmwareURL("arduino:samd:mkr1000", "0.0.0") + require.Error(t, err) + require.Empty(t, result) + + result, err = index.GetFirmwareURL("arduino:samd:mkr1001", "19.6.1") + require.Error(t, err) + require.Empty(t, result) } func TestGetLoaderSketchURL(t *testing.T) { - list, err := paths.New("../testdata").ReadDir() + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetLoaderSketchURL("arduino:samd:mkr1000") require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - result, err := index.GetLoaderSketchURL("arduino:samd:mkr1000") - require.NoError(t, err) - require.NotEmpty(t, result) - - result, err = index.GetLoaderSketchURL("arduino:samd:mkr1001") - require.Error(t, err) - require.Empty(t, result) - } + require.NotEmpty(t, result) + + result, err = index.GetLoaderSketchURL("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) } func TestGetUploaderCommand(t *testing.T) { - list, err := paths.New("../testdata").ReadDir() + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetUploaderCommand("arduino:samd:mkr1000") require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - result, err := index.GetUploaderCommand("arduino:samd:mkr1000") - require.NoError(t, err) - require.NotEmpty(t, result) - - result, err = index.GetUploaderCommand("arduino:samd:mkr1001") - require.Error(t, err) - require.Empty(t, result) - } + require.NotEmpty(t, result) + + result, err = index.GetUploaderCommand("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) } func TestGetModule(t *testing.T) { - list, err := paths.New("../testdata").ReadDir() + indexFile := paths.New("testdata/module_firmware_index.json") + t.Logf("testing with index: %s", indexFile) + index, e := LoadIndexNoSign(indexFile) + require.NoError(t, e) + require.NotEmpty(t, index) + + result, err := index.GetModule("arduino:samd:mkr1000") require.NoError(t, err) - list.FilterSuffix(".json") - for _, indexFile := range list { - t.Logf("testing with index: %s", indexFile) - index, e := LoadIndexNoSign(indexFile) - require.NoError(t, e) - require.NotEmpty(t, index) - - result, err := index.GetModule("arduino:samd:mkr1000") - require.NoError(t, err) - require.Equal(t, result, "WINC1500") - - result, err = index.GetModule("arduino:samd:mkr1001") - require.Error(t, err) - require.Empty(t, result) - } + require.Equal(t, result, "WINC1500") + + result, err = index.GetModule("arduino:samd:mkr1001") + require.Error(t, err) + require.Empty(t, result) } diff --git a/indexes/testdata/module_firmware_index.json b/indexes/firmwareindex/testdata/module_firmware_index.json similarity index 83% rename from indexes/testdata/module_firmware_index.json rename to indexes/firmwareindex/testdata/module_firmware_index.json index dd68c21d..89ec7faf 100644 --- a/indexes/testdata/module_firmware_index.json +++ b/indexes/firmwareindex/testdata/module_firmware_index.json @@ -4,7 +4,7 @@ "firmware": [ { "version": "19.4.4", - "url": "https://downloads-dev.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.4.4/m2m_aio_3a0.bin", "checksum": "SHA-256:f8be2a5ef10e109f685b7550d211ed11c07487de430b0e5994ca557160116c27", "size": "412308", "module": "WINC1500" @@ -13,31 +13,34 @@ "version": "19.5.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.2/m2m_aio_3a0.bin", "checksum": "SHA-256:e2e5aa2cf185745582002e2fed27c079d4228bc8d756281f43638c72061c9110", - "size": "413604" + "size": "413604", + "module": "WINC1500" }, { "version": "19.5.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.5.4/m2m_aio_3a0.bin", "checksum": "SHA-256:146d3d5fccf65ff6d732e34077e56f1f0b2f69584fd8499db914ea11ed463042", - "size": "413604" + "size": "413604", + "module": "WINC1500" }, { "version": "19.6.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/WINC1500/19.6.1/m2m_aio_3a0.bin", "checksum": "SHA-256:629a2553cb738be1424eaa707c00403ebce179fdb94008acec1f185a19a60c81", - "size": "359356" + "size": "359356", + "module": "WINC1500" } ], "loader_sketch": { - "url": "https://downloads-dev.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", + "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/loader/arduino.samd.mkr1000/loader.bin", "checksum": "SHA-256:1d904bf745c8df448358d70837a36ee8dec4c2a01e0e3b2ef8ef51c6a6c9d385", "size": "16328" }, "module": "WINC1500", "name": "Arduino MKR1000", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -47,79 +50,92 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -130,8 +146,8 @@ "module": "NINA", "name": "Arduino MKR WiFi 1010", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -141,79 +157,92 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -224,8 +253,8 @@ "module": "NINA", "name": "Arduino NANO 33 IoT", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -235,86 +264,99 @@ "version": "1.0.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.0.0/NINA_W102.bin", "checksum": "SHA-256:3fe2cd90a0774e271624d42ab1b238d92c7495648e9918ad49dea3b20379905e", - "size": "736256" + "size": "736256", + "module": "NINA" }, { "version": "1.1.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.1.0/NINA_W102.bin", "checksum": "SHA-256:3b38f44a2e2e2d28995973f432bc2795f7c58a14e8638f55e3f024ffa499bcf8", - "size": "814080" + "size": "814080", + "module": "NINA" }, { "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102.bin", "checksum": "SHA-256:3121bf4074fce0248946810c4d03f5d3fb1296cd4667aeb801b5d066e1b07ff3", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102.bin", "checksum": "SHA-256:71d0a49a4d79aa46dff6f434383133b4365581407846d709fbd961e2b770eb3c", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102.bin", "checksum": "SHA-256:9c908f33cc05831972833a274f65baf84da35c61fc081856959211ae3504c899", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102.bin", "checksum": "SHA-256:8b9c07abdaa5647c47466aa3c575e743495a295fd8db2fe91b7e28fe4135ffad", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102.bin", "checksum": "SHA-256:aa37c920df18aabc6544df93c64bea6b3b97841b68ff4a6a53d2b800b265d2b5", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102.bin", "checksum": "SHA-256:ca5ed0b5efd727dd3c507f39a744e171ce690ef17b116c0571f18d1fea17aa85", - "size": "1035264" + "size": "1035264", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102.bin", "checksum": "SHA-256:b20f213bc886a95556fc5cec5003c7ebc617da83581ba20fb9f96db003063bbd", - "size": "1208320" + "size": "1208320", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102.bin", "checksum": "SHA-256:61d0acbd3d2eeb45b6971448d9537f7c4fa27f264e20970ad5dfdd4cbfdd8ee0", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102.bin", "checksum": "SHA-256:8c10c3ee3b8fb2ade3a650b41a3081566fc160e89b32e5d0ee040e63647692b8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102.bin", "checksum": "SHA-256:c8678e00ab9b2dc99cdc45ef577b77498dac802c3f5b99961da190374fddcef8", - "size": "1125376" + "size": "1125376", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102.bin", "checksum": "SHA-256:7c2814c8f879e62d234d7ac3a9c28f9a2d1e1dbc3569bd740761ca796247a4c9", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "module": "NINA", "name": "Arduino MKR Vidor 4000", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -I -U true -i -e -w \"{loader.sketch}.bin\" -R" }, { @@ -324,67 +366,78 @@ "version": "1.2.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.1/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:bac23326dd4c3b6358ee88ff322da8c16e24e9917b8b0bbd18f663aacfb758cf", - "size": "880640" + "size": "880640", + "module": "NINA" }, { "version": "1.2.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.2/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:d1f496b185eff6b2ab2f839f6673afc80e1b3e3b2056fc8d9290a74895baf0e5", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.3/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:53668eb76be80fffdd67ced7cbb8ab231638b9ee428ae83568dfe48359008bb4", - "size": "893952" + "size": "893952", + "module": "NINA" }, { "version": "1.2.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.2.4/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:37b042cf759b52a96304c35af6a066038184533cc6256f795e92ed1b4fbda3d5", - "size": "917504" + "size": "917504", + "module": "NINA" }, { "version": "1.3.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.3.0/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:c538028f428b3fc219d2f7c0d9debacd07bababf43dbc28680ed452225ff4629", - "size": "986112" + "size": "986112", + "module": "NINA" }, { "version": "1.4.0", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.0/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:fe852e28eb0547a324069194dcce524b5a9f18adce2983bbe11a818a7ae8200a", - "size": "1041408" + "size": "1041408", + "module": "NINA" }, { "version": "1.4.1", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.1/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:f11deb8ce5abe908353eebca7253c18359eb8ea2a601908d5cdb56bf035b4158", - "size": "1044480" + "size": "1044480", + "module": "NINA" }, { "version": "1.4.2", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.2/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:7adff887267297dccc6c3ce77f41a986a23a1f7dfce9e8f3b70b3aa038371d47", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.3", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.3/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:c026f967bd3add27716a1afaf729d669a5e093771098329bab2477980d6879b5", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.4", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.4/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:6b7809357a57946638b271dd1b0b43a84cbcbea9b854d3ff093752fa0fe7b818", - "size": "1132544" + "size": "1132544", + "module": "NINA" }, { "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin", "checksum": "SHA-256:b641c4f6f76ab4c7a529848da54f15b9b9857a9627920129a0a6f65edc465c67", - "size": "1133568" + "size": "1133568", + "module": "NINA" } ], "loader_sketch": { @@ -404,19 +457,22 @@ "version": "5.6A2.00-to-5.6A2.01", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2.00-to-5.6A2.01/5.6A2.00-to-5.6A2.01.pkg", "checksum": "SHA-256:8f04bd7fa1833cf2d3762e086d79191e76bf66c6e108e852b5fe89ca4f2b72c9", - "size": "529880" + "size": "529880", + "module": "SARA" }, { "version": "5.6A2_01_to_99", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/5.6A2_01_to_99/5.6A2_01_to_99.pkg", "checksum": "SHA-256:abb947accdeb980d7aeafed45ac7ce797eb90445eeb8d0bd57ca5b3ad204dbf6", - "size": "1738" + "size": "1738", + "module": "SARA" }, { "version": "99_to_5.6A2_01", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/SARA/99_to_5.6A2_01/99_to_5.6A2_01.pkg", "checksum": "SHA-256:81618148c677d8c36df5089c931b46476f4a78fd9d9fd231fee0a9dbb38aa970", - "size": "1724" + "size": "1724", + "module": "SARA" } ], "loader_sketch": { @@ -427,8 +483,8 @@ "module": "SARA", "name": "Arduino MKR NB 1500", "uploader": "arduino:bossac@1.7.0-arduino3", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "true", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -i -d --port={serial.port.file} -U true -i -e -w -v \"{loader.sketch}.bin\" -R" }, { @@ -438,7 +494,8 @@ "version": "1.4.5", "url": "https://downloads.arduino.cc/arduino-fwuploader/firmwares/NINA/1.4.5/NINA_W102-Nano_RP2040_Connect.bin", "checksum": "SHA-256:5cc391414abd2233001923221a0103dd5ca37222cf885dace065962c962ccd2b", - "size": "1127424" + "size": "1127424", + "module": "NINA" } ], "loader_sketch": { @@ -449,8 +506,8 @@ "module": "NINA", "name": "Arduino Nano RP2040 Connect", "uploader": "arduino:rp2040tools@1.0.2", - "upload.use_1200bps_touch": "true", - "upload.wait_for_upload_port": "false", + "upload.use_1200bps_touch": true, + "upload.wait_for_upload_port": true, "uploader.command": "\"{uploader}\" -v -D \"{loader.sketch}.elf\"" } ] \ No newline at end of file diff --git a/indexes/firmwareindex/testdata/module_firmware_index.json.sig b/indexes/firmwareindex/testdata/module_firmware_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..7eff359167be658a3e4877faf83ec12cb0a12c52 GIT binary patch literal 438 zcmV;n0ZIOe0kZ@E0SW*e79j-3B=Z`7-~4=#Bepey^4G`3qAGI*0${**a{vkn5Q6g8 z$Hk&5b4gnZ{y(audV1XIu{$nz(0U0<$*Q?F)$A3Au~}iZdEic|!<{=CtilZQW~y!f zmmptGNbcngSF0$#=|z6#zDmqZ3pmTPY2}@YzkXKxy=^1;DH^bEMpbs}TsKI(44dp{ z?vse8=Gcrm+Y^82_}DCG%NLAG^39cyM!9$^_5<_5N-QoT)q}zB@v?K! z74VtwN6{=#lbNW^oUTKxQ{485e+N>147*TPf`S;e!{5u#M1{7cqg18D^D50F#ug0} g)H$q9tAe^V$(|W=qTBkvnXp+@M8hAMVuT&o&W#< literal 0 HcmV?d00001 diff --git a/indexes/indexes.go b/indexes/indexes.go index ea7a5dc3..0bf4c243 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -20,132 +20,89 @@ package indexes import ( - "fmt" - "net/url" - "os" - "path" "strings" "github.com/arduino/FirmwareUploader/cli/globals" "github.com/arduino/FirmwareUploader/indexes/download" "github.com/arduino/FirmwareUploader/indexes/firmwareindex" + "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/cores/packageindex" - "github.com/arduino/arduino-cli/arduino/security" - "github.com/arduino/arduino-cli/arduino/utils" + "github.com/arduino/arduino-cli/arduino/resources" "github.com/arduino/go-paths-helper" - rice "github.com/cmaglie/go.rice" - "go.bug.st/downloader/v2" + semver "go.bug.st/relaxed-semver" ) -// DownloadIndex will download the index in the os temp directory -func DownloadIndex(indexURL string) error { - URL, err := utils.URLParse(indexURL) - if err != nil { - return fmt.Errorf("unable to parse URL %s: %s", indexURL, err) +func GetToolRelease(index *packageindex.Index, toolID string) *cores.ToolRelease { + split := strings.Split(toolID, ":") + packageName := split[0] + split = strings.Split(split[1], "@") + toolName := split[0] + version := semver.ParseRelaxed(split[1]) + for _, pack := range index.Packages { + if pack.Name != packageName { + continue + } + for _, tool := range pack.Tools { + if tool.Name == toolName && tool.Version.Equal(version) { + flavors := []*cores.Flavor{} + for _, system := range tool.Systems { + size, _ := system.Size.Int64() + flavors = append(flavors, &cores.Flavor{ + OS: system.OS, + Resource: &resources.DownloadResource{ + URL: system.URL, + ArchiveFileName: system.ArchiveFileName, + Checksum: system.Checksum, + Size: size, + }, + }) + } + return &cores.ToolRelease{ + Version: version, + Flavors: flavors, + Tool: &cores.Tool{ + Name: toolName, + }, + } + } + } } + return nil +} - // Download index - var tmpGZIndex *paths.Path - if tmpGZFile, err := paths.MkTempFile(nil, ""); err != nil { - return fmt.Errorf("creating temp file for compressed index download: %s", err) - } else { - tmpGZIndex = paths.New(tmpGZFile.Name()) - defer os.Remove(tmpGZFile.Name()) - defer tmpGZIndex.Remove() - } - d, err := downloader.Download(tmpGZIndex.String(), URL.String()) - if err != nil { - return fmt.Errorf("downloading index %s: %s", indexURL, err) - } - indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) - if err := download.Download(d); err != nil || d.Error() != nil { - return fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) - } +func downloadIndexes() (*paths.Path, error) { - // Extract the real index - var tmpIndex *paths.Path - if tmpFile, err := paths.MkTempFile(nil, ""); err != nil { //TODO mettere tmpdir.join(URL.Base()) in modo da usare LoadIndex() e non LoadIndexNoSign - return fmt.Errorf("creating temp file for index extraction: %s", err) - } else { - tmpIndex = paths.New(tmpFile.Name()) - defer os.Remove(tmpFile.Name()) - defer tmpIndex.Remove() - } - if err := paths.GUnzip(tmpGZIndex, tmpIndex); err != nil { - return fmt.Errorf("unzipping %s", URL) - } +} + +func GetPackageIndex() (*packageindex.Index, error) { + if err := download.DownloadIndex(globals.PackageIndexGZURL) - // Download Signature - sigURL, err := url.Parse(URL.String()) - if err != nil { - return fmt.Errorf("unable to parse URL %s: %s", sigURL, err) - } - sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") - var tmpSig *paths.Path - if t, err := paths.MkTempFile(nil, ""); err != nil { - return fmt.Errorf("creating temp file for index signature download: %s", err) - } else { - tmpSig = paths.New(t.Name()) - defer tmpSig.Remove() - defer os.Remove(t.Name()) - } - d, err = downloader.Download(tmpSig.String(), sigURL.String()) - if err != nil { - return fmt.Errorf("downloading index signature %s: %s", sigURL, err) - } - indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) - if err := download.Download(d); err != nil || d.Error() != nil { - return fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) - } - if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { - return fmt.Errorf("signature verification failed: %s", err) - } - if err := globals.FwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present - return fmt.Errorf("can't create data directory %s: %s", globals.FwUploaderPath, err) - } - if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite - return fmt.Errorf("saving downloaded index %s: %s", URL, err) - } - if tmpSig != nil { - if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite - return fmt.Errorf("saving downloaded index signature: %s", err) - } - } - return nil } -// verifySignature will take the indexPath and the signaturePath as parameters and verify if the signature is correct. -// it will also verify if the index is parsable. -func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { - var valid bool - var err error - index := path.Base(URL.Path) - if index == "package_index.json.gz" { - valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) - // the signature verification is already done above - if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { - return fmt.Errorf("invalid package index: %s", err) - } - } else if index == "module_firmware_index.json.gz" { - keysBox, err := rice.FindBox("gpg_keys") - if err != nil { - return fmt.Errorf("could not find bundled signature keys") - } - key, err := keysBox.Open("module_firmware_index_public.gpg.key") - if err != nil { - return fmt.Errorf("could not find bundled signature keys") - } - valid, _, err = security.VerifySignature(targetPath, signaturePath, key) - // the signature verification is already done above - firmwareindex.LoadIndexNoSign(targetPath) - } else { - return fmt.Errorf("index %s not supported", URL.Path) - } - if err != nil { - return fmt.Errorf("signature verification error: %s for index %s", err, URL) - } - if !valid { - return fmt.Errorf("index \"%s\" has an invalid signature", sigURL) - } - return nil +func GetFirmwareIndex() (*firmwareindex.Index, error) { + } + +// download indexes in /tmp/fwuloader/package_index.json etc.. +// for _, u := range globals.DefaultIndexGZURL { +// indexes.DownloadIndex(u) +// } + +// list, err := globals.FwUploaderPath.ReadDir() +// if err != nil { +// feedback.Errorf("Can't read fwuploader directory: %s", err) +// } +// for _, indexFile := range list { +// if indexFile.Ext() != ".json" { +// continue +// } +// if indexFile.String() == "package_index.json" { +// PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) // TODO fare funzione che ti ritorna le strutture dati, e fa tutto quello che ci sta dietro. +// } else if indexFile.String() == "module_firmware_index.json" { +// ModuleFWIndex, e := firmwareindex.LoadIndexNoSign(indexFile) +// } else { +// feedback.Errorf("Unknown index: %s", indexFile.String()) +// } +// } + +// //TODO ⬇️ study in the CLI how the indexes are passed to other modules diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go deleted file mode 100644 index 394f6619..00000000 --- a/indexes/indexes_test.go +++ /dev/null @@ -1,56 +0,0 @@ -/* - FirmwareUploader - Copyright (c) 2021 Arduino LLC. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -package indexes - -import ( - "net/url" - "os" - "path" - "strings" - "testing" - - "github.com/arduino/FirmwareUploader/cli/globals" - "github.com/arduino/arduino-cli/arduino/utils" - "github.com/stretchr/testify/require" -) - -var defaultIndexGZURL = []string{ - "https://downloads.arduino.cc/packages/package_index.json.gz", - "http://downloads-dev.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", -} - -func TestDownloadIndex(t *testing.T) { - defer os.RemoveAll(globals.FwUploaderPath.String()) // cleanup after tests - for _, u := range defaultIndexGZURL { - t.Logf("testing with index: %s", u) - err := DownloadIndex(u) - require.NoError(t, err) - require.DirExists(t, globals.FwUploaderPath.String()) - URL, err := utils.URLParse(u) - require.NoError(t, err) - indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) - require.FileExists(t, indexPath.String()) - sigURL, err := url.Parse(URL.String()) - require.NoError(t, err) - sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") - signaturePath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)).String() - require.FileExists(t, signaturePath) - } -} diff --git a/indexes/testdata/module_firmware_index.json.sig b/indexes/testdata/module_firmware_index.json.sig deleted file mode 100644 index c2bce9ecbdc662568bbdf9732e348cd4e99ab49e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOe0kZ@E0SW*e79j-3B=Z`7-~4=#Bepey^4G`3qAGI*0${c;TL20P5Q6g8 z$Hk&5bNZhQ0FXm3L;&77tUL+!e)b%VkBcl;!8#N|j+1&7cxl6orNN7eBf;)9c;>+J znowp9TvWTT#H13N7TqjP^3DqyryL9LK-aXIwd7bpMk_aBG#K9rp}N}a907rj6&qX? zf|>&Ey;0`M3>U86j)Eh2+Kn0bB1#g;;)s{E6r1{IKZx@ z+Pq}O1X*xr$x2ZD;CHz^nrkbq!gXTws2%y zdf0A}mxj&^1$O9(IyZe)vfIOXs4GOg)EN%cJ$X-mcQ}EWRDsV1fu+yv+xL}d&{mrO gs>H;(APl?YIA$qGCTydQoLIJA_oNaFnR2_6vv5q;E&u=k diff --git a/indexes/testdata/package_index.json b/indexes/testdata/package_index.json deleted file mode 100644 index 03f747ab..00000000 --- a/indexes/testdata/package_index.json +++ /dev/null @@ -1,9456 +0,0 @@ -{ - "packages": [ - { - "name": "arduino", - "maintainer": "Arduino", - "websiteURL": "http://www.arduino.cc/", - "email": "packages@arduino.cc", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": [ - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", - "archiveFileName": "avr-1.6.2.tar.bz2", - "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", - "size": "4877442", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", - "archiveFileName": "avr-1.6.3.tar.bz2", - "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", - "size": "4876816", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino3" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino3" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.4", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", - "archiveFileName": "avr-1.6.4.tar.bz2", - "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", - "size": "4780884", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.5", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", - "archiveFileName": "avr-1.6.5.tar.bz2", - "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", - "size": "4876957", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.6", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", - "archiveFileName": "avr-1.6.6.tar.bz2", - "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", - "size": "4876916", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.7", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", - "archiveFileName": "avr-1.6.7.tar.bz2", - "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", - "size": "4904283", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.8", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", - "archiveFileName": "avr-1.6.8.tar.bz2", - "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", - "size": "4885536", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.9", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", - "archiveFileName": "avr-1.6.9.tar.bz2", - "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", - "size": "4890702", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.10", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", - "archiveFileName": "avr-1.6.10.tar.bz2", - "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", - "size": "4991331", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.11", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", - "archiveFileName": "avr-1.6.11.tar.bz2", - "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", - "size": "4991634", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.12", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", - "archiveFileName": "avr-1.6.12.tar.bz2", - "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", - "size": "4993586", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.13", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", - "archiveFileName": "avr-1.6.13.tar.bz2", - "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", - "size": "4993644", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.14", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", - "archiveFileName": "avr-1.6.14.tar.bz2", - "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", - "size": "4993455", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.15", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", - "archiveFileName": "avr-1.6.15.tar.bz2", - "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", - "size": "4993959", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.16", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", - "archiveFileName": "avr-1.6.16.tar.bz2", - "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", - "size": "5011829", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.17", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", - "archiveFileName": "avr-1.6.17.tar.bz2", - "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", - "size": "5011912", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.18", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", - "archiveFileName": "avr-1.6.18.tar.bz2", - "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", - "size": "4897659", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.19", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", - "archiveFileName": "avr-1.6.19.tar.bz2", - "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", - "size": "4959420", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.20", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", - "archiveFileName": "avr-1.6.20.tar.bz2", - "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", - "size": "4897949", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.21", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", - "archiveFileName": "avr-1.6.21.tar.bz2", - "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", - "size": "4897460", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", - "archiveFileName": "avr-1.6.22.tar.bz2", - "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", - "size": "4907422", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", - "archiveFileName": "avr-1.6.23.tar.bz2", - "checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", - "size": "5001988", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.8.1", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.8.1.tar.bz2", - "archiveFileName": "avr-1.8.1.tar.bz2", - "checksum": "SHA-256:4791a52fd058f72557af333abc2dea564c8be47fb38fbd7be75ce2fcfdc214b5", - "size": "4941605", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.8.2", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2", - "archiveFileName": "avr-1.8.2.tar.bz2", - "checksum": "SHA-256:6213d41c6e91a75ac931527da5b10f2dbe0140c8cc1dd41b06cd4e78b943f41b", - "size": "4918242", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.8.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", - "archiveFileName": "avr-1.8.3.tar.bz2", - "checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", - "size": "4941548", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino7" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", - "archiveFileName": "megaavr-1.6.23.tar.bz2", - "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", - "size": "717681", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.24", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.24.tar.bz2", - "archiveFileName": "megaavr-1.6.24.tar.bz2", - "checksum": "SHA-256:0910af1d6eb44b65fee77c81a7a83ee420e6a7c1622f90754e91a5127d317a1d", - "size": "709516", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.25", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.25.tar.bz2", - "archiveFileName": "megaavr-1.6.25.tar.bz2", - "checksum": "SHA-256:f776e0b8996d1d199699382b311595825911539f2809dec24780c4c0014d45ff", - "size": "712366", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.26", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.26.tar.bz2", - "archiveFileName": "megaavr-1.6.26.tar.bz2", - "checksum": "SHA-256:d7fe4b40d489c21a89feed6713a2ca9bfb7ed3925536a18de7e5379ffc26737e", - "size": "712719", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.1", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.1.tar.bz2", - "archiveFileName": "megaavr-1.8.1.tar.bz2", - "checksum": "SHA-256:51da414ba5372788ebcd38c8f652cb08152cf20e6a9fd3c398134b2325bf4c68", - "size": "817179", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino16" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.2", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.2.tar.bz2", - "archiveFileName": "megaavr-1.8.2.tar.bz2", - "checksum": "SHA-256:0f59e2d9e5f7b7b80ca3bc54cef00beb653c9a9b6454166dfb0e17cd2160a377", - "size": "840041", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino16" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.3.tar.bz2", - "archiveFileName": "megaavr-1.8.3.tar.bz2", - "checksum": "SHA-256:9791d62551f1e6539769a026f903082344b8ae8b921c1796de94a2af368d866d", - "size": "856037", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino16" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.4", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.4.tar.bz2", - "archiveFileName": "megaavr-1.8.4.tar.bz2", - "checksum": "SHA-256:ff25944bc6f7b766f8a71b836763517de3b12008b0b08cf24460b8af5a05abd1", - "size": "855455", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino16" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.5", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.5.tar.bz2", - "archiveFileName": "megaavr-1.8.5.tar.bz2", - "checksum": "SHA-256:d35ca76fa081fb3a282584d498fadb5712a4330fa39cde560e31d72185c940d8", - "size": "876954", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.6", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.8.6.tar.bz2", - "archiveFileName": "megaavr-1.8.6.tar.bz2", - "checksum": "SHA-256:d6d34aa9d7f2934c92c0a39cd8b48c6a1efb1820c59f558b5f8eddde63409eaa", - "size": "856719", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.8.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-megaavr-1.8.7.tar.bz2", - "archiveFileName": "core-ArduinoCore-megaavr-1.8.7.tar.bz2", - "checksum": "SHA-256:24853e59bfcfcfa09d7ab51011b65f2246e082228b1f14fdaa4cbb2c6aae23b4", - "size": "875098", - "help": { - "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" - }, - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino17" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", - "archiveFileName": "sam-1.6.2.tar.bz2", - "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", - "size": "16174730", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", - "archiveFileName": "sam-1.6.3.tar.bz2", - "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", - "size": "16174017", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", - "archiveFileName": "sam-1.6.4.tar.bz2", - "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", - "size": "16174992", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", - "archiveFileName": "sam-1.6.5.tar.bz2", - "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", - "size": "16529130", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", - "archiveFileName": "sam-1.6.6.tar.bz2", - "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", - "size": "16528101", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", - "archiveFileName": "sam-1.6.7.tar.bz2", - "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", - "size": "16473479", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", - "archiveFileName": "sam-1.6.8.tar.bz2", - "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", - "size": "16471779", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", - "archiveFileName": "sam-1.6.9.tar.bz2", - "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", - "size": "16473503", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", - "archiveFileName": "sam-1.6.10.tar.bz2", - "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", - "size": "16474738", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", - "archiveFileName": "sam-1.6.11.tar.bz2", - "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", - "size": "16474757", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.12", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.12.tar.bz2", - "archiveFileName": "sam-1.6.12.tar.bz2", - "checksum": "SHA-256:1d56d0ceea12a920c4a5c12fff793499354ffba7e93d330786bd2d6f3a191c47", - "size": "16496493", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", - "archiveFileName": "samd-1.6.1.tar.bz2", - "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", - "size": "178354", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", - "archiveFileName": "samd-1.6.2.tar.bz2", - "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", - "size": "179578", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", - "archiveFileName": "samd-1.6.3.tar.bz2", - "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", - "size": "978163", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", - "archiveFileName": "samd-1.6.4.tar.bz2", - "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", - "size": "977481", - "boards": [ - { "name": "Arduino Zero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", - "archiveFileName": "samd-1.6.5.tar.bz2", - "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", - "size": "979548", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", - "archiveFileName": "samd-1.6.6.tar.bz2", - "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", - "size": "997331", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", - "archiveFileName": "samd-1.6.7.tar.bz2", - "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", - "size": "841503", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", - "archiveFileName": "samd-1.6.8.tar.bz2", - "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", - "size": "841801", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", - "archiveFileName": "samd-1.6.9.tar.bz2", - "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", - "size": "855221", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", - "archiveFileName": "samd-1.6.10.tar.bz2", - "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", - "size": "2765368", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", - "archiveFileName": "samd-1.6.11.tar.bz2", - "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", - "size": "2764312", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.12", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", - "archiveFileName": "samd-1.6.12.tar.bz2", - "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", - "size": "2754767", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruti Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino5-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.13", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", - "archiveFileName": "samd-1.6.13.tar.bz2", - "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", - "size": "2777384", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.14", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", - "archiveFileName": "samd-1.6.14.tar.bz2", - "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", - "size": "2746416", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.15", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", - "archiveFileName": "samd-1.6.15.tar.bz2", - "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", - "size": "2795099", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.16", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", - "archiveFileName": "samd-1.6.16.tar.bz2", - "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", - "size": "2796651", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.17", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", - "archiveFileName": "samd-1.6.17.tar.bz2", - "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", - "size": "2849852", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.18", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", - "archiveFileName": "samd-1.6.18.tar.bz2", - "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", - "size": "2808624", - "boards": [ - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.19", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", - "archiveFileName": "samd-1.6.19.tar.bz2", - "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", - "size": "2844050", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.20", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.20.tar.bz2", - "archiveFileName": "samd-1.6.20.tar.bz2", - "checksum": "SHA-256:65a07751d858c7096d4ed9e842768530d41f84c30e26baa398c82e6ad92649bf", - "size": "2854887", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", - "archiveFileName": "samd-beta-1.6.22.tar.bz2", - "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", - "size": "2880064", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.21", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.21.tar.bz2", - "archiveFileName": "samd-1.6.21.tar.bz2", - "checksum": "SHA-256:6ccd8aa87eb0a81ae8b7f34103c2e37edbeb0b358b886f6066db3688c0c5aa54", - "size": "2848675", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", - "archiveFileName": "samd-beta-1.6.23.tar.gz", - "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", - "size": "3634633", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.24", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", - "archiveFileName": "samd-beta-1.6.24.tar.bz2", - "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", - "size": "2885903", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.25", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.25.tar.bz2", - "archiveFileName": "samd-beta-1.6.25.tar.bz2", - "checksum": "SHA-256:95e22b75d2ff1e3a1c9baabad205fbd48964b195390951943035bfbd88286961", - "size": "2890759", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.1", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.1.tar.bz2", - "archiveFileName": "samd-1.8.1.tar.bz2", - "checksum": "SHA-256:a8492b777f7f719fb5270f641b6b13b91ec242f5132b325ede2649dc2bda3117", - "size": "2849370", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.2", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.2.tar.bz2", - "archiveFileName": "samd-1.8.2.tar.bz2", - "checksum": "SHA-256:af75e0d37b63df3b92ecca60285aa59bab66e0bd03bcc4092ea3a1fab3df5258", - "size": "2894202", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.3.tar.bz2", - "archiveFileName": "samd-1.8.3.tar.bz2", - "checksum": "SHA-256:ceac942d67c374e02c3f7586d17a7a4f0ef7bc022627577fd437af928cc21ad3", - "size": "2897712", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.4", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.4.tar.bz2", - "archiveFileName": "samd-1.8.4.tar.bz2", - "checksum": "SHA-256:2b32e54542211360ba6fb133e7d507dedd7a8ea8583f6fa714605a1f003acb27", - "size": "2905449", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.5", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.5.tar.bz2", - "archiveFileName": "samd-1.8.5.tar.bz2", - "checksum": "SHA-256:b518709eb7dd0ad93dfce28c44d53b7873d9d184755672635fa5053a4684354e", - "size": "2882230", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.6", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.6.tar.bz2", - "archiveFileName": "samd-1.8.6.tar.bz2", - "checksum": "SHA-256:68a4fffa6fe6aa7886aab2e69dff7d3f94c02935bbbeb42de37f692d7daf823b", - "size": "2980953", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.7", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.7.tar.bz2", - "archiveFileName": "samd-1.8.7.tar.bz2", - "checksum": "SHA-256:2e465cc08f0f5dc19a95bb10115fd8d1451a7857fd21f2a91f5605e7a8c1dc12", - "size": "3049628", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.8", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.8.tar.bz2", - "archiveFileName": "samd-1.8.8.tar.bz2", - "checksum": "SHA-256:7b93eb705cba9125d9ee52eba09b51fb5fe34520ada351508f4253abbc9f27fa", - "size": "3061568", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.9", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-1.8.9.tar.bz2", - "archiveFileName": "samd-1.8.9.tar.bz2", - "checksum": "SHA-256:41c04740f7b61b561a7134a847678845e91219164f4d125951e13756f53a865b", - "size": "3059968", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.10", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.10.tar.bz2", - "archiveFileName": "core-ArduinoCore-samd-1.8.10.tar.bz2", - "checksum": "SHA-256:f925755f5f104f9b175b562cc64d9e075e93faa248119a2305029ac49ceb0c6b", - "size": "3072717", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.8.11", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.11.tar.bz2", - "archiveFileName": "core-ArduinoCore-samd-1.8.11.tar.bz2", - "checksum": "SHA-256:3c152827c37cc236f24a81b7142b5c82db7c308991a2544d32239501a7a6498c", - "size": "3057742", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino Zero" }, - { "name": "Arduino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR WAN 1310" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino MKR Vidor 4000" }, - { "name": "Arduino Nano 33 IoT" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.0", - "deprecated": true, - "category": "Contributed", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", - "checksum": "SHA-256:d70d8c98fd5ec9cc0cc05722dda344c325910cdc4c5dddfa976dc9a8f00f5f5b", - "size": "35128465", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.1", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", - "checksum": "SHA-256:ac8d6ec83f8c42e27b4dac9d4b565779ff213dd6bcd879dad876cfdf4a492c07", - "size": "35127935", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.2", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", - "checksum": "SHA-256:ebe30e9a2cf2d0e18a84df9cd3b1238249c5b1248e0d5238edb36180f1c33d13", - "size": "36372757", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.3", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", - "checksum": "SHA-256:64e7ded2c068e415d862caa200f09a1f9e17c36bb0fc924869b24b205a924845", - "size": "12373194", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.4", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", - "checksum": "SHA-256:a946b25d426d4e2430b4756e929268094f0b150566f79d6502f3f1819d86ac14", - "size": "12377522", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.5", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", - "checksum": "SHA-256:eda6c708d32e8bac33b1ee5e5bd70f7af0feaa5d83c683da80eca1f21dc25cd7", - "size": "12760869", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.1.6", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", - "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", - "checksum": "SHA-256:5a05ac9cb13549472edc313403a58bcd56db0f3abeffe4072da4f2ec6ab3c795", - "size": "12760476", - "help": { - "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino9" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino1" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.3.0", - "deprecated": true, - "category": "Contributed", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-1.3.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-1.3.0.tar.bz2", - "checksum": "SHA-256:f6617b34b53af37dbc2e6805097cf961f2032dbfc3750a003ba1902d7469258b", - "size": "93357731", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Portenta H7" - }, - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino13" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino2", - "name": "dfu-util" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.3.1", - "deprecated": true, - "category": "Contributed", - "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.1.tar.bz2", - "archiveFileName": "core-ArduinoCore-mbed-1.3.1.tar.bz2", - "checksum": "SHA-256:9f659a88c1b246a69537e585e10188b8a654dc6c51797c89e42bcc9aa26cab8d", - "size": "93181681", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Portenta H7" - }, - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino13" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino2", - "name": "dfu-util" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "1.3.2", - "deprecated": true, - "category": "Contributed", - "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.2.tar.bz2", - "archiveFileName": "core-ArduinoCore-mbed-1.3.2.tar.bz2", - "checksum": "SHA-256:689602d7380f394d092ef627138e434950bb4c8f698fbdaa7d1edd141d2ff0ea", - "size": "93257117", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Portenta H7" - }, - { - "name": "Arduino Nano 33 BLE" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino13" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino2", - "name": "dfu-util" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "2.0.0", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.0.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-2.0.0.tar.bz2", - "checksum": "SHA-256:7d1c67a75f871382c52b7822ebedf85849be35266204cd3749087b70793c8740", - "size": "33510861", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - }, - { - "name": "Arduino Nano 33 BLE Sense" - }, - { - "name": "Arduino Portenta H7" - }, - { - "name": "Arduino Edge Control" - }, - { - "name": "Raspberry Pi Pico" - }, - { - "name": "Arduino Nano RP2040 Connect" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino1" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Edge Boards", - "architecture": "mbed_edge", - "version": "2.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.0.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-edge-2.0.0.tar.bz2", - "checksum": "SHA-256:1264f90c3094282f09aa0f76fb7670fb79ab5abeb321bca41531a586778188c7", - "size": "5180388", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Edge Control" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino1" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Nano Boards", - "architecture": "mbed_nano", - "version": "2.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.0.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-nano-2.0.0.tar.bz2", - "checksum": "SHA-256:93cf3b6b552601395a4cf8b9aed465d9aab7906f2aeebe6cf638c8a952220857", - "size": "6014638", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - }, - { - "name": "Arduino Nano 33 BLE Sense" - }, - { - "name": "Arduino Nano RP2040 Connect" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino1" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Portenta Boards", - "architecture": "mbed_portenta", - "version": "2.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.0.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-portenta-2.0.0.tar.bz2", - "checksum": "SHA-256:d8a0fd481357febe4246a616e859e644616f03208d70dbcda11e7850b454c0cc", - "size": "27024661", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Portenta H7" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino1" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - } - ] - }, - { - "name": "Arduino Mbed OS RP2040 Boards", - "architecture": "mbed_rp2040", - "version": "2.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", - "checksum": "SHA-256:36c5499d4bd119861828c787010c07ac31fe7b3b920d56efe30118b44838a587", - "size": "3841101", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Raspberry Pi Pico" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino1" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", - "architecture": "mbed", - "version": "2.1.0", - "deprecated": true, - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-2.1.0.tar.bz2", - "checksum": "SHA-256:6ec882fe5ea1728659f56373df2f06077d156517004b50502c836e68b9a9751a", - "size": "32179151", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - }, - { - "name": "Arduino Nano 33 BLE Sense" - }, - { - "name": "Arduino Nano RP2040 Connect" - }, - { - "name": "Arduino Portenta H7" - }, - { - "name": "Arduino Edge Control" - }, - { - "name": "Raspberry Pi Pico" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino2" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Edge Boards", - "architecture": "mbed_edge", - "version": "2.1.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-edge-2.1.0.tar.bz2", - "checksum": "SHA-256:68591a6a901916cada4164f09ccd6e8a2e04b1f4244514bc8aeca5c170972b7d", - "size": "5195498", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Edge Control" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino2" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Nano Boards", - "architecture": "mbed_nano", - "version": "2.1.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-nano-2.1.0.tar.bz2", - "checksum": "SHA-256:3b7362662254a4b7e2e06d7ddd9831820e4909787a7dce02fa8e9c653740b1a8", - "size": "6086135", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Nano 33 BLE" - }, - { - "name": "Arduino Nano 33 BLE Sense" - }, - { - "name": "Arduino Nano RP2040 Connect" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino2" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino Mbed OS Portenta Boards", - "architecture": "mbed_portenta", - "version": "2.1.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-portenta-2.1.0.tar.bz2", - "checksum": "SHA-256:b74105f5b4c375dcbb095343aaf6d9adda2a1922f925b7b70e84588610f8aa3c", - "size": "25622118", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Arduino Portenta H7" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino2" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - } - ] - }, - { - "name": "Arduino Mbed OS RP2040 Boards", - "architecture": "mbed_rp2040", - "version": "2.1.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", - "archiveFileName": "ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", - "checksum": "SHA-256:f2732b910449a8ec1ff0a90e32b07276a5d082911a5c639452484ca853e05e9e", - "size": "3844940", - "help": { - "online": "https://github.com/arduino/ArduinoCore-mbed/issues" - }, - "boards": [ - { - "name": "Raspberry Pi Pico" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "openocd", - "version": "0.11.0-arduino2" - }, - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.9.1-arduino2" - }, - { - "packager": "arduino", - "version": "0.10.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "arduino", - "version": "1.0.2", - "name": "rp2040tools" - } - ] - }, - { - "name": "Arduino NRF52 Boards", - "architecture": "nrf52", - "version": "1.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", - "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", - "size": "2438905", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", - "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", - "size": "2262233", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", - "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", - "size": "2308695", - "boards": [ - { "name": "Arduino Primo" }, - { "name": "Arduino Primo Core" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - } - ], - "tools": [ - { - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", - "size": "44423906" - }, - { - "host": "i686-mingw32", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", - "size": "84537449" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", - "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", - "size": "52518522" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", - "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", - "size": "51395093" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", - "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", - "size": "51029223" - } - ] - }, - { - "name": "arm-none-eabi-gcc", - "version": "7-2017q4", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", - "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b", - "size": "96613739" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", - "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", - "size": "99558726" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", - "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", - "size": "131761924" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", - "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", - "size": "104550003" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", - "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", - "size": "99857645" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", - "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", - "size": "97427309" - } - ] - }, - { - "name": "bossac", - "version": "1.3-arduino", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", - "size": "147359" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", - "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", - "size": "26179" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2", - "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", - "size": "265647" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", - "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", - "size": "39475" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino2", - "systems": [ - { - "size": "24443285", - "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27152002", - "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25876628", - "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046691", - "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino2", - "systems": [ - { - "size": "264965", - "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292541", - "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283209", - "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241618", - "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino3", - "systems": [ - { - "size": "24447175", - "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "30556996", - "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "28768022", - "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046917", - "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino3", - "systems": [ - { - "size": "264682", - "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "748634", - "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "495482", - "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241619", - "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino5", - "systems": [ - { - "size": "24403768", - "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "24437400", - "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27093036", - "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25882375", - "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46044779", - "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino5", - "systems": [ - { - "size": "267095", - "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "264894", - "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292629", - "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283121", - "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241634", - "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino", - "systems": [ - { - "size": "27046965", - "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27400001", - "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "29904544", - "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "29077606", - "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "43847566", - "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2", - "systems": [ - { - "size": "27400889", - "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "27048070", - "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "43847945", - "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" - }, - { - "size": "29292729", - "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "29882960", - "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2", - "systems": [ - { - "size": "27764772", - "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "28574644", - "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "44386446", - "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" - }, - { - "size": "29723974", - "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "30374404", - "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2", - "systems": [ - { - "size": "31449123", - "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "33141295", - "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", - "host": "aarch64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "31894498", - "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "45923772", - "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" - }, - { - "size": "33022916", - "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "33522375", - "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5", - "systems": [ - { - "size": "34462042", - "checksum": "SHA-256:f4acd5531c6b82c715e2edfa0aadb13fb718b4095b3ea1aa1f7fbde680069639", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "39381972", - "checksum": "SHA-256:dd9c70190be370a44fb47dab1514de6d8852b861dfa527964b65c740d8d50c10", - "host": "aarch64-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "38492678", - "checksum": "SHA-256:f48706317f04452544ab90e75bd1bb193f8af2cb1002f53aa702f27202c1b38f", - "host": "x86_64-apple-darwin14", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2" - }, - { - "size": "53727984", - "checksum": "SHA-256:6d4a5d089a36e5b5252befc73da204555b49e376ce7577ee19ca7f028b295830", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip" - }, - { - "size": "38710087", - "checksum": "SHA-256:2ff12739d7ed09688d6b3c2c126e8df69b5bda1a07ab558799f0e576571e0e1d", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "39114120", - "checksum": "SHA-256:3effed8ffa1978b6e4a46f1aa2acc629e440b4d77244f71f9b79a916025206fb", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino7", - "systems": [ - { - "size": "34683056", - "checksum": "SHA-256:3903553d035da59e33cff9941b857c3cb379cb0638105dfdf69c97f0acc8e7b5", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "38045723", - "checksum": "SHA-256:03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", - "host": "aarch64-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "36684546", - "checksum": "SHA-256:f6ed2346953fcf88df223469088633eb86de997fa27ece117fd1ef170d69c1f8", - "host": "x86_64-apple-darwin14", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2" - }, - { - "size": "52519412", - "checksum": "SHA-256:a54f64755fff4cb792a1495e5defdd789902a2a3503982e81b898299cf39800e", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip" - }, - { - "size": "37176991", - "checksum": "SHA-256:954bbffb33545bcdcd473af993da2980bf32e8461ff55a18e0eebc7b2ef69a4c", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "37630618", - "checksum": "SHA-256:bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino2", - "systems": [ - { - "size": "643484", - "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "653968", - "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "745081", - "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "731802", - "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "608496", - "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino6", - "systems": [ - { - "size": "644600", - "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "696273", - "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" - }, - { - "size": "746653", - "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "733127", - "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645859", - "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino8", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697268", - "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711544", - "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701718", - "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645996", - "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino9", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697309", - "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711229", - "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701590", - "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645974", - "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino14", - "systems": [ - { - "size": "219616", - "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "229688", - "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "256917", - "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" - }, - { - "size": "253366", - "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "244293", - "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "328363", - "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino16", - "systems": [ - { - "size": "219642", - "checksum": "SHA-256:6fc443445440f0e2d95d70013ed075bceffc2a1babc1e7d4f1ae69c3fe268c57", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "229997", - "checksum": "SHA-256:7a2726ab2fd18b910abc3d9dd33c4b40d18c34cf12c46f3367932e7fd87c0197", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "279172", - "checksum": "SHA-256:f93dc12a4b30a335ab24b3c628e6cad0ebf2f8adfb7ef50f87c0fc17165b2156", - "host": "x86_64-apple-darwin15", - "archiveFileName": "avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2" - }, - { - "size": "254085", - "checksum": "SHA-256:57856d6e388d333d924afa3e2d5525161dbe0dc670e7caae2720e249606175a7", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "244393", - "checksum": "SHA-256:bdf73358991243a9a8de11a42c80c4ec4b14c82f2222cb0c3c181f62656c41fb", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "328456", - "checksum": "SHA-256:781c16a8bf813fa68fc0f47d427279053c9e098c3aed7165449ac4f0137304dd", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino16-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino17", - "systems": [ - { - "size": "219631", - "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "229852", - "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "279045", - "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", - "host": "x86_64-apple-darwin12", - "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" - }, - { - "size": "254271", - "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "244550", - "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "328460", - "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino18", - "systems": [ - { - "size": "220677", - "checksum": "SHA-256:2e25c9e99c255d595a1072679a88ecddfa12c223b18510760bb867039f35efa5", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "231047", - "checksum": "SHA-256:4f88bb50d2235182ed7aa9e0a1d08e4bb956378ac9569b8e1141e37ed314fb2d", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "280072", - "checksum": "SHA-256:df1dfd18e2e287c47232605cd4fa41751eb70df8c300aeb7a00a3a09b524a1b8", - "host": "x86_64-apple-darwin12", - "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2" - }, - { - "size": "254460", - "checksum": "SHA-256:1ae46972b276b8a54c459f87c4ff326abdad0be2b1a293d73bf86e47765eddc3", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "329515", - "checksum": "SHA-256:0781f4183e91a9783c2330035520144ab76b8f75c0a9f7a25877c063bc984c4d", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino18-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.0.0", - "systems": [ - { - "size": "2044124", - "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" - }, - { - "size": "2178772", - "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" - }, - { - "size": "1961623", - "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" - }, - { - "size": "2180617", - "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" - }, - { - "size": "2247970", - "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.0.0-windows.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.1.1", - "systems": [ - { - "size": "2045036", - "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" - }, - { - "size": "2178288", - "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" - }, - { - "size": "1962115", - "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" - }, - { - "size": "2181376", - "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" - }, - { - "size": "2248431", - "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.0", - "systems": [ - { - "size": "1839854", - "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" - }, - { - "size": "1974030", - "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" - }, - { - "size": "1787138", - "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" - }, - { - "size": "1992476", - "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" - }, - { - "size": "2003964", - "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.1", - "systems": [ - { - "size": "2133779", - "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" - }, - { - "size": "2257689", - "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "aarch64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2244088", - "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" - }, - { - "size": "2237511", - "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.3.0", - "systems": [ - { - "size": "2633516", - "checksum": "SHA-256:3e7f59d6fbc7a724598303f0d3289d0c4fd137a8973437980658379a024887b2", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.3.0-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2" - }, - { - "size": "2716248", - "checksum": "SHA-256:aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.3.0-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2" - }, - { - "size": "2567435", - "checksum": "SHA-256:1888587409b56aef4ba0ab0e6703b3dccba7cc3a022756ba9b908247e5d5a656", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.3.0-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2" - }, - { - "size": "2472427", - "checksum": "SHA-256:835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", - "host": "aarch64-linux-gnu", - "archiveFileName": "arduinoOTA-1.3.0-linux_arm64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm64.tar.bz2" - }, - { - "size": "2766116", - "checksum": "SHA-256:d5d0f82ff829c0e434d12a2ee640a6fbd78f893ab37782edbb8b5bf2359d119e", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.3.0-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64.tar.bz2" - }, - { - "size": "2768948", - "checksum": "SHA-256:051943844eee442460d2c709edefadca184287fffd2b6c100dd53aa742aa05f6", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.3.0-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-windows_386.zip" - } - ] - }, - { - "name": "bossac", - "version": "1.5-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", - "size": "199550" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", - "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", - "size": "222283" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", - "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", - "size": "64120" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", - "size": "30431" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", - "size": "29783" - } - ] - }, - { - "name": "bossac", - "version": "1.6-arduino", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz", - "archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz", - "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", - "size": "222517" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", - "archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", - "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", - "size": "64538" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", - "size": "30649" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", - "size": "30072" - } - ] - }, - { - "name": "bossac", - "version": "1.6.1-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", - "size": "201341" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", - "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", - "size": "222918" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", - "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", - "size": "64587" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", - "size": "30869" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", - "size": "30320" - } - ] - }, - { - "name": "bossac", - "version": "1.7.0", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz", - "archiveFileName": "bossac-1.7.0-mingw32.tar.gz", - "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", - "size": "243066" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", - "archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", - "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", - "size": "63822" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", - "size": "31373" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", - "size": "31086" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz", - "archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz", - "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", - "size": "27382" - } - ] - }, - { - "name": "bossac", - "version": "1.7.0-arduino3", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", - "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", - "size": "3607421" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", - "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", - "size": "75510" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", - "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", - "size": "207271" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", - "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", - "size": "193577" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", - "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", - "size": "193941" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", - "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", - "size": "268365" - } - ] - }, - { - "name": "bossac", - "version": "1.8.0-48-gb176eee", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", - "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", - "size": "91219" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", - "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", - "size": "39150" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", - "size": "37798" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", - "size": "37374" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", - "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", - "size": "34825" - } - ] - }, - { - "name": "bossac", - "version": "1.9.1-arduino1", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz", - "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a", - "size": "1260118" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz", - "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6", - "size": "47835" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz", - "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86", - "size": "399453" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz", - "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f", - "size": "384792" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz", - "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba", - "size": "361799" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz", - "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868", - "size": "442657" - } - ] - }, - { - "name": "bossac", - "version": "1.9.1-arduino2", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", - "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", - "size": "1260628" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", - "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", - "size": "47870" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", - "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", - "size": "399532" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", - "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", - "size": "384951" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", - "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", - "size": "361915" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", - "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", - "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", - "size": "442853" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", - "size": "1402283" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", - "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", - "size": "2360705" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", - "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", - "size": "2275101" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", - "size": "1210796" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", - "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", - "size": "1129654" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino5-static", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", - "size": "1319000" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", - "archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", - "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", - "size": "1641209" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", - "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", - "size": "1235752" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", - "size": "1393855" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", - "size": "1341739" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino6-static", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", - "size": "1319020" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", - "archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", - "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", - "size": "1641514" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", - "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", - "size": "1222523" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", - "size": "1394293" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", - "size": "1340444" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino7", - "systems": [ - { - "size": "1638575", - "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1580739", - "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1498970", - "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1701581", - "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "1626347", - "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2016965", - "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino8", - "systems": [ - { - "size": "1714346", - "checksum": "SHA-256:86c4ea3086b4a1475fd8a1e1daf4585748be093dad4160e816b1bf2502501fb2", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1778371", - "checksum": "SHA-256:500cb112ee92092bbfce69649b90d0284752c5766f5aaf5c24dc754100788ef9", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1653652", - "checksum": "SHA-256:584b513ebbc4a645a68234d964ba56f042aaf7668d84ba47398a07a294516cc4", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1845547", - "checksum": "SHA-256:455d4123146bf6b4b095de86d3340fd01e39bba9c70b2f0bb8e979ac4dddac39", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "1781892", - "checksum": "SHA-256:5b44889984daefa966b8251edb98445169107ca32f974ca598d4c59e7d2c8901", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2190397", - "checksum": "SHA-256:35a92f32f2762ef9405d2c684ec7bea2e70c01068f380251aecd9290f5bd5b24", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino9", - "systems": [ - { - "size": "1714657", - "checksum": "SHA-256:b814b16b52cef21eacf456cc7a89d7b5d4cb1385bfb8fb82963b7d8151824d93", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1778177", - "checksum": "SHA-256:f0443e771f5e3a779949498d3c9bfffd1dd27cdf0ad7136a2db5e80447a7175a", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1782958", - "checksum": "SHA-256:a22872918df899cb808f9286141d42438ae5611156c143cfb692069f52a2bddd", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2190484", - "checksum": "SHA-256:f53f9a2b7f48a2ebc00ea9196bf559d15987d3779bcea4118ebec8925da5a1f6", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip" - }, - { - "size": "1655311", - "checksum": "SHA-256:6d47f97919f317bb6e5f1f903127604271d66d149f4625f29b8e0eb5f6c94c64", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1844365", - "checksum": "SHA-256:f624552b5ba56aa78d0c1a0e5d18cf2b5694db2ed44080968e22aa1af8f23c1b", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino12", - "systems": [ - { - "size": "1778706", - "checksum": "SHA-256:86e15186a44b87c00f5ddd9c05849d2ec107783dd18a5ac984ce2a71e34084ed", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1855234", - "checksum": "SHA-256:5c6ca6189f61894ee77b29bc342f96cd14e4d7627fabeb2a8d2e2c534316cc38", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1844359", - "checksum": "SHA-256:4938742d3fec62941187666b8ded44d8f6c7a404920ff49d97fca484b9fd08af", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2276602", - "checksum": "SHA-256:1e23c0f1f809725db3e1f8d1e1f460a37fb7b2cf95e93c6e328e527501ab084c", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip" - }, - { - "size": "1723600", - "checksum": "SHA-256:b40d135449401870302bec073326d6f1df79da38d9dd21326314a5a90189a06e", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1918845", - "checksum": "SHA-256:bc48be10916f69f3a4b050f04babc14ee99dad1fc5da55ce606077991edab1d0", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino13", - "systems": [ - { - "size": "1820630", - "checksum": "SHA-256:47ae7a1a7961ac9daef001b011505b38777baac3c02dd7e673f62601df841427", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1896478", - "checksum": "SHA-256:4dd38b701019ad2fbb58173a3bc6c58effd39501a4a8266256dfe169e7516655", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1883854", - "checksum": "SHA-256:788093504b25d2b9b772657215254ba178ed37773364ce240de68281efe40bd5", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2334654", - "checksum": "SHA-256:2f3b87c644569f47780b16b071cd0929a64a8899ec769f4ca7480d20d5503365", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip" - }, - { - "size": "1767137", - "checksum": "SHA-256:0f3f6e5e03355ffbbc84c4b4750e63c9315b7638c56d63df1b7795968208e6ba", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1955043", - "checksum": "SHA-256:e4b2ffbc9a29be21c32c6921c2e7c0ee39c664c4faca28a5f839c1df32d3bd24", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.11.0-arduino1", - "systems": [ - { - "size": "1882308", - "checksum": "SHA-256:f4bc15523a9777a61befb67ee46b0c567572029cf2dbb8bc092d1175f188a62b", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1967523", - "checksum": "SHA-256:c56e88b34c82748b015c9e11f62c1d6aa98da00c2642f0027b1a5781085c56f9", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1948258", - "checksum": "SHA-256:dbee4de8e838996067444fa1c775bc64418af5660f96d9a9e92a95e85c762d16", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2443521", - "checksum": "SHA-256:13455c55bb089bd0b4005fd77d8522c691b60a4a40bc101afe817db6f1d05695", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip" - }, - { - "size": "1865080", - "checksum": "SHA-256:c9ab5f32038551318434feb8ffba5cf2932b8956443c284997431eb784eacaee", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "2023084", - "checksum": "SHA-256:beb45bb95e43d2d592ee62342e6fdfbb15b87c20c96177b8f6bbc2a57cddbeb1", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.11.0-arduino2", - "systems": [ - { - "size": "1902818", - "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1986716", - "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1971364", - "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2460087", - "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" - }, - { - "size": "1893150", - "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "2052080", - "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "CMSIS", - "version": "4.0.0-atmel", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - } - ] - }, - { - "name": "CMSIS", - "version": "4.5.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.0.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.1.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.2.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "all", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - } - ] - }, - { - "name": "dfu-util", - "version": "0.9.0-arduino1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2", - "size": "68361", - "checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2", - "size": "194826", - "checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2", - "size": "66230", - "checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2", - "size": "62608", - "checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2", - "size": "377537", - "checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e" - } - ] - }, - { - "name": "dfu-util", - "version": "0.9.0-arduino2", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-osx.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino2-osx.tar.bz2", - "size": "65137", - "checksum": "SHA-256:00e87178b81d5721f334d4b688267f19f36eed1d9710a912c9e44bb1a748f766" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-arm.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino2-arm.tar.bz2", - "size": "198568", - "checksum": "SHA-256:b364a8fe1de697d7dd6c4135d341ddff6dbda7e33c707321c7dceab85dfc560b" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux64.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino2-linux64.tar.bz2", - "size": "70996", - "checksum": "SHA-256:628e01772007e622dff6af82220c27bcdf1d0726ba886bd2b36807601f66e4e8" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux32.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino2-linux32.tar.bz2", - "size": "71002", - "checksum": "SHA-256:7a6cec3d89c65119c52b6109cd92a9ec84bdf8a9d12083444d2c89e7ac16c84b" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-windows.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino2-windows.tar.bz2", - "size": "394993", - "checksum": "SHA-256:8ec0e66acdc41941b6e25545f8c12e7eb7ba01a0bafae0b4ab4c99a70deb2ea5" - } - ] - }, - { - "name": "dfu-util", - "version": "0.10.0-arduino1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", - "size": "73921", - "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", - "size": "272153", - "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", - "size": "277886", - "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", - "size": "77184", - "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", - "size": "81826", - "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", - "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", - "size": "464314", - "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" - } - ] - }, - { - "name": "rp2040tools", - "version": "1.0.2", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-darwin_amd64.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-darwin_amd64.tar.bz2", - "size": "1665895", - "checksum": "SHA-256:039e0ddb7a407c5c20c3ef6def8d7cc2abdc7a4fc6dcb039abb3b41c4791f69f" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-linux_arm.tar.bz2", - "size": "5438204", - "checksum": "SHA-256:8981155a50bac8c7e3621f22b8e9c87f7d6aace4e28dddb03f41d704301da94d" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm64.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-linux_arm64.tar.bz2", - "size": "5650185", - "checksum": "SHA-256:4f102352d702fc89757c119cd46c231b998f9900956183b0f7874994dc3965d5" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_amd64.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-linux_amd64.tar.bz2", - "size": "4180308", - "checksum": "SHA-256:f6faafdfdf3cb780b884fe7d092679963e95f88ea78a9ed38312c511045d15c7" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_386.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-linux_386.tar.bz2", - "size": "4423488", - "checksum": "SHA-256:9af1aaf46402ab27d60a6b5d28da5ab8807f3099d78ee6e681bf7a36911ee690" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-windows_386.tar.bz2", - "archiveFileName": "rp2040tools-1.0.2-windows_386.tar.bz2", - "size": "2493234", - "checksum": "SHA-256:8aa684c431b1194d9af4958b116a0a96e4ebf6c90764f9f3420db0515dc6e2c7" - } - ] - }, - { - "name": "windows-drivers", - "version": "1.6.9", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip", - "archiveFileName": "drivers-arduino-windows-1.6.9.zip", - "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", - "size": "7071714" - } - ] - }, - { - "name": "windows-drivers", - "version": "1.8.0", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip", - "archiveFileName": "drivers-arduino-windows-1.8.0.zip", - "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", - "size": "16302148" - } - ] - }, - { - "name": "dfu-util", - "version": "0.8.0-stm32-arduino1", - "systems": [ - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", - "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", - "host": "i386-apple-darwin11", - "size": "68381", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2", - "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", - "host": "arm-linux-gnueabihf", - "size": "213760", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2", - "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", - "host": "x86_64-linux-gnu", - "size": "68575", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2", - "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", - "host": "i686-linux-gnu", - "size": "69097", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2", - "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", - "host": "i686-mingw32", - "size": "159753", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" - } - ] - }, - { - "name": "arduinoSTM32load", - "version": "2.0.0", - "systems": [ - { - "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", - "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", - "host": "i386-apple-darwin11", - "size": "807514", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", - "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", - "host": "arm-linux-gnueabihf", - "size": "809480", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", - "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", - "host": "x86_64-linux-gnu", - "size": "818885", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", - "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", - "host": "i686-linux-gnu", - "size": "814283", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", - "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", - "host": "i686-mingw32", - "size": "786335", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino1-static", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz", - "size": "1529841", - "checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", - "size": "1777984", - "checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", - "size": "1713236", - "checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip", - "archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip", - "size": "1773642", - "checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz", - "size": "1526863", - "checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929" - } - ] - }, - { - "name": "fwupdater", - "version": "0.0.6", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux32.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.6-linux32.tar.bz2", - "checksum": "SHA-256:8c4e562a8e6fa3d916c4bf6bb24d7eec0df013d8cc45dff187e5c63086a92c11", - "size": "7334059" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.6-linux64.tar.bz2", - "checksum": "SHA-256:0e9132518acfe66e5a4e17ba4b6dd0c89dbd90cc0d9b4a54e007ac24d51fd36a", - "size": "7383853" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-windows.zip", - "archiveFileName": "FirmwareUpdater-0.0.6-windows.zip", - "checksum": "SHA-256:33a92661f43b8d025ca5f57be1116537ed153703067d9c86297619d58988feff", - "size": "7580663" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-osx.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.6-osx.tar.bz2", - "checksum": "SHA-256:3584d7581ff2469bdfde9de6f57d87b2a0370de5c902e9df687b7322a5405018", - "size": "7368819" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm.tar.bz2", - "checksum": "SHA-256:276f027e552eb620064b09591c7a7c79927c93c017428436c81f71bad666803c", - "size": "7180391" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", - "checksum": "SHA-256:d6a2e72b4869c031b434380da6e6a8a4a6269f8ee6312a3d23e85ea133a37ae9", - "size": "7149332" - } - ] - }, - { - "name": "fwupdater", - "version": "0.0.7", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux32.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.7-linux32.tar.bz2", - "checksum": "SHA-256:05e26d5df253246cf68ba8a8f5f2de1032ac6f4d7af5310b8080ef6f54030fb4", - "size": "13077590" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.7-linux64.tar.bz2", - "checksum": "SHA-256:e8a36b7ae19060748b8b0540c9c0c9341d8d4c7a630441922a030223f767258d", - "size": "13134534" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-windows.zip", - "archiveFileName": "FirmwareUpdater-0.0.7-windows.zip", - "checksum": "SHA-256:e881dd8a4bbb35f7271157e8dd226c2e032ac1115106170b0aaf9c969817df86", - "size": "13337495" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-osx.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.7-osx.tar.bz2", - "checksum": "SHA-256:647ad713d68a1531ba56c88e5b3db9516cc0072ca1d401de5142d85ffcfd931a", - "size": "13064291" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm.tar.bz2", - "checksum": "SHA-256:b6e09c07e816a35935585db07e07437023d44e66d1d2f05861708ea6ceff7629", - "size": "12929770" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", - "checksum": "SHA-256:620f81148b13f70cdecbe59bbcbf605c7e0aae85f9cbee8ec48202f6018f23ce", - "size": "12897349" - } - ] - }, - { - "name": "fwupdater", - "version": "0.0.8", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux32.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.8-linux32.tar.bz2", - "checksum": "SHA-256:e1f43aa225e6e2ad1f2bccc07898ddb439e980905385a8d7e0615f804a69eee8", - "size": "20137214" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.8-linux64.tar.bz2", - "checksum": "SHA-256:423f67767d5b861a3c39ca6f6a18b2358a30b76bdc3d3d3d870e102b2b2271a8", - "size": "20167410" - }, - { - "host": "x86_64-mingw32", - "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_64bit.zip", - "archiveFileName": "FirmwareUpdater_0.0.8_Windows_64bit.zip", - "checksum": "SHA-256:c3386fdc440638186541f92f920462865308e0f5dde9f45e4dd1c35d2570b808", - "size": "13645709" - }, - { - "host": "i686-mingw32", - "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_32bit.zip", - "archiveFileName": "FirmwareUpdater_0.0.8_Windows_32bit.zip", - "checksum": "SHA-256:dc3ce2e824b2f8ab6ee4c7d2f836311450d60825db95cbb51eeb076a28a1e2af", - "size": "13578670" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-osx.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.8-osx.tar.bz2", - "checksum": "SHA-256:635cbe786cd11ead26e5af0662991d8c3b647469f1874195eeb7f1dba5530b39", - "size": "20091397" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm.tar.bz2", - "checksum": "SHA-256:c027389528e9b04d622167943fe04badbd2f63923f08cc1b22935e5158b2545b", - "size": "19984154" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", - "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", - "checksum": "SHA-256:b6846bb84034e6a8486ce3165dabeb9b32b4fd3804639cd6137a37a00d0157c8", - "size": "19952489" - } - ] - }, - { - "name": "fwupdater", - "version": "0.0.9", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", - "checksum": "SHA-256:a45c536be798e6fc023044ee13911b9b567fb9d0b1c41c5cc9b722346f306425", - "size": "13221786" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", - "checksum": "SHA-256:89d08d4b75dae676bc6e982723f3b07ee5ab4c2fe6071fc97fe850697a0c5398", - "size": "13255356" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_32bit.zip", - "archiveFileName": "FirmwareUpdater_0.0.9_Windows_32bit.zip", - "checksum": "SHA-256:523b2f09a38ef36dcd96558a31e072c5b244e511690326a03af9406eccda2650", - "size": "13589082" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_64bit.zip", - "archiveFileName": "FirmwareUpdater_0.0.9_Windows_64bit.zip", - "checksum": "SHA-256:51eacfcaba9279ef42050d15cf86d98e79511879a84a8e960a8994f6343f74a8", - "size": "13658133" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", - "checksum": "SHA-256:26c0b8764a67f945037a461ead756bee0b453e383dee741548d03322327bd17d", - "size": "13202065" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", - "checksum": "SHA-256:3cde04fa96479bb5342f07752b9cbabdf159f1dcbe7074b642a163ff2a363a28", - "size": "13063437" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:3a41fac33917c4b5d8f5e0720afa780b2250b2561dd6090ed5338d7ab147524f", - "size": "13014703" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.1", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", - "checksum": "SHA-256:22bd6410b39043b0608285a51fbad7abcef0b8361f54936b362935a9bbddeeba", - "size": "13221805" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", - "checksum": "SHA-256:ba4b1b620796e352da2821bb1101cd86340649badf67abf7e7d030efee107159", - "size": "13255213" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_32bit.zip", - "archiveFileName": "FirmwareUpdater_0.1.1_Windows_32bit.zip", - "checksum": "SHA-256:29ecdd651336eca9fbddde96415087e2f19a2d7330e1938e256d7acf31a0ff74", - "size": "13589219" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_64bit.zip", - "archiveFileName": "FirmwareUpdater_0.1.1_Windows_64bit.zip", - "checksum": "SHA-256:a2ff1b6672e56c97aa4eccfa4258b0d91a726d0116f51227e6cc2c5c984afb5d", - "size": "13657363" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", - "checksum": "SHA-256:8c7602dee33e6806eefc0525a9f43512c4d89201869e677ad8d34f7e82276e38", - "size": "13201438" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", - "checksum": "SHA-256:65ddc38d9cfa555979bf9c7a371f887561b7d7af6a07a6adfb354628a8e69801", - "size": "13062843" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:0be6adb21791fb64134356b2ef56c9054e19fb7522e368cad9ee5c1222835e13", - "size": "13014398" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.2", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", - "checksum": "SHA-256:973ce3cd2d604f8750c9b62dabccdf8689013f0380d62eee29f8d6427dd37e8e", - "size": "13222221" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", - "checksum": "SHA-256:9303c50f051b459ba89a4b218bcb39c3348f469c55feb2c63ac53f7f12eb5048", - "size": "13255805" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.2_Windows_32bit.zip", - "checksum": "SHA-256:e3986ae565b658a4bcaf50c0592c5801166ade30255571154ad5729f9b8649eb", - "size": "13589237" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.2_Windows_64bit.zip", - "checksum": "SHA-256:a3094a4c9589812e2c9751ce324315de9011481575c53a772b3c4950cb0310d0", - "size": "13657381" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", - "checksum": "SHA-256:01f952aa365ddbf2072e3181f95f1b0a82d9c85bd1707a4b913e7500f833ff5f", - "size": "13201523" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", - "checksum": "SHA-256:824dec1d62c1a8b835e2692991b017ce21cd0c95287c9282ff9621620157b3d6", - "size": "13063327" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:057243d5ee65b14772035a2402ac48cefb208e59102f75928b4004530227cd47", - "size": "13015184" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.3", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", - "checksum": "SHA-256:22f72fee3a1682c30b0bf4579a1ecc2759a5063c2be9342dd3c46858db43d7ef", - "size": "15794726" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", - "checksum": "SHA-256:1f998f8f5d9ef9487beb00d2f434682cbcdc4b13337fd82271df8ad931121324", - "size": "15927812" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.3_Windows_32bit.zip", - "checksum": "SHA-256:d23dd1ef5ea19b46633980b47964834d0718d11b375c64725b28d4e39660ff3c", - "size": "16139436" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.3_Windows_64bit.zip", - "checksum": "SHA-256:fd6eb93b2737ae3a49800d4f42abd7fa925e985b043d3a418412f26dc61b3baa", - "size": "16189555" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", - "checksum": "SHA-256:ba53f679baca0f5ab6bbd4991da89702437932d67ae6c589c4da6ced3a4dc66b", - "size": "15832036" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", - "checksum": "SHA-256:91a85be7d657b4f31f69aba7e1a0390234d4ede5d138474b3eef928119a21df4", - "size": "15734716" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:7b2ebd25998c441b4a4da1cc5bf227285f0fd321b2107497d29910213d8ad039", - "size": "15557114" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.4", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", - "checksum": "SHA-256:794192e4463191308687ca10d361f6e86d06b57384800ead82ff9f1c32e3462b", - "size": "17369582" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", - "checksum": "SHA-256:e7e5a7f3c3f1c363a4e1e3cce3bbd48faa806da9153ade19336c68adcbc80464", - "size": "17346963" - }, - { - "host": "i686-mingw32", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.4_Windows_32bit.zip", - "checksum": "SHA-256:8bc96ea4a8e8232b7798feda9bd5e2e745c14ba7584b936a6588dcd44e69bcca", - "size": "16792636" - }, - { - "host": "x86_64-mingw32", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.4_Windows_64bit.zip", - "checksum": "SHA-256:29b753610b9b285a31471fe35fa7938f54d461b773f3fcf4e5bff27ca72c20e8", - "size": "16940370" - }, - { - "host": "i386-apple-darwin11", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", - "checksum": "SHA-256:f4c5542c209e5b7f09b020c9714889d846e8e6a96d1e2ab6e22cdae8d3ad8ef4", - "size": "16913255" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", - "checksum": "SHA-256:93503377d29a84f63433a608f3a2320ef27ca7f4b54a5cef6857ad16aa464842", - "size": "16992130" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:d68ddc8c78902f164f701d974d2b0deffdbe3a58bd4d62f0d2e10263c2292c0b", - "size": "17042502" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.5", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", - "checksum": "SHA-256:32cf24ae74d0b11ae5d41cf0b7d99a30ed5120a54ca06bfa9f5d7f02b03ad7f7", - "size": "16099680" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", - "checksum": "SHA-256:e619e67e5296c0e1a76bfb32b646972340083578ab216e1d298a2d3e9ddfe04c", - "size": "16077879" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.5_Windows_32bit.zip", - "checksum": "SHA-256:ed08415371b126bf28fdefedc7527f5679ae822e23392a918f687ffa6614a299", - "size": "15392456" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.5_Windows_64bit.zip", - "checksum": "SHA-256:193bde05298c7cde87b0b212eec2e104650cf44a7fe9dec44df6fde2299686e8", - "size": "15620440" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", - "checksum": "SHA-256:256f884a295a7b49f08124549ca25bd16e5ff46c0f50ea73e163363b40ec2c60", - "size": "15449203" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", - "checksum": "SHA-256:6cbecb92ef0a8014aef3b8692cf64869d13c2fc0483332695ef42fef39c0b989", - "size": "15573837" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:e09d3880d9fd51b5257c44c6304e12422523dfdc1c378a978e9596caadac6a89", - "size": "15621405" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.6", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", - "checksum": "SHA-256:67b413dd15afca65d327e45329b1c2e64614126ef1fae27a1323155bbdc74c20", - "size": "17458014" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", - "checksum": "SHA-256:e299bea991778a388e611c3e9a4b1f5a7d5cf1b121465f7a843570602d0b6f39", - "size": "17433263" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.6_Windows_32bit.zip", - "checksum": "SHA-256:4be9f5208841150ffc0148feccd819d77c7fbb477f41597fc3198f633a09a8ac", - "size": "16950481" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.6_Windows_64bit.zip", - "checksum": "SHA-256:2490cdceb24b17d8269d8c144172c02c37a81c2275ed395973d22f0017d53713", - "size": "17079617" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", - "checksum": "SHA-256:2d4af33020a0291e54197b133de8f278a8d68c0272e0bc93953941fd06508694", - "size": "17000606" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", - "checksum": "SHA-256:1b392a5ec7d4b7f8fd052e0e249f85538fbcce790bc5a442980ce6be215b5872", - "size": "17147561" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:538a24a8f7c6831477d39ae166695ed411eb29a6d5aec3b2bc69bc1ef7b4d7b1", - "size": "17186826" - } - ] - }, - { - "name": "fwupdater", - "version": "0.1.7", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", - "checksum": "SHA-256:5c2a04c6f84bca68a77f884d905de67970035a652d4113e2772effa03f151ac9", - "size": "20037466" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", - "checksum": "SHA-256:95cf13032c1a83a175ed6b87f2e6f3f33a5a5c656e98ab7caadbc07d29f6eed0", - "size": "20013555" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.7_Windows_32bit.zip", - "checksum": "SHA-256:28377ebe89d22a2a8246865aba93d215ed1f0c99cdbff9ae4f0149dec5bee20a", - "size": "19504654" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.7_Windows_64bit.zip", - "checksum": "SHA-256:47e93e135cc074305e03b7b156d8a5788611063ed28e0b8d98bc84d94ab69f27", - "size": "19693655" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", - "checksum": "SHA-256:2255013a1065a13ff3980678888b56aecce38d236944f53a64aae6889aa567ec", - "size": "19556591" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", - "checksum": "SHA-256:0f83ed1cfa04adc35dd828b17b96903c075b8c71116d2c41f3db29d20e838b46", - "size": "19698330" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:235f5e157cbe31f647bd8092f6e1146c796641e1fc0ae366222228636c62f2db", - "size": "19736165" - } - ] - }, - { - "name": "nrf5x-cl-tools", - "version": "9.3.1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", - "size": "341674", - "checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", - "size": "167414", - "checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", - "size": "155680", - "checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", - "size": "812257", - "checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00" - } - ] - } - ] - }, - { - "email": "support@intel.com", - "maintainer": "Intel", - "websiteURL": "http://maker.intel.com/", - "name": "Intel", - "platforms": [ - { - "name": "Intel i586 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", - "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", - "size": "272961", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.2.tar.gz", - "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", - "size": "271420", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i586 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", - "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", - "size": "273392", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.7.tar.gz", - "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", - "size": "272002", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.4", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", - "archiveFileName": "arduino101-1.0.4.zip", - "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", - "size": "806100", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.14", - "name": "sketchUploader" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.5", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", - "archiveFileName": "arduino101-1.0.5.zip", - "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", - "size": "776592", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.18", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.6", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.6.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", - "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", - "size": "672314", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.24", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.7", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.7.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", - "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", - "size": "729297", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.28", - "name": "arduino101load" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "1.0.0", - "name": "flashpack" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "2.0.2", - "category": "Arduino Certified", - "archiveFileName": "corelibs-arduino101-2.0.2.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", - "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", - "size": "6242776", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "2.0.1", - "name": "arduino101load" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "2.0.0", - "name": "flashpack" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "2.0.4", - "category": "Arduino Certified", - "archiveFileName": "corelibs-arduino101-2.0.4.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.3.zip", - "checksum": "SHA-256:466027da55175ba69115bc5aa859e10d1432cd6b6abfccc10a2687eff35ca906", - "size": "6243652", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "2.0.1", - "name": "arduino101load" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "2.0.0", - "name": "flashpack" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "2.0.5", - "category": "Arduino Certified", - "archiveFileName": "corelibs-arduino101-2.0.5.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.5.zip", - "checksum": "SHA-256:afc71056b6df11d69bb8c8204cb28e65ad557b611a42a180de682c520c7311f9", - "size": "6247928", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "2.0.1", - "name": "arduino101load" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "2.0.0", - "name": "flashpack" - } - ] - } - ], - "tools": [ - { - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "30587705", - "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", - "host": "i386-apple-darwin11", - "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "45948648", - "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", - "host": "i686-mingw32", - "archiveFileName": "galileo-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "56227185", - "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", - "host": "x86_64-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "55098166", - "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", - "host": "i686-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "42720934", - "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", - "host": "i386-apple-darwin11", - "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "56683094", - "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", - "host": "i686-mingw32", - "archiveFileName": "edison-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "78998436", - "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", - "host": "x86_64-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "76488215", - "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", - "host": "i686-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.4+1.0", - "systems": [ - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", - "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem.zip", - "size": "218816528" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", - "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", - "size": "78371400" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", - "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", - "size": "182899676" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", - "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", - "size": "177840353" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.9+1.0.1", - "systems": [ - { - "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-windows-arcem-1.0.1.zip", - "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", - "size": "172455793" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "size": "30014953" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "size": "116481978" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "size": "129250679" - } - ] - }, - { - "name": "sketchUploader", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "61789", - "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", - "host": "i386-apple-darwin11", - "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" - }, - { - "size": "2534586", - "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", - "host": "i686-mingw32", - "archiveFileName": "intel-arduino-tools-20150316-windows.zip", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" - }, - { - "size": "178239", - "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", - "host": "x86_64-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" - }, - { - "size": "187995", - "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", - "host": "i686-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" - } - ] - }, - { - "version": "1.6.4+1.14", - "name": "sketchUploader", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", - "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.14-windows.zip", - "size": "8239124" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", - "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.14-osx.tar.gz", - "size": "324645" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", - "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux32.tar.gz", - "size": "224137" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", - "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux64.tar.gz", - "size": "216542" - } - ] - }, - { - "version": "1.6.4+1.18", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", - "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.19-windows.zip", - "size": "9367650" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", - "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.18-osx.tar.gz", - "size": "1236355" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", - "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux32.tar.gz", - "size": "1269508" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", - "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux64.tar.gz", - "size": "1467166" - } - ] - }, - { - "version": "1.6.9+1.24", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", - "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", - "size": "9418690" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", - "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", - "size": "1241701" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", - "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", - "size": "1305107" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", - "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", - "size": "1507392" - } - ] - }, - { - "version": "1.6.9+1.28", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", - "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", - "size": "9331111" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", - "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", - "size": "1134614" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", - "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", - "size": "1202482" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", - "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", - "size": "1411007" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", - "size": "1115949", - "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", - "size": "992362", - "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", - "size": "1111450", - "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", - "size": "1002073", - "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", - "size": "1046285", - "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", - "size": "1114375", - "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", - "size": "992557", - "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", - "size": "1111519", - "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", - "size": "1001211", - "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", - "size": "1046214", - "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" - } - ] - }, - { - "name": "arduino101load", - "version": "2.1.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", - "size": "1188264", - "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", - "size": "1110912", - "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", - "size": "1184509", - "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", - "size": "1065618", - "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", - "size": "1078361", - "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" - } - ] - }, - { - "version": "0.9.0+0.1", - "name": "openocd", - "systems": [ - { - "url": "https://downloads.arduino.cc/tools/intel/openocd-windows.zip", - "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", - "host": "i686-mingw32", - "archiveFileName": "openocd-windows-0.9.0.zip", - "size": "9181935" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/openocd-osx.tar.bz2", - "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-osx-0.9.0.tar.bz2", - "size": "896625" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/openocd-linux32.tar.bz2", - "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", - "size": "3923308" - }, - { - "url": "https://downloads.arduino.cc/tools/intel/openocd-linux64.tar.bz2", - "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", - "size": "4010990" - } - ] - }, - { - "version": "1.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-mingw32", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - } - ] - }, - { - "version": "2.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-mingw32", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i386-apple-darwin11", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "x86_64-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - } - ] - } - ] - }, - { - "name": "atmel-avr-xminis", - "maintainer": "Atmel University France", - "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", - "help": - { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": - [ - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.3.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", - "size": "95352", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.4.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", - "size": "95452", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.5.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", - "size": "95573", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.6.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", - "size": "95447", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - } - ], - "tools": - [ - ] - }, - { - "name":"littleBits", - "maintainer":"littleBits Electronics", - "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", - "email":"support@littlebits.cc", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "platforms":[ - { - "name":"littleBits Arduino AVR Modules", - "architecture":"avr", - "version":"1.0.0", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", - "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", - "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", - "size":"27762", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "boards":[ - { "name":"littleBits w6 Arduino module" } - ], - "toolsDependencies":[ - { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, - { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } - ] - } - ], - "tools":[] - }, - { - "name": "Microsoft", - "maintainer": "Microsoft.IoT", - "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", - "email": "bfjelds@microsoft.com", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "platforms": [ - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.0.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", - "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", - "size": "47325480", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", - "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", - "size": "48316890", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.1", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", - "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", - "size": "48317624", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.2", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", - "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", - "size": "48317648", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - } - ], - "tools":[] - }, - { - "name": "Arrow", - "maintainer": "Axel Elettronica S.r.l.", - "websiteURL": "http://axelelettronica.it/", - "email": "development@axelelettronica.it", - "help": { - "online": "http://www.arrowsmarteverything.com/support/" - }, - "platforms": [ - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "1.2.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", - "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", - "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", - "size": "36575", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.0.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", - "archiveFileName": "Arrow-samd-2.0.0.tar.gz", - "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", - "size": "772778", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.1.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", - "archiveFileName": "Arrow-samd-2.1.0.tar.gz", - "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", - "size": "780064", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "emoro", - "maintainer": "Inovatic-ICT", - "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", - "email": "support@inovatic-ict.com", - "help": { - "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" - }, - "platforms": [ - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.1", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", - "archiveFileName": "EMoRo_2560-3.2.1.zip", - "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", - "size": "846444", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.2", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", - "archiveFileName": "EMoRo_2560-3.2.2.zip", - "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", - "size": "565744", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "industruino", - "maintainer": "Industruino", - "websiteURL": "https://industruino.com/", - "email": "connect@industruino.com", - "help": { - "online": "https://github.com/Industruino/IndustruinoSAMD" - }, - "platforms": [ - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.0", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", - "archiveFileName": "industruino-samd-1.0.0.tar.bz2", - "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", - "size": "172665", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.1", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", - "archiveFileName": "industruino-samd-1.0.1.tar.bz2", - "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", - "size": "203844", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - } - ], - "tools": [ - { - "name": "bossac", - "version": "1.7.0-industruino", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", - "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", - "size": "565844" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", - "size": "128421" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", - "size": "62348" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", - "size": "63204" - } - ] - }, - { - "name": "windows-drivers", - "version": "0.0.1", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", - "archiveFileName": "drivers-industruino-windows-0.0.1.zip", - "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", - "size": "2545" - } - ] - } - ] - } - ] -} diff --git a/indexes/testdata/package_index.json.sig b/indexes/testdata/package_index.json.sig deleted file mode 100644 index 1038023299b8a52afad53cc70d633fbf5448e836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3L0vrSY0RjL91p;8WqCx-)2@oWrYps7NLXl}#5B@m!=okF~7;tJL;i&gs zBbrK1n)n%t$EyM#?qKO=OtQ!h8bTX%xi38)Jav=DjXWM@3@7po={Qdf?JL+QCbICr z>W{ql{YeWSzptT=H1%2mdbVwHf)ZgVxhw2dfW7l73VA3+Ix`36`|(9+S$^4q zEXzUoz89mR?Z|nwoixYTxav+S8P;Crky}xDGvuqYiFe3$>@W8CD2NPr*{U{NPDXcX z80+G-G8FmV&giVLk+q^2JHvHEGex@Umcwhj+;aIUno2m|#1M|`AGxsPEP$vgQhR2c zo~-W}$LW;jTj+HtQF5GT7gvvd)n8!VOdI1}*PntMk-%8kHz|4!3h!TT_7C@>KyY=8 zQrUb{lP2h2jF?Ar`Z*9eZCty*^sB{pVt-Z&5jsPhoI-iSf z&_YsD`u>F3;$?vtaELC32p2i{e!^mH4GLTCUmU6TLxcup`JEomhL@8Js)?hMEwnEZ hXY11J?PnI@Nxk~c*oHQ-oS(^66lsIkn*P8(@{prS4A}qx From eda735c0fb6274b29c708369dce288907622b25c Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 9 Jun 2021 14:11:53 +0200 Subject: [PATCH 19/23] Fix rice box name --- indexes/firmwareindex/firmwareindex.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexes/firmwareindex/firmwareindex.go b/indexes/firmwareindex/firmwareindex.go index ab462ebb..585b8665 100644 --- a/indexes/firmwareindex/firmwareindex.go +++ b/indexes/firmwareindex/firmwareindex.go @@ -78,7 +78,7 @@ func LoadIndex(jsonIndexFile *paths.Path) (*Index, error) { } jsonSignatureFile := jsonIndexFile.Parent().Join(jsonIndexFile.Base() + ".sig") - keysBox, err := rice.FindBox("../gpg_keys") + keysBox, err := rice.FindBox("gpg_keys") if err != nil { return nil, err } From b38ac4bfa625d874f1bd5728d0f3e04099c05d3b Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 9 Jun 2021 14:12:45 +0200 Subject: [PATCH 20/23] Add functions to download and load indexes --- indexes/indexes.go | 60 +- indexes/indexes_test.go | 51 + indexes/testdata/package_index.json | 9456 +++++++++++++++++++++++ indexes/testdata/package_index.json.sig | Bin 0 -> 543 bytes 4 files changed, 9535 insertions(+), 32 deletions(-) create mode 100644 indexes/indexes_test.go create mode 100644 indexes/testdata/package_index.json create mode 100644 indexes/testdata/package_index.json.sig diff --git a/indexes/indexes.go b/indexes/indexes.go index 0bf4c243..689d3014 100644 --- a/indexes/indexes.go +++ b/indexes/indexes.go @@ -28,10 +28,13 @@ import ( "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/arduino/resources" - "github.com/arduino/go-paths-helper" + "github.com/sirupsen/logrus" semver "go.bug.st/relaxed-semver" ) +// GetToolRelease returns a ToolRelease by searching the toolID in the index. +// Returns nil if no matching tool release is found +// Assumes toolID is formatted correctly as :@ func GetToolRelease(index *packageindex.Index, toolID string) *cores.ToolRelease { split := strings.Split(toolID, ":") packageName := split[0] @@ -70,39 +73,32 @@ func GetToolRelease(index *packageindex.Index, toolID string) *cores.ToolRelease return nil } -func downloadIndexes() (*paths.Path, error) { - -} - +// GetPackageIndex downloads and loads the Arduino package_index.json func GetPackageIndex() (*packageindex.Index, error) { - if err := download.DownloadIndex(globals.PackageIndexGZURL) - + indexPath, err := download.DownloadIndex(globals.PackageIndexGZURL) + if err != nil { + logrus.Error(err) + return nil, err + } + in, err := packageindex.LoadIndex(indexPath) + if err != nil { + logrus.Error(err) + return nil, err + } + return in, err } +// GetFirmwareIndex downloads and loads the FirmwareUploader module_firmware_index.json func GetFirmwareIndex() (*firmwareindex.Index, error) { - + indexPath, err := download.DownloadIndex(globals.ModuleFirmwareIndexGZURL) + if err != nil { + logrus.Error(err) + return nil, err + } + in, err := firmwareindex.LoadIndex(indexPath) + if err != nil { + logrus.Error(err) + return nil, err + } + return in, err } - -// download indexes in /tmp/fwuloader/package_index.json etc.. -// for _, u := range globals.DefaultIndexGZURL { -// indexes.DownloadIndex(u) -// } - -// list, err := globals.FwUploaderPath.ReadDir() -// if err != nil { -// feedback.Errorf("Can't read fwuploader directory: %s", err) -// } -// for _, indexFile := range list { -// if indexFile.Ext() != ".json" { -// continue -// } -// if indexFile.String() == "package_index.json" { -// PackageIndex, e := packageindex.LoadIndexNoSign(indexFile) // TODO fare funzione che ti ritorna le strutture dati, e fa tutto quello che ci sta dietro. -// } else if indexFile.String() == "module_firmware_index.json" { -// ModuleFWIndex, e := firmwareindex.LoadIndexNoSign(indexFile) -// } else { -// feedback.Errorf("Unknown index: %s", indexFile.String()) -// } -// } - -// //TODO ⬇️ study in the CLI how the indexes are passed to other modules diff --git a/indexes/indexes_test.go b/indexes/indexes_test.go new file mode 100644 index 00000000..b0bb1683 --- /dev/null +++ b/indexes/indexes_test.go @@ -0,0 +1,51 @@ +/* + FirmwareUploader + Copyright (c) 2021 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +package indexes + +import ( + "testing" + + "github.com/arduino/arduino-cli/arduino/cores/packageindex" + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" +) + +func TestGetToolRelease(t *testing.T) { + indexFile := paths.New("testdata/package_index.json") + index, err := packageindex.LoadIndexNoSign(indexFile) + require.NoError(t, err) + toolRelease := GetToolRelease(index, "arduino:bossac@1.7.0-arduino3") + + require.Equal(t, toolRelease.Version.String(), "1.7.0-arduino3") + require.Equal(t, toolRelease.Tool.Name, "bossac") + require.NotEmpty(t, toolRelease.Flavors) +} + +func TestGetPackageIndex(t *testing.T) { + index, err := GetPackageIndex() + require.NoError(t, err) + require.NotNil(t, index) +} + +func TestGetFirmwareIndex(t *testing.T) { + index, err := GetFirmwareIndex() + require.NoError(t, err) + require.NotNil(t, index) +} diff --git a/indexes/testdata/package_index.json b/indexes/testdata/package_index.json new file mode 100644 index 00000000..03f747ab --- /dev/null +++ b/indexes/testdata/package_index.json @@ -0,0 +1,9456 @@ +{ + "packages": [ + { + "name": "arduino", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", + "archiveFileName": "avr-1.6.2.tar.bz2", + "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", + "size": "4877442", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", + "archiveFileName": "avr-1.6.3.tar.bz2", + "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", + "size": "4876816", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino3" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino3" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", + "archiveFileName": "avr-1.6.4.tar.bz2", + "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", + "size": "4780884", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", + "archiveFileName": "avr-1.6.5.tar.bz2", + "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", + "size": "4876957", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", + "archiveFileName": "avr-1.6.6.tar.bz2", + "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", + "size": "4876916", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", + "archiveFileName": "avr-1.6.7.tar.bz2", + "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", + "size": "4904283", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", + "archiveFileName": "avr-1.6.8.tar.bz2", + "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", + "size": "4885536", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", + "archiveFileName": "avr-1.6.9.tar.bz2", + "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", + "size": "4890702", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", + "archiveFileName": "avr-1.6.10.tar.bz2", + "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", + "size": "4991331", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", + "archiveFileName": "avr-1.6.11.tar.bz2", + "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", + "size": "4991634", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.12", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", + "archiveFileName": "avr-1.6.12.tar.bz2", + "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", + "size": "4993586", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino2" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.13", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", + "archiveFileName": "avr-1.6.13.tar.bz2", + "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", + "size": "4993644", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.14", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", + "archiveFileName": "avr-1.6.14.tar.bz2", + "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", + "size": "4993455", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.15", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", + "archiveFileName": "avr-1.6.15.tar.bz2", + "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", + "size": "4993959", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino6" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.16", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", + "archiveFileName": "avr-1.6.16.tar.bz2", + "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", + "size": "5011829", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.17", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", + "archiveFileName": "avr-1.6.17.tar.bz2", + "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", + "size": "5011912", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.18", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", + "archiveFileName": "avr-1.6.18.tar.bz2", + "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", + "size": "4897659", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.19", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", + "archiveFileName": "avr-1.6.19.tar.bz2", + "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", + "size": "4959420", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.20", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", + "archiveFileName": "avr-1.6.20.tar.bz2", + "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", + "size": "4897949", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.21", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", + "archiveFileName": "avr-1.6.21.tar.bz2", + "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", + "size": "4897460", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino9" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.1.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", + "archiveFileName": "avr-1.6.22.tar.bz2", + "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", + "size": "4907422", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", + "archiveFileName": "avr-1.6.23.tar.bz2", + "checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", + "size": "5001988", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.1.tar.bz2", + "archiveFileName": "avr-1.8.1.tar.bz2", + "checksum": "SHA-256:4791a52fd058f72557af333abc2dea564c8be47fb38fbd7be75ce2fcfdc214b5", + "size": "4941605", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2", + "archiveFileName": "avr-1.8.2.tar.bz2", + "checksum": "SHA-256:6213d41c6e91a75ac931527da5b10f2dbe0140c8cc1dd41b06cd4e78b943f41b", + "size": "4918242", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino AVR Boards", + "architecture": "avr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", + "archiveFileName": "avr-1.8.3.tar.bz2", + "checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", + "size": "4941548", + "boards": [ + {"name": "Arduino Yún"}, + {"name": "Arduino Uno"}, + {"name": "Arduino Uno WiFi"}, + {"name": "Arduino Diecimila"}, + {"name": "Arduino Nano"}, + {"name": "Arduino Mega"}, + {"name": "Arduino MegaADK"}, + {"name": "Arduino Leonardo"}, + {"name": "Arduino Leonardo Ethernet"}, + {"name": "Arduino Micro"}, + {"name": "Arduino Esplora"}, + {"name": "Arduino Mini"}, + {"name": "Arduino Ethernet"}, + {"name": "Arduino Fio"}, + {"name": "Arduino BT"}, + {"name": "Arduino LilyPadUSB"}, + {"name": "Arduino Lilypad"}, + {"name": "Arduino Pro"}, + {"name": "Arduino ATMegaNG"}, + {"name": "Arduino Robot Control"}, + {"name": "Arduino Robot Motor"}, + {"name": "Arduino Gemma"}, + {"name": "Adafruit Circuit Playground"}, + {"name": "Arduino Yún Mini"}, + {"name": "Arduino Industrial 101"}, + {"name": "Linino One"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", + "archiveFileName": "megaavr-1.6.23.tar.bz2", + "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", + "size": "717681", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.24.tar.bz2", + "archiveFileName": "megaavr-1.6.24.tar.bz2", + "checksum": "SHA-256:0910af1d6eb44b65fee77c81a7a83ee420e6a7c1622f90754e91a5127d317a1d", + "size": "709516", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.25.tar.bz2", + "archiveFileName": "megaavr-1.6.25.tar.bz2", + "checksum": "SHA-256:f776e0b8996d1d199699382b311595825911539f2809dec24780c4c0014d45ff", + "size": "712366", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.6.26", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.6.26.tar.bz2", + "archiveFileName": "megaavr-1.6.26.tar.bz2", + "checksum": "SHA-256:d7fe4b40d489c21a89feed6713a2ca9bfb7ed3925536a18de7e5379ffc26737e", + "size": "712719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino14" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.1.tar.bz2", + "archiveFileName": "megaavr-1.8.1.tar.bz2", + "checksum": "SHA-256:51da414ba5372788ebcd38c8f652cb08152cf20e6a9fd3c398134b2325bf4c68", + "size": "817179", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.2.tar.bz2", + "archiveFileName": "megaavr-1.8.2.tar.bz2", + "checksum": "SHA-256:0f59e2d9e5f7b7b80ca3bc54cef00beb653c9a9b6454166dfb0e17cd2160a377", + "size": "840041", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.3.tar.bz2", + "archiveFileName": "megaavr-1.8.3.tar.bz2", + "checksum": "SHA-256:9791d62551f1e6539769a026f903082344b8ae8b921c1796de94a2af368d866d", + "size": "856037", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.4.tar.bz2", + "archiveFileName": "megaavr-1.8.4.tar.bz2", + "checksum": "SHA-256:ff25944bc6f7b766f8a71b836763517de3b12008b0b08cf24460b8af5a05abd1", + "size": "855455", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino16" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.5.tar.bz2", + "archiveFileName": "megaavr-1.8.5.tar.bz2", + "checksum": "SHA-256:d35ca76fa081fb3a282584d498fadb5712a4330fa39cde560e31d72185c940d8", + "size": "876954", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/megaavr-1.8.6.tar.bz2", + "archiveFileName": "megaavr-1.8.6.tar.bz2", + "checksum": "SHA-256:d6d34aa9d7f2934c92c0a39cd8b48c6a1efb1820c59f558b5f8eddde63409eaa", + "size": "856719", + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino megaAVR Boards", + "architecture": "megaavr", + "version": "1.8.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "archiveFileName": "core-ArduinoCore-megaavr-1.8.7.tar.bz2", + "checksum": "SHA-256:24853e59bfcfcfa09d7ab51011b65f2246e082228b1f14fdaa4cbb2c6aae23b4", + "size": "875098", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino17" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", + "archiveFileName": "sam-1.6.2.tar.bz2", + "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", + "size": "16174730", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", + "archiveFileName": "sam-1.6.3.tar.bz2", + "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", + "size": "16174017", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", + "archiveFileName": "sam-1.6.4.tar.bz2", + "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", + "size": "16174992", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.3-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", + "archiveFileName": "sam-1.6.5.tar.bz2", + "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", + "size": "16529130", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", + "archiveFileName": "sam-1.6.6.tar.bz2", + "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", + "size": "16528101", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", + "archiveFileName": "sam-1.6.7.tar.bz2", + "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", + "size": "16473479", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", + "archiveFileName": "sam-1.6.8.tar.bz2", + "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", + "size": "16471779", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", + "archiveFileName": "sam-1.6.9.tar.bz2", + "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", + "size": "16473503", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", + "archiveFileName": "sam-1.6.10.tar.bz2", + "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", + "size": "16474738", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", + "archiveFileName": "sam-1.6.11.tar.bz2", + "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", + "size": "16474757", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", + "architecture": "sam", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/sam-1.6.12.tar.bz2", + "archiveFileName": "sam-1.6.12.tar.bz2", + "checksum": "SHA-256:1d56d0ceea12a920c4a5c12fff793499354ffba7e93d330786bd2d6f3a191c47", + "size": "16496493", + "boards": [ + {"name": "Arduino Due"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", + "archiveFileName": "samd-1.6.0.tar.bz2", + "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", + "size": "177135", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", + "archiveFileName": "samd-1.6.1.tar.bz2", + "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", + "size": "178354", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", + "archiveFileName": "samd-1.6.2.tar.bz2", + "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", + "size": "179578", + "boards": [ + { + "name": "Arduino Zero" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.3", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", + "archiveFileName": "samd-1.6.3.tar.bz2", + "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", + "size": "978163", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.4", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", + "archiveFileName": "samd-1.6.4.tar.bz2", + "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", + "size": "977481", + "boards": [ + { "name": "Arduino Zero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.5", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", + "archiveFileName": "samd-1.6.5.tar.bz2", + "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", + "size": "979548", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.6", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", + "archiveFileName": "samd-1.6.6.tar.bz2", + "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", + "size": "997331", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.6.1-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.7", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", + "archiveFileName": "samd-1.6.7.tar.bz2", + "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", + "size": "841503", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.8", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", + "archiveFileName": "samd-1.6.8.tar.bz2", + "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", + "size": "841801", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.9", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", + "archiveFileName": "samd-1.6.9.tar.bz2", + "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", + "size": "855221", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.10", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", + "archiveFileName": "samd-1.6.10.tar.bz2", + "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", + "size": "2765368", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.11", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", + "archiveFileName": "samd-1.6.11.tar.bz2", + "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", + "size": "2764312", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0" }, + { "name": "Arduino M0 Pro" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.12", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", + "archiveFileName": "samd-1.6.12.tar.bz2", + "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", + "size": "2754767", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruti Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino5-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.13", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", + "archiveFileName": "samd-1.6.13.tar.bz2", + "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", + "size": "2777384", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.14", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", + "archiveFileName": "samd-1.6.14.tar.bz2", + "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", + "size": "2746416", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.15", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", + "archiveFileName": "samd-1.6.15.tar.bz2", + "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", + "size": "2795099", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.16", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", + "archiveFileName": "samd-1.6.16.tar.bz2", + "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", + "size": "2796651", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZero" }, + { "name": "Arduino MKRFox1200" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.17", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", + "archiveFileName": "samd-1.6.17.tar.bz2", + "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", + "size": "2849852", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.18", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", + "archiveFileName": "samd-1.6.18.tar.bz2", + "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", + "size": "2808624", + "boards": [ + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.19", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", + "archiveFileName": "samd-1.6.19.tar.bz2", + "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", + "size": "2844050", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.20", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.20.tar.bz2", + "archiveFileName": "samd-1.6.20.tar.bz2", + "checksum": "SHA-256:65a07751d858c7096d4ed9e842768530d41f84c30e26baa398c82e6ad92649bf", + "size": "2854887", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.22", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", + "archiveFileName": "samd-beta-1.6.22.tar.bz2", + "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", + "size": "2880064", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.6.21", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/samd-1.6.21.tar.bz2", + "archiveFileName": "samd-1.6.21.tar.bz2", + "checksum": "SHA-256:6ccd8aa87eb0a81ae8b7f34103c2e37edbeb0b358b886f6066db3688c0c5aa54", + "size": "2848675", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino6-static" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.1.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.23", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", + "archiveFileName": "samd-beta-1.6.23.tar.gz", + "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", + "size": "3634633", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.0" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.24", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", + "archiveFileName": "samd-beta-1.6.24.tar.bz2", + "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", + "size": "2885903", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd_beta", + "version": "1.6.25", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.25.tar.bz2", + "archiveFileName": "samd-beta-1.6.25.tar.bz2", + "checksum": "SHA-256:95e22b75d2ff1e3a1c9baabad205fbd48964b195390951943035bfbd88286961", + "size": "2890759", + "boards": [ + { + "name": "Arduino MKR Vidor 4000" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.1", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.1.tar.bz2", + "archiveFileName": "samd-1.8.1.tar.bz2", + "checksum": "SHA-256:a8492b777f7f719fb5270f641b6b13b91ec242f5132b325ede2649dc2bda3117", + "size": "2849370", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.2", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.2.tar.bz2", + "archiveFileName": "samd-1.8.2.tar.bz2", + "checksum": "SHA-256:af75e0d37b63df3b92ecca60285aa59bab66e0bd03bcc4092ea3a1fab3df5258", + "size": "2894202", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.3", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.3.tar.bz2", + "archiveFileName": "samd-1.8.3.tar.bz2", + "checksum": "SHA-256:ceac942d67c374e02c3f7586d17a7a4f0ef7bc022627577fd437af928cc21ad3", + "size": "2897712", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.4", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.4.tar.bz2", + "archiveFileName": "samd-1.8.4.tar.bz2", + "checksum": "SHA-256:2b32e54542211360ba6fb133e7d507dedd7a8ea8583f6fa714605a1f003acb27", + "size": "2905449", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.5", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.5.tar.bz2", + "archiveFileName": "samd-1.8.5.tar.bz2", + "checksum": "SHA-256:b518709eb7dd0ad93dfce28c44d53b7873d9d184755672635fa5053a4684354e", + "size": "2882230", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.6", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.6.tar.bz2", + "archiveFileName": "samd-1.8.6.tar.bz2", + "checksum": "SHA-256:68a4fffa6fe6aa7886aab2e69dff7d3f94c02935bbbeb42de37f692d7daf823b", + "size": "2980953", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.7", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.7.tar.bz2", + "archiveFileName": "samd-1.8.7.tar.bz2", + "checksum": "SHA-256:2e465cc08f0f5dc19a95bb10115fd8d1451a7857fd21f2a91f5605e7a8c1dc12", + "size": "3049628", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.8", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.8.tar.bz2", + "archiveFileName": "samd-1.8.8.tar.bz2", + "checksum": "SHA-256:7b93eb705cba9125d9ee52eba09b51fb5fe34520ada351508f4253abbc9f27fa", + "size": "3061568", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.9", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/samd-1.8.9.tar.bz2", + "archiveFileName": "samd-1.8.9.tar.bz2", + "checksum": "SHA-256:41c04740f7b61b561a7134a847678845e91219164f4d125951e13756f53a865b", + "size": "3059968", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.10", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.10.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.10.tar.bz2", + "checksum": "SHA-256:f925755f5f104f9b175b562cc64d9e075e93faa248119a2305029ac49ceb0c6b", + "size": "3072717", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.8.11", + "category": "Arduino", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.11.tar.bz2", + "archiveFileName": "core-ArduinoCore-samd-1.8.11.tar.bz2", + "checksum": "SHA-256:3c152827c37cc236f24a81b7142b5c82db7c308991a2544d32239501a7a6498c", + "size": "3057742", + "boards": [ + { "name": "Arduino MKR WiFi 1010" }, + { "name": "Arduino Zero" }, + { "name": "Arduino MKR1000" }, + { "name": "Arduino MKRZERO" }, + { "name": "Arduino MKR FOX 1200" }, + { "name": "Arduino MKR WAN 1300" }, + { "name": "Arduino MKR WAN 1310" }, + { "name": "Arduino MKR GSM 1400" }, + { "name": "Arduino MKR NB 1500" }, + { "name": "Arduino MKR Vidor 4000" }, + { "name": "Arduino Nano 33 IoT" }, + { "name": "Arduino M0 Pro" }, + { "name": "Arduino M0" }, + { "name": "Arduino Tian" }, + { "name": "Adafruit Circuit Playground Express" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.7.0-arduino3" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino7" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.2.0" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.2.1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.0.tar.bz2", + "checksum": "SHA-256:d70d8c98fd5ec9cc0cc05722dda344c325910cdc4c5dddfa976dc9a8f00f5f5b", + "size": "35128465", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.1", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.1.tar.bz2", + "checksum": "SHA-256:ac8d6ec83f8c42e27b4dac9d4b565779ff213dd6bcd879dad876cfdf4a492c07", + "size": "35127935", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.2", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.2.tar.bz2", + "checksum": "SHA-256:ebe30e9a2cf2d0e18a84df9cd3b1238249c5b1248e0d5238edb36180f1c33d13", + "size": "36372757", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.3", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.3.tar.bz2", + "checksum": "SHA-256:64e7ded2c068e415d862caa200f09a1f9e17c36bb0fc924869b24b205a924845", + "size": "12373194", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.4", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.4.tar.bz2", + "checksum": "SHA-256:a946b25d426d4e2430b4756e929268094f0b150566f79d6502f3f1819d86ac14", + "size": "12377522", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.5", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.5.tar.bz2", + "checksum": "SHA-256:eda6c708d32e8bac33b1ee5e5bd70f7af0feaa5d83c683da80eca1f21dc25cd7", + "size": "12760869", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.1.6", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "archiveFileName": "ArduinoCore-nRF52-mbed-1.1.6.tar.bz2", + "checksum": "SHA-256:5a05ac9cb13549472edc313403a58bcd56db0f3abeffe4072da4f2ec6ab3c795", + "size": "12760476", + "help": { + "online": "https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino9" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino1" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.0", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-1.3.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-1.3.0.tar.bz2", + "checksum": "SHA-256:f6617b34b53af37dbc2e6805097cf961f2032dbfc3750a003ba1902d7469258b", + "size": "93357731", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.1", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.1.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.1.tar.bz2", + "checksum": "SHA-256:9f659a88c1b246a69537e585e10188b8a654dc6c51797c89e42bcc9aa26cab8d", + "size": "93181681", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "1.3.2", + "deprecated": true, + "category": "Contributed", + "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-mbed-1.3.2.tar.bz2", + "archiveFileName": "core-ArduinoCore-mbed-1.3.2.tar.bz2", + "checksum": "SHA-256:689602d7380f394d092ef627138e434950bb4c8f698fbdaa7d1edd141d2ff0ea", + "size": "93257117", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Nano 33 BLE" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino13" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino2", + "name": "dfu-util" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.0.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.0.0.tar.bz2", + "checksum": "SHA-256:7d1c67a75f871382c52b7822ebedf85849be35266204cd3749087b70793c8740", + "size": "33510861", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.0.0.tar.bz2", + "checksum": "SHA-256:1264f90c3094282f09aa0f76fb7670fb79ab5abeb321bca41531a586778188c7", + "size": "5180388", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.0.0.tar.bz2", + "checksum": "SHA-256:93cf3b6b552601395a4cf8b9aed465d9aab7906f2aeebe6cf638c8a952220857", + "size": "6014638", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.0.0.tar.bz2", + "checksum": "SHA-256:d8a0fd481357febe4246a616e859e644616f03208d70dbcda11e7850b454c0cc", + "size": "27024661", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.0.0.tar.bz2", + "checksum": "SHA-256:36c5499d4bd119861828c787010c07ac31fe7b3b920d56efe30118b44838a587", + "size": "3841101", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino1" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards", + "architecture": "mbed", + "version": "2.1.0", + "deprecated": true, + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-2.1.0.tar.bz2", + "checksum": "SHA-256:6ec882fe5ea1728659f56373df2f06077d156517004b50502c836e68b9a9751a", + "size": "32179151", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + }, + { + "name": "Arduino Portenta H7" + }, + { + "name": "Arduino Edge Control" + }, + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Edge Boards", + "architecture": "mbed_edge", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-edge-2.1.0.tar.bz2", + "checksum": "SHA-256:68591a6a901916cada4164f09ccd6e8a2e04b1f4244514bc8aeca5c170972b7d", + "size": "5195498", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Edge Control" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Nano Boards", + "architecture": "mbed_nano", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-nano-2.1.0.tar.bz2", + "checksum": "SHA-256:3b7362662254a4b7e2e06d7ddd9831820e4909787a7dce02fa8e9c653740b1a8", + "size": "6086135", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Nano 33 BLE" + }, + { + "name": "Arduino Nano 33 BLE Sense" + }, + { + "name": "Arduino Nano RP2040 Connect" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino Mbed OS Portenta Boards", + "architecture": "mbed_portenta", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-portenta-2.1.0.tar.bz2", + "checksum": "SHA-256:b74105f5b4c375dcbb095343aaf6d9adda2a1922f925b7b70e84588610f8aa3c", + "size": "25622118", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Arduino Portenta H7" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + } + ] + }, + { + "name": "Arduino Mbed OS RP2040 Boards", + "architecture": "mbed_rp2040", + "version": "2.1.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "archiveFileName": "ArduinoCore-mbed-RP2040-2.1.0.tar.bz2", + "checksum": "SHA-256:f2732b910449a8ec1ff0a90e32b07276a5d082911a5c639452484ca853e05e9e", + "size": "3844940", + "help": { + "online": "https://github.com/arduino/ArduinoCore-mbed/issues" + }, + "boards": [ + { + "name": "Raspberry Pi Pico" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "openocd", + "version": "0.11.0-arduino2" + }, + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "7-2017q4" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.9.1-arduino2" + }, + { + "packager": "arduino", + "version": "0.10.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "arduino", + "version": "1.0.2", + "name": "rp2040tools" + } + ] + }, + { + "name": "Arduino NRF52 Boards", + "architecture": "nrf52", + "version": "1.0.0", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", + "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", + "size": "2438905", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.1", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", + "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", + "size": "2262233", + "boards": [ + { + "name": "Arduino Primo" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + }, + { + "name": "Arduino nRF52 Boards", + "architecture": "nrf52", + "version": "1.0.2", + "category": "Arduino", + "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", + "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", + "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", + "size": "2308695", + "boards": [ + { "name": "Arduino Primo" }, + { "name": "Arduino Primo Core" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.10.0-arduino1-static" + }, + { + "packager": "arduino", + "name": "nrf5x-cl-tools", + "version": "9.3.1" + } + ] + } + ], + "tools": [ + { + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", + "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", + "size": "44423906" + }, + { + "host": "i686-mingw32", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", + "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", + "size": "84537449" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", + "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", + "size": "52518522" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", + "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", + "size": "51395093" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", + "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", + "size": "51029223" + } + ] + }, + { + "name": "arm-none-eabi-gcc", + "version": "7-2017q4", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2", + "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b", + "size": "96613739" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", + "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", + "size": "99558726" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", + "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", + "size": "131761924" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", + "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", + "size": "104550003" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", + "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", + "size": "99857645" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", + "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", + "size": "97427309" + } + ] + }, + { + "name": "bossac", + "version": "1.3-arduino", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", + "size": "147359" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", + "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", + "size": "26179" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2", + "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", + "size": "265647" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", + "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", + "size": "39475" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino2", + "systems": [ + { + "size": "24443285", + "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27152002", + "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25876628", + "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046691", + "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino2", + "systems": [ + { + "size": "264965", + "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292541", + "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283209", + "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241618", + "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino3", + "systems": [ + { + "size": "24447175", + "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "30556996", + "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "28768022", + "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46046917", + "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino3", + "systems": [ + { + "size": "264682", + "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" + }, + { + "size": "748634", + "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "495482", + "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241619", + "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.8.1-arduino5", + "systems": [ + { + "size": "24403768", + "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "24437400", + "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27093036", + "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "25882375", + "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "46044779", + "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.0.1-arduino5", + "systems": [ + { + "size": "267095", + "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "264894", + "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" + }, + { + "size": "292629", + "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "283121", + "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "241634", + "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino", + "systems": [ + { + "size": "27046965", + "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" + }, + { + "size": "27400001", + "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "29904544", + "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "29077606", + "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "43847566", + "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.3-arduino2", + "systems": [ + { + "size": "27400889", + "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "27048070", + "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "43847945", + "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" + }, + { + "size": "29292729", + "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "29882960", + "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "4.9.2-atmel3.5.4-arduino2", + "systems": [ + { + "size": "27764772", + "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "28574644", + "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "44386446", + "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" + }, + { + "size": "29723974", + "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "30374404", + "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "5.4.0-atmel3.6.1-arduino2", + "systems": [ + { + "size": "31449123", + "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "33141295", + "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "31894498", + "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", + "host": "i386-apple-darwin11", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "45923772", + "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" + }, + { + "size": "33022916", + "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "33522375", + "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5", + "systems": [ + { + "size": "34462042", + "checksum": "SHA-256:f4acd5531c6b82c715e2edfa0aadb13fb718b4095b3ea1aa1f7fbde680069639", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "39381972", + "checksum": "SHA-256:dd9c70190be370a44fb47dab1514de6d8852b861dfa527964b65c740d8d50c10", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "38492678", + "checksum": "SHA-256:f48706317f04452544ab90e75bd1bb193f8af2cb1002f53aa702f27202c1b38f", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "53727984", + "checksum": "SHA-256:6d4a5d089a36e5b5252befc73da204555b49e376ce7577ee19ca7f028b295830", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-w64-mingw32.zip" + }, + { + "size": "38710087", + "checksum": "SHA-256:2ff12739d7ed09688d6b3c2c126e8df69b5bda1a07ab558799f0e576571e0e1d", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "39114120", + "checksum": "SHA-256:3effed8ffa1978b6e4a46f1aa2acc629e440b4d77244f71f9b79a916025206fb", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino7", + "systems": [ + { + "size": "34683056", + "checksum": "SHA-256:3903553d035da59e33cff9941b857c3cb379cb0638105dfdf69c97f0acc8e7b5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "38045723", + "checksum": "SHA-256:03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", + "host": "aarch64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "36684546", + "checksum": "SHA-256:f6ed2346953fcf88df223469088633eb86de997fa27ece117fd1ef170d69c1f8", + "host": "x86_64-apple-darwin14", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-apple-darwin14.tar.bz2" + }, + { + "size": "52519412", + "checksum": "SHA-256:a54f64755fff4cb792a1495e5defdd789902a2a3503982e81b898299cf39800e", + "host": "i686-mingw32", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-w64-mingw32.zip" + }, + { + "size": "37176991", + "checksum": "SHA-256:954bbffb33545bcdcd473af993da2980bf32e8461ff55a18e0eebc7b2ef69a4c", + "host": "i686-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "37630618", + "checksum": "SHA-256:bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino2", + "systems": [ + { + "size": "643484", + "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "653968", + "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" + }, + { + "size": "745081", + "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "731802", + "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "608496", + "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino6", + "systems": [ + { + "size": "644600", + "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "696273", + "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" + }, + { + "size": "746653", + "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "733127", + "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645859", + "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino8", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697268", + "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711544", + "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701718", + "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645996", + "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino9", + "systems": [ + { + "size": "644550", + "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "697309", + "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" + }, + { + "size": "711229", + "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "701590", + "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "645974", + "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino14", + "systems": [ + { + "size": "219616", + "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229688", + "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "256917", + "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", + "host": "i386-apple-darwin11", + "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" + }, + { + "size": "253366", + "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244293", + "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328363", + "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino16", + "systems": [ + { + "size": "219642", + "checksum": "SHA-256:6fc443445440f0e2d95d70013ed075bceffc2a1babc1e7d4f1ae69c3fe268c57", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229997", + "checksum": "SHA-256:7a2726ab2fd18b910abc3d9dd33c4b40d18c34cf12c46f3367932e7fd87c0197", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279172", + "checksum": "SHA-256:f93dc12a4b30a335ab24b3c628e6cad0ebf2f8adfb7ef50f87c0fc17165b2156", + "host": "x86_64-apple-darwin15", + "archiveFileName": "avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i386-apple-darwin11.tar.bz2" + }, + { + "size": "254085", + "checksum": "SHA-256:57856d6e388d333d924afa3e2d5525161dbe0dc670e7caae2720e249606175a7", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244393", + "checksum": "SHA-256:bdf73358991243a9a8de11a42c80c4ec4b14c82f2222cb0c3c181f62656c41fb", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328456", + "checksum": "SHA-256:781c16a8bf813fa68fc0f47d427279053c9e098c3aed7165449ac4f0137304dd", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino16-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino16-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "avrdude", + "version": "6.3.0-arduino18", + "systems": [ + { + "size": "220677", + "checksum": "SHA-256:2e25c9e99c255d595a1072679a88ecddfa12c223b18510760bb867039f35efa5", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "231047", + "checksum": "SHA-256:4f88bb50d2235182ed7aa9e0a1d08e4bb956378ac9569b8e1141e37ed314fb2d", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "280072", + "checksum": "SHA-256:df1dfd18e2e287c47232605cd4fa41751eb70df8c300aeb7a00a3a09b524a1b8", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254460", + "checksum": "SHA-256:1ae46972b276b8a54c459f87c4ff326abdad0be2b1a293d73bf86e47765eddc3", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "329515", + "checksum": "SHA-256:0781f4183e91a9783c2330035520144ab76b8f75c0a9f7a25877c063bc984c4d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino18-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino18-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.0.0", + "systems": [ + { + "size": "2044124", + "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" + }, + { + "size": "2178772", + "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" + }, + { + "size": "1961623", + "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" + }, + { + "size": "2180617", + "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" + }, + { + "size": "2247970", + "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.0.0-windows.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.1.1", + "systems": [ + { + "size": "2045036", + "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" + }, + { + "size": "2178288", + "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" + }, + { + "size": "1962115", + "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" + }, + { + "size": "2181376", + "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" + }, + { + "size": "2248431", + "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.0", + "systems": [ + { + "size": "1839854", + "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" + }, + { + "size": "1974030", + "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" + }, + { + "size": "1787138", + "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" + }, + { + "size": "1992476", + "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" + }, + { + "size": "2003964", + "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.2.1", + "systems": [ + { + "size": "2133779", + "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" + }, + { + "size": "2257689", + "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2093132", + "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" + }, + { + "size": "2244088", + "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" + }, + { + "size": "2237511", + "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" + } + ] + }, + { + "name": "arduinoOTA", + "version": "1.3.0", + "systems": [ + { + "size": "2633516", + "checksum": "SHA-256:3e7f59d6fbc7a724598303f0d3289d0c4fd137a8973437980658379a024887b2", + "host": "i686-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_386.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2" + }, + { + "size": "2716248", + "checksum": "SHA-256:aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2" + }, + { + "size": "2567435", + "checksum": "SHA-256:1888587409b56aef4ba0ab0e6703b3dccba7cc3a022756ba9b908247e5d5a656", + "host": "arm-linux-gnueabihf", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2" + }, + { + "size": "2472427", + "checksum": "SHA-256:835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", + "host": "aarch64-linux-gnu", + "archiveFileName": "arduinoOTA-1.3.0-linux_arm64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm64.tar.bz2" + }, + { + "size": "2766116", + "checksum": "SHA-256:d5d0f82ff829c0e434d12a2ee640a6fbd78f893ab37782edbb8b5bf2359d119e", + "host": "i386-apple-darwin11", + "archiveFileName": "arduinoOTA-1.3.0-darwin_amd64.tar.bz2", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64.tar.bz2" + }, + { + "size": "2768948", + "checksum": "SHA-256:051943844eee442460d2c709edefadca184287fffd2b6c100dd53aa742aa05f6", + "host": "i686-mingw32", + "archiveFileName": "arduinoOTA-1.3.0-windows_386.zip", + "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-windows_386.zip" + } + ] + }, + { + "name": "bossac", + "version": "1.5-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", + "size": "199550" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", + "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", + "size": "222283" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", + "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", + "size": "64120" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", + "size": "30431" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", + "size": "29783" + } + ] + }, + { + "name": "bossac", + "version": "1.6-arduino", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz", + "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", + "size": "222517" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", + "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", + "size": "64538" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", + "size": "30649" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", + "size": "30072" + } + ] + }, + { + "name": "bossac", + "version": "1.6.1-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-mingw32.tar.gz", + "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", + "size": "243066" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", + "size": "63822" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", + "size": "31373" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", + "size": "31086" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", + "size": "27382" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0-arduino3", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "name": "bossac", + "version": "1.8.0-48-gb176eee", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", + "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", + "size": "91219" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", + "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", + "size": "39150" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", + "size": "37798" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", + "size": "37374" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", + "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", + "size": "34825" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino1", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-windows.tar.gz", + "checksum": "SHA-256:fe2d6ef78ca711c78e104e258357ed06b09e95e9356dc72d8d2c9f6670af4b7a", + "size": "1260118" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-osx.tar.gz", + "checksum": "SHA-256:c356632f98d5bae9b4f5d3ad823a5ee89b23078c2b835e8ac39a208f4855b0e6", + "size": "47835" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux64.tar.gz", + "checksum": "SHA-256:d3d324a3503a8db825c01f3b38519e4d4824c4d0e42cb399a16c1e074f9a9a86", + "size": "399453" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linux32.tar.gz", + "checksum": "SHA-256:eec622b8b5a8642af94ec23febfe14c928edd734f144db73b146bf6708d2057f", + "size": "384792" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxarm.tar.gz", + "checksum": "SHA-256:b42061d2fa2dbd6910d0d295e024f2cff7bb44f3e2ecc0bc2fe71a1f31b0ecba", + "size": "361799" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino1-linuxaarch64.tar.gz", + "checksum": "SHA-256:b271013841e1e25ee55f241e8c50a56ed775d3b322844e1e3099231ba17f3868", + "size": "442657" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", + "size": "1402283" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", + "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", + "size": "2360705" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", + "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", + "size": "2275101" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", + "size": "1210796" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", + "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", + "size": "1129654" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino5-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", + "size": "1319000" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", + "size": "1641209" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", + "size": "1235752" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", + "size": "1393855" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", + "size": "1341739" + } + ] + }, + { + "name": "openocd", + "version": "0.9.0-arduino6-static", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", + "size": "1319020" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", + "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", + "size": "1641514" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", + "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", + "size": "1222523" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", + "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", + "size": "1394293" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", + "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", + "size": "1340444" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino7", + "systems": [ + { + "size": "1638575", + "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1580739", + "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1498970", + "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1701581", + "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1626347", + "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2016965", + "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino8", + "systems": [ + { + "size": "1714346", + "checksum": "SHA-256:86c4ea3086b4a1475fd8a1e1daf4585748be093dad4160e816b1bf2502501fb2", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1778371", + "checksum": "SHA-256:500cb112ee92092bbfce69649b90d0284752c5766f5aaf5c24dc754100788ef9", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1653652", + "checksum": "SHA-256:584b513ebbc4a645a68234d964ba56f042aaf7668d84ba47398a07a294516cc4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1845547", + "checksum": "SHA-256:455d4123146bf6b4b095de86d3340fd01e39bba9c70b2f0bb8e979ac4dddac39", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "1781892", + "checksum": "SHA-256:5b44889984daefa966b8251edb98445169107ca32f974ca598d4c59e7d2c8901", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190397", + "checksum": "SHA-256:35a92f32f2762ef9405d2c684ec7bea2e70c01068f380251aecd9290f5bd5b24", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino8-static-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino9", + "systems": [ + { + "size": "1714657", + "checksum": "SHA-256:b814b16b52cef21eacf456cc7a89d7b5d4cb1385bfb8fb82963b7d8151824d93", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1778177", + "checksum": "SHA-256:f0443e771f5e3a779949498d3c9bfffd1dd27cdf0ad7136a2db5e80447a7175a", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1782958", + "checksum": "SHA-256:a22872918df899cb808f9286141d42438ae5611156c143cfb692069f52a2bddd", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2190484", + "checksum": "SHA-256:f53f9a2b7f48a2ebc00ea9196bf559d15987d3779bcea4118ebec8925da5a1f6", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-i686-w64-mingw32.zip" + }, + { + "size": "1655311", + "checksum": "SHA-256:6d47f97919f317bb6e5f1f903127604271d66d149f4625f29b8e0eb5f6c94c64", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1844365", + "checksum": "SHA-256:f624552b5ba56aa78d0c1a0e5d18cf2b5694db2ed44080968e22aa1af8f23c1b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino9-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino12", + "systems": [ + { + "size": "1778706", + "checksum": "SHA-256:86e15186a44b87c00f5ddd9c05849d2ec107783dd18a5ac984ce2a71e34084ed", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1855234", + "checksum": "SHA-256:5c6ca6189f61894ee77b29bc342f96cd14e4d7627fabeb2a8d2e2c534316cc38", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1844359", + "checksum": "SHA-256:4938742d3fec62941187666b8ded44d8f6c7a404920ff49d97fca484b9fd08af", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2276602", + "checksum": "SHA-256:1e23c0f1f809725db3e1f8d1e1f460a37fb7b2cf95e93c6e328e527501ab084c", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-i686-w64-mingw32.zip" + }, + { + "size": "1723600", + "checksum": "SHA-256:b40d135449401870302bec073326d6f1df79da38d9dd21326314a5a90189a06e", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1918845", + "checksum": "SHA-256:bc48be10916f69f3a4b050f04babc14ee99dad1fc5da55ce606077991edab1d0", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino12-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino13", + "systems": [ + { + "size": "1820630", + "checksum": "SHA-256:47ae7a1a7961ac9daef001b011505b38777baac3c02dd7e673f62601df841427", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1896478", + "checksum": "SHA-256:4dd38b701019ad2fbb58173a3bc6c58effd39501a4a8266256dfe169e7516655", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1883854", + "checksum": "SHA-256:788093504b25d2b9b772657215254ba178ed37773364ce240de68281efe40bd5", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2334654", + "checksum": "SHA-256:2f3b87c644569f47780b16b071cd0929a64a8899ec769f4ca7480d20d5503365", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-i686-w64-mingw32.zip" + }, + { + "size": "1767137", + "checksum": "SHA-256:0f3f6e5e03355ffbbc84c4b4750e63c9315b7638c56d63df1b7795968208e6ba", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "1955043", + "checksum": "SHA-256:e4b2ffbc9a29be21c32c6921c2e7c0ee39c664c4faca28a5f839c1df32d3bd24", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino13-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino1", + "systems": [ + { + "size": "1882308", + "checksum": "SHA-256:f4bc15523a9777a61befb67ee46b0c567572029cf2dbb8bc092d1175f188a62b", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1967523", + "checksum": "SHA-256:c56e88b34c82748b015c9e11f62c1d6aa98da00c2642f0027b1a5781085c56f9", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1948258", + "checksum": "SHA-256:dbee4de8e838996067444fa1c775bc64418af5660f96d9a9e92a95e85c762d16", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2443521", + "checksum": "SHA-256:13455c55bb089bd0b4005fd77d8522c691b60a4a40bc101afe817db6f1d05695", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-i686-w64-mingw32.zip" + }, + { + "size": "1865080", + "checksum": "SHA-256:c9ab5f32038551318434feb8ffba5cf2932b8956443c284997431eb784eacaee", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2023084", + "checksum": "SHA-256:beb45bb95e43d2d592ee62342e6fdfbb15b87c20c96177b8f6bbc2a57cddbeb1", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino1-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino2", + "systems": [ + { + "size": "1902818", + "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1986716", + "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1971364", + "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2460087", + "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" + }, + { + "size": "1893150", + "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2052080", + "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "CMSIS", + "version": "4.0.0-atmel", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", + "archiveFileName": "CMSIS-4.0.0.tar.bz2", + "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", + "size": "17642623" + } + ] + }, + { + "name": "CMSIS", + "version": "4.5.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", + "archiveFileName": "CMSIS-4.5.0.tar.bz2", + "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", + "size": "31525196" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.0.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", + "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", + "size": "1281654" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.1.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + }, + { + "host": "all", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", + "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", + "size": "1659108" + } + ] + }, + { + "name": "CMSIS-Atmel", + "version": "1.2.0", + "systems": + [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + }, + { + "host": "all", + "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", + "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", + "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", + "size": "2221805" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2", + "size": "68361", + "checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2", + "size": "194826", + "checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2", + "size": "66230", + "checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2", + "size": "62608", + "checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2", + "size": "377537", + "checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e" + } + ] + }, + { + "name": "dfu-util", + "version": "0.9.0-arduino2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-osx.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-osx.tar.bz2", + "size": "65137", + "checksum": "SHA-256:00e87178b81d5721f334d4b688267f19f36eed1d9710a912c9e44bb1a748f766" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-arm.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-arm.tar.bz2", + "size": "198568", + "checksum": "SHA-256:b364a8fe1de697d7dd6c4135d341ddff6dbda7e33c707321c7dceab85dfc560b" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux64.tar.bz2", + "size": "70996", + "checksum": "SHA-256:628e01772007e622dff6af82220c27bcdf1d0726ba886bd2b36807601f66e4e8" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-linux32.tar.bz2", + "size": "71002", + "checksum": "SHA-256:7a6cec3d89c65119c52b6109cd92a9ec84bdf8a9d12083444d2c89e7ac16c84b" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino2-windows.tar.bz2", + "archiveFileName": "dfu-util-0.9.0-arduino2-windows.tar.bz2", + "size": "394993", + "checksum": "SHA-256:8ec0e66acdc41941b6e25545f8c12e7eb7ba01a0bafae0b4ab4c99a70deb2ea5" + } + ] + }, + { + "name": "dfu-util", + "version": "0.10.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", + "size": "73921", + "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", + "size": "272153", + "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "size": "277886", + "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "size": "77184", + "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "size": "81826", + "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", + "size": "464314", + "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" + } + ] + }, + { + "name": "rp2040tools", + "version": "1.0.2", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-darwin_amd64.tar.bz2", + "size": "1665895", + "checksum": "SHA-256:039e0ddb7a407c5c20c3ef6def8d7cc2abdc7a4fc6dcb039abb3b41c4791f69f" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm.tar.bz2", + "size": "5438204", + "checksum": "SHA-256:8981155a50bac8c7e3621f22b8e9c87f7d6aace4e28dddb03f41d704301da94d" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_arm64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_arm64.tar.bz2", + "size": "5650185", + "checksum": "SHA-256:4f102352d702fc89757c119cd46c231b998f9900956183b0f7874994dc3965d5" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_amd64.tar.bz2", + "size": "4180308", + "checksum": "SHA-256:f6faafdfdf3cb780b884fe7d092679963e95f88ea78a9ed38312c511045d15c7" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-linux_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-linux_386.tar.bz2", + "size": "4423488", + "checksum": "SHA-256:9af1aaf46402ab27d60a6b5d28da5ab8807f3099d78ee6e681bf7a36911ee690" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.2-windows_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.2-windows_386.tar.bz2", + "size": "2493234", + "checksum": "SHA-256:8aa684c431b1194d9af4958b116a0a96e4ebf6c90764f9f3420db0515dc6e2c7" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.6.9", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip", + "archiveFileName": "drivers-arduino-windows-1.6.9.zip", + "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", + "size": "7071714" + } + ] + }, + { + "name": "windows-drivers", + "version": "1.8.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip", + "archiveFileName": "drivers-arduino-windows-1.8.0.zip", + "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", + "size": "16302148" + } + ] + }, + { + "name": "dfu-util", + "version": "0.8.0-stm32-arduino1", + "systems": [ + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", + "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", + "host": "i386-apple-darwin11", + "size": "68381", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2", + "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", + "host": "arm-linux-gnueabihf", + "size": "213760", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2", + "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", + "host": "x86_64-linux-gnu", + "size": "68575", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2", + "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", + "host": "i686-linux-gnu", + "size": "69097", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2" + }, + { + "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2", + "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", + "host": "i686-mingw32", + "size": "159753", + "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" + } + ] + }, + { + "name": "arduinoSTM32load", + "version": "2.0.0", + "systems": [ + { + "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", + "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", + "host": "i386-apple-darwin11", + "size": "807514", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", + "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", + "host": "arm-linux-gnueabihf", + "size": "809480", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", + "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", + "host": "x86_64-linux-gnu", + "size": "818885", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", + "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", + "host": "i686-linux-gnu", + "size": "814283", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" + }, + { + "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", + "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", + "host": "i686-mingw32", + "size": "786335", + "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" + } + ] + }, + { + "name": "openocd", + "version": "0.10.0-arduino1-static", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz", + "size": "1529841", + "checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", + "size": "1777984", + "checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", + "size": "1713236", + "checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip", + "archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip", + "size": "1773642", + "checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz", + "size": "1526863", + "checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux32.tar.bz2", + "checksum": "SHA-256:8c4e562a8e6fa3d916c4bf6bb24d7eec0df013d8cc45dff187e5c63086a92c11", + "size": "7334059" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linux64.tar.bz2", + "checksum": "SHA-256:0e9132518acfe66e5a4e17ba4b6dd0c89dbd90cc0d9b4a54e007ac24d51fd36a", + "size": "7383853" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.6-windows.zip", + "checksum": "SHA-256:33a92661f43b8d025ca5f57be1116537ed153703067d9c86297619d58988feff", + "size": "7580663" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-osx.tar.bz2", + "checksum": "SHA-256:3584d7581ff2469bdfde9de6f57d87b2a0370de5c902e9df687b7322a5405018", + "size": "7368819" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm.tar.bz2", + "checksum": "SHA-256:276f027e552eb620064b09591c7a7c79927c93c017428436c81f71bad666803c", + "size": "7180391" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.6-linuxarm64.tar.bz2", + "checksum": "SHA-256:d6a2e72b4869c031b434380da6e6a8a4a6269f8ee6312a3d23e85ea133a37ae9", + "size": "7149332" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux32.tar.bz2", + "checksum": "SHA-256:05e26d5df253246cf68ba8a8f5f2de1032ac6f4d7af5310b8080ef6f54030fb4", + "size": "13077590" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linux64.tar.bz2", + "checksum": "SHA-256:e8a36b7ae19060748b8b0540c9c0c9341d8d4c7a630441922a030223f767258d", + "size": "13134534" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-windows.zip", + "archiveFileName": "FirmwareUpdater-0.0.7-windows.zip", + "checksum": "SHA-256:e881dd8a4bbb35f7271157e8dd226c2e032ac1115106170b0aaf9c969817df86", + "size": "13337495" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-osx.tar.bz2", + "checksum": "SHA-256:647ad713d68a1531ba56c88e5b3db9516cc0072ca1d401de5142d85ffcfd931a", + "size": "13064291" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm.tar.bz2", + "checksum": "SHA-256:b6e09c07e816a35935585db07e07437023d44e66d1d2f05861708ea6ceff7629", + "size": "12929770" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.7-linuxarm64.tar.bz2", + "checksum": "SHA-256:620f81148b13f70cdecbe59bbcbf605c7e0aae85f9cbee8ec48202f6018f23ce", + "size": "12897349" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.8", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux32.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux32.tar.bz2", + "checksum": "SHA-256:e1f43aa225e6e2ad1f2bccc07898ddb439e980905385a8d7e0615f804a69eee8", + "size": "20137214" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linux64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linux64.tar.bz2", + "checksum": "SHA-256:423f67767d5b861a3c39ca6f6a18b2358a30b76bdc3d3d3d870e102b2b2271a8", + "size": "20167410" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_64bit.zip", + "checksum": "SHA-256:c3386fdc440638186541f92f920462865308e0f5dde9f45e4dd1c35d2570b808", + "size": "13645709" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUpdater_0.0.8_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.8_Windows_32bit.zip", + "checksum": "SHA-256:dc3ce2e824b2f8ab6ee4c7d2f836311450d60825db95cbb51eeb076a28a1e2af", + "size": "13578670" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-osx.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-osx.tar.bz2", + "checksum": "SHA-256:635cbe786cd11ead26e5af0662991d8c3b647469f1874195eeb7f1dba5530b39", + "size": "20091397" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm.tar.bz2", + "checksum": "SHA-256:c027389528e9b04d622167943fe04badbd2f63923f08cc1b22935e5158b2545b", + "size": "19984154" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "archiveFileName": "FirmwareUpdater-0.0.8-linuxarm64.tar.bz2", + "checksum": "SHA-256:b6846bb84034e6a8486ce3165dabeb9b32b4fd3804639cd6137a37a00d0157c8", + "size": "19952489" + } + ] + }, + { + "name": "fwupdater", + "version": "0.0.9", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_32bit.tar.bz2", + "checksum": "SHA-256:a45c536be798e6fc023044ee13911b9b567fb9d0b1c41c5cc9b722346f306425", + "size": "13221786" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_64bit.tar.bz2", + "checksum": "SHA-256:89d08d4b75dae676bc6e982723f3b07ee5ab4c2fe6071fc97fe850697a0c5398", + "size": "13255356" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_32bit.zip", + "checksum": "SHA-256:523b2f09a38ef36dcd96558a31e072c5b244e511690326a03af9406eccda2650", + "size": "13589082" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.0.9_Windows_64bit.zip", + "checksum": "SHA-256:51eacfcaba9279ef42050d15cf86d98e79511879a84a8e960a8994f6343f74a8", + "size": "13658133" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_macOS_64bit.tar.bz2", + "checksum": "SHA-256:26c0b8764a67f945037a461ead756bee0b453e383dee741548d03322327bd17d", + "size": "13202065" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM.tar.bz2", + "checksum": "SHA-256:3cde04fa96479bb5342f07752b9cbabdf159f1dcbe7074b642a163ff2a363a28", + "size": "13063437" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.0.9_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:3a41fac33917c4b5d8f5e0720afa780b2250b2561dd6090ed5338d7ab147524f", + "size": "13014703" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.1", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22bd6410b39043b0608285a51fbad7abcef0b8361f54936b362935a9bbddeeba", + "size": "13221805" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_64bit.tar.bz2", + "checksum": "SHA-256:ba4b1b620796e352da2821bb1101cd86340649badf67abf7e7d030efee107159", + "size": "13255213" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_32bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_32bit.zip", + "checksum": "SHA-256:29ecdd651336eca9fbddde96415087e2f19a2d7330e1938e256d7acf31a0ff74", + "size": "13589219" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Windows_64bit.zip", + "archiveFileName": "FirmwareUpdater_0.1.1_Windows_64bit.zip", + "checksum": "SHA-256:a2ff1b6672e56c97aa4eccfa4258b0d91a726d0116f51227e6cc2c5c984afb5d", + "size": "13657363" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_macOS_64bit.tar.bz2", + "checksum": "SHA-256:8c7602dee33e6806eefc0525a9f43512c4d89201869e677ad8d34f7e82276e38", + "size": "13201438" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM.tar.bz2", + "checksum": "SHA-256:65ddc38d9cfa555979bf9c7a371f887561b7d7af6a07a6adfb354628a8e69801", + "size": "13062843" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUpdater_0.1.1_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:0be6adb21791fb64134356b2ef56c9054e19fb7522e368cad9ee5c1222835e13", + "size": "13014398" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_32bit.tar.bz2", + "checksum": "SHA-256:973ce3cd2d604f8750c9b62dabccdf8689013f0380d62eee29f8d6427dd37e8e", + "size": "13222221" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_64bit.tar.bz2", + "checksum": "SHA-256:9303c50f051b459ba89a4b218bcb39c3348f469c55feb2c63ac53f7f12eb5048", + "size": "13255805" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_32bit.zip", + "checksum": "SHA-256:e3986ae565b658a4bcaf50c0592c5801166ade30255571154ad5729f9b8649eb", + "size": "13589237" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.2_Windows_64bit.zip", + "checksum": "SHA-256:a3094a4c9589812e2c9751ce324315de9011481575c53a772b3c4950cb0310d0", + "size": "13657381" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_macOS_64bit.tar.bz2", + "checksum": "SHA-256:01f952aa365ddbf2072e3181f95f1b0a82d9c85bd1707a4b913e7500f833ff5f", + "size": "13201523" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM.tar.bz2", + "checksum": "SHA-256:824dec1d62c1a8b835e2692991b017ce21cd0c95287c9282ff9621620157b3d6", + "size": "13063327" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.2_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:057243d5ee65b14772035a2402ac48cefb208e59102f75928b4004530227cd47", + "size": "13015184" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.3", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_32bit.tar.bz2", + "checksum": "SHA-256:22f72fee3a1682c30b0bf4579a1ecc2759a5063c2be9342dd3c46858db43d7ef", + "size": "15794726" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_64bit.tar.bz2", + "checksum": "SHA-256:1f998f8f5d9ef9487beb00d2f434682cbcdc4b13337fd82271df8ad931121324", + "size": "15927812" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_32bit.zip", + "checksum": "SHA-256:d23dd1ef5ea19b46633980b47964834d0718d11b375c64725b28d4e39660ff3c", + "size": "16139436" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.3_Windows_64bit.zip", + "checksum": "SHA-256:fd6eb93b2737ae3a49800d4f42abd7fa925e985b043d3a418412f26dc61b3baa", + "size": "16189555" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_macOS_64bit.tar.bz2", + "checksum": "SHA-256:ba53f679baca0f5ab6bbd4991da89702437932d67ae6c589c4da6ced3a4dc66b", + "size": "15832036" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM.tar.bz2", + "checksum": "SHA-256:91a85be7d657b4f31f69aba7e1a0390234d4ede5d138474b3eef928119a21df4", + "size": "15734716" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.3_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:7b2ebd25998c441b4a4da1cc5bf227285f0fd321b2107497d29910213d8ad039", + "size": "15557114" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.4", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_32bit.tar.bz2", + "checksum": "SHA-256:794192e4463191308687ca10d361f6e86d06b57384800ead82ff9f1c32e3462b", + "size": "17369582" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e7e5a7f3c3f1c363a4e1e3cce3bbd48faa806da9153ade19336c68adcbc80464", + "size": "17346963" + }, + { + "host": "i686-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_32bit.zip", + "checksum": "SHA-256:8bc96ea4a8e8232b7798feda9bd5e2e745c14ba7584b936a6588dcd44e69bcca", + "size": "16792636" + }, + { + "host": "x86_64-mingw32", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.4_Windows_64bit.zip", + "checksum": "SHA-256:29b753610b9b285a31471fe35fa7938f54d461b773f3fcf4e5bff27ca72c20e8", + "size": "16940370" + }, + { + "host": "i386-apple-darwin11", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_macOS_64bit.tar.bz2", + "checksum": "SHA-256:f4c5542c209e5b7f09b020c9714889d846e8e6a96d1e2ab6e22cdae8d3ad8ef4", + "size": "16913255" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM.tar.bz2", + "checksum": "SHA-256:93503377d29a84f63433a608f3a2320ef27ca7f4b54a5cef6857ad16aa464842", + "size": "16992130" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://downloads.arduino.cc/tools/FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.4_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:d68ddc8c78902f164f701d974d2b0deffdbe3a58bd4d62f0d2e10263c2292c0b", + "size": "17042502" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.5", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_32bit.tar.bz2", + "checksum": "SHA-256:32cf24ae74d0b11ae5d41cf0b7d99a30ed5120a54ca06bfa9f5d7f02b03ad7f7", + "size": "16099680" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e619e67e5296c0e1a76bfb32b646972340083578ab216e1d298a2d3e9ddfe04c", + "size": "16077879" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_32bit.zip", + "checksum": "SHA-256:ed08415371b126bf28fdefedc7527f5679ae822e23392a918f687ffa6614a299", + "size": "15392456" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.5_Windows_64bit.zip", + "checksum": "SHA-256:193bde05298c7cde87b0b212eec2e104650cf44a7fe9dec44df6fde2299686e8", + "size": "15620440" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_macOS_64bit.tar.bz2", + "checksum": "SHA-256:256f884a295a7b49f08124549ca25bd16e5ff46c0f50ea73e163363b40ec2c60", + "size": "15449203" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM.tar.bz2", + "checksum": "SHA-256:6cbecb92ef0a8014aef3b8692cf64869d13c2fc0483332695ef42fef39c0b989", + "size": "15573837" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.5_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:e09d3880d9fd51b5257c44c6304e12422523dfdc1c378a978e9596caadac6a89", + "size": "15621405" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.6", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_32bit.tar.bz2", + "checksum": "SHA-256:67b413dd15afca65d327e45329b1c2e64614126ef1fae27a1323155bbdc74c20", + "size": "17458014" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_64bit.tar.bz2", + "checksum": "SHA-256:e299bea991778a388e611c3e9a4b1f5a7d5cf1b121465f7a843570602d0b6f39", + "size": "17433263" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_32bit.zip", + "checksum": "SHA-256:4be9f5208841150ffc0148feccd819d77c7fbb477f41597fc3198f633a09a8ac", + "size": "16950481" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.6_Windows_64bit.zip", + "checksum": "SHA-256:2490cdceb24b17d8269d8c144172c02c37a81c2275ed395973d22f0017d53713", + "size": "17079617" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2d4af33020a0291e54197b133de8f278a8d68c0272e0bc93953941fd06508694", + "size": "17000606" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM.tar.bz2", + "checksum": "SHA-256:1b392a5ec7d4b7f8fd052e0e249f85538fbcce790bc5a442980ce6be215b5872", + "size": "17147561" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.6_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:538a24a8f7c6831477d39ae166695ed411eb29a6d5aec3b2bc69bc1ef7b4d7b1", + "size": "17186826" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.7", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_32bit.tar.bz2", + "checksum": "SHA-256:5c2a04c6f84bca68a77f884d905de67970035a652d4113e2772effa03f151ac9", + "size": "20037466" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_64bit.tar.bz2", + "checksum": "SHA-256:95cf13032c1a83a175ed6b87f2e6f3f33a5a5c656e98ab7caadbc07d29f6eed0", + "size": "20013555" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_32bit.zip", + "checksum": "SHA-256:28377ebe89d22a2a8246865aba93d215ed1f0c99cdbff9ae4f0149dec5bee20a", + "size": "19504654" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.7_Windows_64bit.zip", + "checksum": "SHA-256:47e93e135cc074305e03b7b156d8a5788611063ed28e0b8d98bc84d94ab69f27", + "size": "19693655" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_macOS_64bit.tar.bz2", + "checksum": "SHA-256:2255013a1065a13ff3980678888b56aecce38d236944f53a64aae6889aa567ec", + "size": "19556591" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM.tar.bz2", + "checksum": "SHA-256:0f83ed1cfa04adc35dd828b17b96903c075b8c71116d2c41f3db29d20e838b46", + "size": "19698330" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.7_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:235f5e157cbe31f647bd8092f6e1146c796641e1fc0ae366222228636c62f2db", + "size": "19736165" + } + ] + }, + { + "name": "nrf5x-cl-tools", + "version": "9.3.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", + "size": "341674", + "checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", + "size": "167414", + "checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", + "size": "155680", + "checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", + "size": "812257", + "checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00" + } + ] + } + ] + }, + { + "email": "support@intel.com", + "maintainer": "Intel", + "websiteURL": "http://maker.intel.com/", + "name": "Intel", + "platforms": [ + { + "name": "Intel i586 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", + "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", + "size": "272961", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.2+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.2.tar.gz", + "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", + "size": "271420", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i586 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i586", + "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", + "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", + "size": "273392", + "boards": [ + { + "name": "Galileo" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel i686 Boards", + "version": "1.6.7+1.0", + "category": "Arduino Certified", + "architecture": "i686", + "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", + "archiveFileName": "corelibs-edison-1.6.7.tar.gz", + "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", + "size": "272002", + "boards": [ + { + "name": "Edison" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0" + }, + { + "packager": "Intel", + "name": "sketchUploader", + "version": "1.6.2+1.0" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.4", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", + "archiveFileName": "arduino101-1.0.4.zip", + "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", + "size": "806100", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.14", + "name": "sketchUploader" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.5", + "category": "Arduino Certified", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", + "archiveFileName": "arduino101-1.0.5.zip", + "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", + "size": "776592", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.4+1.0", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.4+1.18", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.6", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.6.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", + "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", + "size": "672314", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.24", + "name": "arduino101load" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "1.0.7", + "category": "Arduino Certified", + "archiveFileName": "arduino101-1.0.7.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", + "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", + "size": "729297", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "1.6.9+1.28", + "name": "arduino101load" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "1.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.2", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.2.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", + "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", + "size": "6242776", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.4", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.4.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.3.zip", + "checksum": "SHA-256:466027da55175ba69115bc5aa859e10d1432cd6b6abfccc10a2687eff35ca906", + "size": "6243652", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + }, + { + "name": "Intel Curie Boards", + "version": "2.0.5", + "category": "Arduino Certified", + "archiveFileName": "corelibs-arduino101-2.0.5.zip", + "architecture": "arc32", + "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.5.zip", + "checksum": "SHA-256:afc71056b6df11d69bb8c8204cb28e65ad557b611a42a180de682c520c7311f9", + "size": "6247928", + "boards": [ + { + "name": "Arduino 101" + } + ], + "toolsDependencies": [ + { + "packager": "Intel", + "version": "2.0.1", + "name": "arduino101load" + }, + { + "packager": "arduino", + "version": "0.9.0-arduino1", + "name": "dfu-util" + }, + { + "packager": "Intel", + "version": "1.6.9+1.0.1", + "name": "arc-elf32" + }, + { + "packager": "Intel", + "version": "0.9.0+0.1", + "name": "openocd" + }, + { + "packager": "Intel", + "version": "2.0.0", + "name": "flashpack" + } + ] + } + ], + "tools": [ + { + "name": "i586-poky-linux-uclibc", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "30587705", + "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", + "host": "i386-apple-darwin11", + "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "45948648", + "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", + "host": "i686-mingw32", + "archiveFileName": "galileo-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "56227185", + "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", + "host": "x86_64-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "55098166", + "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", + "host": "i686-linux-gnu", + "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "core2-32-poky-linux", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "42720934", + "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", + "host": "i386-apple-darwin11", + "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" + }, + { + "size": "56683094", + "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", + "host": "i686-mingw32", + "archiveFileName": "edison-toolchain-20150323-windows.zip", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" + }, + { + "size": "78998436", + "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", + "host": "x86_64-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" + }, + { + "size": "76488215", + "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", + "host": "i686-linux-gnu", + "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", + "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.4+1.0", + "systems": [ + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", + "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem.zip", + "size": "218816528" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", + "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", + "size": "78371400" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", + "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", + "size": "182899676" + }, + { + "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", + "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", + "size": "177840353" + } + ] + }, + { + "name": "arc-elf32", + "version": "1.6.9+1.0.1", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-windows-arcem-1.0.1.zip", + "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", + "host": "i686-mingw32", + "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", + "size": "172455793" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", + "host": "i386-apple-darwin11", + "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", + "size": "30014953" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", + "host": "i686-linux-gnu", + "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", + "size": "116481978" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", + "host": "x86_64-linux-gnu", + "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", + "size": "129250679" + } + ] + }, + { + "name": "sketchUploader", + "version": "1.6.2+1.0", + "systems": [ + { + "size": "61789", + "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", + "host": "i386-apple-darwin11", + "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" + }, + { + "size": "2534586", + "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", + "host": "i686-mingw32", + "archiveFileName": "intel-arduino-tools-20150316-windows.zip", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" + }, + { + "size": "178239", + "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", + "host": "x86_64-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" + }, + { + "size": "187995", + "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", + "host": "i686-linux-gnu", + "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" + } + ] + }, + { + "version": "1.6.4+1.14", + "name": "sketchUploader", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", + "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.14-windows.zip", + "size": "8239124" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", + "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.14-osx.tar.gz", + "size": "324645" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", + "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux32.tar.gz", + "size": "224137" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", + "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.14-linux64.tar.gz", + "size": "216542" + } + ] + }, + { + "version": "1.6.4+1.18", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", + "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", + "host": "i686-mingw32", + "archiveFileName": "1.6.4+1.19-windows.zip", + "size": "9367650" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", + "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", + "host": "i386-apple-darwin11", + "archiveFileName": "1.6.4+1.18-osx.tar.gz", + "size": "1236355" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", + "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", + "host": "i686-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux32.tar.gz", + "size": "1269508" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", + "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", + "host": "x86_64-linux-gnu", + "archiveFileName": "1.6.4+1.18-linux64.tar.gz", + "size": "1467166" + } + ] + }, + { + "version": "1.6.9+1.24", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", + "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", + "size": "9418690" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", + "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", + "size": "1241701" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", + "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", + "size": "1305107" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", + "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", + "size": "1507392" + } + ] + }, + { + "version": "1.6.9+1.28", + "name": "arduino101load", + "systems": [ + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", + "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", + "host": "i686-mingw32", + "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", + "size": "9331111" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", + "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", + "size": "1134614" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", + "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", + "size": "1202482" + }, + { + "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", + "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", + "size": "1411007" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", + "size": "1115949", + "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", + "size": "992362", + "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", + "size": "1111450", + "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", + "size": "1002073", + "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", + "size": "1046285", + "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" + } + ] + }, + { + "name": "arduino101load", + "version": "2.0.1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", + "size": "1114375", + "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", + "size": "992557", + "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", + "size": "1111519", + "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", + "size": "1001211", + "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", + "size": "1046214", + "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" + } + ] + }, + { + "name": "arduino101load", + "version": "2.1.0", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", + "size": "1188264", + "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", + "size": "1110912", + "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", + "size": "1184509", + "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", + "size": "1065618", + "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", + "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", + "size": "1078361", + "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" + } + ] + }, + { + "version": "0.9.0+0.1", + "name": "openocd", + "systems": [ + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-windows.zip", + "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", + "host": "i686-mingw32", + "archiveFileName": "openocd-windows-0.9.0.zip", + "size": "9181935" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-osx.tar.bz2", + "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-osx-0.9.0.tar.bz2", + "size": "896625" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux32.tar.bz2", + "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", + "size": "3923308" + }, + { + "url": "https://downloads.arduino.cc/tools/intel/openocd-linux64.tar.bz2", + "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", + "size": "4010990" + } + ] + }, + { + "version": "1.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-mingw32", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i386-apple-darwin11", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "i686-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", + "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", + "host": "x86_64-linux-gnu", + "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", + "size": "654391" + } + ] + }, + { + "version": "2.0.0", + "name": "flashpack", + "systems": [ + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-mingw32", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i386-apple-darwin11", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "i686-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + }, + { + "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", + "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", + "host": "x86_64-linux-gnu", + "archiveFileName": "flashpack_ble_v3.tar.bz2", + "size": "678394" + } + ] + } + ] + }, + { + "name": "atmel-avr-xminis", + "maintainer": "Atmel University France", + "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", + "help": + { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": + [ + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.3.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", + "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", + "size": "95352", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "4.8.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.0.1-arduino5" + } + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.4.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", + "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", + "size": "95452", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.5.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", + "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", + "size": "95573", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + }, + { + "name": "Atmel AVR Xplained-minis", + "architecture": "avr", + "version": "0.6.0", + "category": "Partner", + "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", + "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", + "size": "95447", + "boards": [ + { + "name": "atmega168pb-xmini" + }, + { + "name": "atmega328pb-xmini" + }, + { + "name": "atmega328p-xmini" + } + ], + "toolsDependencies": + [ + ] + } + ], + "tools": + [ + ] + }, + { + "name":"littleBits", + "maintainer":"littleBits Electronics", + "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", + "email":"support@littlebits.cc", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "platforms":[ + { + "name":"littleBits Arduino AVR Modules", + "architecture":"avr", + "version":"1.0.0", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", + "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", + "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", + "size":"27762", + "help":{ + "online":"http://www.littlebits.cc/arduino-help" + }, + "boards":[ + { "name":"littleBits w6 Arduino module" } + ], + "toolsDependencies":[ + { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, + { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } + ] + } + ], + "tools":[] + }, + { + "name": "Microsoft", + "maintainer": "Microsoft.IoT", + "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", + "email": "bfjelds@microsoft.com", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "platforms": [ + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.0.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", + "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", + "size": "47325480", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.0", + "category": "Contributed", + "help": { + "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", + "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", + "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", + "size": "48316890", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.1", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", + "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", + "size": "48317624", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + }, + { + "name": "Windows 10 Iot Core", + "architecture": "win10", + "version": "1.1.2", + "category": "Contributed", + "help": { + "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" + }, + "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", + "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", + "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", + "size": "48317648", + "boards": [ + {"name": "Windows 10 IoT Core"} + ], + "toolsDependencies":[] + } + ], + "tools":[] + }, + { + "name": "Arrow", + "maintainer": "Axel Elettronica S.r.l.", + "websiteURL": "http://axelelettronica.it/", + "email": "development@axelelettronica.it", + "help": { + "online": "http://www.arrowsmarteverything.com/support/" + }, + "platforms": [ + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "1.2.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", + "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", + "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", + "size": "36575", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "arduino", + "name": "bossac", + "version": "1.5-arduino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.0.0-atmel" + } + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.0.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", + "archiveFileName": "Arrow-samd-2.0.0.tar.gz", + "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", + "size": "772778", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "Arrow Boards", + "architecture": "samd", + "version": "2.1.0", + "category": "Partner", + "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", + "archiveFileName": "Arrow-samd-2.1.0.tar.gz", + "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", + "size": "780064", + "boards": [ + {"name": "SmartEverything Fox"}, + {"name": "SmartEverything Fox3"}, + {"name": "SmartEverything Lion"}, + {"name": "SmartEverything Dragonfly"}, + {"name": "Analog ADI"}, + {"name": "SmartTutto"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "emoro", + "maintainer": "Inovatic-ICT", + "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", + "email": "support@inovatic-ict.com", + "help": { + "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" + }, + "platforms": [ + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.1", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", + "archiveFileName": "EMoRo_2560-3.2.1.zip", + "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", + "size": "846444", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + }, + { + "name": "EMORO 2560", + "architecture": "avr", + "version": "3.2.2", + "category": "Arduino@Heart", + "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", + "archiveFileName": "EMoRo_2560-3.2.2.zip", + "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", + "size": "565744", + "boards": [ + {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} + ], + "toolsDependencies": [ + ] + } + ], + "tools": [ + ] + }, + { + "name": "industruino", + "maintainer": "Industruino", + "websiteURL": "https://industruino.com/", + "email": "connect@industruino.com", + "help": { + "online": "https://github.com/Industruino/IndustruinoSAMD" + }, + "platforms": [ + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.0", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", + "archiveFileName": "industruino-samd-1.0.0.tar.bz2", + "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", + "size": "172665", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + }, + { + "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", + "architecture": "samd", + "version": "1.0.1", + "category": "Contributed", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", + "archiveFileName": "industruino-samd-1.0.1.tar.bz2", + "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", + "size": "203844", + "boards": [ + { "name": "Industruino D21G" } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "arm-none-eabi-gcc", + "version": "4.8.3-2014q1" + }, + { + "packager": "industruino", + "name": "bossac", + "version": "1.7.0-industruino" + }, + { + "packager": "arduino", + "name": "openocd", + "version": "0.9.0-arduino" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "6.3.0-arduino8" + }, + { + "packager": "arduino", + "name": "CMSIS", + "version": "4.5.0" + }, + { + "packager": "arduino", + "name": "CMSIS-Atmel", + "version": "1.0.0" + } + ] + } + ], + "tools": [ + { + "name": "bossac", + "version": "1.7.0-industruino", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", + "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", + "size": "565844" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", + "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", + "size": "128421" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", + "size": "62348" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", + "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", + "size": "63204" + } + ] + }, + { + "name": "windows-drivers", + "version": "0.0.1", + "systems": [ + { + "host": "i686-mingw32", + "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", + "archiveFileName": "drivers-industruino-windows-0.0.1.zip", + "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", + "size": "2545" + } + ] + } + ] + } + ] +} diff --git a/indexes/testdata/package_index.json.sig b/indexes/testdata/package_index.json.sig new file mode 100644 index 0000000000000000000000000000000000000000..1038023299b8a52afad53cc70d633fbf5448e836 GIT binary patch literal 543 zcmV+)0^t3L0vrSY0RjL91p;8WqCx-)2@oWrYps7NLXl}#5B@m!=okF~7;tJL;i&gs zBbrK1n)n%t$EyM#?qKO=OtQ!h8bTX%xi38)Jav=DjXWM@3@7po={Qdf?JL+QCbICr z>W{ql{YeWSzptT=H1%2mdbVwHf)ZgVxhw2dfW7l73VA3+Ix`36`|(9+S$^4q zEXzUoz89mR?Z|nwoixYTxav+S8P;Crky}xDGvuqYiFe3$>@W8CD2NPr*{U{NPDXcX z80+G-G8FmV&giVLk+q^2JHvHEGex@Umcwhj+;aIUno2m|#1M|`AGxsPEP$vgQhR2c zo~-W}$LW;jTj+HtQF5GT7gvvd)n8!VOdI1}*PntMk-%8kHz|4!3h!TT_7C@>KyY=8 zQrUb{lP2h2jF?Ar`Z*9eZCty*^sB{pVt-Z&5jsPhoI-iSf z&_YsD`u>F3;$?vtaELC32p2i{e!^mH4GLTCUmU6TLxcup`JEomhL@8Js)?hMEwnEZ hXY11J?PnI@Nxk~c*oHQ-oS(^66lsIkn*P8(@{prS4A}qx literal 0 HcmV?d00001 From 91317915592aa499d87a9a68976102d13d0138e6 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 9 Jun 2021 14:13:01 +0200 Subject: [PATCH 21/23] Remove commented code --- indexes/download/download_test.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/indexes/download/download_test.go b/indexes/download/download_test.go index 3bce88b6..e387a15c 100644 --- a/indexes/download/download_test.go +++ b/indexes/download/download_test.go @@ -33,24 +33,6 @@ import ( semver "go.bug.st/relaxed-semver" ) -// TODO not working because of include loop -// func TestDownloadTool(t *testing.T) { -// defer os.RemoveAll(globals.FwUploaderPath.String()) // cleanup after tests -// t.Logf("testing with index: %s", packageIndexGZURL) -// err := DownloadIndex(packageIndexGZURL) -// require.NoError(t, err) -// require.DirExists(t, globals.FwUploaderPath.String()) -// URL, err := utils.URLParse(packageIndexGZURL) -// require.NoError(t, err) -// indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) -// require.FileExists(t, indexPath.String()) -// sigURL, err := url.Parse(URL.String()) -// require.NoError(t, err) -// sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") -// signaturePath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)).String() -// require.FileExists(t, signaturePath) -// } - var defaultIndexGZURL = []string{ "https://downloads.arduino.cc/packages/package_index.json.gz", "http://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", From 0f4ccbb4190e95a6b9ab0978af0f9aac87f2c591 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 9 Jun 2021 15:39:40 +0200 Subject: [PATCH 22/23] Simplify DownloadIndex function --- indexes/download/download.go | 132 ++++++++++++++++++----------------- 1 file changed, 69 insertions(+), 63 deletions(-) diff --git a/indexes/download/download.go b/indexes/download/download.go index 5068c3d7..ed95859b 100644 --- a/indexes/download/download.go +++ b/indexes/download/download.go @@ -26,8 +26,8 @@ import ( "fmt" "hash" "io" + "math/rand" "net/url" - "os" "path" "strings" @@ -208,112 +208,118 @@ func VerifyFileSize(size int64, filePath *paths.Path) error { // DownloadIndex will download the index in the os temp directory func DownloadIndex(indexURL string) (*paths.Path, error) { - URL, err := utils.URLParse(indexURL) + indexArchiveURL, err := utils.URLParse(indexURL) if err != nil { return nil, fmt.Errorf("unable to parse URL %s: %s", indexURL, err) } - - // Download index - tmpGZFile, err := paths.MkTempFile(nil, "") + // Create a directory to store temporary files before verifying them and copying to + // their final directory + tempDir, err := paths.MkTempDir("", fmt.Sprintf("%d", rand.Int())) if err != nil { - return nil, fmt.Errorf("creating temp file for compressed index download: %s", err) + return nil, err } - tmpGZIndex := paths.New(tmpGZFile.Name()) - defer os.Remove(tmpGZFile.Name()) - defer tmpGZIndex.Remove() + defer tempDir.Remove() - d, err := downloader.Download(tmpGZIndex.String(), URL.String()) + // Download index + tmpGZIndex := tempDir.Join("index.gz") + d, err := downloader.Download(tmpGZIndex.String(), indexArchiveURL.String()) if err != nil { return nil, fmt.Errorf("downloading index %s: %s", indexURL, err) } - indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(URL.Path, ".gz", ""))) if err := Download(d); err != nil || d.Error() != nil { - return nil, fmt.Errorf("downloading index %s: %s %s", URL, d.Error(), err) + return nil, fmt.Errorf("downloading index %s: %s %s", indexArchiveURL, d.Error(), err) } - // Extract the real index - tmpFile, err := paths.MkTempFile(nil, "") - if err != nil { //TODO mettere tmpdir.join(URL.Base()) in modo da usare LoadIndex() e non LoadIndexNoSign - return nil, fmt.Errorf("creating temp file for index extraction: %s", err) - } - tmpIndex := paths.New(tmpFile.Name()) - defer os.Remove(tmpFile.Name()) - defer tmpIndex.Remove() + // Extract the index to temporary file + tmpIndex := tempDir.Join("index.json") if err := paths.GUnzip(tmpGZIndex, tmpIndex); err != nil { - return nil, fmt.Errorf("unzipping %s", URL) + return nil, fmt.Errorf("unzipping %s", indexArchiveURL) } - // Download Signature - sigURL, err := url.Parse(URL.String()) + // Download signature file + signatureURL, err := url.Parse(strings.ReplaceAll(indexURL, ".gz", ".sig")) if err != nil { - return nil, fmt.Errorf("unable to parse URL %s: %s", sigURL, err) - } - sigURL.Path = strings.ReplaceAll(sigURL.Path, "gz", "sig") - var tmpSig *paths.Path - if t, err := paths.MkTempFile(nil, ""); err != nil { - return nil, fmt.Errorf("creating temp file for index signature download: %s", err) - } else { - tmpSig = paths.New(t.Name()) - defer tmpSig.Remove() - defer os.Remove(t.Name()) + return nil, fmt.Errorf("unable to parse URL %s: %s", signatureURL, err) } - d, err = downloader.Download(tmpSig.String(), sigURL.String()) + tmpSignature := tempDir.Join("index.json.sig") + + d, err = downloader.Download(tmpSignature.String(), signatureURL.String()) if err != nil { - return nil, fmt.Errorf("downloading index signature %s: %s", sigURL, err) + return nil, fmt.Errorf("downloading index signature %s: %s", signatureURL, err) } - indexSigPath := globals.FwUploaderPath.Join(path.Base(sigURL.Path)) + indexSigPath := globals.FwUploaderPath.Join(path.Base(signatureURL.Path)) if err := Download(d); err != nil || d.Error() != nil { - return nil, fmt.Errorf("downloading index signature %s: %s %s", URL, d.Error(), err) + return nil, fmt.Errorf("downloading index signature %s: %s %s", indexArchiveURL, d.Error(), err) } - if err := verifySignature(tmpIndex, tmpSig, URL, sigURL); err != nil { + if err := verifyIndex(tmpIndex, indexArchiveURL); err != nil { return nil, fmt.Errorf("signature verification failed: %s", err) } if err := globals.FwUploaderPath.MkdirAll(); err != nil { //does not overwrite if dir already present return nil, fmt.Errorf("can't create data directory %s: %s", globals.FwUploaderPath, err) } + indexPath := globals.FwUploaderPath.Join(path.Base(strings.ReplaceAll(indexArchiveURL.Path, ".gz", ""))) if err := tmpIndex.CopyTo(indexPath); err != nil { //does overwrite - return nil, fmt.Errorf("saving downloaded index %s: %s", URL, err) + return nil, fmt.Errorf("saving downloaded index %s: %s", indexArchiveURL, err) } - if tmpSig != nil { - if err := tmpSig.CopyTo(indexSigPath); err != nil { //does overwrite - return nil, fmt.Errorf("saving downloaded index signature: %s", err) - } + if err := tmpSignature.CopyTo(indexSigPath); err != nil { //does overwrite + return nil, fmt.Errorf("saving downloaded index signature: %s", err) } return indexPath, nil } -// verifySignature will take the indexPath and the signaturePath as parameters and verify if the signature is correct. -// it will also verify if the index is parsable. -func verifySignature(targetPath, signaturePath *paths.Path, URL, sigURL *url.URL) error { +// verifyIndex verifies if the signature is correct and the index is parsable. +func verifyIndex(indexPath *paths.Path, URL *url.URL) error { var valid bool var err error index := path.Base(URL.Path) + signaturePath := paths.New(fmt.Sprintf("%s.sig", indexPath)) if index == "package_index.json.gz" { - valid, _, err = security.VerifyArduinoDetachedSignature(targetPath, signaturePath) - // the signature verification is already done above - if _, err = packageindex.LoadIndexNoSign(targetPath); err != nil { - return fmt.Errorf("invalid package index: %s", err) - } + valid, err = verifyPackageIndex(indexPath, signaturePath) } else if index == "module_firmware_index.json.gz" { - keysBox, err := rice.FindBox("gpg_keys") - if err != nil { - return fmt.Errorf("could not find bundled signature keys") - } - key, err := keysBox.Open("module_firmware_index_public.gpg.key") - if err != nil { - return fmt.Errorf("could not find bundled signature keys") - } - valid, _, err = security.VerifySignature(targetPath, signaturePath, key) - // the signature verification is already done above - firmwareindex.LoadIndexNoSign(targetPath) + valid, err = verifyModuleFirmwareIndex(indexPath, signaturePath) } else { return fmt.Errorf("index %s not supported", URL.Path) } + if err != nil { return fmt.Errorf("signature verification error: %s for index %s", err, URL) } if !valid { - return fmt.Errorf("index \"%s\" has an invalid signature", URL) + return fmt.Errorf(`index "%s" has an invalid signature`, URL) } return nil } + +func verifyPackageIndex(indexPath, signaturePath *paths.Path) (bool, error) { + valid, _, err := security.VerifyArduinoDetachedSignature(indexPath, signaturePath) + if err != nil { + return valid, err + } + // the signature verification is already done above + if _, err := packageindex.LoadIndex(indexPath); err != nil { + return valid, fmt.Errorf("invalid package index: %s", err) + } + return valid, nil +} + +func verifyModuleFirmwareIndex(indexPath, signaturePath *paths.Path) (bool, error) { + keysBox, err := rice.FindBox("gpg_keys") + if err != nil { + return false, fmt.Errorf("could not find bundled signature keys: %s", err) + } + key, err := keysBox.Open("module_firmware_index_public.gpg.key") + if err != nil { + return false, fmt.Errorf("could not find bundled signature keys: %s", err) + } + valid, _, err := security.VerifySignature(indexPath, signaturePath, key) + if err != nil { + return valid, nil + } + // the signature verification is already done above + _, err = firmwareindex.LoadIndexNoSign(indexPath) + if err != nil { + return valid, nil + } + + return valid, nil +} From 85db209ad237cc1e7d0693b6648b88d40b93b534 Mon Sep 17 00:00:00 2001 From: Silvano Cerza <3314350+silvanocerza@users.noreply.github.com> Date: Wed, 9 Jun 2021 16:36:34 +0200 Subject: [PATCH 23/23] Fix index URLs to use https Co-authored-by: Cristian Maglie --- cli/globals/globals.go | 2 +- indexes/download/download_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/globals/globals.go b/cli/globals/globals.go index a22a4569..6ebc5fba 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -23,6 +23,6 @@ import "github.com/arduino/go-paths-helper" var ( PackageIndexGZURL = "https://downloads.arduino.cc/packages/package_index.json.gz" - ModuleFirmwareIndexGZURL = "http://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz" + ModuleFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz" FwUploaderPath = paths.TempDir().Join("fwuploader") ) diff --git a/indexes/download/download_test.go b/indexes/download/download_test.go index e387a15c..49da9216 100644 --- a/indexes/download/download_test.go +++ b/indexes/download/download_test.go @@ -35,7 +35,7 @@ import ( var defaultIndexGZURL = []string{ "https://downloads.arduino.cc/packages/package_index.json.gz", - "http://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", + "https://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz", } func TestDownloadIndex(t *testing.T) {