• Ideas for Next-Generation Tessels

    Wednesday, January 8, 2014

    1/8/2014— Jon McKay

    Every once in a while, after a long day of work, the Technical Machine team will sit down, grab a couple of beers (except Jia… or else she’ll fall asleep), and bounce ideas off of each other about aspirations for our future products.

    Most of our ideas are flat out ridiculous and will never come to fruition (I’m looking at you edible Tessel) but there are a handful of major underlying trends in the embedded space that we think could be important as a guiding principle for one of the next versions of our products.


    source: http://ghostradio.wordpress.com/tag/robotics/

    You’ve probably already heard all the news about Google scooping up Robotics companies left and right. And with good reason, too. Robots are expected to start generating huge amounts of valuable data within the next few years. But on top of that, they’re a ton of fun to build and play around with.

    In order to make a version of Tessel that’s ideal for robotics, would need to make some major changes including allowing for a beefier power supply up to 48V, more digital input and output pins, and a coprocessor with a realtime clock.

    Wearables & Biofeedback

    source: www.medgadget.com

    Wearables, are the obvious next step in making computers more mobile and closer to our senses. Some great examples of these kinds of projects are the MYO armband for controlling devices around you with your forearm muscles or Sensoria socks that improve your running style. Wearables can be more personalizable than other kinds of devices because they are so intimate with how your body works and what you physically spend your time doing. A wearable Tessel will need to be smaller, lower power (probably using BLE instead of WiFi) and maybe even flexible like a Limberboard.

    Biofeedback driven products are even closer to the senses and often overlap with wearables. My favorite example of this is this is the Emotiv headsets for gathering EEG data and controlling devices with your mind. There are a ton of other biofeedback sensors that could be used to gather data about the body. You can bet that once we finish making Tessel, I’ll be working on a node Emotiv library.


    source: reviews.cnet.com

    If we’ve learned anything from the massive increase in photo and video production and consumption on mobile platforms, we know that there will be a huge demand for A/V technology on embedded devices. The camera module that we’re working on can only run between 10 and 15 frames per second so we’ll need much higher end camera hardware to get anything close to GoPro or Parrot Drone quality. To have a great user experience at higher resolutions we would need to make a pretty different version of Tessel with higher-bandwidth wireless transmissions, more on-board memory, and video codecs .

    We still have a lot of work to do on Tessel V1 but the time to start planning or even prototyping our next products start now. Are there any hardware directions you think we should go? Let us know! team@technical.io


    #jon mckay #tessel #technical machine #future #plans #upnext #startup

  • Designing the First Run Experience

    Friday, January 3, 2014

    1/3/2014— Kelsey Breseman

    I’m designing the first run experience for Tessel, and I want it to be excellent.

    It needs to do well with:

    Highly varied audience: Most of the people purchasing Tessel are used to writing code– but not all of them. This presents an immediate challenge: I don’t want to bore our main audience by including too many basics (“what’s the command line? How do I use it?”). People will skim, skip, roll their eyes, and probably miss important information.

    At the same time, I don’t want to alienate our beginning users; I’m all too familiar with technical sites that assume you have a lot more knowledge than you actually do, resulting in anger and frustration.

    Variation in product: Every user will have a Tessel and at least one module. That’s on purpose: we didn’t want people to get their Tessel, push the blinky example, then wonder what to do next. Instead, we want people to immediately plug in the modules they chose and try out their functionality. You’ll plug in your accelerometer module, wave it around, and see values changing on the screen. And then you’ll think, “What if I taped it to a ping-pong paddle?” “Can I use it to make my servo module move?” “How hard would it be to implement gesture control?”

    That’s all very good, but people have different modules or sets of modules, and it would be best if the instructions on the screen matched what you had in your hands. What’s more, the first run in my head ends with you on a page full of projects which use the modules you have.

    Other considerations: The first-run experience, first and foremost, needs to get a user from unboxing to up-and-running as seamlessly as possible– providing all necessary setup and orientation instructions. Users should also be introduced, via the first run experience, to the site’s project and community features, if these can be integrated into the setup.

    Here are some ideas on the subject:

    • Eric style, I could add in links every few sentences to (e.g.) a tutorial page for working with the command line.
    • Choose your own adventure: users select what modules they have, leading them on a customized first-run featuring their new abilities. This could also be extended to a customized-by-experience.
    • Adventure pre-chosen: since we have information on everyone’s orders, we could in theory give you a login or special key which would serve a first run tutorial based on your modules. This has the added benefit of logging you in to our site, which might make it easier to join the community.
    • Have login involving GitHub accounts. This would be useful generally, as we’d like to have GitHub integration with Tessel projects we’ll display on the site generally (more on that in another post perhaps; I’m also working on Tessel’s community aspects, including a way for the community to share their Tessel projects on the site). The other benefit of GitHub login could be to separate out experienced web programmers from people who might need a more detailed introduction to using node modules on Tessel– slyly serving up a customized first run.

    What would you like to see? Do you have any examples of particularly stellar first run experiences?

    Kelsey Breseman



    #technical machine #tessel #kelsey breseman #community #github #first run experience #user experience

  • Testing Hardware

    Wednesday, January 1, 2014

    1/1/2014— Jia Huang

    In a few months we’ll be shipping over 1k Tessels and 4k modules. We want to make sure that every product we ship will work, so we shipped some test benches to our module manufacturer in China.

    These are the test benches for the RFID, Servo, Climate, nRF24, MicroSD, Camera, Relay, and GPS modules. Try and guess which are the ones we did closer to the deadline…

    The majority of the test benches are just Tessels. The Tessels can switch between multiple module tests so that our manufacturer can keep testing modules even if a few test benches break. For some modules we ended up using Arduinos since the C to JS firmware ports aren’t done yet.

    In all of the tests I tried to aim for the following:

    • Tests should cover core functionality
    • Tests should have clear instructions
    • Test benches should have minimal configuration

    Testing core functionality

    Each module test goes through a core use case (or multiple use cases), and tries to approximate how an end user would use the module.

    For example, our RFID module testbench has a 3 inch standoff with an RFID card taped to the top.

    If the module cannot detect from this distance, than the module has failed.

    Similarly, the nRF24 module goes through sending and receiving messages to another nRF24 module. The camera takes a picture and the test is to check whether or not the image is good.

    Clear instructions

    I tried to make the test benches as consistent and self explanatory as possible. All tests pass with either Green or Blue LEDs and fail on Red. Ideally, we would like these tests to be able to be run years from now if needed.

    I originally wrote the instructions in English, but then I realized that the tests are going to be run halfway across the world by workers whose primary language is Chinese. Most Chinese manufacturers have an English speaking rep or project manager, but the level of English proficiency varies pretty drastically. So I ended up translating the instructions to Chinese as well and having both on there.

    Minimal Configuration

    For some of our modules, it’s annoying to set up the test: the servo module can connect up to 16 different servos, and each servo takes 3 pins (ground, power, and signal). Testing all this by plugging in a servo into each position would take a long time. Relay testing takes a similarly long time since the tester needs to connect wires to the module.

    For these kinds of tests we made module testing PCBs designed to test all the pins at once. So instead of plugging in 16 different servos, the test can use just 1 Servo test PCB. This also has the added benefit of being able to see a clear pass/fail (is the LED on?) versus having to keep track of 16 servos.

    Coming in January

    We still have 5 more modules to get into manufacturing in early January: Ambient, IR, Bluetooth, GPRS, and Audio.

    Back to work.


    #jia huang #test benches #testing #hardware #quality #tessel #technical machine #modules #hardware hacking

  • Hell Week

    Monday, December 23, 2013

    12/23/2013— Eric Kolker

    I haven’t had the bandwidth lately to sit down and write another one of my long, deep technical dives. Instead, I’ll debrief a little on what I’ve been juggling lately (read: this past week). Here goes a braindump in reverse chronological order.

    Friday- Saturday: Move out

    For the holidays, Jon and Kelsey had gone to California on Tuesday, and Kevin had shipped out to Colorado. That left Tim, Jia, and me the task of packing up and moving everything out of Tim and Jia’s dorm. Let’s just say that the only sleep I got in the surrounding 48 hours was in the card ride home from Boston. Tim gets most of the credit here because he’s the lucky guy who got to transport all of our gear:

    Tuesday - Friday: Test benches

    Everything we make needs to get tested before it ships, including each and every module. To do this, we build dedicated hardware, which typically takes the form of either a Tessel or an Arduino with a custom PCB or protoboard. We write some firmware that verifies that the device under test (DUT) is working properly (I’ll save the juicy details for another blog post), and the test benches usually look something like this:

    Since we’re ready to ramp production on around nine of our modules, this meant that we had to design, build, and test the same number of test benches before shipping them off to one of our manufacturers. Specifically, I needed to verify that our camera and RFID designs were sound before we could ship them (spoiler: they are). This meant building a few boards and running them through the paces.

    Wednesday - Thursday: Beta round 2

    We pushed out the second round of boards to Beta backers on Thursday. This culminated in the $500 USPS charge that Kelsey showed you last week:

    Before we could send out the hardware, though, we had to build and program it.

    • The new Tessels (model TM-00-02) needed to be one-time programmed (OTP’d) with the proper serial numbers, bootloader, etc., then tested to be sure blinky.js runs smoothly
    • We needed to build around 80 modules for Tessel’s Beta backers (first and second round alike). Specifically, we built…
      • A fresh set of Micro SD modules
      • A full batch of GPS and Ambient modules
      • A trio of IR modules (for us to test/develop firmware on, not to ship, but we were already in the lab…)
      • At least 25 BLE modules (these in particular are very difficult to assemble by hand and until very recently our yield rate was unacceptably low. We ended up tweaking the layout, praying, and I spent hours carefully building the modules one by one. All told, I think Jia and I spent at least six hours in the lab on Wednesday.
    • Everything had to have firmware flashed, be tested, then ESD bagged, and packed for shipping.
    • Last but not least, on Thursday, Jia and I spent three hours in not one, and not two, but three different Post Offices to try to ship seven internationally-bound Beta packs (one Post Office couldn’t ship internationally, one legitimately closed while Jia was filling out forms, and the third finally worked out). We ended up holding up one of the lines filling out paperwork for the better part of an hour. Fulfillment is a chore I’m grateful to be rid of (thanks, Kelsey!).

    Monday - Tuesday: Probably the Camera

    I think I was working on the camera at this point. We decided around a week ago how we wanted to go about converting the camera we’ll be using into a Tessel-compatible module. The full story will make a good blog post, but the summary is:

    • Pick an existing camera
    • Establish that we can communicate with it
    • Ask the manufacturer to do one part swap so we can mount it to our own board
    • Mount it to said board, which includes the standard Tessel module header and some support circuitry

    Once we had a homebrew prototype, we needed to test the new board, verify we could still bring it online, and generally vet the communication protocol we’ll be using to interface with the device.

    Sometime before Monday: GPRS, but I don’t even remember anymore

    It turns out that you sometimes lose track of time when you work weekends, don’t sleep much, and have a bunch of looming deadlines. (Kelsey says I’m “depressing,” but I really do like my job and if you’d like to work with us, check out our jobs page.)

    I was likely working on the GPRS module at this point. I had an Arduino shield from Seeed Studio that we had rebuilt so it would play nicely with the Tessel, but I hadn’t brought the board online yet. Luckily, this proved to be a painless process (well, after I fixed the antenna path and attached the antenna).

    A minute or so later, I was able to send a “Hello, world! I miss Jialiyaball…” text to Tim using Jia’s SIM card (note: when a thing you built with your own hands sends an SMS it’s really freakin’ cool). The first half of the message should be self-explanatory. The back half is a game we play where we shout “Jialiyaball!” and throw a plush Jake doll at Jialiya. By “we” I mostly mean “Tim.”



    #tessel #technical machine #eric kolker #update #updates #company culture #jialiyaball #camera #test benches #tests #moving

  • 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

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