Monthly Archives: September 2018

New product: Romi Chassis Expansion Plate

via Pololu Blog

The Romi Chassis Expansion Plate is now available and is a great way to add even more space to the Romi. It is designed to function as a modular expansion option for the Romi. In fact, if you have been following our new product announcements, you might have already seen this plate as part of the Robot Arm Kit for Romi. The expansion plate is a half circle with the same diameter as the Romi base plate, and it can be installed over either the front or rear half of the Romi chassis. Abundant mounting holes and slots cover the plate, matching the pattern used on the Romi chassis base plate and supporting various sizes of screws.

You can combine two plates to make a full-sized platform.

It is also possible to stack multiple expansion plates for even more versatility.

Continuing with the special introductory discounts for all of our new products this year, the first 100 customers who use coupon code ROMIEXPINTRO can get up to 3 Romi Chassis Expansion Plates for just $3.33 each!

Friday Product Post: Get Down with the Qwiic-ness

via SparkFun: Commerce Blog

Today we have a whole load of new products for you! Leading the pack are the new SparkFun IIR Array breakouts. We also have four different types of copper clad for PCB engraving and eight different drills to start CNC milling in style. Let’s take a look at our new products!

Choose your Array today!

SparkFun IR Array Breakout - 110 Degree FOV, MLX90640 (Qwiic)

SparkFun IR Array Breakout - 110 Degree FOV, MLX90640 (Qwiic)

SparkFun IR Array Breakout - 55 Degree FOV, MLX90640 (Qwiic)

SparkFun IR Array Breakout - 55 Degree FOV, MLX90640 (Qwiic)


The MLX90640 (110° and 55° FOV) SparkFun IR Array breakouts have been equipped with 32x24 arrays of thermopile sensors creating, in essence, low-resolution thermal imaging cameras. With these breakouts you can detect surface temperatures from many feet away with an accuracy of ±1.5°C (best case). To make it even easier to to get your infrared images, all communication is enacted exclusively via I2C, utilizing our handy Qwiic system. However, we still have broken out 0.1"-spaced pins in case you prefer to use a breadboard.

FR1 Copper Clad - Single Sided 2x3in (10 Pack)

FR1 Copper Clad - Single Sided 2x3in (10 Pack)

FR1 Copper Clad - Double Sided 2x3in (10 Pack)

FR1 Copper Clad - Double Sided 2x3in (10 Pack)

FR1 Copper Clad - Single Sided 4x6in (10 Pack)

FR1 Copper Clad - Single Sided 4x6in (10 Pack)

FR1 Copper Clad - Double Sided 4x6in (10 Pack)

FR1 Copper Clad - Double Sided 4x6in (10 Pack)


These copper clad materials are ideal for rapid PCB prototyping on a CNC machine. We offer them in single-sided versions of 2x3 inches and 4x6 inches, as well as double-sided versions in 2x3 inches and 4x6 inches. These units have 0.06-inch (1.6 mm) thickness, and are best used with the Nomad 883 Pro using the free Carbide Copper app.

Ball Cutter - 0.0312" Diameter, #121 (3 Pack)

Ball Cutter - 0.0312" Diameter, #121 (3 Pack)

Flat Cutter - 0.0312" Diameter, #122 (3 Pack)

Flat Cutter - 0.0312" Diameter, #122 (3 Pack)

Zrn Coated Flat Cutter - 0.25" Diameter, #201Z (2 Pack)

Zrn Coated Flat Cutter - 0.25" Diameter, #201Z (2 Pack)

Zrn Coated Flat Cutter - 0.125" Diameter, #102Z (2 Pack)

Zrn Coated Flat Cutter - 0.125" Diameter, #102Z (2 Pack)

Flat Cutter - 0.25" Diameter, #201 (2 Pack)

Flat Cutter - 0.25" Diameter, #201 (2 Pack)

Ball Cutter - 0.25" Diameter, #202 (2 Pack)

Ball Cutter - 0.25" Diameter, #202 (2 Pack)

V-Bit Cutter - 0.5" Diameter, 90 Degree, #301 (2 Pack)

V-Bit Cutter - 0.5" Diameter, 90 Degree, #301 (2 Pack)

V-Bit Cutter - 0.5" Diameter, 60 Degree, #302 (2 Pack)

V-Bit Cutter - 0.5" Diameter, 60 Degree, #302 (2 Pack)


To help you with all of your CNC needs we also have eight brand new drill bits in various styles and sizes! Make sure to look through them all and see if there is anything you might need!

That’s it for this week, folks! 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!

We’ll be back next week with even more fantastic new products!

comments | comment feed

New-ish product roundup: 24 more QTR arrays, MP6500 carriers with soldered headers, and a pressure sensor

