Xenon Blinky/starting out issues

Hi All,

I’ve started working with Particle Xenon devboards yesterday and I’m running into issues to get the boards to even blink an LED.

First of all, when the boards are connected to the USB cable and are powered up, they blink blue. As far as I’ve read the documentation, that is not how it should be, but please correct me if I’m wrong on that.

I’ve downloaded the Particle Workbench and created a new project to get familiar with the workflow. I’ve copied the code form the tutorial (which I will include right below) for blinking an on-board and a discrete LED. I’ve set the target to “xenon” and I’ve tried compiling and flashing locally and onto the board, which I put into the DFU mode (blinking yellow). After the flashing was complete, the board went back to blinking blue, but neither the discrete LED or the on-board LED were blinking.

Another thing I’ve noticed, is that D13 is also configured to output HIGH all of the time, although I have not set it to do that in code.

This behavior has been confirmed on 2 Xenon devboards, and I’ve tried the same process with the following firmware versions:

  • DeviceOS@9.0
  • DeviceOS@1.2.0-beta.1
  • DeviceOS@1.1.0-rc.1

What might be the cause behind my issues?

Here is the the code:

int led1 = D15; 
int led2 = D7;

void setup() {
  // Put initialization like pinMode and begin functions here.
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}

// loop() runs over and over again, as quickly as it can execute.
void loop() {
  // The core of your code will likely live here.
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);

  delay(500);

  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);

  delay(500);
}

Here is a picture of my configuration within the Particle Workbench:

The reason is that Xenons are not supposed to run without a gateway (Argon, Boron or another Xenon with Ethernet connection).

The device will keep blinking blue till it was at least once connected to a cloud connected mesh network.

1 Like

ScruffR,

Thank you for answering me.

So I can’t even blink an LED on-board without connecting the Xenon to a gateway first?

Update:

I am currently doing the same exact thing with an Argon that I have. I have followed thru the setup tutorial and can connect to the board thru the app. I can even change the state of the pins; however, when I try to flash the devboard locally to make the on-board LED blink, nothing happens.

Update 2: I was able to blink the on-board LED using the sample code thru the Web IDE, which indicates something is wrong with how I flash locally. Any ideas?

How do you flash locally?
Do you put the device in DFU Mode (blinking yellow) before you start the flashing?
It may also be how you build your binary to flash.
What does particle binary inspect <yourResultingFile.bin> tell about the file?

There is a workaround but it’s not an intended use-case for Xenons.

Yes, I put the devices (Argon, Xenon) into the DFU mode. I checked the device manager when they were in DFU mode and the USB driver says they are in DFU mode. I am currently working with the Argon board.

I’ve tried entering that command in the workbench IDE but it doesn’t come up.

Update: I’ve went into cmd and got into the folder with the binary file. When I ran the 'particle binary inspect <filename.bin>, it tells me that it can’t find the .bin file despite the fact I just recompiled the program.

Update 2: Nevermind, I wasn’t in the right folder. It is said that the build is compiled for Xenon and that CRC is okay. I have tried deleting the target folder prior to recompiling and re-flashing (2 times), but seems like that doesn’t work. What is the correct way to rebuild it properly then? Clean it first and then build it again?

Do you see the bin file on your drive?
Are you definetly in the target subdirectory?

Have you tried this Ctrl+Shift+P

image

Yup, that’s currently a problem when switching platforms that some already built files won’t be rebuilt for the new platform (since the source hasn’t changed since last build).

Alright, I went ahead and just created and configured a new project and did the exact same thing. When I check the .bin file with the CLI command, it confirmed that the .bin has been compiled for Argon; however, I still do not see the on-board LED blinking and after the flash the module just went back to blinking fast green on the main LED. Is it supposed to be connected (to the internet) for the program to work? I believe no, right?

If you haven’t set SYSTEM_MODE() then the device will be in AUTOMATIC mode which requires a connection before your code starts running.
You could use SEMI_AUTOMATIC mode or alternatively SYSTEM_THREAD(ENABLED) which decouples the application from the system.

2 Likes

Thank you, that has made it work!

This is just my suggestion, but it might be worth putting this into the tutorial as a side note or something.