What is the Particle Argon? What does it do?
The Particle Argon is a “wi-fi for everything” development kit that includes a microcontroller, wi-fi hardware, and easy-to-use web-based IDE (Integrated Development Environment). It is typically used to add wi-fi functionality into products without spending a huge amount of development time on the wi-fi hardware and software. A more detailed introduction is available here.
Note: The Particle Argon was previously known as the Photon and the Spark Core, so you may see documentation referring to Spark Core or Photon instead. The software API is basically the same for all of them.
Where can I get an Argon board?
- Each team can check out one (1) Argon board in PRLTA 109. If you need additional Argon boards, please see Dr. Jordan
- If you want to buy your own Argons, you can purchase them from Particle
Where can I find the hardware specifications for the Argon?
Where can I find the firmware/software for the Argon?
Notes: Firmware is a term used to describe software that directly interfaces with hardware. An API (Application Programming Interface) is a guide to the software/firmware functions you can use in your code.
How do I communicate between the Argon and my microcontroller?
There are two major ways to communicate between the devices:
- Using a UART (Universal Asynchronous Receiver Transmitter). UART connections transmit ASCII text, meaning that if you are trying to send numbers you will first need to convert them into strings (see FAQ question below). This strategy allows you to send data either to or from the Argon by either reading from or writing to the UART. An example of how to do this is available here.
- Using the I/O pins on the Argon (Note: This is not a form of serial communication). If you only need to turn something on and off, or read a simple bit or analog value, then this is a simpler solution than using the UART. See the Pins and button definitions section of the datasheet and the Input/Output API pages on the Argon for more information.
- Here is a UART PIC to Argon Tutorial written by Mykol Reklaitis
- Use the sprintf() function for your microcontroller. sprintf() prints formatted data to a string that can be sent over a UART connection. See this tutorial from tutorialspoint for more information.
Where can I find examples of Argon projects?
How do I communicate between a Argon and a phone app?
Option 1: Tinker Mobile App
One option is use the Tinker mobile app from Particle. This off-the-shelf app is a good option if your project only needs to send simple information between Argon and the microcontroller.
Advantages of Tinker app
- Off-the-shelf multi-platform option to control individual analog and digital I/O pins through a standard interface
- Easy to use
- Useful to test whether a problem is in software or hardware (because since it’s provided by the manufacturer, it will hopefully work correctly)
- You can modify the callback functions to include your own code
Disadvantages of Tinker app
- App can not be modified, so you don’t have control over the user interface on the phone. (This may be OK for a proof of concept)
- Does not support entering text into the app directly (though you can send ASCII text over the UART in the firmware code)
Option 2: UbiDots App Framework
The UbiDots app framework is designed to capture and display sensor data using an off-the-shelf app provided by the company. This is a good option if your project primarily needs to display and/or log sensor data (e.g., body temperature).
Advantages of UbiDots
Disadvantages of UbiDots
- UbiDots is primarily for gathering and displaying information (microcontroller –> Argon –> UbiDots –> UbiDots app), and may not be able to send information back to your microcontroller easily.
Option 3: Write your own phone app
You will need to create functions in the Argon firmware and call those functions via the Particle Cloud REST API. This is a good option if someone in your group has prior coding experience and/or time to figure out how to write an app.
Advantages of custom apps
- Full access to send and receive data between the Particle and the microcontroller
- Full access to modify the user interface (within Android/iOS limitations)
Disadvantages of custom apps
- Apps are usually platform-specific, meaning that if you write an app for Android it will likely not be compatible with iOS and vice-versa
More information on custom app development is provided below.
Option 4: Run a web server on the Argon
You can run a web server (based on Webduino, documentation here) on the Argon and then log into it from a phone or computer. This is a good option if you want to have full control via HTML over what is displayed.
Advantages of a web server
- Platform-independent
- Allows use of JavaScript and HTML to sculpt your “app”
Disadvantages of a web server
- Programming is time consuming and somewhat unintuitive
Option 5: Use Particle.publish() to post data to a web page on your computer
Advantages of Particle.publish()
- Platform-independent
- Tutorial available here
Disadvantages of Particle.publish()
- Requires the use of HTML and JavaScript
How do I create an Android app?
You will need an app development environment. Suggested environments include:
Where can I find examples of custom Android apps that work with Argon?
How do I create an iOS app?
You will need an app development environment. Suggested environments include:
Where can I find examples of custom iOS apps that work with Argon?
How do I communicate between a Argon and a computer?
How do I communicate between a Argon and another Argon?