JulianHartline.com Rotating Header Image

My experience with Funded Today (and why you should avoid them)

TL;DR: Funded Today left out critical information during the preliminary sales call, failed to communicate well throughout validation, and cost me $3500 and 10 days of my campaign for no substantial gain. Afterwards, hired CommandPartners for a lower price, a better return, and an extremely pleasant experience.

I found Funded Today a few days after my campaign launch while looking for a marketing company to help me give my my Kickstarter project a bit of a boost. Although it was well on track to making it’s goal, I was hoping to exceed my goal by a fair margin. I found this about.com article that covered not only a few good things to look for in a marketing company, but listed a few of the best ones.

I did a bit of research on my own, but most of the information about them I learned from one of their sales people, Lisa Juchau, on a preliminary call as they are known as being one of the more mysterious marketing agencies. Funded Today has a pretty aggressive pricing model. Projects must go through a “Validation” process in which Funded Today decides whether your project is worth their time. This process takes 1-7 days and costs $3500 and comes with no guarantees of any sort. They’ll run some ads, see if they can get traction, and then decide whether or not they want to work with you. By paying the $3500 to start validation, you agreed to paying them 35% of all of the pledges made from the day you start validation IF you pass validation and they accept you as a client.

As a bootstrapping solo entrepreneur, $3500 was a high price to pay for the risk of no returns. As such, it was of course of tantamount importance to me to figure out how likely it was that my campaign would pass Funded Today’s validation. I talked to Lisa at length about my campaign and similar campaigns that she had worked with. She was, of course, unable to provide any sort of guarantees which is very well reasonable as marketing is a far cry from an exact science. She admitted that only about 40% of projects that enter into validation pass, but did say that she was optimistic about my project based on the fact that it was a unique product and was priced well.

What she failed to mention, however, was something that I ended up only learning more than a week later after my project had failed validation and I began probing into the methods and the specifics for why my project may have failed. The key piece of information was that most of the projects that successfully pass Funded Today’s Validation process come into the process with a strong lookalike audience in the form of a similar that Funded Today has presided over or a list of emails from which they can generate this audience.

My project, Flickerstrip, had neither of these. We had collected only 100 emails prior to our Kickstarter launch and the most similar project that Funded Today had worked with was Luminoodle, an LED strip designed for camping and outdoor use. At first glance, you might agree that Luminoodle and Flickerstrip are similar products as they’re both strips of LEDs, however, that’s where the similarities end. Learning that Luminoodle was used as their primary lookalike audience was a bit of a shock for me. Luminoodle is being marketed as a lightstrip that you take camping or backpacking, a versatile lantern replacement that will primarily be used on the go powered by a USB battery.

Flickerstrip, on the other hand, is a decorative LED strip that is being marketed primarily as an smart home decoration that lets you create your own custom light show. Flickerstrip is a product that is generally plugged into the wall outlet and may adorn a holiday scene or decorate a Christmas tree. Most of Flickerstrip’s features require access to a Wi-Fi network, something that you rarely find on camping trips.

Now, I admit that the similarities are enough to warrant tossing a few advertisements up to see if you can grab the occasional crossover gadgeteer, but hearing that this project was being used as the primary lookalike audience and was thus one of the most important audiences for my project to validate was pretty upsetting. If I had known that this is the strategy that Funded Today was going to take in marketing Flickerstrip before I had signed over $3500, this story would have gone very differently.

I raised this issue with them and asked for a refund on the basis of being misled into engaging in a validation that was doomed to fail from the start. The resulting email conversation lasted for about a week and consisted primarily of ignoring the basis for my refund request and repeatedly citing their policy on the matter. In their defense, I did sign my life away on this and with it, likely all legal recourse.

For those curious, here’s a screen shot from my Google Analytics account showing the traffic and conversions driven by Funded Today:

Screen Shot 2016-06-21 at 5.55.06 PM

