Skip to content

Upload to specific boards

Some sections in this chapter require embedXcode+.

Select your platform

The following boards and programmers require specific procedures for uploading the sketch:

   Platform  Boards
   Adafruit Trinket and Pro Trinket , Feather M0 and M4 , Feather nRF52832 and nRF52840 using J-Link
   Arduino Arduino Leonardo , Arduino Yún using Ethernet or WiFi, Arduino M0 Pro , Arduino Zero
 Espressif ESP8266 NodeMCU using WiFi, ESP32-CAM , ESP32 boards using ESP-Prog, ESP32 boards using WiFi
   LaunchPad LaunchPad boards using XDS110, LaunchPad C2000 , LaunchPad CC3200 WiFi , LaunchPad CC3220 WiFi , LaunchPad MSP430F5529 and MSP430FR5969
   Microsoft Microsoft Azure IoT DevKit
Seeeduino Xiao M0 and Wio Terminal , Wio Terminal RTL8720DN MCU
   Teensy Teensy 3.x and 4.0

The next section details the procedure to Restore initial mode on specific boards .

Upload to Adafruit Trinket and Pro Trinket boards

This section requires the embedXcode+ edition.

The Trinket and Pro Trinket boards from Adafruit require a specific procedure.

For the Pro Trinket, Adafruit recommends to use a standard FTDI programmer for a better reliability. For more information,

Proceed as follow:

  • Plug the Adafruit board in.

  • Launch any of the targets All, Upload or Fast.

  • Wait for the message window:

  • Press the Reset button on the board.

  • The red LED starts flashing.

  • Click on OK.

By default, those boards don't feature a serial-to-USB communication.

For more information,

Upload to Adafruit Feather M0 and M4 boards

For the Adafruit Feather M0 and M4 boards, Adafruit offers two options to upload the executable to the boards.

The first option is the standard upload procedure through serial over USB.

The second option, called UF2 for USB Flashing Format, turns the board into a mass storage device. Programming is done with a simple drag-and-drop or copy of the executable onto the mass storage device.

Upload to Feather M0 and M4 boards using standard USB

Before uploading using the standard USB procedure,

  • Plug the Adafruit board in.

  • Check the LED on the board is green.

  • Otherwise, double-press the Reset button on the board to enter bootloader mode.

For more information,

Upload to Adafruit Feather M0 and M4 boards using UF2

For the Adafruit Feather M0 and M4 boards, this drag-and-drop procedure requires a specific format. The executable needs to be converted into a .uf2 file. The utility for the conversion is provided by the Adafruit nRF52 boards package.

To install the Adafruit nRF52 boards package,

Before uploading,

  • Plug the Adafruit board in.

  • Check a volume called FEATHERBOOT is shown on the desktop.

  • Otherwise, double-press the Reset button on the board to activate it.

  • Check the LED on the board is green.

For more information on the Feather M0,

For more information on the Feather M4,

Upload to Adafruit Feather nRF52 boards

For the Adafruit Feather nRF52832 and nRF52840 boards, Adafruit offers up to three options to upload the executable to the boards.

The first option is the standard upload procedure through serial over USB.

The second option, called UF2 for USB Flashing Format, turns the board into a mass storage device. Programming is done with a simple drag-and-drop or copy of the executable onto the mass storage device. This option is only available on the Adafruit Feather nRF52840 board.

The third option uses an external programmer-debugger like the Segger J-Link. The Adafruit Feather nRF52840 board comes with the SWD 2x5 1.27 mm connector. It needs to be soldered on the Adafruit Feather nRF52832 board.

Upload to Adafruit Feather nRF52840 board using UF2

For the Adafruit Feather nRF52840, the drag-and-drop procedure requires the same specific format as for the Adafruit Feather M0 and M4 boards. The Adafruit nRF52 boards package includes the utility to convert the executable into a .uf2 file. This option is not available on the Adafruit Feather nRF52832 board.

Before uploading to the Adafruit Feather nRF52840,

  • Select the board Adafruit Feather nRF52840 s140b611 (MSD).

  • Plug the Adafruit board in.

  • Check a volume called FTHR840BOOT is shown on the desktop.

  • Otherwise, double-press the Reset button on the board to activate it.

  • Check the LED on the board is green.

  • Launch any of the targets All, Upload or Fast.

