Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface


 
Thread Tools Search this Thread
Top Forums Programming Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface
# 1  
Old 12-25-2019
Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface

In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today.

Code:
https://github.com/arduino/arduino-cli

I followed the instructions for macOS but when I got to this part:

Code:
arduino-cli board list

I got the dreaded "Unknown" Fully Qualified Board Name (FQBN)

Code:
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:

Code:
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:

Code:
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:

Code:
arduino-cli core install arduino:avr

and the mega stuff for fun:

Code:
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):

Code:
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:

Code:
arduino-cli compile -b arduino:avr:uno ArdUnixTime

... and that worked OK. so I decided to upload:

Code:
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 Smilie

unix time synced to the Arduino via uploading using the cli:

Code:
https://github.com/arduino/arduino-cli

Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface-img_8726jpg


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 Smilie
This User Gave Thanks to Neo For This Post:
# 2  
Old 12-25-2019
Reference from Arduino CLI command:

Code:
macos$ arduino-cli
Arduino Command Line Interface (arduino-cli).

Usage:
  arduino-cli [command]

Examples:
  arduino-cli <command> [flags...]

Available Commands:
  board         Arduino board commands.
  compile       Compiles Arduino sketches.
  config        Arduino Configuration Commands.
  core          Arduino Core operations.
  daemon        Run as a daemon on port 
  help          Help about any command
  lib           Arduino commands about libraries.
  sketch        Arduino CLI Sketch Commands.
  upload        Upload Arduino sketches.
  version       Shows version number of arduino CLI.

Flags:
      --additional-urls strings   Additional URLs for the board manager.
      --config-file string        The custom config file (if not specified the default will be used).
      --format string             The output format, can be [text|json]. (default "text")
  -h, --help                      help for arduino-cli
      --log-file string           Path to the file where logs will be written.
      --log-format string         The output format for the logs, can be [text|json].
      --log-level string          Messages with this level and above will be logged.
  -v, --verbose                   Print the logs on the standard output.

Use "arduino-cli [command] --help" for more information about a command.

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Hardware

Arduino Robot Tank Project

Normally I'm not into kits, but I thought my wife would enjoy this one since she is a big fan of robots and droids on StarWars! We are done with the basic mechanical assembly and starting on the electronics assembly today. The robot's "brain" consists of three levels. The Arduino board, on... (5 Replies)
Discussion started by: Neo
5 Replies

2. Programming

NB-IoT Arduino Shield from AIS (Thailand) First Impressions

Today I received my NB-IoT Arduino Shield for AIS (Thailand). Here is a "pinout" photo of the shield. My shield looks just like the one above, for the most part. I'll post another photo of the actual device later. When I received the shield in the mail, I went immediately to a local... (8 Replies)
Discussion started by: Neo
8 Replies

3. Programming

Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN

My favorite projects are always related to the "latest" tech in command and control, networking and network communications. This Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield seems to be the "latest and the greatest" as far as 3G and GPS, as far as I can see so far, but I has it drawbacks for sure.... (6 Replies)
Discussion started by: Neo
6 Replies

4. Programming

Arduino UNIX Time - Syncing Computer UNIX Time to Arduino Time with Python

Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second. Normally, when the Arduino starts... (9 Replies)
Discussion started by: Neo
9 Replies

5. Programming

Chinese Arduino UNO Clones - The Wavgat versus the generic UNO R3 Clone - The Winner Is?

Waiting for more fun Ardunio parts from AliExpress, I decided to test two cheap Chinese Arduino UNO clones. The Arduino UNO R3 (CH340G) MEGA328P The Wavgat UNO R3 (CH340G) MEGA328P Both of these Chinese Ardunio clones sell for about $3 USD, delivered to your door. The bottom line is... (0 Replies)
Discussion started by: Neo
0 Replies

6. Programming

More Arduino Stuff...

HI all... (Apologies for any typos.) To add to Neo's Arduino subject matter I have decided to upload this in ".zip" format. Ignore "*.info" files these are AMIGA icons only and also the "HAM" drawer as these are photos in ancient AMIGA HAM modes. I have noticed that there are current... (6 Replies)
Discussion started by: wisecracker
6 Replies

7. Programming

Very Basic Arduino Uno Board Testing

A very simple Arduino board test... LOL Here is some very easy code to test a cheap Arduino board I just got from China via Aliexpress. I am still waiting on a about 30 more orders from Aliexpress for more Arduino stuff. This was the first order which made it here. /* Arduino test-code... (18 Replies)
Discussion started by: Neo
18 Replies

8. OS X (Apple)

Semi-Automatic Arduino Detection.

I am working on a semi-auto detection idea for Arduino for the Scope project. It does require a little user intervention but minimal. It works by just responding to two on screen prompts to unplug and plug Arduino into a USB port. There are two versions and both work perfectly well and give... (3 Replies)
Discussion started by: wisecracker
3 Replies

9. OS X (Apple)

Arduino Diecimila Board Access...

This is a very simple starter DEMO to access Arduino Diecimila Board for the Macbook Pro 13" OSX 10.7.5... A potentiometer is connected between 5V and Gnd with the wiper connected to ANALOG IN 0 on the Arduino. This was adjusted to give the Ms and Ls as seen... I now have DC in for this... (0 Replies)
Discussion started by: wisecracker
0 Replies

10. Shell Programming and Scripting

Use The Terminal To Test Arduino Is Working.

Hi all... (Apologies for any typos at all.) This is a step by step _script_ to check if your Arduino is talking to your Linux or Macbook Pro computer using the Terminal... It works on at least 3 Linux flavours and now the Macbook Pro... I hope you find it useful as a simple check for... (0 Replies)
Discussion started by: wisecracker
0 Replies
Login or Register to Ask a Question