Share projects on one of these 4 platforms

Contribute back to the open source hardware community

share projects

Sharing is the maker community’s foundation. When you share projects with others, you contribute to the community. In the past, you might just post your project on a personal website. Today there are many options to share projects.

This weekend I “finished” my reflow oven controller, Open Vapors. Believe it or not, five years ago there were not a bajillion similar projects. In fact, I based my design on the only completely open source project I found. It is a reflow oven controller Arduino shield from Rocket Scream.

After completing my controller, I was excited to share the project. Then I started to think about where to post the files. Obviously, here at is one option. But I wondered. Is there a better place where others could benefit from my work?

This post is a few notes on the platforms used to share projects. At first, these might seem like they all serve the same purpose. From a high level that is true. However, there are small differences that you should consider when you share projects with the open source hardware community.


share projects on instructables

One of the most used general purpose project sites is Do-it-yourself projects range from food to technology to costumes. Instructables got its start in 2005 and then was acquired by Autodesk in 2011. Their age means there is a large user community.

Typically you will find step-by-step instructions that include detailed videos and pictures. As with any user-generated content, the person posting matters in the quality of the tutorial. Sadly, I’ve come across many electronics tutorials that were not correct or just outright wrong. Before embarking on a project, make sure you check the comments!

There are contests for projects you share. The first project I posted on creating Polyamide stencils awarded me a one-year premium membership.

When to use: Creating Step-By-Step Tutorials for others to re-create your project.

Example: Kapton Reflow Stencils

share projects on hackadayio

One of the best projects blogs to follow is Hackaday. They feature some of the most impressive projects on the web. A couple of years ago my post on an Arduino GSM Shield flaw was featured.

The hacker-focused community on features projects stepped-up from the type you see on Instructables. Our friend Valentin of FleaFPGA posts updates on his latest creations.

The news feed makes it easy to follow a project or hacker. Projects also support collaboration if you’re working on a virtual (or real) team.

My favorite aspect of is that projects allow for external links to resources. So if you use GitHub, mentioned later, to manage the firmware you can provide links on the project page.

There are occasional contests as well. Even if you don’t participate in the competition, the entries are always fascinating.

When to use: Electronics hardware focused projects, whether working individually or collaborating with others.

Example: Flea Ohm FPGA

share projects on hacksterio

If I described as a flea market, I would describe as a shopping mall. Both are high-quality platforms but are arranged differently. has a very keen focus on specific platforms or companies. A couple of examples would be Arduino and the Particle Photon. You will see companies like Microsoft and Sparkfun using Hackster as a community hub.

The advantage to a platform-focused site is that you’ll more easily find people with skills related to parts of your project.

When to use: When working on a particular platform.

Example: Mosquitto and Arduino Cloud


share projects on github

Even if you have never been to, you make use of it almost every day. Or at least, one of the software projects hosted there.

Many open source software projects manage their code base and version tracking through GitHub. For example, the Arduino project’s code base is organized there.

Understanding how to use git can be confusing to hardware engineers. (Perhaps a future tutorial.) Using code and projects from GitHub, however, is rather straight forward. You can download a branch or clone it to your computer.

Interestingly, versioning works on non-source code files as well. Adafruit posts their EAGLE library and KiCad uses GitHub to manage their default libraries. So GitHub is useful beyond just software.

When to use: Sharing or collaborating on the software code for a project.

Example: Open Vapors

share projects on digikeys makerio

Digi-Key is a distributor. They opened a service called The focus for this site is on projects with the intent to become a sellable product.

Managing component lead times and logistics can kill a product before it ever ships. Having a electronics component distributor involved early on can help make choices for your BOM that will minimize disruptions.

To be honest, I haven’t used much yet. It’s something that I will look into in the future. If you’re using it, leave a comment about the service below.

When to use: You plan to turn your project into a product.


Note. Kaspar mentioned a service I missed. is focused ready to buy designs. Select a board and there is a BOM (bill of materials, aka parts) for that design. A browser extension makes it easy to add the parts to a shopping cart on 5 major (web-based) distributors. The backend uses Git. See comments for more information.

Share Projects on a Self-hosted blog