For more information on the Feather nRF52840,

For more information on the Feather nRF52832,

The Adafruit Feather nRF52840 board provides the SWD 2x5 1.27 mm connector, while the Adafruit Feather nRF52832 board provisions the pads to solder the connector on.

Depending on the Segger J-Link model, the programmer-debbuger can power the board. Otherwise, the board requires an external LiPo or USB.

  • Connect the programmer-debbuger to the board.

  • If the programmer-debbuger doesn't power the board, use an external LiPo or USB.

  • Select the board Adafruit Feather nRF52832 s132v611 (J-Link) or Adafruit Feather nRF52840 s140b611 (J-Link) to use J-Link,

  • Select the board Adafruit Feather nRF52832 s132v611 (Ozone) or Adafruit Feather nRF52840 s140b611 (Ozone) to use Ozone.

  • Launch any of the targets All, Upload, Fast or Debug.

Upload to Arduino Leonardo

The Arduino Leonardo doesn't rely on an external circuit for the serial over USB connection.

There are two steps for upload the executable to the board. First, the main computer turns the serial connection to 1200 bps to trigger the bootloader. Then, the main computer enumerates the available serial ports and starts uploading.

The delay between the two steps can be adjusted. The default value is set to one second.

DELAY_BEFORE_UPLOAD = 1
  • Open the Arduino Leonardo.xcconfig board configuration file.

  • Edit the line with DELAY_BEFORE_UPLOAD and change the value.

DELAY_BEFORE_UPLOAD = 2

The values reported as successful are between one and three seconds.

  • Select the target All or Fast or Upload.

  • Press the button Run or press Cmd+B.

Upload to Arduino Yún using Ethernet or WiFi

This section requires the embedXcode+ edition.

Although the Arduino Yún requires no specific procedure, the Ethernet or WiFi network needs to be installed and configured successfully before any upload, and the RSA key fingerprint of the Arduino Yún needs to be known by the Mac.

  • Check that the router has discovered the Arduino Yún and note the IP address.

  • Check the Mac knows the RSA key fingerprint of the Arduino Yún.

  • Also, keep the password of the Arduino Yún at hand.

  • Disconnect all the SPI devices from the ICSP connector as the WiFi module uses SPI to communicate with the Arduino.

It is recommended to proceed with a test of the over-the-air upload with the Arduino IDE, through Ethernet or WiFi, to be sure that the Mac recognises the board and knows the RSA key fingerprint of the Arduino Yún.

Check the SSH connection

To check the router has discovered the Arduino Yún,

  • Open a Terminal window.

  • Type the command arp -a to list all know hosts.

The Arduino Yún board should appear as arduino.local but often has a different name, as host-001.

The default address should be 192.168.240.1 but may differ according to the settings of the network.

To check the Mac knows the RSA key fingerprint of the board,

  • Open a Terminal window and type the command ssh root@ followed by the IP address of the board, 192.168.240.1 in the example.
$ ssh root@192.168.240.1

If the board is unknown, a message asks for confirmation of the RSA key fingerprint.

The authenticity of host '192.168.240.1 (192.168.240.1)' can't be established.
RSA key fingerprint is 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff.
Are you sure you want to continue connecting (yes/no)? yes
  • Enter yes and validate.

A message confirms the RSA key fingerprint has been added to the list of know hosts.

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.240.1' (RSA) to the list of known hosts.

root@192.168.240.1's password: 
  • Finally, type in the password to make the connection.
