• How to Ship Product

    Thursday, December 19, 2013

    12/19/2013— Kelsey Breseman

    One of the primary reasons that hardware is hard is that you have to deal with logistics. The product actually has to move from Point A to Point B. Knowing this, I set out early to tackle the piece of supply chain that involves taking finished product and delivering it to customers.

    Shipping, it turns out, is a deep rabbit hole. With this blog post, I hope to introduce you to some of the pitfalls and key concepts within shipping and fulfillment– particularly for international delivery.


    Initially, I assumed that shipping would be pretty simple: you print some labels, you put a thing in a box, and you’re good to go. As it turns out, there’s a lot more to worry about when you have (1) a lot of product (2) differences between orders and (3) anything international.

    Back in August, when we were figuring out our crowdfunding campaign, I’m pretty sure our discussion on going international went like this:

    Me: Hey Jon, somebody on Twitter wants to know if Tessel is going to be available internationally. Did we decide that yet?

    Jon: Sure, why not? Checks a few Kickstarter projects. It looks like people usually add $10 for international shipping.

    Image: postal cost for seven beta packages to be shipped internationally via USPS Global Express

    I have no idea why people usually tack on $10 for international shipping. It costs just over $15 to ship a small 1 lb. box from the United States to most other countries (e.g. Germany, Australia, the Czech Republic). And that’s just postage– which, it turns out, is not the full logistical cost of shipping. Here are a few more pieces you’ll have to worry about, whether you’re shipping internationally or not:

    Beyond Postage

    Before you actually get to the postage stage of sending product to customers, there are a few other things to take care of in order to prepare your product to ship. These things fall under the heading of “fulfillment”. And, it turns out you can get a ‘fulfillment house’ to take care of these things for you. Fulfillment includes:


    This is an interesting problem: how much does packaging matter? In some ways, your unboxing is a part of your first run experience, so custom packaging might be important to you. On the other hand, you might be working with tight margins, in either time or money, so you just want to get whatever causes your product to arrive intact. Fulfillment houses will typically source packaging for you or help you source it yourself if you want something special, and will then pass the cost of the packaging on to you. Uline is a common source for packaging.

    Pick and Pack

    This is the service of putting the right things into the right boxes. In the case of Technical Machine, since we now have ~15 different SKUs (Tessel and the different modules), there are ~87178291200 different possible combinations of product (actually, in theory, it’s infinite because there is no limit to r, the number you select. I just wanted to write a big number). The point is, it’s a real pain to pack the right things into the right boxes, and as a start-up, you probably don’t have time to do that and deliver quality on time. The price here is pretty much never a simple number, but an approximation can narrow it down to “cost of first item in package” and “cost for each additional item in package”.


    The USPS and other carriers offer discounted rates for volume, and some carriers also offer discounts for connections with their preferred fulfillment houses. Your fulfillment house can likely help you negotiate rates with a postal carrier. In any case, it is best to find a shipping consolidator so that your couple of thousand units can be palleted with a million other units being shipped overseas that day. If you’re shipping internationally, it may be cheaper to have different shipping services domestically and internationally.

    Legal Stuff and Filling out Forms

    If you’re shipping internationally, you will run across complications almost immediately in the space of customs and taxes. The mere drudgery of filling out 1,000 customs forms is a good reason to get a fulfillment house. But even if you do, you should familiarize yourself with the legal implications of shipping goods across borders. Here are a few terms you’ll want to look up:

    • VAT: Value added tax, similar to a sales tax.
    • DDU/DAP/DDP (Incoterms): These acronyms refer to when duties are paid, to whom, and who pays them, as well as who is responsible for the goods during different phases of the journey.
    • Importer of Record: The entity responsible for customs.

    I won’t define the terms fully here because I don’t want to give misinformation and the legal definitions change. But they are a good start to wrapping your head around the complexities of international shipping.

    Choosing a Fulfillment House

    Choosing a fulfillment house is very complicated; each fulfillment house has a very different style and set of services. Here are a few good questions to cover when you’re selecting between options:

    • What services are offered? Some fulfillment houses are combined fulfillment and post, some don’t cover postage but offer extensive other services such as customer service, returns, and custom packaging. Most fulfillment houses will have an overview-of-services document they can send you.
    • What else can they take care of? Ask about the little things: will they source electostatic packaging for your electronic parts? Can they put a UPC sticker on it so you can send big packs to distributors? Will they integrate the data from two different order systems for you? The fulfillment house might be able to take care of a lot of little details for you that you hadn’t budgeted into your timeline.
    • What do they require from you? What sort of data do they need? Do you need to supply barcode numbers? Is there a minimum shipping volume?
    • Who do they normally work with? Interaction styles vary widely, and you can infer a lot about the fulfillment house’s usual customers based on the interaction style: are they fast on email? Do they put you on a conference call? Do they prefer you call their cell phone? You are going to need a good line of communication with your fulfillment house, so make sure you can get in touch with them easily and effectively. Then gauge their fit: a big piece of my fulfillment house selection was because I wanted to work with someone who was used to working with start-ups, and could tell me about pitfalls such as chargebacks on pre-ordered products. Other fulfillment houses were just as technically equipped, but were used to working with bigger corporations and more established businesspeople.
    • Are they equipped to work with your customer set and product? If you have international clientele, make sure the fulfillment house is able to process foreign characters. If you have an oddly shaped or very large product, make sure their machines can handle it.
    • What options do they have for expansion? Are you looking for a shipping solution just for your crowdfunding batch, or will you want to keep sending product– in batches or continuously– into the future? Some fulfillment houses are designed to grow with you, with options for international warehousing, customer service, and more.
    • What will they do if… ? Read the service agreement carefully. Make sure you understand what’s going on, and ask questions if you don’t. Here are a few more questions to think about:
      • What does the tracking interface look like?
      • What if an address is invalid?
      • What if the customer returns the product?
      • What happens if there is more product at the fulfillment house than there are orders?


    Of course, you’ll also want to know the cost– here are some good things to know about your product in order to ask for a quote:

    • Quantity
    • Distribution by country of international shipments
    • Description of the product(s)
    • Product size & weight
    • Distribution of number of components per package
    • Any special environmental considerations on your product (e.g. temperature, humidity, special electrostatic handling)

    Also ask about any setup fees and how they handle receiving and warehousing.

    Final Thoughts

    Setting up shipping and fulfillment takes a lot of time; start early. I began researching shipping and fulfillment six months before we planned to use a fulfillment house, and I’m glad I did.

    By far, the most confusing, complicated, and expensive part of this is the international component, and I wish we had entered into it with more research behind us. However, I’m really glad we decided to launch worldwide; around 40% of our site’s pageviews are international, and a similarly high percentage of our crowdfunding backers were international as well. More importantly, a great deal of enthusiasm has reached us over Twitter and email from various countries, and it’s hugely exciting to us as a team to see interest in open source hardware and web-connected programmable devices worldwide.

    Please reach out if you have questions!

    Kelsey Breseman



    #kelsey breseman #technical machine #tessel #shipping #customs #international shipping #fulfillment #crowdfunding #logistics

  • Technical Machine is Growing!

    Monday, December 16, 2013

    12/16/2013— Jon McKay

    Today, we’re happy to welcome Kevin to his first day of work at Technical Machine!

    We originally met Kevin when he joined Olin College back in 2010 and were blown away by his talent and knowledge of both hardware and software. Since then he’s only honed his skills and already caught a few bugs in our firmware during his on-boarding process.

    Kevin already has experience starting a company focused on making great developer tools. He co-founded Nonolith Labs which makes an awesome little analog electronics multitool called the CEE.

    He will be working on improving our USB communications, helping Tim make the runtime faster and more robust, and give us the velocity to (hopefully) ship on time.

    I’m really excited to have Kevin on the team and can’t wait to see the magic he works on Tessel.


    #technical machine #hiring #kevin mehall

  • Updates: Accelerometer, Camera, GPS

    Monday, December 16, 2013

    12/16/2013— Updates

    We got in our newest batch of Tessels this week!

    We’re testing them now but it’s likely that this will be the same design used in our production run.

    We also got in 300 Accelerometers from our manufacturer. We’ll be pushing more modules into production soon.



    The GPS module now has working firmware! Here is our first coordinate data:

    (Don’t worry, I fixed the timestamp issue shown here.)


    It’s been a while since we gave an update about the camera module, but here’s a Tessel selfie we took with one of the cameras we’re testing:

    The camera can send data over two different protocols, UART and SPI. SPI is much faster than UART as you can see from the signal readings we did.

    This is sending an image at 38400 baud. It takes… a few seconds. Realistically this can probably go up to 115200 baud and have the transmission time cut down to ~1s.

    This is transmitting over SPI. It takes ~26ms with a 500KHz clock.

    Sooo we’re going to be using SPI.

    Till next time,

    Jia, Kelsey, Eric, Jon, Tim


    #technical machine #tessel #updates #accelerometer #camera #update

  • Zero to Tessel: Teach Yourself Node

    Tuesday, December 10, 2013

    12/10/2013— Kelsey Breseman

    At this point, I consider myself a connoisseur of online learning programs. Coursera, edX, Boundless, Codecademy, Khan Academy– I’ve tried them all. Because I’ve tested out many of these paths, I now feel qualified to offer you a three-step plan to JavaScript and Node.JS fluency– whether or not you plan to use these skills to work with Tessel. There are no prerequisites.

    (image via nodeschool.io)

    1. Codecademy [~3 hours] for JavaScript syntax. If you’ve never coded in JS before (or even never coded at all), head over to Codecademy and spend a few hours in the JavaScript lessons. You need to know about if statements, for loops, how to make a function. If you’re new to JS but not to code, you could probably skip this step and just google things like “JavaScript function”, but it’s nice to get in a bit of practice so you can recognize bad grammar in your code.

    2. Nodeschool: learnyounode [~2 days] is a nice transition. Nodeschool is an all-offline set of courses, where each lesson is a puzzle to complete in your terminal. Learnyounode will take you from a “Hello World” to parsing information from multiple websites asynchronously. If you focused, you could complete Learnyounode in two days. By the end of this, you’ll know how to use Node and npm, and you’ll be more than prepared to start hacking on Tessel.

    3. Olin.JS [~8 weeks] is a class Tim and Jia created and taught last semester at Olin. All the lessons are here on github, so you (like me) can work through them at your own pace. It will take your newfound knowledge of JS and Node and show you what it can really do. It’s designed to take eight weeks, and will introduce you to git, Heroku, Express, JQuery, AJAX and many other useful tools: essentially, it’s zero to hireable for Node. I recommend this course because you’ll make a lot of cool projects, because you’ll become a legit web programmer, and because Jia’s writing is entertaining.

    You don’t need to do step 3 in order to hack on Tessel. Really, you could just use example code to get it working, and by the time we release we’ll have all the necessary information up on a start page. But to unleash its full potential, you’ll probably want the full arsenal of web programming tools at your beck and call.

    Happy coding!

    Kelsey Breseman


    Enjoy this post? Based on this blog post, I’m curating a similarly styled but more detailed pathway for learning to code over at my website ifoundthemeaningoflife.com/learntocode. Check it out! It contains everything from this post, plus a bit more.

    #kelsey breseman #tessel #technical machine #learn to code #programming #node.js #nodeschool #olin.js #olin #hourofcode

  • Power work is never over

    Monday, December 9, 2013

    12/9/2013— Eric Kolker

    We get a lot of questions over email, so today my goal is to answer the question we get asked most frequently: how much power does the Tessel use?

    More specifically, the question usually takes the form of:

    “Hey, guys, just saw Tessel the other day and it looks sweet! I want to use it to build a [ six word description of the project ]! How much power will it use?”

    At which point half of me jumps for joy (cold calls about using Tessel are always appreciated) and half of me rolls up my sleeves. A complete answer touches on power consumption vs. current draw, the role USB can play, and things to be conscious of when designing a Tessellation.

    Power vs. Current

    As it turns out, power consumption is difficult to calculate, and often people actually care more about current draw. In our case, the two are closely related:

    P = IV

    The electric power used by a circuit at steady state is equal to the current flowing through the circuit multipled by the voltage across it.

    Although most devices are in truth limited by power consumption (rather than current output), it’s good practice to never draw more than a power supply’s rated current. On a good day, an overloaded supply will simply sag its voltage (brown itself out) until P=IV, but on a bad day it could become unstable and damage components connected to it. In order to avoid either scenario, most computers will cut power to a USB port if it draws more than 500 mA (2.5 W of power).

    In a world ruled by USB…

    Because the Tessel is most commonly powered off its USB connection, it turns out that current draw is usually the more important number to keep track of. As such, the data points I rattle off quickly are as follows:

    • A bare Tessel, that is, one without any modules attached, draws about 110 mA of quiescent current .
    • We ran a test with a 3.7 V, 350 mAh LiPo battery where the Tessel pinged Tim’s laptop once per second and the device ran for almost exactly two hours.

    The next information I offer is that use of the onboard WiFi radio, flash, and RAM can draw additional currents of 275 mA, 175 mA, and 100 mA, respectively. The astute mathematician will note that 110 + 250 + 175 + 100 > 500, which suggests that the Tessel should constantly be browning itself out and rebooting.

    Although it is probably possible for the Tessel to do that to itself, the reality is that those current draw numbers, like many others, represent the peak draw of the chips in question, as opposed to average continuous draw. This suggests that:

    1. The chips usually draw much less current than that (low quiescent current).
    2. When the chips do draw that much, they do so for a very short period of time (high peak current).
    3. Therefore, it’s very unlikely that the Tessel will do that to itself (we’ve never had it happen to us and triggering such event would likely require that high power WiFi transmission and complete wipes of both the flash and RAM happened exactly simultaneously).
    4. Bypass capacitors on the power rail are really important! They help keep the 3.3 V and 5 V rails at their respective values, instead of sagging miserably during bursts of high current draw.

    When you think about it, all of these make sense: the WiFi radio is only going to use a lot of power when it’s transmitting or working to decode an incoming packet and the memory will need the most power during read/write operations, both of which shouldn’t be happening all of the time (there’s a difference between “every time” and “continuously”). Last but not least, always decouple your rails!

    Plan accordingly

    But I digress… Allow me to explain why I often need to take a minute to collect my thoughts before typing up a reply.

    In order to estimate of power consumption, you need to know what goes into your device and how you plan to use each part. Here are a few key things you’ll want to figure out:

    What modules do you plan to use?

    All of the modules are marked with their peak current draw, but the notion that “they don’t really draw that much” rule doesn’t always apply.

    • Sensor modules (ambient, accelerometer, climate, GPS, camera) tend to use the same amount of current all the time.
    • The nRF and BLE modules (low power wireless communication) use a modest amount of power over a short amount of time to transmit packets and little power for the rest of the time.
    • The GPRS module follows a similar pattern, but draws a truly exorbitant amount of current during transmission and has a higher quiescent current.
    • Because RFID must generate an RF field in order to read tags, it has a relatively high quiescent current. Consumption during transmission is even higher.
    • The relays we chose latch (save their state), so they only draw current when their state is switched, but don’t provide power to whatever they’re hooked up to. On a related note, please be very careful when dealing with wall power. Unplug everything before inserting anything into the relay module and wrap things up with electrical tape when you’re done.
    • Servos connected to the servo module are powered externally, so their power draw is not included in the peak power consumption for the module.

    NOTE: Although most hobby servos can be powered off 5 V, we strongly recommend against powering them off the Tessel’s 5 V rail (more on this 5 V rail later). The inductive kick from the motors could brown out or permanently destroy the Tessel. The module ships with a 5 V power adaptor for the servos. Please use it.

    Does your project have any moving parts?

    This is typically only an issue if you have a relay or servo module onboard, but if it’s an issue it will likely be a serious one. I already mentioned the dangers of inductive kick, and it’s worth noting that a standard hobby servo will stall out (maximum torque = maximum current draw here) at upwards of 1 A. If you know you need a motor of some kind, do some research to figure out what kind of motor makes sense based on what you need to move, how quickly you need it to move, and how accurately you need it to move. A good rule of thumb from the field of robotics is that actuators use an order of magnitude (or three) more power than anything else in the system, so plan accordingly.

    Plan ahead

    Figure out how often everything will be on vs. in standby. See if you can predict how often you’ll need to communicate with the web, and if that will require a long series of back and forths or a simple handshake. Is a live stream of data necessary all the time, or just occasional polling? Can you offload heavy processing or JSON parsing to a back end somewhere?

    Finally, before you go spend hundreds of dollars on parts, I’ll remind you to start small and to iterate. If you’re new to hardware, keep in mind that things break and don’t always work the first time, so leave room in your budget for spares, replacements, upgrades, and jumper wires (somehow, they always seem to wander off).

    Using the 5 V in pins

    Another thing to consider is where the power physically enters the Tessel. The Tessel can be powered either from the micro USB port, or through a pair of 5 V in pins right near it.

    • Either way, the absolute maximum voltage those pins can accept before you destroy your Tessel is 5.5 V (I only mention this because officially the party line is 5 V, but some phone chargers output 5.1 V and I’d like to let you all know that using such an adapter will not trigger the apocalypse).
    • The Tessel will use USB power preferentially over the power supplied to the 5 V in pins . This is likely only relevant if you will need a USB data connection to the device some, but not all of the time, and therefore cannot devote the USB port to power alone.
    • Circuitry onboard the Tessel allows seamless switching between power sources.
    • Last but not least (and sometimes very important), the external power that goes into the 5 V in pins is whatever you put there. That is, if you attach a 3.7 V LiPo, don’t expect to get 5V out (we’re good, but not that good). The only place on the board which exposes the 5 V rail (be it from the USB port or the 5 V in pins) is on the GPIO bank.

    In closing

    The more you know about your design the easier it will be to estimate power consumption. My offhand guess for most Tesselations is that a 1A cell phone wall charger will be enough, and it’s not worth your time to worry about it any further. If you can’t afford to be tied down to a wall socket, grab a battery above 5,000 mAh and you should be able to run all day so long as you don’t have any moving parts, try to stream YouTube, or calculate the millionth digit of pi. If you have anything more complicated than that, or just want someone to bounce an idea off of, drop me a line to ask questions.



    #tessel #technical machine #eric kolker #power #current #power consumption #electrical engineering

January 2018

July 2017

February 2017

November 2016

October 2016

September 2016

August 2016

July 2016

June 2016

April 2016

March 2016

February 2016

November 2015

September 2015

August 2015

July 2015

June 2015

May 2015

March 2015

February 2015

January 2015

December 2014

November 2014

October 2014

September 2014

August 2014

July 2014

June 2014

May 2014

April 2014

March 2014

February 2014

January 2014

December 2013

November 2013

October 2013

September 2013

August 2013

July 2013