Monthly Archives: September 2020

Got Technical Support?

via SparkFun: Commerce Blog

Our Technical Support forum moderators are here to support SparkFun customers, and customers who have purchased SparkFun products from our official distributors. We are here to troubleshoot product issues and test both hardware and software problems against SparkFun's internal and external documentation to resolve issues for our customers. Technical Support moderators have the ability to issue tickets associated with refunds and replacements in addition to performing repairs and conducting tests on returned products.

Once you have created your topic on the SparkFun forums, a moderator will review the topic shortly and will respond to the post in about three business days if it fits our criteria for eligibility. Keep in mind: We like to build robots, but we aren't robots – we have a limited staff of technical assistance professionals so mistakes may happen. Please be kind.

The SparkFun Forums

In some instances where a moderator cannot answer your question we may redirect you to other resources not associated with SparkFun to try and point you in the right direction.

Hardware testing on returns takes up to 10 business days after the product(s) have been received into SparkFun's facility. Due to COVID-19, several SparkFun policies have changed as a result and hardware testing may take up to 15 business days at this time.

When working on issues within a specific tutorial, we encourage you to review the “troubleshooting” section for quick pointers on how to overcome some common issues. There is also a quick link to the appropriate forum category to post topics associated with the product, in most cases.

If you are working with a code issue while using code written by a SparkFun employee within a SparkFun product tutorial, please consider submitting a GitHub issue ticket associated with that product, including the problem you are running into. SparkFun does not offer assistance on custom modifications to our existing code, nor does SparkFun offer assistance for code that was not written by a current SparkFun employee. Consider posting in the General Development Platforms discussion category if you would like to see if the community can assist you under these circumstances, or consider posting on other forums such as the Arduino forums if the code is Arduino IDE related.

There are three primary categories that topics fall into on the SparkFun forums:

Topics moderators can assist with (response time - three estimated business days)

  • Product(s) appear to have a defect in hardware.
  • Product(s) do not work as advertised per our hook-up guide or other documentation on the SparkFun website product page.
  • Code written by a SparkFun employee and published in an official SparkFun product tutorial or hook-up guide is throwing compile errors.
  • Simple questions about a SparkFun product that are re-searchable using information available on the SparkFun website.
  • Simple questions about the compatibility of several SparkFun products for a project (be sure to post in the projects category).

Topics with issues which may require an electrical engineer to review and reply (esponse time is dependent on issue - some topics may not receive a response)

  • Topics that state a specific fundamental advertised feature of a product is not working, indicating a design flaw or issue in software.
  • Topics that ask about features of a chip not mentioned within the hook-up guide of the product.
  • Topics that discuss discrepancies in electrical characteristics associated with components or PCB design related issues within a SparkFun product.

Topics that require no response from a SparkFun employee

  • Topics where a customer's question(s) or issues(s) were answered correctly by another forum user within the community.
  • All topics within any forum category other than "SparkFun products" or "SparkFun Education."
  • Topics that are not relevant to the forum category (these topics will be moved to the appropriate category in most cases).
  • Topics that pertain specifically to a third party IDE, SDK, or other environments not owned or developed by SparkFun.
  • Topics that specifically pertain to code not written by SparkFun.

Keep in mind that there are exceptions, which are handled on a case-by-case basis and may fall into or deviate from the above examples.

Moderators may need some personal information to assist further in some circumstances, such as Return Merchandise Authorization (RMA) processes, and we may ask for this information via private messages. A technical support representative will never ask you to share personal information publicly on the SparkFun forums. Always double check and make sure the individual who is private messaging you is a verified SparkFun moderator or employee. The best way to tell is by the red coloring in the name and the "SFE-TS-Moderator" title underneath.

If you have feedback on anything associated with the forums including functionality, spelling errors, response time from moderators, etc., please private message TS-Feedback and we will look into it as soon as possible.

For more information on how to use phpBB3 and the SparkFun forums, check out the phpBB3 user guide.

Thank you for taking the time to read through this blog. We look forward to assisting you on the SparkFun forums soon!

comments | comment feed

Watch your houseplant’s growth really take off in this Saturn V planter

via Arduino Blog

