Argon wifi OFF at boot time

I am trying to get my Argon to boot up OFF Network. Right now, Particle workbench is telling me the it is compiling and flashing to the device fine via USB.

I have tried these commands so far:
SYSTEM_MODE(SEMI_AUTOMATIC);
Particle.disconnect();
WiFi.off();

I’m guessing it is not that simple so what am i missing? Right now it just sits there forever flashing a green LED and Serial output never starts.

Are you flashing local or via the cloud in Workbench? A flashing green signals attempting to connect to WiFi. If its breathing green the Argon is connected to WiFi but not the cloud. If you flashed using DFU (local) there is a chance your WiFi config/credentials are not setup. If the device was previously connected to your WiFi I would attempt to flash basic firmware like tinker and see how the Argon responds. What OS is currently on the device?

Since you already use SYSTEM_MODE(SEMI_AUTOMATIC) you should not need Particle.disconnect() nor WiFi.off(). That should be the default for that mode.
However, you can try SYSTEM_MODE(MANUAL).

BTW, what device OS version are you using?
When I flash this code to an Argon 1.4.0 I only get breathing white (all radio off)

SYSTEM_MODE(SEMI_AUTOMATIC)

void setup() {
  pinMode(D7, OUTPUT);
}

void loop() {
  if (!Particle.connected() && !digitalRead(BTN)) {
    Particle.connect();
    waitUntil(Particle.connected);
  }
  digitalWrite(D7, (millis() >> 3) & 0x88);
}
1 Like

I am flashing it locally over USB as I do not have wifi access where I am located. The LED is quickly blinking green at the moment.

I am using Argon 1.4.2. I tried your code and see the same blinky green I had before. Thanks

I tried the same code again with 1.4.2 and - as expected - for me it does what it should.

Are you using particle flash --usb <yourBinary> -v to flash locally?
I suspect your code is not actually getting flashed.
How big is your binary?

Try particle flash --usb tinker -v then put your device into Listening Mode and run particle serial inspect.
After that reflash your binary and inspect again to make sure the application hash actually changes.

Also try building the above code via Web IDE (to get Workbench out of the equation) and download the binary to flash locally.

My compiler compiles, the LED starts flashing yellow, loads firmware, says success on GUI and the green light returns to flashing.

With you code edited below should be flashing D7 once it finishes running correct?

Is there anything I can do to make VS compile faster? This thing is super slow.

SYSTEM_MODE(SEMI_AUTOMATIC)

#include <arduino.h>

void setup() {
  pinMode(D7, OUTPUT);
}

void loop() {
  if (!Particle.connected() && !digitalRead(BTN)) {
    Particle.connect();
    waitUntil(Particle.connected);
  }
  digitalWrite(D7, (millis() >> 3) & 0x88);
  delay(500);
  digitalWrite(D7, HIGH);
  delay(500);
  digitalWrite(D7, LOW);
  delay(500);
}

This one line will provide a distinct blinking pattern as is, no extra code needed.

Did you inspect your device as instructed?
Can you post the output?

1 Like

I figured that would make it blink but I am not familiar with that line of code so I added something I knew would behave in a known manner. You had asked how big my binary was and it is only 6k.

As far as the Serial inspection goes, it is not showing up as a serial device. Neither of my Argon’s are.

Flashing tinker gives me the following response and returns to a flashing green.

C:\^Work\Programming\Particle\WifiOff>particle flash --usb tinker -v
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
ID 2b04:d00c
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x000d4000, size = 11972
Download        [=========================] 100%        11972 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!

Flash success!

I have not been able to get particle serial inspect to connect. No matter what I do, there is never a serial device in my device manager.

C:\^Work\Programming\Particle\WifiOff>particle serial inspect
Could not get inspect device: No serial port identified

I did however finally get the program to load and function. It apparently only works after loading debug listen and/or finally re-connecting it to the network. It strobed magenta, then solid magenta for a while and now it is running as expected.

That suggests that the device needed a device OS update - which was my suspicion was and the particle serial inspect (while the device is in Listening Mode/blinking blue) should have confirmed.

However, good to know you got unstuck.