via Pololu Blog

We’ve been hard at work over the past week putting up lots of new (but perhaps familiar-seeming) products. Here’s a quick recap:

24 new QTR reflectance sensor arrays

Our rapidly growing selection of new QTR sensors now includes high-density (HD) versions with 3, 6, and 9 channels, and medium-density (MD) versions with 2, 3, and 5 channels.

Each of these is available with two sensor options—traditional QTR and high-performance, low-current QTRX—and with analog or digital (RC) outputs, making 24 new products in all. Check out the QTR reflectance sensor category to see our full selection, which now stands at 68 varieties, and don’t forget to use our QTR introductory promotion to get 50% off any of these new sensors! (Limited to the first 100 customers who use coupon code QTRINTRO, limit 3 per item per customer.)

MP6500 stepper motor driver carriers with soldered header pins

We have received a number of requests to make the MP6500 stepper motor driver carriers we released earlier this year available with the header pins already soldered, so here they are! These carriers are available in two versions, one with the current limit set by a potentiometer, and one that allows for dynamic current limit control through a pair of digital inputs, and both are now available with soldered header pins:

For a more detailed introduction to these drivers, see our original MP6500 carrier product announcement.

LPS25HB pressure/altitude sensor carrier

This is a minor update to our existing LPS25H pressure sensor carrier, which is now on clearance. The new version uses the same PCB as the original, hence the “©2014” on the silkscreen. and replaces the LPS25H with the newer LPS25HB, a drop-in replacement with the same register map and performance. Most people shouldn’t notice any difference using the new version compared to the old one, though ST says in their LPS25H upgrade guide (200k pdf) that the LPS25HB has better moisture resistance and reliability. That said, please keep in mind that we have not characterized the moisture resistance of the rest of the carrier, and moisture is generally something we recommend you keep away from all of our electronics.

Visually, the LPS25HB is easy to distinguish from the LPS25H as the former has a shiny silver square patch on the package while the latter has a more noticeable hole:

We have already started making our AltIMU-10 v4 and AltIMU-10 v5 IMUs with the LPS25HB, and we did so without using new product numbers or updating the pictures or descriptions because this change should not affect those products in any meaningful way (we have a new product number for the updated basic carrier since the specific sensor on there is pretty much the whole point of the product).

On a related note, we still have a lot of the even older LPS331AP pressure sensors/digital barometers left, so we have put the LPS331AP carriers on even more clearancy clearance!

Join OSHWA today!

via Open Source Hardware Association

As participants in the Open Source Hardware Community, we invite you to join us in the expansion of our member base. Industry leaders have long recognized the need for better communication between sectors at the local level, and your support provides the structured forum needed.

With participation in local OSHWA branches, you have the opportunity to focus on local OSHW problems and join in finding solutions by networking more effectively with other members of the community. New technologies and national standards require expanded educational opportunities, which are offered through the local branches. Through your local branch, we can share information more effectively, mutually consider legislative and communal needs and, by working together, provide the best possible service to the public!

More information on membership dues can be found at All that is required is your participation.

For questions or additional information, please contact us at or

We look forward to seeing you at our next OSHWA meeting!


Wearable Tech at Dragon Con: Part 2

via SparkFun: Commerce Blog

In Part 1 of our Dragon Con coverage, I talked about my costumes and some of the panels and workshops happening at the event, but I know what we all really want to see are more costumes! Here is a selection of costumes utilizing electronics, robotics and 3D printing that we came across in our journey through the costume floor, and a few that showed up to the Electronic Costuming and Wearable Tech Meetup I hosted Saturday night.

Check out some of the fun times we had around the con in our recap video:

Team Cold

I ran into this amazing group cosplay Saturday afternoon while crossing through one of the hotel lobbies. Dragon Con was a great place to see themed group costumes. It was a treat to find a group with so much wearable tech happening - light, sound and even smoke effects.

Team Cold cosplay at Dragon Con 2018

Team Cold poses for a group photo. Image courtesy of High Voltage Threads


Jonathan had this to say about the concept and build process for Team Cold:

“Our concept for Team Cold originated from Rob’s Mr. Freeze that he has rebuilt and brought to Dragon Con three prior years, and the group thought it would be "cool” to do freeze-themed super villains (pun intended). Elsa was mentioned as a joke but was too funny to pass up, so we ran with it."

“The build process was a challenge because it was everyone’s first collaborative build. The most difficult part was working around each other, but after weeks of bouncing ideas back and forth we came up with the best process for building as a team. All of the foamsmithing, painting and resin work were done by Rob and his wife Lori. The sewing, 3D printing, electronics and sound effects were done by myself and my wife Aimee.”