One option, as I mentioned at the beginning, is to share projects on a self-run blog. For example, has a (partial) list of my projects. When I started blogging, none of the options on this list existed. I’m finding value in hosting projects on platforms like and GitHub. The options for collaboration are much larger than a self-hosted blog can provide.

On the other hand, a self-hosted blog doesn’t mean signing up for other services. It also means you have full control over the content.

When to use: If none of the other platforms meet your needs or you want to maintain control of your content.


There are other methods to share projects. As I said, these are the ones I know and use. For my latest project, I have a draft of Open Vapors details on I’m cleaning up the code for a push to GitHub. And, of course, I’ll have a page on to cover it.

Question: That’s how I’m approaching project sharing. What’s your approach? You can leave a comment by clicking here.

Detect short and long button press using millis

Different actions based on how long the user presses a button

detect short long button press using millis

To detect a short and long button press using millis can give your project more functionality without adding more buttons. In this line-by-line example, I show how to react to a user pressing a button for a short period (100ms) or a long period (over 500ms). My example changes the blink rate of an LED on short presses. A long button press turns off the LED.

In the code, I make use of a struct so that a single variable can be used to track multiple parameters. The benefit of this method is that adding multiple buttons is easy. You could create an array of these tyepdef’d variables.

Download At GitHub

Continue Reading »

7805 on a SNES Motherboard

When I made the AddOhms Tutorial on Linear Regulators, I made a comment about the 7805. I said it may be one of the most important Integrated Circuits (ICs) ever made. That’s a bold statement. The 555, 805,  or 7400 might all qualify for such a distinction. My feeling about the 7805’s importance is because it is a chip that is still popular today. It is used, or at least was used, in so many applications. And it is the heart of many 5V digital systems.

Including the Nintendo Super Famicom (and I assume the US SuperNES).

This picture is from an SFC I disassembled to repurpose the case. While taking it apart, the 7805 caught my attention because it was attached to a shield as a heat sink. Also, I find it fascinating that it is one of 3 or 4 through-hole components on the entire system. As you can see from the picture, it needs some cleaning. I might post more pictures later.

Best Sorting Resistors Method 

At least, according to me.

sorting resistors method

When you buy a grab bag of components, you might need to tackle sorting resistors. Here’s how I sorted some bags of random resistor assortments last week.


Then method I use for sorting resistors achieves these objectives:

  1. Fewer Bins. It doesn’t take long to create a large matrix of resistor values. My resistor sorting method is relatively compact.
  2. Quick to find. When I’m building up a circuit, I don’t want to spend time sorting through a pile. Once I know the value I need, I find a single package and then look for a single color band.
  3. Works with 4-band and 5-band resistors. Let me be upfront: I *hate* 5-band resistor color codes. While the 5th ring is supposed to be slightly offset, or wider, or a different type of color; it doesn’t matter. It’s nearly impossible to tell read a 5-band resistor color code when they are in a pile. However, using my method for sorting resistors, it doesn’t matter if I’m looking at a 4-band or 5-band resistor. I can immediately identify the resistor value.

Based on #3 alone, you might be wondering what is the fantastic method (and how much will it cost to get it!) Here’s the basics of my method for sorting resistors. (For FREE!)

Continue Reading »

Arduino Data Logger: Serial Monitor Alternatives

Forget the serial monitor, here's 5 other ways to do Arduino data logging

arduino data logger options

The Arduino serial monitor is usable when you want to watch data from an Arduino. However, it does not have a built-in method for saving the data. Here are some ideas if you want to build an Arduino data logger with or without a PC.

Important note on Arduino Data Logger examples

With all of these examples, please remember that whenever you open the Arduino’s serial port, the board will reset. So if your log file shows “Initializing SD card…” with a few data lines in between, it is because there is a reset happening.

Initializing SD card…initialized.
Temp: 34, Time: 03:24:44
Temp: 33, Time: 03:24:45
Temp: 34, Time: 03:24:46

Initializing SD card…initialized.
Temp: 34, Time: 03:24:50
Temp: 34, Time: 03:24:51
Temp: 33, Time: 03:24:52
Temp: 34, Time: 03:24:53

In that code you can see data logging started and then restarted. What happened is that after programming, the board starts logging. Then when you open the Serial Monitor, the data logger restarts.

To solve this issue, either disable auto-reset, add a 3-4 second delay at the start of setup(), wait for a character to be received, or wait for a button press. That will give you time to open the Serial Monitor.