This story is not all bad, however. After my engagement with Funded Today concluded, I reached out to Roy at (CommandPartners)[http://commandpartners.com/] to see if he’d be willing to take on marketing for me.

Despite having failed the validation process with Funded Today, a fact that I was upfront about. CommandPartners was willing to take on Flickerstrip.

In contrast, here is the screen shot from Google Analytics showing the traffic and conversions from CommandPartners:


CommandPartners managed significantly higher conversion rates on their two best audiences than Funded Today. So much for Funded Today claiming that they’re the “Best Marketing company in the business” a line that they repeated multiple times during the sales call.

That said, the true value from CommandPartners (and Funded Today’s failure) is that working with CommandPartners was truly a wonderful experience. I had multiple long conversations on the phone with their advertising specialist who explained in detail the audiences that he was trying and which ones were working well and which ones weren’t. After the campaign ended, I had a conversation with another team that focuses on post-campaign marketing to discuss the possibility of hiring them for continued marketing for Flickerstrip. Ultimately, they recommended against it for my project, but once that was off the table, the guy I spoke to spent the next hour giving some very helpful suggestions on how he would market my product and even offered further assistance down the line either free or at a low consulting fee.

I hope that this post convinces someone to pass over Funded Today and instead take a look at CommandPartners.

Detailed Conversion Tracking with the Facebook Pixel on Shopify

Disclaimer: I just deployed this code to my Shopify site and it’ll be a few days before I can verify that it’s actually working.

A quick search for conversion tracking with Facebook and Shopify returns a couple of half-hearted setup instructions that involve dropping the pixel code into two places in your Shopify dashboard. While this is functional, you’ll be missing out on some very key events: AddToCart, InitiateCheckout, and Purchase.

Shopify has one such article here that does a thorough job of showing the two places that tracking behaior should be added. If you’re lost, follow the instructions here before continuing.

Following these instructions will get you to the point where your Facebook Pixel is being loaded in the head of your layout liquid file and in the checkout additional scripts section.


Now we need to enhance our conversion tracking with those events listed above. Let’s start with AddToCart. This gets called when the user, obviously, clicks the AddToCart button. The problem is, clicking add to cart ends up redirecting you to the /cart page without loading a page. Because of this, we need to track the event before they leave the page on which they clicked the AddToCart button.

Go into your Online Store > Themes dashboard, click the “…” button, and select “Edit HTML/CSS” to get to your theme editor.

Find the “product.liquid” file that’s responsible for rendering your product page. There should be a form there labeled “add-item-form” or something similar. Now, in order to track this, we’ll use the submit handler for this form. Because most (all?) Shopify themes use jQuery, we can use this snipped to send the tracking event to Facebook every time the AddToCart button is clicked. (add this at the bottom of product.liquid)

<script type="text/javascript">
$("#add-item-form").submit(function() {
    fbq('track', 'AddToCart');

Now, this is sufficient to pass the class, but since we’re overachievers (otherwise why would we be tracking with a Facebook Pixel in the first place?), we’re going to enhance this with the information about the product.

The AddToCart event supports these parameters: value, currency, content_name, content_type, content_ids. In Shopify’s liquid templates, we have access to these values through the “product” variable. We’ll update the code as follows to track product information every time a user adds something to the cart:

<script type="text/javascript">
$("#add-item-form").submit(function() {
    fbq('track', 'AddToCart',{
        value: {{ product.price_min | money_without_currency}},
        currency: '{{ shop.currency }}',
        content_name: '{{ product.title }}',
        content_type: 'product',
        content_ids: [$("#product-select").val()],

There is one significant compromise that I’m making in this example for simplicity. We’re using the product’s price_min value to assign a value to the AddToCart event. If you have variations with a dramatic difference in price, this may not be ideal for you. If you’re interested in this, shoot me an email and I’ll point you in the right direction.


Next up, InitiateCheckout. This event fires when the user clicks the “Checkout” button from the cart. The edit will look similar, but this time we’re editing the cart.liquid file (in the HTML/CSS editor again). In my template the form is being identified with “cartform”. Because there are two buttons on this page, we’re using the “click” handler instead of the submit handler. With the InitiateCheckout event, we have the following parameters: value, currency, content_name, content_category, content_ids, num_items. We’re going to ignore most of them for simplicity and just provide the value that we checked out with. This is the most important thing for determining the ROI on our advertisement.

<script type="text/javascript">
$("#checkout").click(function() {
    fbq('track', 'InitiateCheckout',{
        value: {{ cart.total_price | money_without_currency }},
        currency: '{{ shop.currency }}',
        num_items: {{ cart.items.size }}


Now for the event we’ve all been waiting for. The purchase event represents the last stage in our sales funnel. Because Shopify handles all of the actual payment handling, we don’t have access to the final page in our theme editor. Instead, we have to find the checkout snippet field in our dashboard.

Go into Settings > Checkout from the sidebar of your dashboard and scroll down to the field that’s labeled “Additional content and scripts”

You should already have your Facebook Pixel code there. If you don’t, grab it and paste it in. Now we’ll be adding some extra code after the line that looks like: fbq('track', "PageView");

We’ll be adding the Purchase event which accepts these parameters: value, currency, content_name, content_type, content_ids, num_items, order_id.

{% if first_time_accessed %}
    fbq('track', "Purchase",{
        value: {{ checkout.subtotal_price | money_without_currency }},
        currency: '{{ shop.currency }}'
{% endif %}

You could certainly get more fancy than this.. but this will give you the main thing that you’re interested in. The tracking information on the confirmed purchase. Now you can optimize your Facebook ads for actual sales numbers rather than just participation in the checkout process.


Being a responsible activist

Opinion pieces and their corresponding opinions are all the rage these days. Social media has give every Tom, Dick, and Sally with a computer and an internet connection the ability to share their views publicly. While there are countless devils in the details of our newfound lust for content, I would highlight one such devil that I have seen prey on a good number of people that I respect; as well as healthy collection of those I have yet to find that respect for.

This devil is one I shall call “irresponsible activism,” one that, in my questionably-humble opinion should be diligently hunted down, ridiculed, and ultimately banished from civilized discourse.

What sets a responsible activist aside from the others? Before we can dive in to this, we must first take a vow of impartiality while sorting through the swarm of opinions clamoring at your news feed. There will always be people who disagree with you, many times there will be a vast multitude of them which may not even agree with each other. It is important to realize that the quality of an article is independent of it’s slant on the issue. To be a responsible activist, you must be able to read something you do not agree with and still give it credit for its quality.

While this list is by no means complete and of course, open to debate, it will provide a good starting criteria for evaluating an article and ultimately deciding whether it is a candidate for the esteemed pedestal of responsible activism.

Fails to adequately support opinions with facts, sound logic, or good sources.
This one is a classic that I’m sure you’ve heard about in school. The core of it is that being able to identify good sources and bad sources is an essential skill when separating high quality works from low quality ones. A reliable source is likely to be from somewhere you recognize as being known for impartial and high quality articles, something relatively high profile like NY Times, BBC, or ABC. This is not primarily because these places are authorities on anything, although many of their authors do have an academic or experiential background on their topic. The important part is that they are trained to do their homework, have their articles reviewed and edited to a high standard, and operate under intense public scrutiny with a reputation to uphold.
Here is a short article from Cornell with some advice on evaluating a source.

Sound logic and well accepted facts can also serve to better ground an article in reality and can be used to support conclusions in lieu of sources. Depending on the kind of conclusion you’re drawing, citing sources may not even be very appropriate.

For every opinion you should be able to ask the question “why should I believe that” and be able to find the answer somewhere in the article. Any exceptions to this should be clearly separated from the rest of the article.

Fails to add value to the “conversation” or movement
This value could be just about anything, but without it, it may be more appropriate to share links to your sources with little to no commentary; the sources will speak for themselves. The value that you add may be aggregation, where you bring together a number of sources and fit them together into a meaningful and cohesive story. It could be commentary or review of one or more sources where the author dissects the original sources and offers critique on the original source’s analysis or sources. It could even be some sort of summary of the original sources that is easier to read and understand that the original. It should be pretty obvious to the readers of the article what the value that you add is.

Beware of pieces that offer only opinion and commentary. While these may be add value in the form of a unique perspective, they are unlikely to be a high quality citation. Instead, consider citing the original sources directly.

Fails to provide a call to action, a proposed solution, or a meaningful conclusion
This is similar to the previous one in that it is aimed at making sure that the piece contributes to the world in some positive way. A rant, while cathartic, isn’t particularly useful to the world at large. While having an opinion is healthy, being an activist isn’t about having opinion, it’s about having a goal. A piece of responsible activism should further that goal by highlighting some aspect of reality, having a supportable opinion based on that reality, and then offering a path forward. Writing to simply “raise awareness” fails to add value to the conversation by being useful only to readers who are not already aware of the issue. Raising awareness comes automatically with a well written and informative post that contributes to the movement.

It should be noted that news items are exempt from this requirement. The tone of a news article is that it should serve to only report the facts and should not be a source of much opinion or direction.

Fails to clearly separate opinion from fact
As mentioned briefly before, opinion and fact should be clearly separated such that a reader is constantly cognizant of whether they are reading something that is intended to be factual or a logical conclusion from something that is an expressed opinion that may not be fully supported directly by the facts presented. Ideally the bulk of the opinions are grouped together in one place so that the reader doesn’t have to constantly switch back and forth between analyzing your logic and sources objectively and evaluating your opinions in a more subjective way.

Speaks to a well-defined audience
True for any written piece, defining, knowing, and speaking to your audience is crucial. Your audience may be people who disagree with you in an attempt to convince them to agree with you. It may be people who generally agree with you and you may be hoping to refine an opinion or present a specific solution. Perhaps it’s people who have never heard of the issue or people of a certain demographic. It may even be a combination of a few of these. Your audience can be as broad or as narrow as you choose, but it must be well defined and at the forefront of your mind throughout the article. Avoid insulting your audience. Don’t cover in detail something that you expect your audience to already know. Address concerns and opinions that you know your audience might have. You may even address your audience explicitly, in many cases, letting your audience know that your article is written for them will make them more likely to receive it well.

Uses inflammatory, biased, or otherwise inappropriate language
Insulting the opposition or exaggerating events and evidence with the use of intentionally charged language may work well to stir up a violent mob, but it has no place in responsible activism. If a cause truly is just and well presented, it will win people over by appealing to them with logic, reason, and empathy. Inflammatory language serves only to further polarize readers and often causes your true audience (the people you’re trying to convince) to feel defensive and dismiss the points, even if there may be validity buried in the incendiary language.

Let’s play a game, read each article and determine the following:
Topic: The topic/issue at hand, described in a neutral way
My Opinion: Your personal opinion/side on said topic (important to note your opinion as it helps others to evaluate your analysis of the article)
Author’s Opinion: The author’s opinion on the topic
Article Quality: Is the article an example of responsible activism? (which of the above items does it violate)


Wikipedia Declares War On Women, Gives Anti-Feminist Males Control Over Gender And Sexuality Entries

Topic: Wikipedia arbitration committee’s handling of the ongoing dispute over the Wikipedia article on the “Gamergate controversy”

My Opinion: Mostly undecided and neutral with the caveat that I generally trust Wikipedia to act responsibly, but don’t know all the details of this specific incident.

Author’s Opinion: Extremely against Wikipedia’s decision to ban editors from editing, believes that Wikipedia is acting in favor of the “anti-feminist” movement.

Article Quality: Extremely low, this article manages to hit almost all of the points I’ve assembled:
– Sources: A brief perusal of the links that the article shows that the sources provided are an opinion piece with approximately the same slant/quality as the article and a personal blog post that is also clearly slanted and is quoted of some pretty inflammatory language and tone. The fact that there are only two sources and they’re both slanted in the same direction is enough to make this article even less useful than the cited sources themselves. Because of the topic is covering a news item, the omission of a more reliable news source or two is further cause for alarm.
– Adding value: As I mentioned in the last bullet, either of the linked sources, while also of low quality, would make for slightly more constructive reading material on the subject.
– Fact from Opinion: After reading this article originally, oddly enough, the question left in my head was “what even happened?”. Not only does this article do a poor job at giving all relevant facts from the issue, but the facts that are available are scattered through what is basically a rant about how Wikipedia’s decision is anti-feminist.
– Inflammatory Language: This last one is a gimmie. Both the tone and the language is extremely inflammatory. Honestly, you need not read past the title of this article to decide that it’s grotesquely irresponsible.


Wikipedia votes to ban some editors from gender-related articles

Topic: Wikipedia arbitration committee’s handling of the ongoing dispute over the “Gamergate controversy” page.

My Opinion: Mostly undecided and neutral with the caveat that I generally trust Wikipedia to act responsibly, but don’t know all the details of this specific incident.

Author’s Opinion: The author manages to remain extremely neutral while discussing a variety of different views on the issue.

Article Quality: Extremely high. While this article is hardly an act of activism, it deserves recognition as neutrality we should aspire to. It covers the facts and the opinions/concerns of both sides without getting involved personally. Notice that this article manages to avoid the things I’ve listed pretty well. When writing and analyzing pieces of activism, compare them as much as possible to news articles. It’s okay to add your opinion, but being able to present the facts and the other opinions in a concise and eloquent way will work wonders for establishing yourself as a reliable source of information as well as opinion.


DEA warns of stoned rabbits if Utah passes medical marijuana

Topic: Medical marijuana bill in Utah

My Opinion: pro-legalization

Author’s Opinion: Seemingly pro-marijuana, he does a fairly good job at staying neutral, but there are a few places that make me fairly certain that he’s pro-legalization

Article Quality: Good, not only does the article do a good job at covering the opinions and statements of a few choice opponents, he does a good job of addressing them in a concrete way.
– Sources: He cites a number of sources that, while aren’t uniformly high-quality, do serve to more than sufficiently illustrate his points. He’s not leaning extremely heavily on his sources, instead, he’s highlighting them as interesting items.
– Conversation: He addresses a number of items that the opposition has brought up and while he doesn’t firmly refute them, he manages to gently defuse them in a way that is unlikely to insult anyone.
– Call to action: This article doesn’t have a call to action, but as a news story, it’s allowed to omit it.


Fake Olive Oil: What You Need To Know New

Topic: Fake olive oil being stocked in stores and sold as real olive oil

My Opinion: Neutral, uninformed

Author’s Opinion: Many olive oils are fake

Article Quality: Low. The biggest glaring issue with this article is the lack of quality sources. If you click on any of the links, you’ll find that it’s mostly a link farm for other “news” articles on eatlocalgrown.com. It’s especially concerning that they’re citing statistics and studies that are either not linked or improperly linked. My attempts to track any of these studies down failed miserably. The eerie part is that other than the lack of links, this article actually seems fairly good. If you are willing to trust the author’s research, it comes across as a well supported and news-worthy piece.. but because it’s from a site that doesn’t have a very large public reputation, it can’t be taken at face value. This sort of article is particularly persuasive to people who don’t bother to source and fact check. All of these studies may be legitimate, but because we don’t know, and can’t find out from the citations, we have to assume that they are not.

Designing and building an Arduino compatible PCB

Having just gone through the process of designing and building my first Arduino-compatible PCB, I know very intimately two things. First, it’s not easy. The process is riddled with minor pitfalls that left me scratching my head. The second is that the documentation on the process is few and far between. It seems that there are many people asking for help installing firmware for custom boards, but few of them actually building their own boards.

Selecting a processor

There are a number of Arduino compatible microcontrollers out there. Even the official Arduino boards, use a variety of different microcontrollers. As someone who is still relatively new to Arduino, I highly recommend simply picking an existing board and modeling your board after it unless you are quite familiar with the Arduino firmware and are comfortable with the idea of porting and/or recompiling it.

In my case, I chose the Atmega32u4 which is a used by the Leonardo board and conveniently has an onboard USB controller. While not entirely necessary, having the built in USB controller will make programming this the “Arduino way” much simpler.

Designing the core microcontroller wiring

Each microcontroller, Atmega or otherwise, will have some minimum components or wiring that you’ll need to satisfy. While this information is detailed in the datasheet for the microcontroller, it is likely to be quite cryptic unless you make a habit or hobby of reading technical datasheets.

In general, you’ll need a stable power supply, a decoupling capacitor or two for good measure, and an ICSP breakout. Optionally you can add an external oscillator and/or a USB port which may require a USB controller if it is not included (as with the Atmega32u4).

The first resource you should lean on heavily for this step is the pin descriptions for your processor. For Atmegas, these are listed at the top of the data sheet and contains basic information on what the pin needs to be connected to.

Some of the pin descriptions can get a little cryptic, don’t be afraid to hunt down the more detailed information on that pin that comes later in the data sheet. Often these include different wiring diagrams for different configurations. Often the base requirements are very minimal but for many projects, depending on your requirements, it won’t be sufficient.

I’d highly suggest trying to find a bare-bones wiring diagram that someone else has designed for your processor. Here is one for the Atmega32u4 that I found with some Googling:

Here is the version I ended up using for the starting point for my projects.


Oscillator (AWSCR-16.00CV-T): The external oscillator is not necessary even for USB, the internal oscillator seems to function fine for most applications. That said, many of the boards I’ve seen use an external oscillator. At this point, I’m operating under the otherwise baseless assumption that the external oscillator is somehow a good idea. I suspect that it has something to do with the accuracy of the oscillator, but I don’t know enough about it to know for sure. The linked part includes the two capacitors shown in the Atmega32u4 datasheet.

22 Ohm resistor (MNR12ERAPJ220): This component is a bussed resistor. Because the two 22 Ohm resistors are right next to each other on the USB data lines, using a bussed resistor seems like a pretty good idea, though individual resistors will function just as well.

Diode D2 (MBR0520LT1G): This diode provides the ability to power your board via USB. This is again, not necessary, but exceedingly useful. Often I’ve found that projects will have their own power supply, but during development are ultimately more convenient to power via USB.

Once assembled, you should be able to connect an AVR ICSP to the ICSP port and use the Arduino IDE to “Burn Bootloader” while the “Leonardo” is selected. This will load the Arduino firmware and will enable programming via USB. There may be a way of loading the bootloader through USB by taking advantage of a built-in USB bootloader that I’ve seen mentioned a few places in the Atmega32u4 datasheet, but I have not tested this myself.

Please email me any comments, questions, or corrections you have about this post at julianh2o@gmail.com.

Reflowster has reached its funding goal!

With 10 days to spare, Reflowster has made its funding goal of $10,000. We’re of course extremely pleased to see this project hit this important milestone and we’ve already been gearing up in preparation for reaching our funding goal. Over the next week or so we’ll be ironing out some more kinks in a new PCB design and shipping it off for printing. The new version of Reflowster has a number of significant changes including a whole new case design and some additional features.  The core functionality, however, is the same.

Stay tuned on Reflowster for more updates as we solidify the plans. We’re hoping to be fully internationally compatible by the time we deliver as well, though we haven’t quite promised this yet.

Reflowster Kickstarter Launched!

Hooray, today the Reflowster Kickstarter officially launched!

Over the next month, we’ll be receiving pledges and posting further updates on the development status of Reflowster as well as commenting on the backing progress.

We’re very excited to finally have this project up and are optimistic about our backing goal and hope that our visitors share our excitement!

As with before, you can follow our progress on Twitter at @Reflowster or visit our website at reflowster.com

Reflowster Kickstarter

In the month since my last update, we’ve been working hard, but it hasn’t been on the hardware. Instead, we’ve been gathering all of the media together in order to launch our Kickstarter campaign for our reflow controller that has been dubbed the Reflowster.

Anyone who has spent any time on Kickstarter or backed any projects probably knows that the video is probably the most important part. Naturally, we’ve spent a good amount of time filming, refining, and editing our video.

Before getting started on the filming, we spend some time writing an outline for our video which relied heavily on a detailed discussion of what the market for Reflowster is. Ultimately we decided to target three somewhat distinct groups.

The first group, and perhaps the most obvious, are people who are already familiar with reflow soldering and perhaps even solder their own boards using this technique. For this group, we knew we needed to present an angle that would convince them to switch from their existing solution to Reflowster.

The next group are hobbyists that are familiar with designing a custom PCB and are used to hand-soldering components to these boards. In this case, we decided to try to show this group the reflow soldering process and emphasize how easy and beneficial reflow soldering is compared to hand-soldering through-hole parts.

The last group are the Arduino developers. These guys have never soldered their own PCB before, but are familiar with the Arduino boards and are comfortable with the programming aspect. These users might have existing breadboard projects or have maybe soldered directly to the Arduino before. For this group, we aimed to show that ultimately PCB design is not as difficult as it might seem and that in order to get the most out of your personal projects, it may be time to graduate from a pre-made Arduino board into a custom designed PCB.

Once we had a complete outline, we wrote the script. The script follows the outline exactly, but fleshes out each section into a readable voice over and a list of media that will get displayed for each scene.

The media in particular was an important part of this process as it served as a checklist for us on our “film day” where we got together with as much Reflowster paraphernalia as possible and took photos and video to effectively showcase our product.

The next step was to refine the script and film/record it. We decided to do this in a few waves because at this point we didn’t even have a draft of the video to judge for content, length, and fluidity. We filmed ourselves on a couch with a Galaxy S4 rubber banded to a tripod. Certainly not the most professional of video setups, and we later refilmed the video and voice-overed the audio. That said, this first take was an invaluable tool for gauging the flow of the video.

Assembling the video was a bit of an exercise in frustration as it was my first time in years using iMovie. Definitely do not recommend the program unless you have no other options, which is unfortunately likely to be the case. However, once the movie was mostly assembled, it immediately became which parts worked well, which parts needed refining, and where additional footage could be inserted.

A few more days of recording, re-recording, voice-overing, and some finishing touches and the video was in a place that we felt was good enough to release.

At the same time as the video work was being done, we also started working on the text and image content of the Kickstarter page itself. We basically figured that the text should reiterate what was said in the video but should go into more detail for those backers who are interested in the details. One of the biggest things I noticed here is that the pictures and charts are extremely useful in breaking up the text and providing an easier to digest experience.

We revised the content internally a few times, and have now entered a “preview” mode where we’re sending our Kickstarter out to a few people to solicit feedback. We plan on working on this feedback over the next week and then submitting the Kickstarter for approval at which point we expect to wait approximately another week for the hardware project approval.


Once we’re approved, we plan on launching in early April.

Through all of this we’ve also been refining our launch plans which now incorporate Twitter posts, a website, and out reach to friends, family, and key people involved with hobby electronics.

You can check out our website at http://www.reflowster.com or follow us on Twitter at @Reflowster

Reflow Controller Update

My previous post highlighted some of the initial design behind our reflow controller project. It’s been a few weeks since then and in that time we’ve come a long way on this project.

After a few more revisions of the relay and reflow boards, we shipped off the PCB design to have it manufactured. At the same time, we placed the orders for the parts, the cases, an AVR ICSP for flashing the firmware, and a handful of screws.

Here are some photos of the assembly. In reality, the device stayed partially assembled while we worked some of the bugs out, but a few weeks after our initial assembly, we finally closed the case up.




As expected, the mistakes we made on the initial design, despite all of the revising, quickly became apparent. Fortunately the mistakes we made were extremely minor and did not ultimately affect the viability of this manufacturing run.

On the relay board, the worst mistake we made was that we had flipped the footprint for the relay across the Y axis. Because of the asymmetric layout of the pins, this meant that the relay simply wouldn’t fit into the PCB the way that we had it oriented.

Fortunately for us, because it was the perfect mirror image, we ended up flipping the PCB upside down and placing all of the through-hole parts on the back of the PCB. Other than being a little bit strange and highly amusing, this did not affect the functionality of the relay board.

We also managed to rotate the silk screen of the transformer by 90 degrees. This did not affect the pin layout at all, but made the transformer hang out over the edge of the PCB and come dangerously close to interfering with the relay. However, other than being a close call, everything still fit into the case perfectly, if only with a few millimeters to spare.

After flipping the board and the components that we had already soldered to the other side, the relay board worked spectacularly well. An initial test gave us correct voltage readings on both the 3v and the 5v pins. Furthermore, shorting the relay pin to power gave us the satisfying click of a fully functional PCB.

Next up, the reflow controller board. While we ended up hand-soldering the choice few surface mount parts on the relay board, the controller board had significantly more parts with smaller pins. As such, we decided to reflow solder it.

Despite being only the 6th or 7th board we’ve ever reflow soldered, the application of the solder paste is becoming easier and easier to get right. It seems to me that the best take home for this is that less is more. As cliche as it is, the amount of solder paste needed to get a good contact on pins that are so small is much smaller than you might think. In most cases even just barely coating the dental pick with paste and smearing it over the contact was sufficient to get a solid contact on the reflowed board.

After reflow soldering the surface mount parts, it was a fairly quick matter to get the remaining through-hole parts soldered in and functional. Miraculously we were able to program the board easily using the Arduino IDE via the “Upload Using Programmer” option.

At this point, we discovered an additional oversight. When designing out the connections between the Atmega microcontroller and our various components, we neglected to take into consideration that the Arduino bootloader not only performs a mapping between the different port and pin combinations to a more consumable numbering scheme, but also reserves some of these pins for it’s own use.

Fortunately only a few of the pins are reserved and unavailable. As it turned out, one of our LEDs that we had indented for an indicator was hooked up to what the Arduino bootloader uses as a TX indicator. The other one, a segment of the LED display, was hooked up to the HWB pin. To this day, I don’t entirely understand what this pin is useful for, however, ultimately the HWB functionality seems to easy to disable by the fuse bits at which point it becomes a regular input/output pin. However, instead of being nicely mapped to an Arduino pin alias, we had to address it directly through port manipulation. This of course, resulted in some ugly code that will fortunately be easy to remove when we hit the next iteration of the PCB.

The last piece of functionality that was a bit stubborn to get working was the USB programming using the Arduino bootloader. Anyone familiar with Arduino will know that most of the boards are easily programmed via a USB cable. Because we’re planning on marketing this product not only to the “hacker” community but also as a hackable device, we plan on providing a USB port with which anyone with some Arduino knowledge will be able to use to reprogram the hardware to do their bidding.

We had chosen a 20Mhz oscillator to run the Atmega32u4 and it turns out that this was not the correct choice. In order to successfully communicate on the USB, an interval of 8Mhz is required. Fortunately, the Atmega has an 8Mhz internal oscillator that can be used instead. While this is an easy operation in theory, in practice, it meant that we had to recompile the bootloader to use the new speed. We have some research to do yet about how to make this a bit more developer friendly in the future. That said, once we managed to download the bootloader source code and all of the dependencies, tweak the processor speed options, and upload the new code as our own custom entry in Arduino’s boards.txt, the USB worked like a charm.

For our next iteration of this project, we are probably going to switch to a 16Mhz external oscillator and hopefully end up with a board that is 100% compatible with an existing Arduino board so that when a developer wants to reprogram the board, they simply pick an Arduino from the list.

Despite all of these minor glitches, the controller actually functioned beautifully. Here is a picture of it in action. It is currently heating the toaster up and displaying the current temperature on the display.


3D Bodies View

For previous boards, I’ve never had a need for it, but Altium provides a neat feature for modeling the 3D bodies of your components. While many hobby boards will have plenty of space and components with a very simple vertical presence, certain projects and components may be a little more complicated. In my case, a few components, would stand off from the board allowing space to place certain components underneath them. Often this would be enough space for a microcontroller or flat parts but not enough space for headers, connectors, and larger capacitors.

When designing a component in Altium, you have the option of specifying a number of “3D bodies” in addition to the pads and silk screens that you are probably already familiar with. These 3D bodies give you the ability to specify in a fairly simple way the vertical component of the part. While nowhere nearly as sophisticated as a 3D modeling program, this is quite sufficient for describing the basic shape of a component in 3D including overhangs, shaped extrusions, cylindrical buttons, and even spherical bodies.

The most basic benefit of using this feature is that you get access to a much more powerful component placement rule check that takes into consideration the 3D bodies, when available. The other benefit is that you can now get a better feeling for what your board looks like in 3D view.



Last, but certainly not least, this 3D PCB can be exported in a format that is compatible with 3D modeling software so that you can better model either multiple circuit boards or the PCB’s participation in an enclosure.

Tinkering Update: Reflow Project

After the first taste of reflow soldering, Eric and I, as good engineers are wont to do, decided that the task was begging for automation. In particular, we decided that it was sorta silly that the cheapest commercially available reflow oven goes for $500 driving most hobbyists to resorting to a mundane toaster oven. A thermocouple ordered on Ebay, a simple relay, and about 30 minutes later we managed to hack together a simple reflow toaster oven with a soldering profile hard coded to the paste that we are using.

The exercise, and the fact that the breadboard solution was rather unwieldy and inelegant got us thinking that it might be worth building a more integrated solution to what seemed like a fairly common problem with no particularly easy solution. A little bit of market research did reveal some previous projects that people had done to the same basic effect, but none of them were particularly convenient or streamlined.

The reflow controller that we were planning would consist of a relay to control the power to the toaster, a thermocouple to measure the temperature of the oven, and a simple interface. The interface would be comprised of a 3 digit 7-segment display, a knob, a button, and some LED indicators. All of this should fit into an AC wall plug enclosure from Polycase that we will eventually be able to customize to our needs. The idea is that you plug this unit into the wall and then use the receptacle on the back to plug in your toaster oven.

The first part of this project is the relay and power supply. The goal here is to create a module that can both transform and control a standard AC 120V wall outlet. Normally our electronics projects utilize an external AC adaptor that brings us 5V DC power directly to our board. In this project, because we want to keep everything self contained and because we’ll be controlling the outlet, we want to avoid the inconvenience of plugging in multiple devices and combine these two items into one.

To do this, we connect a transformer in parallel with the relay and the outlet in series with the relay. This will make sure that the microcontroller receives power even when the relay is cutting power to the outlet. The power supply half of the board consists of a transformer to bring the voltage down to 5V, a bridge rectifier to flatten the AC signal out into DC, and a collection of voltage regulators and capacitors to generate a consistent output. We ended up providing both a 3V and a 5V output. For the relay part of the board, we used a relay driver and a power relay. Many other solutions use a solid state relay, but our initial experiences indicate that it may not be necessary and would be significantly more expensive. It remains to be seen whether the power relay will be sufficient.

Here is the PCB that we ended up designing. Notice that there are mounting holes and a cut-out on the right side for the outlet pins that protrude up into the inside of the case.



Polycase very nicely provides 3D models of all of their cases for download. It was a bit of a trick to get the CAD file transformed into a format that SketchUp could recognize, but once done, the model proved an extremely useful tool for both visualizing the product and ironing out details such as PCB size and shap, hole location, and header location as well as part clearance.

Here is a view in SketchUp of one of our earlier versions of this. Because this 3D model is only used for planning purposes, many of the pieces that I used are simply approximations of how the part would look. Most of these components were build in SketchUp using their respective datasheets as a guide.



The upper layer PCB shown in the image above is where the controller itself lives. This board will contain the microcontroller, the controls, and the connectors. We decided to build this board “upside down” by placing almost all of the parts facing down (away from the front panel). The exception, of course are the pieces that actually do need to face the front panel such as the 7-segment display, the buttons, the encoder, and LEDs. We did this to provide a little more breathing room for all of the parts that we needed to fit on there as the PCB was getting pretty tight. Here is the current version of the PCB as of writing this.




One of the most exciting things about this project so far has simply been all of the designing that has gone into the 3D aspect of working within the case. In the past it has simply been a matter of getting all the parts on the board and hoping for the best, but now there are real world space constraints and physical requirements such as mounting holes and clearance is something that matters much more now that we’re working in multiple layers on multiple boards with large components.

Look for the Kickstarter when this gets off the ground and I’ll hopefully post again with an update when we start getting these boards printed.