Mr. Freeze

Photos of four of Rob's Mr Freeze costumes side by side

The evolution of Mr. Freeze. Image courtesy of Rob Morrow.

Rob used 660 NeoPixel RGBW LEDs for the lighting effects, driven by seven individual Arduino Nanos throughout the costume pieces and powered by 18650 lithium ion batteries. He also included a helmet ventilation system and audio amplifier, and uses a vape atomizer for the fog effects. The suit is constructed out of EVA foam, Worbla TranspArt, PlastiDip, tubing for the LEDs and an acrylic hemisphere.

Details of Mr. Freeze's costume during construction

Image courtesy of Rob Morrow.

Check out more build photos of the Mr. Freeze project on Rob’s Instagram.

Captain Cold

Mr. Freeze and Captain Cold pose at Dragon Con

Image courtesy of Rob Morrow.

Captain Cold’s cannon was built from a 6-inch, 300 watt sub woofer with 200 NeoPixels controlled by an Arduino Nano. Custom foam work and detailing hid the parts and adds some icy aesthetics. The hooded jacket was custom made, and his glasses were trimmed with foam and covered with PlastiDip.

alt text

alt text

Images courtesy of Rob Morrow.

Killer Frost

Killer Frost poses for a photo

Killer Frost’s custom jacket was embellished with a 3D-printed belt emblem and trimmed with resin. Her icy shoulder pads were created with a combination of foam, resin and 3D prints. The ice pick prop was 3D modeled and printed, then cast with resin from a silicone mold. The blue glow in the shoulder pads and ice pick is created using RGBW NeoPixel LEDs and an Arduino Nano.

alt text

alt text

Images courtesy of Lori Morrow


While Elsa’s costume did not include any special effects, it was an elaborate fabrication project with hours of design, sewing, applique and hand-placed beadwork. For the skirt, top and cape, she used (and altered) Simplicity pattern 1215. For the corset, she bought a steelboned white canvas corset, which she then painted, glittered, tulled and hand beaded.

Aimee as Elsa

Collage of sketches and patterns for Elsa's costume

Beading details on Elsa costume

Details of Elsa costume planning and construction. Images courtesy of High Voltage Threads

Boo-Buster Luigi

Cosplay is often about meticulously recreating details from your favorite fandom, but it can also be an opportunity to get creative with remixes, combinations or original characters. I spotted a lot of Ghostbuster mashups over the weekend, but this Luigi Ghostbuster was one of my favorites.

Boo-Buster Luigi costume

Boo-Buster Luigi. Creator: Nick Santamaria

Nick created a Ghostbusters-inspired Luigi from Luigi’s Mansion called Boo-Buster Luigi. All the parts in this build were printed using PLA on his Creality CR-10s, hand sanded and painted. To create the animated effects on the proton pack he used two Arduino Nanos, 19 LEDs, three NeoPixel strips, two shift registers and four MOSFETs, all powered by a single 12V battery.

Check out Nick’s full album of the build process.

Geeking Out at the Wearable Tech Meetup

Saturday night I hosted the Electronic Costuming and Wearable Tech Meetup as part of Dragon Con’s Costuming Track programming. The meetup was an open invitation to costumers and makers who use electronics in their cosplay to meet cosplayers with similar interests for conversation, and to share their processes and/or simply show off their work. We had a great turnout that included attendees from other costuming panels who wanted to learn more about electronics and see projects up close, to expert costumers wanting to show off the inner workings of their projects. Here are a few highlights from the event.

Deadmau5 Head

Deadmau5 head with LED eyes on a table

Creator Hunter Fuller purchased the vacuum-formed plastic head from a fellow member at a local hackerspace as a base for this project. The eyes were replaced with WS2812B LED rings arranged in concentric circles, controlled with an ESP8266 dev board and powered by an 18650 lithium ion battery, a 5-volt, 1-amp boost regulator and digital joystick control. The project utilizes a previously developed Arduino sketch Hunter created for an ESP8266-based LED hoop, which provides a Wi-Fi access point and a web page. A cell phone can be used to load the page and choose from a list of patterns and color palettes to display. It can be used while wearing the helmet, as well as by a “handler” accompanying the wearer while walking around the floor of the con hotels.

Daft Punk Helmet

Creator Nathaniel Stepp was inspired by a helmet designed and built by Harrison Krix of Volpin Props, and by another helmet made by uiproductions, Nathaniel brought this fantastic costume piece to the meetup.

Nathaniel posing wearing his Daft Punk LED helmet

The entire helmet (including electronics integration) was developed and designed in Autodesk Inventor and assembled out of 11 3D-printed polycarbonate pieces. Final priming, prepping and chrome spraying was performed by the talented Gary Watson at Creations N' Chrome.