As first reported by Technabob, almost two years after he made a rather stunning Saturn V lamp, SimonRob decided to create something a bit different in the form of his Saturn V planter.

The device is based on the lower section portion of a 3D-printable rocket model, which is modified and sealed to hold dirt and water. A succulent now pops out where the rest of the rocket should be, and when combined with a 30mm thick wood plank, gives it a very unique and polished look.

A switch on the front lights up the printed flame assemblies emanating from the engines, using a trio of SMD LEDs on each exhaust. These LEDs are controlled by an Arduino Nano nestled inside the wooden base to produce random lighting effects when an activation button is pressed.

Touchless light show with the Qwiic Dual Solid State Relay

via SparkFun: Commerce Blog

Last week we released the SparkFun Qwiic Dual Solid State Relay, and as is usually the case, I was tasked with learning about it, then scripting and filming a video to tell all of you about it. This happens pretty much every week, and while the varying technologies of each new product come with their own learning curves, recent wrinkles like supply chain issues and the limited time I can spend at SparkFun (for employee safety) have added new wrinkles into the timeline of releasing a new product.

SparkFun Qwiic Dual Solid State Relay

SparkFun Qwiic Dual Solid State Relay


Naturally we keep a schedule of what products we’re expecting to release in the coming weeks. I pore over datasheets, read through the libraries our engineers are building, and try to come up with ideas that might make for an interesting demo build. Of course, working from home is not the same as heading into SFHQ every day. The ideas that race through my mind haven’t changed, but the inventory on hand certainly has. There have been times over the past six months when I have come up with a build idea, only to have my dreams dashed when I dig through my parts drawer and find that I don’t possess the component around which I was planning my build. This week was a good example of that. I knew that I had multiple VL53L1X Distance Sensors on hand, but knowing that they have a hardware defined I2C address, I knew that I would need a Qwiic MUX Breakout to use more than one of these sensors. And it turned out that I didn't have a MUX on hand. So I pulled the Qwiic VCNL4040 Proximity Sensor off of a previous project, and proceeded forward.

Proximity sensors
VL53L1X Proximity sensors aplenty, but without a MUX, I'm limited to using only one

Sometimes this theoretical portion of my work week ("this should work...theoretically") leads me right up the moment when I have to start filming the new video. Such was the case this week. I didn’t get my hands on the Qwiic Dual SSR until I arrived at SFHQ to do the filming. Luckily I had completed the outline for the video, as well as the sketch for the demo build, so I figured it would be as simple as connecting the relay board via its Qwiic connector, wiring the load side and watching it work.

That’s not exactly how it happened.

alt text
Even though the ranges of the two sensors differ, for this build they were both perfectly suited

I connected everything together and powered it up, and nothing happened. Since I had written and tested the sketch on a different Qwiic relay board, I figured that since our Qwiic Relay Library for Arduino is universal across all of our Qwiic Relay boards, all I’d need to do would be to change the I2C address, and everything would work perfectly – but it didn’t. I checked all of the connections, examined my sketch, looked at the library to make sure I was using the correct I2C address for the new Dual Solid State Relay board, and all of it checked out.

I ran an I2C sniffer, and voila! Even though the board powered up, and I got the status light, I was not receiving an I2C address from the board. With the timeline we impose on ourselves for many of our boards, there will be times when a board will come up to the Marketing department hot off the reflow oven so that our (amazing) photographer Juan can get images of the component and get them to the folks who are putting together the product web page. Sometimes in the process, the components accidentally bypass the firmware flash stage. I simply took the board down to production, they flashed it, I plugged it back into my setup, and everything was Jake!