Continue Reading »

Sending simple serial commands to an Arduino

Don't send words when characters will do

sending simple serial commands arduino

Sending simple serial commands to an Arduino is the easiest way to communicate between an Arduino and a computer. The computer could be a PC, a Raspberry Pi, or any device that communicates with serial.

By sending and “decoding” a single character it is easy to add a simple debug menu or even serial menu. Plus, it is easy to extend.

Single Character vs. Full Words

The mistake I see many people make is that they try to send full-text strings as serial commands. For example, to turn on a LED, I have seen (silly) commands like “RED LED ON” or “RED LED OFF.” While you could use something like strcmp(), as I showed on the Multiple MQTT Topics example, that tends to be overkill for most serial commands.

Humans like words, computers like binary. Just send one character over serial.

switch (variable) {
  case ‘a’:
	// A Stuff

  case ‘b’:
  case ‘c’:
	// B and C Stuff

Continue Reading »

Multiple MQTT Topics with Arduino PubSubClient

Adding a few more subscriptions is pretty easy.

multiple mqtt topics

In my Arduino MQTT Examples, I kept things simple by only subscribing to a single topic. One of the strengths of MQTT is that a device can subscribe (or publish) to multiple topics. The broker will sort things out. Even though my first example only showed one, it is straight forward to get the Arduino PubSubClient library to subscribe to Multiple MQTT topics.

The quick answer is that you need to look at the MQTT response to find out which topic sent the payload.

tl;dr version

If you’re looking for a quick answer, here’s the magic code we’ll add to the callback() function.

void callback(char* topic, byte* payload, unsigned int length) {
if (strcmp(topic,"pir1Status")==0)
  // whatever you want for this topic

Keep reading for a more detailed explanation of how to Subscribe to Multiple MQTT topics with Arduino’s PubSubClient. Obviously, this code will work on Arduino boards with a TCP/IP interface and, of course, the ESP8266 based boards.

Continue Reading »

It is commonly known that ceramic capacitors change capacitance with applied voltage. What isn’t always as well known is how strong this effect can be and why it occurs. At KEMET we’ve put together a technical video that answers that question.

What is Ask An FAE?

Ask An FAE is a new video series we launched at my day job, KEMET. An FAE is a field application engineer. These engineers are very common in the electronics industry. Companies like KEMET, where I work, have FAEs who meet with customers to answer technical (and very detailed) questions about how to use their products. In UBM’s Mind of an Engineer survey, FAEs were ranked as one of the top information sources for design engineers.

At KEMET we decide to use FAEs to answer the questions. While I’m not an FAE today, I was in the past and happy to kick off the series with our CEO.

Check out KEMET’s Ask An FAE

2016 Great Year for Enginerds

Top Tutorials from


While many want to call 2016 the worst year ever, I feel that is an entirely undeserved title. It certainly could have been a better year, but it wasn’t the worst that I can remember. For the engineering community, both professional and hobbyist, it seems to have been a fantastic year. My gauge for this feeling is the activity on In 2016, I saw almost half a million sessions contributing over 1.2 million page views. (That’s 98% more people looking at 313% more tutorials compared to 2015.)

Here’s a breakdown of the most visited pages (tutorials) on the site.

Overall Top 5 Tutorials for 2016

First up is a simple list with the most views, across all content.

  1. MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266
  2. Raspberry Pi GUI Tutorial
  3. millis() Tutorial: Arduino Multitasking
  4. Arduino, how do you reset mills()?
  5. Top 4 transistors for your kit

Continue Reading »

ArcAttack is a band that performs at the Bay Area Maker Fare, among other places. They feature massive signing Telsa coils. (Here’s a video I show when I saw ArcAttack in 2013.) Singing Telsa coils are awesome. Everyone knows that. Which is why I found when Dianna Cowern, the Physics Girl, visited the band ArcAttack, electromagnets are just as cool. In addition to talking about their music, ArcAttack’s Joe does something amazing. He splits an aluminum soda can with just an electromagnet.

There are a few other neat tricks and some slow-motion stuff too. Near the end, he compresses a quarter with the scariest magnet setup I’ve ever seen. This video is definitely worth watching if you like anything related to Tesla coils–or electricity!