diff --git a/README.md b/README.md index 1bba27f10fc..04fb38c7a71 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Alternatively you can download one of the pre-built binaries for the supported p These builds are generated once a day from `master` branch starting at 01:00 GMT -In order to get the latest nightly build for your platform use the following links: +In order to get the latest nightly build for your platform use the following links: - [Linux 64 bit](https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz) - [Linux 32 bit](https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_32bit.tar.gz) @@ -55,7 +55,7 @@ In order to get the latest nightly build for your platform use the following lin - [Windows 32 bit](https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_32bit.zip) - [Mac OSX](https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_macOS_64bit.tar.gz) -These links return a `302: Found` response, redirecting to latest generated builds by replacing `latest` with the latest +These links return a `302: Found` response, redirecting to latest generated builds by replacing `latest` with the latest available build date, using the format YYYYMMDD (i.e for 2019/Aug/06 `latest` is replaced with `20190806` ) Checksums for the nightly builds are available at @@ -137,44 +137,17 @@ MKR1000 board: ```console $ arduino-cli board list -FQBN Port ID Board Name - /dev/ttyACM0 2341:804E unknown +Port Type Board Name FQBN Core +/dev/ttyACM1 Serial Port (USB) Arduino/Genuino MKR1000 arduino:samd:mkr1000 arduino:samd ``` -the board has been discovered but we do not have the correct core to program it yet. -Let's install it! +the board has been discovered but we need the correct core to program it, let's +install it! -### Step 4. Find and install the right core +### Step 4. Install the core for your board -We have to look at the core available with the `core search` command. It will provide a list of -available cores matching the name arduino: - -```console -$ arduino-cli core search arduino -Searching for platforms matching 'arduino' -ID Version Name -Intel:arc32 2.0.4 Intel Curie Boards -arduino:avr 1.6.23 Arduino AVR Boards -arduino:mbed 1.1.0 Arduino nRF528x Boards (Mbed OS) -arduino:megaavr 1.8.3 Arduino megaAVR Boards -arduino:nrf52 1.0.2 Arduino nRF52 Boards -arduino:sam 1.6.12 Arduino SAM Boards (32-bits ARM Cortex-M3) -arduino:samd 1.8.3 Arduino SAMD Boards (32-bits ARM Cortex-M0+) -arduino:samd_beta 1.6.25 Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+) -arduino:stm32f4 1.0.1 Arduino STM32F4 Boards -littleBits:avr 1.0.0 littleBits Arduino AVR Modules -``` - -If you're unsure you can try to refine the search with the board name - -```console -$ arduino-cli core search mkr1000 -Searching for platforms matching 'mkr1000' -ID Version Name -arduino:samd 1.8.3 Arduino SAMD Boards (32-bits ARM Cortex-M0+) -``` - -So, the right platform for the Arduino MKR1000 is arduino:samd, now we can install it +From the output of the `board list` command, the right platform for the Arduino +MKR1000 is `arduino:samd`, we can install it with: ```console $ arduino-cli core install arduino:samd @@ -207,14 +180,6 @@ ID Installed Latest Name arduino:samd 1.6.19 1.6.19 Arduino SAMD Boards (32-bits ARM Cortex-M0+) ``` -We can finally check if the board is now recognized as a MKR1000 - -```console -$ arduino-cli board list -FQBN Port ID Board Name -arduino:samd:mkr1000 /dev/ttyACM0 2341:804E Arduino/Genuino MKR1000 -``` - If the board is not detected for any reason, you can list all the supported boards with `arduino-cli board listall` and also search for a specific board: @@ -229,8 +194,7 @@ Arduino MKRZERO arduino:samd:mkrzero Arduino/Genuino MKR1000 arduino:samd:mkr1000 ``` -Great! Now we have the Board FQBN (Fully Qualified Board Name) `arduino:samd:mkr1000` -and the Board Name look good, we are ready to compile and upload the sketch +Great! Now we are ready to compile and upload the sketch. #### Adding 3rd party cores diff --git a/cli/board/list.go b/cli/board/list.go index 5a70e69687e..8702e418a05 100644 --- a/cli/board/list.go +++ b/cli/board/list.go @@ -18,10 +18,12 @@ package board import ( + "fmt" "os" "sort" "time" + "github.com/arduino/arduino-cli/arduino/cores" "github.com/arduino/arduino-cli/cli/errorcodes" "github.com/arduino/arduino-cli/cli/feedback" "github.com/arduino/arduino-cli/cli/globals" @@ -85,7 +87,7 @@ func outputListResp(ports []*rpc.DetectedPort) { }) t := table.New() - t.SetHeader("Port", "Type", "Board Name", "FQBN") + t.SetHeader("Port", "Type", "Board Name", "FQBN", "Core") for _, port := range ports { address := port.GetProtocol() + "://" + port.GetAddress() if port.GetProtocol() == "serial" { @@ -99,16 +101,26 @@ func outputListResp(ports []*rpc.DetectedPort) { }) for _, b := range boards { board := b.GetName() - fqbn := b.GetFQBN() - t.AddRow(address, protocol, board, fqbn) - // show address and protocol only on the first row + + // to improve the user experience, show on a dedicated column + // the name of the core supporting the board detected + var coreName = "" + fqbn, err := cores.ParseFQBN(b.GetFQBN()) + if err == nil { + coreName = fmt.Sprintf("%s:%s", fqbn.Package, fqbn.PlatformArch) + } + + t.AddRow(address, protocol, board, fqbn, coreName) + + // reset address and protocol, we only show them on the first row address = "" protocol = "" } } else { board := "Unknown" fqbn := "" - t.AddRow(address, protocol, board, fqbn) + coreName := "" + t.AddRow(address, protocol, board, fqbn, coreName) } } feedback.Print(t.Render())