BusyBox v1.19.4 (2013-08-07 16:16:02 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

root@Arduino:~# 

The Terminal window s displays the splash screen of the Arduino Yún.

BusyBox v1.19.4 (2014-04-10 11:08:41 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 ----------------------------------------------------

Enter IP address and Password

During the first compilation, embedXcode looks for the Arduino Yún board and checks the password.

If the Arduino board isn't found on the network, a window asks for the IP address.

  • Enter the IP address of the Arduino Yún board.

  • Click on OK to validate or Cancel to cancel.

A message box asks for the password.

  • Enter the password of the Arduino Yún board.

  • Click on OK to validate or Cancel to cancel.

When validated, the IP address and the password are saved on the board configuration file Arduino Yún (WiFi Ethernet) in the project.

The IP address and the password are only asked once.

  • To erase the IP address, just delete the whole line.

  • To edit the IP address, just change the left part after SSH_ADDRESS = on the corresponding line.

Warning

The password is not encrypted.

  • To erase the password, just delete the whole line.

  • To edit the password, just change the left part after SSH_PASSWORD = on the corresponding line.

For more information about the Arduino Yún installation and over-the-air upload,

Upload the sketch

Once the checks have been successfully performed, proceed as follow:

  • Connect the Arduino Yún board to the network through WiFi or Ethernet.

  • Launch any of the targets All, Upload or Fast.

Upload a website to the Arduino Yún

embedXcode can upload a website automatically to the Arduino Yún.

There are three requirements. First, upload is done through Ethernet or WiFi connection. Second, the project has a folder named www with at least a file named index.html. Third, the Arduino Yún has a microSD-card inserted on the slot.

During upload, the content of the www folder is copied to the microSD-card automatically and made available with a browser at the address /sd/TemperatureWebPanel.

Once upload is completed, embedXcode open the browser at the website main page.

The TemperatureWebPanel project contains a www folder.

For more information,

Upload to Arduino M0 Pro

The Arduino M0 Pro has two USB connectors: one called native and another called programmer. Both can be used to upload a sketch.

However, the programming port offers a better stability and is required for debugging.

Programming port left, native USB port right

When using the programming port, a windows asks for confirmation.

  • Click on Allow to proceed.

Upload to Arduino Zero

The Arduino Zero has two USB connectors: one called native and another called programmer. Both can be used to upload a sketch.

However, the programming port offers a better stability and is required for debugging.

Programming port left, native USB port right

When using the programming port, a windows asks for confirmation.

  • Click on Allow to proceed.

Upload to ESP32-CAM board

The ESP32-CAM board comes with no built-in programmer and features a unique Reset button.

Flashing the board requires an external programmer and a specific procedure to put the board in programming mode.

Example of connection with a FTDI programmer

Proceed as follow:

  • Connect the +3.3V, Ground, U0R and U0T pins of the board to the corresponding pins of the external programmer.
  • Disconnect the external programmer from the USB port.
  • Connect pin IO0 to ground.
  • Connect the board to the USB port.
  • Press Reset.
  • Upload the sketch.
  • Disconnect pin IO0 from ground.
  • Press Reset to run the executable.

In case the following message is displayed on the serial console,

Brownout detector was triggered
  • Power the ESP32 board through the +5V pin instead of the +3.3V pin.

The ESP32 board requires up to 400 mA and may exceed what a standard USB port can deliver.

  • Power the ESP32 board with an external power supply.

Upload to ESP32 boards with the ESP-Prog programmer-debugger

This section requires the embedXcode+ edition.

The ESP-Prog programmer-debugger provides JTAG debugging and re-routes the serial console.

Proceed as follow:

  • Ensure OpenOCD for ESP32 has been installed. Otherwise, follow the procedure Install the OpenOCD driver for ESP32 .

  • Follow the table at Configure Other JTAG Interface and connect power +3.3V and Ground, JTAG TMS, TDI, TCK, TDO and RESET, serial TXD and RXD pins of the board to the corresponding pins of the ESP-Prog programmer-debugger.

  • Open a Terminal and launch the command

% sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver

This command prevents macOS from enumerating all the ports of the ESP-Prog programmer-debugger as serial ports.

  • Connect the external programmer to the USB port.

In case the following message is displayed on the serial console,

Brownout detector was triggered
  • Power the ESP32 board through the +5V pin instead of the +3.3V pin.

The ESP32 board requires up to 400 mA and may exceed what a standard USB port can deliver.

  • Power the ESP32 board with an external power supply.

At the end of the session,

  • Open a Terminal and launch the command
% sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver

This command allows macOS to automatically enumerate all the ports as serial ports again.

To check whether the FTDI driver is loaded,

  • Open a Terminal and launch the command
% kextstat | grep FTDI

For more information on the ESP-Prog,

For more information on debugging the ESP32,

Upload to LaunchPad boards with XDS110

This section requires the embedXcode+ edition.

The following procedure is valid for boards featuring an XDS110 programmer-debugger, as long as each board has a unique serial number. The unique serial number is used for identification to upload the executable and debug.

Most of the LaunchPad boards of the SimpleLink range include an XDS110 programmer-debugger. The procedure has been tested successfully with the MSP432, CC26xx and CC13xx LaunchPad boards. It is especially handy for projects involving a server and one or many clients.

Note

In order to ensure support for the external USB XDS110 debug probe, speed is limited to 1500 kHz.

In the example below, let's consider two projects for two CC1352 LaunchPad boards: one is a sensor node and the other the central hub.

  • Connect the first board, here the sensor node.

  • Open a Terminal window and launch lsusb, a utility that lists the connected USB devices.

% ~/Library/embedXcode/Tools/Utilities/lsusb
Bus 020 Device 007: ID 0451:bef3 Texas Instruments XDS110 (02.03.00.18) Embed with CMSIS-DAP  Serial: L41009S9
  • Note the serial number for the first board, here L41009S9 for the sensor.

  • Connect the second board, here the central hub.

  • Perform the same lsusb.

% ~/Library/embedXcode/Tools/Utilities/lsusb
Bus 020 Device 007: ID 0451:bef3 Texas Instruments XDS110 (02.03.00.18) Embed with CMSIS-DAP  Serial: L41009S9
Bus 020 Device 006: ID 0451:bef3 Texas Instruments XDS110 (02.03.00.18) Embed with CMSIS-DAP  Serial: L41009PJ
  • Note the serial number for the second board, here L41009PJ for the central hub.

In the example, the sensor node is identified by serial L41009S9 and the central hub by serial L41009PJ.

  • Create two projects, one for the sensor node and another for the central hub.

  • Edit the main Makefile or the board configuration file of each project, here LaunchPad CC1312 EMT.xcconfig, and set the uploader to xds110.

UPLOADER = xds110

On the project for the sensor node board,

  • Run the All or Fast target.

  • Select L41009S9 on the dialogue window.

  • Click OK.

To make the selection permanent,

  • Edit the main Makefile or the board configuration file of the project, here LaunchPad CC1312 EMT.xcconfig, for the sensor node board.

  • Set the serial number to L41009S9.

UPLOADER = xds110
XDS110_SERIAL = L41009S9

On the project for the central hub board,

  • Run the All or Fast target for each project.

  • Select L41009PJ on the dialogue window.

  • Click OK.

To make the selection permanent,

  • Edit the main Makefile or the board configuration file of the project, here LaunchPad CC1312 EMT.xcconfig, for the sensor node board.

  • Set the serial number to L41009PJ.

UPLOADER = xds110
XDS110_SERIAL = L41009PJ

If no board corresponds to the serial number, an error message is displayed.

XDS110 L41009PJ not found among connected L41009S9 M4111016 E0071009

If two LaunchPad boards with an XDS110 programmer-debugger share the same serial number, the serial number of one board needs to be changed to make it unique.

To change the serial number of one board,

  • Disconnect all boards except the board with the serial number to change.

  • Open a Terminal window.

  • Run the commands

xdsdfu -m
xdsdfu -s 12345678 -r
Here, 12345678 is the new serial number.

  • Check with
xdsdfu -e

For more information on the XDS110 programmer-debugger and related software, and on how to change the serial number,

Upload to LaunchPad C2000

The LaunchPad C2000 boards use a new upload procedure with Energia 17.

Prepare LaunchPad C2000 F28027

Proceed as follow:

  • Unplug the LaunchPad C2000 F28027 board.

  • For the LaunchPad C2000 F28027, configure S4 SERIAL on.

  • Configure S1 BOOT on-on-on or up-up-up.

  • Plug the LaunchPad C2000 board in.

  • Launch any of the targets All, Upload or Fast.

The project is uploaded into flash.

Prepare LaunchPad C2000 F28069

Proceed as follow:

  • Unplug the LaunchPad C2000 F28069 board.

  • Remove jumper J6 and place jumper J7.

Configure S1 BOOT on-on-on or up-up-up.

  • Plug the LaunchPad C2000 board in.

  • Launch any of the targets All, Upload or Fast.

The project is uploaded into flash.

Prepare LaunchPad C2000 F28069

Proceed as follow:

  • Unplug the LaunchPad C2000 F28069 board.

  • Configure S1 BOOT on-on-on or up-up-up.

  • Plug the LaunchPad C2000 board in.

  • Launch any of the targets All, Upload or Fast.

The project is uploaded into flash.

Upload to LaunchPad CC3200 WiFi

The LaunchPad CC3200 WiFi board requires a specific hardware configuration.

For a normal upload, proceed as follow:

  • Unplug the LaunchPad CC3200 WiFi board..

  • Remove the JTAG J8 jumper and the SPO2 jumper.

  • Place a wire from JTAG J8 (emulator side) to SOP 2 (CC3200) side.

Uploading requires TCK connected to SOP 2

  • Plug the LaunchPad CC3200 WiFi board.

  • Launch any of the targets All, Upload or Fast.

The project is uploaded into flash and is kept even if the power is disconnected.

For a debugging session, proceed as follow:

  • Unplug the LaunchPad CC3200 WiFi board..

  • Remove the wire from JTAG J8 (emulator side) to SOP 2 (CC3200) side.

  • Place the JTAG J8 jumper.

  • Place the SOP 2 jumper.

Debugging requires TCK and SOP 2 jumpers placed on

  • Plug the LaunchPad CC3200 WiFi board.

  • Launch the target Debug.

The project is uploaded into SRAM and is lost in case the power is disconnected.

Upload to LaunchPad CC3220 WiFi

The LaunchPad CC3220S and CC3220SF WiFi boards require a specific hardware and software configuration.

For a normal upload, proceed as follow:

  • Open Uniflash and select the CC3220SF-LAUNCHXL from the list of devices.

  • Click Start Image Creator.

  • Click New Project

  • Give the project a name, for example CC3220 Development.

  • Select CC3220SF from the Device Type drop-down list.

  • Set Device Mode to Develop.

  • Click Create Project.

  • Click the Connect button.

  • Under General > Settings, make sure Image mode is set to Development.

  • Click the Generate Image button, pictured with a flame. Sometimes, this button is not active. In that case, select the Create Image button instead.

  • Click Program Image (Create & Program).

The LaunchPad CC3220 should be ready for uploading a sketch to. Keep in mind the sketch resides in RAM and is lost if the power is disconnected.

  • Once done, launch Energia and program the CC3220SF with the blinky sketch.

If upload fails, perform the same operation with Uniflash but on Windows.

For more information,

Upload to LaunchPad MSP430F5529 and MSP430FR5969

The LaunchPad MSP430F5529 requires Energia release 10 and the LaunchPad MSP430FR5969 the release 12.

Some versions of the LaunchPad MSP430F5529 and MSP430FR5969 may require an update of the firmware.

To do so,

  • Download Energia release 14 or later.

  • Launch Energia.

  • Create a new basic sketch, for example the blinky sketch.

  • Select the board LaunchPad with MSP430F5529 or LaunchPad with MSP430FR5969

  • Upload the sketch to the LaunchPad.

If the firmware needs to be updated, a window pops-up.

In that case, follow the instructions.

  • Call the menu Tools > Update programmer.

  • Check that the upload of the sketch works correctly.

  • If necessary, repeat the update of the programmer.

  • Close Energia.

Upload to Microsoft Azure IoT DevKit

This section requires the embedXcode+ edition.

The Microsoft Azure IoT DevKit offers different options for uploading the sketch to the board.

Upload to Microsoft Azure IoT DevKit Through USB Port

Proceed as follow:

  • Connect the Microsoft Azure IoT DevKit board to the computer.

  • Select the Microsoft IoT DevKit (USB) board.

  • Launch any of the targets All, Upload or Fast.

Upload to Microsoft Azure IoT DevKit Through Mass Storage Device

Proceed as follow:

  • Connect the Microsoft Azure IoT DevKit module to the computer.

A new volume called AZ3166 appears.

  • Select the Microsoft IoT DevKit (MSD) board.

  • Launch any of the targets All, Upload or Fast.

During the upload process, a warning notification may appear.

  • Click on Close to close the notification.

Upload to NodeMCU 1.0 board

The NodeMCU 1.0 board requires a specific procedure.

Proceed as follow:

Plug the NodeMCU 1.0 board in.

  • Launch any of the targets All, Upload or Fast.

  • Wait for the message window:

  • Press the Reset and FLASH buttons on the board.

  • Release the Reset button first.

  • Release then the FLASH button.

  • Click on OK.

For more information,

Upload to ESP32 boards using WiFi

This section requires the embedXcode+ edition.

Although the ESP32 boards require no specific procedure for an over-the-air upload, the WiFi network needs to be installed and configured successfully before any upload.

Over-the-air upload requires that a sketch based on the ArduinoOTA library has been installed previously and is currently running. Otherwise,

  • Build and upload the BasicOTA example using the Arduino IDE.

Before uploading, please

  • Check that the router has discovered the ESP32 board and note the IP address.

  • It is recommended to proceed with a test of the WiFi connection. Either try pinging the board on the Terminal, or uploading a sketch from the Arduino IDE.

Check the running sketch

The over-the-air process is managed by the sketch itself, based on the ArduinoOTA library.

If the ArduinoOTA object isn't running,

  • Build the BasicOTA example.

  • Upload using an USB connection.

Note

The sketch requires twice its size.

Check the WiFi connection

To identify the IP addresses of the ESP32 board,

  • Open a Terminal window.

  • Run the following command.

$ arp -a
esp_a1b2c3 (192.168.240.1) at 12:ef:34:a1:b2:c3 on en0 ifscope [ethernet]

The address 192.168.240.1 gives access to the board.

  • Test the board is connected with ping.
$ ping 192.168.240.1

Enter IP address

During the first compilation, embedXcode looks for the ESP32 board.

If the ESP32 board isn't found on the network, a window asks for the IP address.

  • Enter the IP address of the ESP32 board.

  • Click on OK to validate or Cancel to cancel.

When validated, the IP address is saved on the board configuration file Adafruit Huzzah ESP32 (WiFi) or ESP32 DevKitC (WiFi) in the project.

SSH_ADDRESS = 192.168.240.1

The IP address is only asked once.

  • To erase the IP address, just delete the whole line.

  • To edit the IP address, just change the left part after SSH_ADDRESS = on the corresponding line.

Password isn't implemented.

Upload Wiring / Arduino sketch

Once the checks have been performed successfully, proceed as follow:

Connect the ESP32 board to the network through WiFi.

  • Launch any of the targets All, Upload or Fast.

A window may ask for allowing incoming network connections.

  • Click on Allow to proceed.

Note

The sketch requires twice its size.

For more information about the installation and use of the over-the-air upload,

Please refer to Arduino library to upload sketch over network to supported Arduino board at the ArduinoOTA repository.

Another procedure turns the ESP32 board into a web server.

Upload to ESP8266 NodeMCU boards using WiFi

This section requires the embedXcode+ edition.

Although the ESP8266 and NodeMCU boards require no specific procedure for an over-the-air upload, the WiFi network needs to be installed and configured successfully before any upload.

Over-the-air upload requires that a sketch based on the ArduinoOTA library has been installed previously and is currently running. Otherwise,

  • Build and upload the BasicOTA example using the Arduino IDE.

Before uploading, please

  • Check that the router has discovered the NoteMCU board and note the IP address.

  • It is recommended to proceed with a test of the WiFi connection. Either try pinging the board on the Terminal, or uploading a sketch from the Arduino IDE.

Check the running sketch

The over-the-air process is managed by the sketch itself, based on the ArduinoOTA library.

If the ArduinoOTA object isn't running,

Note

The sketch requires twice its size.

Check the WiFi connection

To identify the IP addresses of the ESP8266 or NodeMCU board,

  • Open a Terminal window.

  • Run the following command.

$ arp -a
esp_a1b2c3 (192.168.1.209) at 12:ef:34:a1:b2:c3 on en0 ifscope [ethernet]

The address 192.168.1.209 gives access to the board.

  • Test the board is connected with ping.
$ ping 192.168.1.209

Enter IP address

During the first compilation, embedXcode looks for the ESP8266 or NodeMCU board.

If the ESP8266 or NodeMCU board isn't found on the network, a window asks for the IP address.

  • Enter the IP address of the ESP8266 or NodeMCU board.

  • Click on OK to validate or Cancel to cancel.

When validated, the IP address is saved on the board configuration file NodeMCU 0.9 ESP-12 (WiFi) or NodeMCU 1.0 ESP-12E (WiFi) in the project.

The IP address is only asked once.

  • To erase the IP address, just delete the whole line.

  • To edit the IP address, just change the left part after SSH_ADDRESS = on the corresponding line.

Password isn't implemented.

Upload Wiring / Arduino sketch

Once the checks have been performed successfully, proceed as follow:

Connect the ESP8266 or NodeMCU board to the network through WiFi.

  • Launch any of the targets All, Upload or Fast.

A window may ask for allowing incoming network connections.

  • Click on Allow to proceed.

Note

The sketch requires twice its size.

For more information about the installation and use of the over-the-air upload,

Upload to Seeeduino SAMD boards

The Seeeduino SAMD boards offer multiple options for uploading, two for the Wio Terminal and three for the Xiao M0 board.

The two first options rely on USB. They include the standard serial and the UF2 drag-and-drop procedures.

Unfortunately, the boards package supplied by Seeeduino doesn't include the utilities required by UF2. They need to be installed from another board package.

For more information,

The last option leverages the exposed pads SWCLK and SWDIO for SWD signal. It is designed specifically for debugging. It has been explored with the Xiao M0 board.

For more information,

Upload to the RTL8720DN MCU of the Wio Terminal board

Using the RTL8720DN MCU requires to run a utility on the main SAMD51 MCU to provide a bridge between the RTL8720DN and the serial over USB.

For more information on the installation process,

Upload to Teensy boards

The Teensy boards based on an ARM MCU require a specific procedure. The procedure applies to the Teensy 3.0, 3.1, 3.2, 3.5 and 3.6 boards.

Proceed as follow:

  • Disconnect all the SPI devices as programming is done through the SPI pins.

  • Plug the Teensy board.

  • Launch any of the targets All, Upload or Fast.

During the first upload, a new window asks you to press on the button on the board to start the process.

  • Press the button on the Teensy board.

A final message confirms the end of the operation.

The following uploads no longer require this manual operation.

Manage error messages

In case the wrong board has been selected, the uploader displays an error message.

  • Click OK, select the correct board following the procedure Change the board and start again.

The uploader may display another error message.

  • Check and edit the code accordingly.

  • Click OK and start again.

Use raw HID

The Teensy boards offer a raw HID mode, with a specific driver for Serial over HID.

To configure the project for raw HID,

  • Open the main Makefile.

  • Set the variable TEENSY_USB to the desired USB_RAWHID type.

# Teensy USB options (default)
# ----------------------------------
# !!! Help: https://bit.ly/2BmH31o
TEENSY_USB = USB_RAWHID
  • Ensure NO_SERIAL_CONSOLE is set to true to prevent the serial console from starting automatically.
# Serial console for Fast target
# ----------------------------------
# For Fast target, open serial console, false or true
# !!! Help: https://bit.ly/2AfyA37
#
NO_SERIAL_CONSOLE = true

Once the program has been uploaded to the Teensy board,

  • Open a first Terminal window.

  • Launch the teensy_gateway utility with /Applications/Teensyduino.app/Contents/Java/hardware/tools/teensy_gateway, assuming the Teensyduino application in under the /Applications folder.

  • Open a second Terminal window.

  • Launch telnet 127.0.0.1 28541, or nc 127.0.0.1 28541 if telnet isn't available,

  • Open a third Terminal window.

  • Launch the rawhid_test utility with /Users/ReiVilo/Downloads/rawhid_test, assuming the rawhid_test application in under the /Users/ReiVilo/Downloads/ folder.

To stop,

  • Press Ctrl+C on the Terminal window where teensy_gateway is running.

For more information on raw HID,