The electronics inside were integrated onto a custom circular PCB that Nathaniel designed, which were mounted into the ear cavities of the helmet with a 3D-printed mounting ring. The board uses a Teensy 3.2 to control all of the helmet’s peripherals and LED displays, which include NeoPixel rings on the earpieces, a visor array of 328 5mm through-hole APA106 addressable LEDs, SD card breakout, real-time audio processing using an electret microphone amplifier and auto gain control breakout board, and some fans for ventilation. The animations on the helmet can be controlled via Bluetooth.

Check out an album of build photos and stay tuned for a full write over on Nathaniel’s website.

Light Up Mjölnir

I was really excited when one of my favorite cosplay duos Cowbutt Crunchies showed up to share their latest creation! This 3D-printed version of Thor’s hammer was made with a combination of PLA and SLA, and used WS2811 LED strips controlled by an Arduino Uno and activated by a button press.

LED strips shown inside the Thor's Hammer prop

Taking a look inside Thor’s hammer - the LED strips surround a box housing the controller and battery. Foil tape helps reflect the light from the LEDs.

Were you at Dragon Con? We’d love to see or hear about your costumes in the comments!

comments | comment feed

Run a Raspberry Pi Program on Boot

via SparkFun: Commerce Blog

If you’ve used a microcontroller (such as an Arduino), you probably realize that there is beauty in its simplicity. When you give it power, it (almost always) begins running your code right away without any hassle! The same simplicity does not hold for full-fledged computers, like a Raspberry Pi.

Because systems like the Pi run an operating system (Linux), many things must occur in the background before you’re able to run your own code. While general purpose operating systems are extremely powerful and offer a lot of flexibility to users, it requires extra effort to tell the system that it should run your program right after booting.

To give you a few ways to run your program on boot, we have a new tutorial for you:


How to Run a Raspberry Pi Program on Startup

September 18, 2018

In this tutorial, we look at various methods for running a script or program automatically whenever your Raspberry Pi (or other Linux computer) boots up.

In it, we show three methods for scheduling a Python program to run right after startup along with some troubleshooting tips in case it doesn’t work on the first try. While the tutorial is more thorough, below is the abbreviated, TL;DR version.


rc.local is likely the easiest method for running your program on boot, but because it executes before any graphical desktop starts, you will not have access to graphical elements. To add your program (we’ll use an example Python 3 program named, modify rc.local:

sudo nano /etc/rc.local

Just before the exit 0 line, add the following:

/usr/bin/python3 /home/pi/ &

Running a Python script on boot with rc.local on the Raspberry Pi

Save and exit with ctrl + x, followed by y when prompted to save, and then enter. Reboot your Pi with:

sudo reboot


If you need access to graphical elements (for example, you are making a dashboard with Tkinter), you will need to wait until the X Window System has started before running your program. The easiest way to do that on the Pi is to use the autostart system (which is included with LXDE, the graphical desktop environment in Raspbian).

autostart runs a script located at /home/pi/.config/lxsession/LXDE-pi/autostart for your user (pi) each time the desktop environment is started. It then looks for .desktop files located in /home/pi/.config/autostart to run. To use autostart, we’ll make our own .desktop file with our arbitrary program.

In a terminal, enter the following commands:

mkdir /home/pi/.config/autostart
nano /home/pi/.config/autostart/blink.dekstop

In the blink.desktop file, enter the following:

[Desktop Entry]
Exec=/usr/bin/python3 /home/pi/

Using autostart to run a program on boot in Linux

Save and exit with ctrl + x, followed by y when prompted to save, and then enter. Reboot your Pi with:

sudo reboot


systemd is a more robust way of creating services to run your programs, but it is more complicated to use. While it is intended to start programs in the background, independent of any user-level desktop environments, you can still create unit files for systemd that wait until networking, graphics, etc. or just brute force restarts until the program runs (see the systemd section in the full tutorial for more information).

To create a basic unit file, run the following:

sudo nano /lib/systemd/system/blink.service

Enter the following into the blank .service document:

Description=Blink my LED

ExecStart=/usr/bin/python3 /home/pi/


Run a program on boot with systemd on the Raspberry Pi

Save and exit with ctrl + x, followed by y when prompted to save, and then enter. We then need to tell systemd to recognize our new service and enable it with the following:

sudo systemctl daemon-reload
sudo systemctl enable blink.service

Finally, reboot your system with:

sudo reboot


Because it’s Linux, there are many ways to accomplish a thing, and starting a program on boot is no exception. Other methods exist, including SysVinit and crontab. What is your favorite method for running a program on startup with Linux?

comments | comment feed