In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today.
https://github.com/arduino/arduino-cli
I followed the instructions for macOS but when I got to this part:
arduino-cli board list
I got the dreaded "Unknown" Fully Qualified Board Name (FQBN)
macos$ arduino-cli board list
Port Type Board Name FQBN Core
/dev/cu.Bluetooth-Incoming-Port Serial Port Unknown
/dev/cu.usbserial-40 Serial Port (USB) Unknown
Because of this, I got the same related-error when I tried to upload to the Arduino after successfully complying a sketch, per instruction in the link above.
Then, after an evening run next to the beach, I decided to look at the source code, so I downloaded the source and planned to modify the part of the upload / board code to bypass this error.
However, after looking at the arduino-cli
source code, I thought to myself "My Arduino code uploads fine using the Arduino IDE (the GUI), so there must be a cleaner way to fix this problem with the CLI".
Then, I ran:
arduino-cli board listall
... and found there were no entries from the Arduino Uno family of boards, strangely enough. So, I then ran this command:
macos$ arduino-cli core search uno
ID Version Name
arduino:avr 1.8.2 Arduino AVR Boards
arduino:megaavr 1.8.5 Arduino megaAVR Boards
... and lo-and-behold, there are the Arduino
boards, which seemed to match the name of my Chinese Arduino UNO with "Unknown" FQBN
So, now that I found them, and they look like a possibility, I installed them for my "Unknown" FQBN Arduino clone:
arduino-cli core install arduino:avr
and the mega stuff for fun:
arduino-cli core install arduino:megaavr
After that, I listed the installed boards to make sure all was cool, and things were looking up (so I assumed):
macos$ arduino-cli board listall
Board Name FQBN
Adafruit Circuit Playground arduino:avr:circuitplay32u4cat
Adafruit Circuit Playground Express arduino:samd:adafruit_circuitplayground_m0
Arduino BT arduino:avr:bt
Arduino Duemilanove or Diecimila arduino:avr:diecimila
Arduino Esplora arduino:avr:esplora
Arduino Ethernet arduino:avr:ethernet
Arduino Fio arduino:avr:fio
Arduino Gemma arduino:avr:gemma
Arduino Industrial 101 arduino:avr:chiwawa
Arduino Leonardo arduino:avr:leonardo
Arduino Leonardo ETH arduino:avr:leonardoeth
Arduino M0 arduino:samd:mzero_bl
Arduino M0 Pro (Native USB Port) arduino:samd:mzero_pro_bl
Arduino M0 Pro (Programming Port) arduino:samd:mzero_pro_bl_dbg
Arduino MKR FOX 1200 arduino:samd:mkrfox1200
Arduino MKR GSM 1400 arduino:samd:mkrgsm1400
Arduino MKR NB 1500 arduino:samd:mkrnb1500
Arduino MKR Vidor 4000 arduino:samd:mkrvidor4000
Arduino MKR WAN 1300 arduino:samd:mkrwan1300
Arduino MKR WAN 1310 arduino:samd:mkrwan1310
Arduino MKR WiFi 1010 arduino:samd:mkrwifi1010
Arduino MKR1000 arduino:samd:mkr1000
Arduino MKRZERO arduino:samd:mkrzero
Arduino Mega ADK arduino:avr:megaADK
Arduino Mega or Mega 2560 arduino:avr:mega
Arduino Micro arduino:avr:micro
Arduino Mini arduino:avr:mini
Arduino NANO 33 IoT arduino:samd:nano_33_iot
Arduino NG or older arduino:avr:atmegang
Arduino Nano arduino:avr:nano
Arduino Nano Every arduino:megaavr:nona4809
Arduino Pro or Pro Mini arduino:avr:pro
Arduino Robot Control arduino:avr:robotControl
Arduino Robot Motor arduino:avr:robotMotor
Arduino Tian arduino:samd:tian
Arduino Tian (MIPS Console port) arduino:samd:tian_cons
Arduino Uno arduino:avr:uno
Arduino Uno WiFi arduino:avr:unowifi
Arduino Uno WiFi Rev2 arduino:megaavr:uno2018
Arduino Yún arduino:avr:yun
Arduino Yún Mini arduino:avr:yunmini
Arduino Zero (Native USB Port) arduino:samd:arduino_zero_native
Arduino Zero (Programming Port) arduino:samd:arduino_zero_edbg
LilyPad Arduino arduino:avr:lilypad
LilyPad Arduino USB arduino:avr:LilyPadUSB
Linino One arduino:avr:one
So, after realizing I had to recompile, I did:
arduino-cli compile -b arduino:avr:uno ArdUnixTime
... and that worked OK. so I decided to upload:
arduino-cli upload -p /dev/cu.usbserial-40 --fqbn arduino:avr:uno ArdUnixTime
and it worked, the clone accepted the upload.
Now, I have the arduino-cli
working on my mac and can start to use my favorite IDE to develop Arduino sketches if I so choose and maybe can do other magical things with the Arduino now that I have the command line interface working.
Merry Christmas Arduino CLI
unix time synced to the Arduino via uploading using the cli:
https://github.com/arduino/arduino-cli
Yes, I know I should have changed the LCD on the Ardunio to display a Christmas message, but decided to pass on being too geeky and eat a chicken burger instead