The code for the project was just a very basic amalgamation of the first examples of each of the VL53L1X distance sensor, the VCNL4040 Proximity Sensor, and the Qwiic Dual Solid State Relay. I added a delay in the void loop so I could watch the proximity digits for each sensor, then used those to set the limits to trigger each of the two relays.

 * Dual Solid State Relay Demo
 * Rob Reynolds, SparkFun Electronics, September 2020
 * Using two separate sensors, this demo
 * toggles the two relays of the SparkFun Qwiic
 * Dual Solid State Relay on and off as you
 * hold your hands over the sensors.
 * SparkFun labored with love to create this code. Feel like supporting open source hardware?
 * Buy a board or two from SparkFun!
 * SparkFun Qwiic Dual Solid State Relay - (
 * SparkFun Distance Sensor Breakout VL53L1X - (
 * SparkFun Proximity Sensor Breakout VCNL4040 - (
 * License: This code is public domain but you buy me a beer if you use 
 * this and we meet someday (Beerware license).

#include <Wire.h>

//**********VCNL4040 Setup here***************
//Click here to get the library: http://librarymanager/All#SparkFun_VCNL4040
#include "SparkFun_VCNL4040_Arduino_Library.h"
VCNL4040 proximitySensor;

//*********VL53L1X Setup here***************
#include <ComponentObject.h>
#include <RangeSensor.h>
#include <SparkFun_VL53L1X.h>
#include <vl53l1x_class.h>
#include <vl53l1_error_codes.h>
#include "SparkFun_VL53L1X.h" //Click here to get the library: http://librarymanager/All#SparkFun_VL53L1X

SFEVL53L1X distanceSensor;

//************Here's the Dual SSR section***********
#include "SparkFun_Qwiic_Relay.h"
#define RELAY_ADDR 0x0A // Alternate address 0x6C
Qwiic_Relay dualRelay(RELAY_ADDR); 

void setup()
  Serial.println("SparkFun VCNL4040 Example");

  Wire.begin(); //Join i2c bus

  if (proximitySensor.begin() == false)
    Serial.println("Device not found. Please check wiring.");
    while (1); //Freeze!

    Serial.println("Check connections to Qwiic Relay.");
    Serial.println("Dual Relay Light Show!!");

  Serial.println("VL53L1X Qwiic Test");

  if (distanceSensor.begin() != 0) //Begin returns 0 on a good init
    Serial.println("Sensor failed to begin. Please check wiring. Freezing...");
    while (1)
  Serial.println("Sensor online!");



void loop()
  //Get proximity value. The value ranges from 0 to 65535
  //so we need an unsigned integer or a long.
  unsigned int proxValue = proximitySensor.getProximity(); 

  Serial.print("Proximity Value: ");


  if (proxValue > 12){

  else if (proxValue < 12){

  //********VL53L1X section*************
  distanceSensor.startRanging(); //Write configuration bytes to initiate measurement
  while (!distanceSensor.checkForDataReady())

  int distance = distanceSensor.getDistance(); //Get the result of the measurement from the sensor

  Serial.print("Distance: ");

  if (distance < 400){
    Serial.println("Relay 4 is hot.");

  else if (distance > 400){

  //delay(500); //uncomment this delay for testing

Again, when working on the high voltage side, make sure that you are knowledgeable and comfortable with that level of potentially lethal voltage. Even though we have built safety measures into this board, like ground isolation between the relay and control circuitry and a milled out area isolating each side of the AC, without proper attention to detail this can be a dangerous product. If you're not quite ready to wire up your own AC lines, the IoT Power Relay is a good solution while you increase your knowledge of high voltage circuits.

If you are planning on creating your own light show, or any other relay-driven project, don't forget that you're not limited to a pair of relays on a single board. Since the ATTiny84A on the Dual Solid State Relay is software configurable, and communicates over I2C, you can daisy-chain over one hundred boards together, allowing you to create an entire light wall that you control by waving your arms around. Yeah, now who's DJ GOAT?!

Evil genius at work

Choosing the proper music is paramount to feeling like you might actually be able to take over the world

comments | comment feed

This interactive screen slides smoothly from side to side

via Arduino Blog

When you need to grab someone’s attention at an event, an interactive screen is a good idea. MakerMan, however, went several steps beyond this, creating an installation with a bank of static screens that depict the Moscow skyline. In front of this, a single touch-enabled display moves back and forth automatically to present information on various points of interest.

Sliding action is handled by a large stepper motor, which pulls the screen along on a carriage assembly. The motor, in turn, is controlled via an Arduino Uno and a stepper driver. All of these electronics are hidden behind a nicely painted wooden facade, letting the technology driving it fade elegantly into the background.

This Arduino-controlled soft robot gets around like an earthworm

via Arduino Blog

After studying the way a worm wiggles, Nicholas Lauer decided to create his own soft robotic version. What he came up with uses an Arduino Uno for control, inflating six 3D-printed segments sequentially to order to generate peristaltic motion for forward movement.

The robotic worm uses a 12V mini diaphragm pump to provide inflation air, while a series of transistors and solenoid valves directly regulate the airflow into the chambers.

The build looks pretty wild in the video below, and per Lauer’s write-up, you’re encouraged to experiment to see what kind of timing produces the most expedient motion. Code, STLs, and a detailed BOM are available on GitHub.

A Dual Solid State Relay, You Say?

via SparkFun: Commerce Blog

Hello everyone, we have quite few products to get through today and it all starts with the brand new Qwiic-enabled Dual Solid State Relay. This high power board is not for the newly initiated, but we've been getting a lot of requests for a variety of power options so now you have another one! Also today, we have five new gas sensors that can be soldered to our Gas Sensor Breakout. Rounding out the week we have a new version of the Arduino Nano 33 BLE Sense with headers. Now let's jump in and take a closer look at all of our new products!

Huge power options come to Qwiic!

SparkFun Qwiic Dual Solid State Relay

SparkFun Qwiic Dual Solid State Relay


The SparkFun Qwiic Dual Solid State Relay is a power delivery board that allows users to switch two AC loads from a low power microcontroller using the SparkFun Qwiic connect system. The board features two 25A/250 VAC solid state relays that utilize the Zero Cross Trigger method, so you can toggle two loads on a 60 Hz AC carrier signal on and off up to 120 times per second!

Always have the right sensor!

Smoke Sensor - MQ-2

Smoke Sensor - MQ-2


The MQ-2 is a smoke and combustible gas sensor that has a range of 300-10000 ppm. Its most common use is domestic gas leakage alarms and detectors with a high sensitivity to propane and smoke.

Dual Gas CO and CH4 Detection Sensor - MQ-9B

Dual Gas CO and CH4 Detection Sensor - MQ-9B


The MQ-9B is a CO and CH₄ gas detection sensor that has a range of 10-500 ppm. It detects carbon monoxide by cycling high and low temperature. The sensor’s conductivity gets higher with the CO and CH₄ gas concentration rising.

Low Concentration Ozone Gas Sensor - MQ-131

Low Concentration Ozone Gas Sensor - MQ-131


The MQ-131 is a low concentration ozone gas sensor. The sensing material for the MQ-131 is WO₃, which will have lower conductivity in clean air and higher conductivity when the ozone concentration rises. This sensor has high sensitivity to ozone, and also has sensitivity to strong oxides such as Cl₂, NO₂, etc.

Hydrogen Sulfide Gas Sensor - MQ-136

Hydrogen Sulfide Gas Sensor - MQ-136


The MQ-136 is a hydrogen sulfide detection sensor with a sensing range of 1-200 ppm. The sensing element is SnO2, which has lower conductivity in clean air. When H₂S gas exists, the sensor’s conductivity rises with the gas concentration.

Ammonia Gas Sensor - MQ-137

Ammonia Gas Sensor - MQ-137


The MQ-137 is an ammonia (NH₃) gas sensor from Winsen. The sensing element is SnO2, which has lower conductivity in clean air. When NH₃ (Ammonia) gas exists, the sensor’s conductivity rises with the gas concentration.

Arduino Nano 33 BLE Sense with Headers

Arduino Nano 33 BLE Sense with Headers


The Arduino Nano 33 BLE Sense with Headers is an evolution of the traditional Arduino Nano featuring a more powerful processor - the nRF52840 from Nordic Semiconductors - and a 32-bit ARM® Cortex™-M4 CPU running at 64 MHz. This will allow you to make larger programs than with the Arduino Uno (it has 1 MB of program memory – 32 times bigger), and with a lot more variables (the RAM is 128 times bigger). The main processor includes other amazing features like Bluetooth® pairing via NFC and ultra low power consumption modes.

That's it for this week! As always, we can't wait to see what you make! Shoot us a tweet @sparkfun, or let us know on Instagram or Facebook. We’d love to see what projects you’ve made!

Never miss a new product!

comments | comment feed