Saleae 2012 Web Edition The semi-official blog of Joe Garrison & Saleae

14May/120

Maker Faire this weekend!

Maker Faire Badge

Hi everyone, this is Mark. I would like to invite you to visit our booth at Maker Faire this weekend, in San Mateo, California. If you can’t make it, be sure to follow us on twitter to see updates and pictures from the event!

What is Maker Faire? From there website, makerfaire.com:

“A two-day, family-friendly festival of invention, creativity and resourcefulness, and a celebration of the Maker movement.”

I would call it something half way between a trade show and a party, filled with crazy inventions, hobbyists, small companies and big ideas. Joe and I attended last year as guests, but this year we are bringing a booth!

I don’t want to give it all away, but we’re planning on having a cool, interactive demo to show off Logic in action (which I built), and Joe and I will be at hard at work before then to see if we can get one or two really cool new software features ready to show off as well. (But I won’t promise anything!)

Open House

Also, if you are in town, but can’t make Maker Faire, you can still see our booth! We are having an open house at our office on May 24th. We will have our booth setup in our office the same way we will have it set up at Maker Faire.

All of the details are on our website:

http://www.saleae.com/openhouse

This will be our second open house. We had our first one in February, which was a lot of fun!

I hope to see you there :)

Filed under: Uncategorized No Comments
30Apr/121

Update for April, 2012

Talk at Solid State Startups
Mark signed us up to do a talk at the Solid State Startup meetup, http://www.meetup.com/Solid-State-Startups/ I ended up – a bit randomly -- giving most of the presentation, even though Mark was actually much better prepared. I probably was much too open about some things, but hopefully it was at least interesting/useful for some folks. Afterwards we did meet some pretty amazing people, so that was really cool.

Allison
Our new office manager Allison start last Monday (23rd) and she is helping enormously, woo hoo!

Steve
We’ve had some talks with a new software developer and it looks like we’ll be working together on making the logic software awesome – so that’s going to be great.

Software Dev Officially under way
Speaking of which, Mark is now off the website and is officially developing the Logic software again. He just got it to build in Visual Studio 11, which it looks like we’ll be using on Windows going forward. I think we’ll also be switching to GIT (from SVN) as well as starting to use Make on OSX/Linux rather than completely custom build scripts. We’re also going to be adding unit tests but I’m not sure what framework we’ll use for that yet, as I’d like it to be cross platform if possible.

Mark’s Robot
Mark has been working on and off on this little robot for a while now, and actually got the parts a long time ago thinking we would make a ‘Saleae robot’ for a tradeshow. Well, we’re going to Maker Faire this year (in about 3 weeks now) so we’re hoping to have some cool Saleae robots to have Logic connected to. Be sure to come by the booth! We’ll have another post about that as we get closer.

UPS International
We’re now shipping UPS International, thanks to some nice web work by mark. The system calls a bunch of UPS APIs to get which services are available based on your location, as well as the cost and delivery time. For a lot of countries it’ll also get you an estimate of the “landed cost” – meaning the likely customs fees to expect. Unfortunately UPS International is much more expensive that USPS, although at least you’ll know it won’t take 2 weeks to get there.

TI Chronos Watch
Mark and I are both night owls and have trouble getting up as well as getting to bed. I’ve had an idea for a long time to make a watch that you could not take off, which would literally not let you go back to sleep in the morning; well, the perfect prototype platform for this is the TI Chronos watch http://www.ti.com/tool/ez430-chronos -- we got a pair to play with. It has an accelerometer and a temperature sensor and all so sorts of other goodies. I also got some timed outlet switches to turn off the internet at a given time to cut off Netflix, so there is nothing to do at 1am but hit the sack. So anyway, we’ll see if that goes anywhere, but it could potentially be pretty cool.

Pebble / Kickstarter
Congrats to Eric & team for the amazing launch of their new Pebble Watch for iPhone & Android – they have raised about $7.5M on Kiskstarter so far, unbelievable. http://www.kickstarter.com/projects/597507018/pebble-e-paper-watch-for-iphone-and-android We happened to be by their offices the day they started Kickstarter and they were already at ~$1.2M – one of the guys had written a script to pull down the latest total and print it out in huge letters on the screen. Awesome.

Maker Faire
We are going to be at Maker Faire later this month, May 19th and 20th. Mark your calendar! We thought this would be a good show to start with since we don’t need to be as polished as I’d like to be for ESC and those sorts of shows. That said, we’re going to try and have a fairly sweet setup so please do drop by, it’ll be fun.

VAT in Europe
We’re finally collecting VAT in the EU now. We’ve been below the thresholds but over the past year Logic16 has put us over, so we’re just about done getting VAT registered now. The website is all set up so you can claim VAT exemption and all that.

Logic16 Birthday
Happy birthday to Logic16! That’s May 6th. Can’t believe it’s been a year already…

Budget/Projections
So going into this whole subject I was really unclear as to what I was looking for was even called, and I’m still not entirely sure. What I really wanted was a flexible projection, where based on some combination of historical and estimated revenues and costs it would project out full financials – profit & loss, cash flow and balance sheet. The result was very eye opening and interesting.

The cash flow implications of tax payments are huge, as is how much tax advantage there is to making less profit. Since we’re not looking for the company to be maximally profitable right now (we’re looking to grow) it makes no sense at all to have any profit other than 1. You paid yourself something and 2. Inventory had to grow. The tricky bit is that it’s a fine line between being “minimally profitable” and running out of cash.

The way I did the budget/projections is as follows:

  1. Start with the previous few months of Profit/Loss and Balance Sheets (you can export these to Excel – I left those as originals and pulled them into another sheet to clean it up)
  2. Create an adjustment column so that each account can be adjusted for abnormalities.  For example, sales were especially high in January and February, but only because all the distributors were previously out of stock since we historically had trouble filling those orders. So those get adjusted down. Payments that only happen once/year get adjusted out, as well as things that are part of projects that could/should be planned.
  3. Take an average of the adjusted accounts, this is the baseline account revenue/expense to go into the projection/budget.
  4. Now take another spreadsheet and make columns for the next 36 months, and rows corresponding to all the accounts. This is where you get to “play” – experiment with adding more salary for example, as well as put in all those once of year type expenses, and any planned projects.
  5. Last, you make the results spreadsheet that takes the baseline, adds all the monthly planned values, and projects profit/loss, estimated taxes, owner draws, cash and cash flow, and whatever else is interesting (such as month/month growth in valuation).

So it’s not perfect by any stretch but it should be fairly workable and fairly easy to update with new monthly data.  What I don't have is a decent way to do budget vs actuals.  One solution might be to just save an archive copy every month.

Line of Credit
We did just finish getting an application into Wells Fargo for a sizeable line of credit, so we’ll see if that goes anywhere. The application required all the financial statements and all that. Frankly we’re a pretty good credit risk but neither Mark nor I have any real estate to use as collateral so I could certainly see them walking away from it. If that’s the case I’ll go for an SBA loan, we’ve got everything ready for that too. If that fails for some reason we’ll look at a loan for an individual or even get funding through an angel investor.
In addition to that we’re also looking at hiring in some creative ways – cash + loan and/or cash + royalty. It’s not cash, but it is a nice way to finance things.

Old Blog Posts
About a month ago we published a bunch of really old blog posts that had gone offline when our old blog host turned off their service. So those that are interested in the really early days might want to check that out. Just keep hitting “Older Entries” at the bottom of the page and you’ll get there.

Breakout boards
Someone needs to build to following Sparkfun-style modules:  step-down switching power supplies at common voltages; an optical encoder to I2C/SPI adapter; a small CPLD module; a multi-voltage, small li-poly battery module.

Open House

Just a reminder that we'll have our 2nd monthly open house on Thursday, May 24th @ 7-9pm.  http://www.saleae.com/openhouse  See you there!

 

 

Filed under: Uncategorized 1 Comment
31Mar/123

Happy April 1st, 2012!

Filed under: Uncategorized 3 Comments
16Mar/120

March Update

Moving Shipping back to San Francisco

For a long time we were shipping from Massachusetts, because our employee John moved out there. For the most part that worked extremely well – John did a great job handling the shipping and assembly, and keeping the sales related customer emails off our plate.

However, as time went on, it was clear that this was not ideal – inventory would get reactive rather than proactive attention. It was hard to try and really solve that problem when the inventory and assembly were out of sight. We also couldn’t work on making the assembly process more efficient. I brought it up with John and he decided that he wanted to move on in his carrier anyway, so it would be an ideal time to transfer shipping back to San Francisco.

Assembly Improvements

As we took over the job of assembling Logics, it was clear that manually putting the screws in was not a great way to do it. I searched around the internet and found these guys: http://www.expressassembly.com/. It was a happy day when we got the electric screwdriver. That worked really well for a while, but it had a “slip/cushion” clutch which would expose the screw head to some pretty high forces.  This turned out to be damaging the head (cosmetic damage). We upgraded to a super nice DC screwdriver; it’s really a joy to use. We also stopped short of getting one that auto feeds the screws – that would be awesome, but it would take forever to pay for itself at our volumes.

We also got an air compressor to dust things off (e.g. dusting off the Logic or Logic16 before putting it into the bags). We also polish the Logic16 cases, but we found that a lot of the time was spent trying to wipe away fine lint and that sort of thing, and air was the way to go. For a while the thing was constantly leaking, limiting the pressure to about 30 psi and forcing us to turn it off whenever it wasn't needed. But after I got some cool teflon tape for the threads it holds 100psi in the line all the time, which is awesome – always ready to go.

Moving Offices

As soon as we agreed with John that it was time to move shipping back to SF it was very clear that our ~300sqft space literally would not hold all the materials, even packed to the ceiling. We had, only, early that year (2011), upgraded from only 150 sqft and had thought at the time that the new 300sqft was enormous.

At first we wanted a full blown warehouse, 2500+sqft with a rollup door you could drive into – but really, we wanted it also to be Tony Stark garage style -- glass and pristine white concrete. It became pretty clear that that pretty much didn’t exist, and certainly not in the sqft that we could afford. I kinda feel that we’ll have to build our own building to really get what we'd like.

The broker happened to rep some traditional class A office space, and that’s what we went with. Just under 1000sqft – there were much larger suites – wide open space with wrap-around windows, but ultimately I couldn’t justify blowing an extra couple of grand a month as cool as it would be.

The building is a little older, and it shows, but otherwise it is a pretty nice building. While moving, we learned that, no, you cannot fit a pallet jack in the elevator. Other than that, its worked out really well.

We rented a Budget truck with a gate lift for the move, which worked well and was fun.

Of course, we immediately got more stuff for the office – the two back rooms got two Uline roll-around wire shelves, and two nice Gladiator workbenches; I really like them. One room is “assembly only” and the other is “shipping only”. It’s working out pretty well so far. We got a bit more Ikea desk space for Mark, a nice Uline hand truck (for the move), and right now we have some more Gladiator workbenches on order for a super nice electronics workstation.

We also got a bunch of artwork style stuff for the office: VFR charts, nautical charts of Hawaii, the US West Coast and San Francisco Bay, and some original Apple posters from eBay.

Game Day

Oh, and if it’s game day, forget about coming to work, the place is overrun. The 49ers stadium is just down the road.

Inventory Management

If someone wrote some sort of web script that kept track of our “out of stock” status over the life of the company, it would be clear that we have issues. Now, after quite a bit of code and synergy with other efforts, I’m happy to say, with some confidence, that things are properly being managed.

First: QuickBooks. I’ve always used QuickBooks, but only in a minimal way – enough to do taxes, print the occasional quote, that sort of thing. Doing it that way makes you think QuickBooks sucks. After doing a bunch of research into how we might be able to track inventory, we decided that using QuickBooks fully – in the way it was meant to be used – would be the way to go.

However, QuickBooks isn’t exactly the greatest thing for inventory, it’s quite rudimentary. The challenge was to make it work for us; going to a different accounting program, or trying to bolt on some 3rd party tool seemed like a riskier proposition.

QuickBooks + Website Integration

I wrote a C# application that pulls in sales data from Mark’s new website (more on that below), pulls all relevant data out of QuickBooks, and then actually creates Sales Receipts for all the online orders. It even goes back to check if anything changed and it updates the relevant Sales Receipt in QuickBooks. If orders are in the system that haven not yet shipped, it creates a Sales Order for that. It then mines QuickBooks for the current inventory of every last part, adds up the products that have been ordered in the last 90 days, and creates daily demand estimates for every last part.

From a custom field in QuickBooks, the app grabs the lead time for the part (often a number like '75 days'), pads it with another 30 days, and reports “how many days until reorder” for each part. It takes into account parts that are already on order (open Purchase Orders), as well as orders that have been placed but not shipped yet (open Sales Orders). I love it!

You will know when you need to order, but will you have the cash?

What’s great about the system is that it’s not a huge step to project – over the next, say, 6 months, how much cash each month will be needed for purchases? Guess what? It varies widely. For example, if things lined up just right you could have to place orders for every last part in a single month. Another month you might not have to place any orders. That’s a huge difference in how much cash you better have floating around.

Financial Reports

One of the great things about this is that now our books are always up to date. Before, inventory costs (COGS) never really lined up with sales for any given period (other than for a full year) and so gross margins were meaningless. So FINALLY, we have full insight into the company’s financial performance. What’s often the most interesting is Cash Flow, which tells the story of why, exactly, there isn’t as much cash in the bank as you’d like. Net Income is what you pay taxes on, but this includes, among other things, changes in inventory levels, and changes in accounts receivable – making it an awfully messy number for anything practical.

The next step – Budgets & Projections

My next job is to generate sales and inventory purchase projections. The plan is to automatically dump a bunch of projections in Excel – sales, inventory purchases, shipping costs, etc. Then, on a different sheet, manually enter the budget for overhead items – salary (being the biggest), rent, marketing, random tools, prototyping, etc. The idea is to get, as accurate as possible, a cash flow forecast for the next 24months. Based on that, we can decide – with some level of confidence – how much we could safely afford to allocate to new hires, as well the impact that loans or funding might have. QuickBooks apparently has some budget and budget vs actuals capability, so I'll look into that as well.

Website Overhaul

Mark has been working for months on the totally new Saleae website; it actually launched last month. You probably didn’t notice because it looks pretty much the same, but under the hood, it’s entirely different. There were a number of reasons why we wanted to re-architect the website from scratch:

  • The old shopping cart experience was lacking.
  • We wanted a fully on-site checkout so we could control the UX.
  • Needed discount code capability
  • Needed better shipping/fulfillment automation system
  • Needed a solid foundation to add new website features (database and ajax driven stuff)
  • The old site was implemented by me and was a hodge podge mess of php files. We needed a clean, maintainable, and organized codebase.
  • We wanted the flexibility to integrate seamlessly with some 3rd party web services we’ll be adding, as well as potentially create our own when there was a gap.

Hosting on Amazon+AppHarbor

The new solution is ASP.NET MVC, which is a particularly good web platform. It’s hosted in the cloud on Amazon through a service called AppHarbor which offers a painless way to host .NET sites/apps in the cloud. Azure, as much as we wanted to like it, was too painful to use. AppHarbor is awesome!

New Shopping Cart features

  • Zip code based calculation of UPS Ground ship time
  • Autopopulation of city and state based on zip code
  • Full on-site checkout (Paypal and Google Checkout are still options)
  • Get a formal Quote right from the shopping cart
  • Ship UPS on your account number
  • Promo-code support
  • PDF order receipts
  • Support for VAT
  • Support for future shipping methods such as UPS International, etc.

We’ve tried to make checkout as frustration-free as possible.

One button ship

  1. The system will flag any order that has anything at all that’s wrong with it, allowing you to fix it ahead of time.
  2. Press the ship button. This launches a desktop application.
    1. The orders are grouped by type.
    2. One group prints out at a time – labels and receipts.
    3. After each order is packaged, it’s scanned, the system charges the order, and it sends the tracking number to the customer.
    4. After a group is finished, the next group automatically prints out.
  3. Orders in the EU will automatically be checked for issues, and then submitted to the EU early in the morning allowing more EU orders to ship same day.
Why all the mucking around with the website and finance software? We want a super cool new product – and tons more software features!

This is a good point. When you have limited resources, what do you do? You could start a company by doing nothing but infrastructure for years before creating a product – that would obviously be stupid. You could also do nothing but create products, and have a crappy infrastructure. A lot of companies do that.

I’m constantly struggling in my head with what we ought to be doing and in what order. We have all these awesome product ideas, but the idea of launching those products with crappy community support, and crappy web systems, and poor marketing is not really my style. I don’t know; this is why I probably should get some advisors.

What’s Next

As I said, we’re very close to finally having a good cash flow forecast. We think we can probably afford at least one more person. There’s a big difference in pay between a full time experienced EE and a part time intern, and we’re thinking of going the intern and new-graduate route. A full time, experienced EE or CSE is like 120K+ in San Francisco. Add to that the employer portion of Medicare, other benefits, etc., and that’s one large pile of cash.

In addition, we have some cool plans for the future community site that we’ll be working on, along with a website refresh, and lots of marketing trials.

In the engineering arena, we need adapters to be developed and brought to the market, more protocol analyzers to be written, and a fairly large list of software features to be implemented.

And then there’s ‘the next big thing.’ We’ve been going back and forth on exactly what that should be – how long it would take vs how much of a market there likely is for it. There’s plenty else going on so we haven’t really decided. There’s also some key technologies we would need to prove out regardless of exactly which product we end up creating, so there’s plenty that can be done before making the final decision.

New Hires

Right now we’re actively seeking Bay Area EE/CSE interns who want to work on some cool real world stuff. Send your resume and links to any cool projects you’ve worked on to jobs@saleae.com.

If you’re a recent graduate looking to work hard and make a huge difference at a little startup drop us a line as well.

We’re also looking to hire a great Office Manager to manage QuickBooks, ordering, shipping, and provide awesome customer support for the non-technical stuff. Part time. (Unless the ultimate candidate can only do full time). If you know anyone that would be perfect, please have them get in touch.

Sailing

Mark and I finally got signed off so we can take out a little 24ft keelboat in San Francisco Bay. One of the times the wind was down and we were bored, so we had the great idea of launching Mark’s kitebording trainer kite from the back of the boat. This was not a good idea. Frankly, I’m surprised we recovered the kite. The outboard motor, in reverse, was in involved in the recovery effort. Sailboats under sail are not the most maneuverable things to be driving when attached to an immobile, slowly sinking kite.

Christmas 2011

Mark’s wanted to get a new car for a long while. First it was Honda CRZ, but as cool as this car looks, at the end of the day, it was too compromised – mainly on performance. He decided that he wanted the Mazdaspeed 3. So on a bit of a whim, we picked up a red one the day before Christmas and then drove it to Arizona just in time for Christmas morning at our parent’s house. It was a good time. Note that I am still driving a 2002 RSX-S, which is embarrassingly beat up, and I’m too much of a cheapskate (so far) to get it repainted. However, I did splurge and put down a deposit on this http://www.teslamotors.com/models

March 13th Colbert Report

We’ll be in NYC on March 13th, my birthday, to catch a taping of the Colbert Report. Hopefully we can visit Adafruit and some others while we’re there.

Local Community Involvement

Ever since he moved out here Mark has been super busy with hackerspaces, meetups, hackathons, you name it. Most recently:

He’s also a regular at the Ace Monster Toys hackerspace.

Coming up:

Come by, meet Mark, and get hooked up with the highly collectable Saleae business card.

James joins the Team

Mark’s friend James has been helping us out a ton with assembly. He has single handedly built, tested and packaged hundreds upon hundreds of Logics and Logic16s over the past couple of months. It would not have been pretty without his help. James also has the job of making sure these blog posts get done every month, and actually posting them, including this one. Thanks James!

You’ve got a good chance of meeting James at one of the previously mentioned events as well.

Stock Levels

I’m very happy to announce that we are currently in better inventory shape than we have ever been. All of our distributors are fully stocked, and we actually have several hundred units packaged up and ready to ship. There’s plenty more on order, too. In fact, our previously mentioned inventory software says that, as of right now, we’re not behind on ordering anything. I was a bit late ordering more Logic16 boards which might cause a gap a couple months out, but hopefully not.

Open House

We’ve really wanted to do this for a long time – host a regular meet and great style for our customers and potential customers. The first was Thursday the 23rd of February, 7pm-9pm. We'll have another one next month so if you're in the Bay Area it would be great to meet you!

Next month on the 15th you can expect the next blog post. Otherwise please send your angry emails to support@saleae.com.

Happy debugging!

Joe

More pictures

Old office, half taken apart.

Moving truck.

New place.

This guy actually does a great job keeping the office tidy.  At least the floor that is.

New scanner for automated shipping.

New screw gun and compressed air.

Temporary evidence that the new inventory system is working.

Snapped this photo when visiting Tesla Motors (Altium training).  We later had some Tesla interns over and they informed us that this is Elon Musk's (!) car.

 

Filed under: Uncategorized No Comments
21Feb/122

1st Open House & New Hires

Our first open house (which will henceforth be a monthly affair) is this Thursday, Feb 23rd @ 7pm. Details: http://www.saleae.com/openhouse. Hope to see you there!

Also, we're hiring for a couple positions, details here: http://www.saleae.com/jobs. Please pass it along if you know anyone who might fit the bill!

We'll have a comprehensive update later this week.

Filed under: Uncategorized 2 Comments
9Sep/115

Rapid prototyping for production parts

Just wanted to quickly document a neat little project we did recently that seems to be working out. Logic16 uses an off the shelf light pipe. Creating a custom light pipe requires an injection molded part, as well as someone who knows what they are doing (and optics modeling software) to design it. It’s something we want to do later on with fancier products but for Logic16 an off the shelf part made sense.

We did have this issue however where light from the light pipe would shine out the front slot of the device, where you plug in the wire bundles. You might think this would be cool, but in practice it was quite inelegant, and so we had been using little rubber tubes cut to a given length to shroud the light pipe. However, this was not a very elegant solution and the eventual plan was to figure out a way to manufacture something custom.

It turns out that rapid prototyping a big grid of such a custom part is actually pretty cost effective. The first material we tried isn’t ideal because it’s surprising transparent, although it does look pretty decent as seen from the front slot now, and we’ll probably be able to get this in a more opaque material. $200 for 400 parts (the array below is 20x20 although there are sure to be more cost effective sizes) beats whatever injection molding would cost, at least in the short term. And you can’t beat the lead time. Plus if you screw up, it’s not a big deal.

Filed under: Uncategorized 5 Comments
10Aug/116

Counterfeit parts are a big headache.

It's been a long day. This morning we picked up about 1000 PCBs for Logic and Logic16 and got to work doing the final assembly for the first 200 units so we could ship our back-order tomorrow (Thursday, August 11th). I hate being out of stock, it's such a huge pain for our customers.

We noticed that many more boards than normal were failing the functional test (on the order of 10+%) but we pressed on using the good boards, not seeing anything wrong with the assembly (which is super clean and precise). Once we had the previously mentioned 200 Logics/Logic16s completed, we took a closer look at what could be accounting for all the failures. We soon noticed that the USB chip was running hot. In fact, it was running hot on the good boards as well as the bad ones! We measured the current of the boards, and double checked what it was supposed to be from a couple of boards we had from the last batch. Much higher. Note that this is the exact same PCB in both cases, and we are seeing this same current issue with both the Logic and Logic16 boards.

We had sourced these USB IC parts from Asia as we have for some time, and we immediately started to wonder if these parts were really what they seemed. I had always imagined that counterfeit parts were complete duds - basically no silicon die. I reasoned that there's no way that it would be worth it to actually reverse engineer an ASIC and reproduce it in a functioning form. There was little or no information online about this part, but I did uncover some random snippet that said the part was flagged for possible counterfeit activity just two months prior. Not a good sign. Searching around further, we learned that a huge category of counterfeit parts are what's called "reclaimed" parts, where discarded electronics are stripped of any high value components and then resold in fake packaging as new. This includes cleaning up the part and relabeling it in some cases with a new part number / batch number. Apparently this is a staggeringly large illicit business. http://www.hq.nasa.gov/office/codeq/trismac/apr08/day2/hughitt_NASA_HQ.pdf

We suspected that this might be what was going on - that the part in fact was a reclaimed (used) instance of a really old revision of the part we use - with a different part number -- and one that used far more current - explaining the run-hot behavior and high current measurements. We dug into the various datasheets for this part and its prior revisions / part numbers, and found that there was a hard coded "REVID" register which in a roundabout way reported what revision of the part it was. We rigged up some firmware to pull this register and pull it over to the PC. Sure enough, every last part was an old revision corresponding to a different (obsolete) part number - the parts had been relabeled with a modern part number.

Since we are out of stock and people have been waiting anxiously, we did briefly consider shipping the high-current, but otherwise working boards. But clearly would not be the right thing to do. We have no idea what reliability to expect and what differences it might cause in the firmware in edge cases - plus it runs hot and usesconsiderably much more current that are specification indicate.

The timing of this is terrible, in that we're desperate to get high quality product to our waiting customers - and now we need to rework almost 1000 boards. It's also going to be pretty costly, and not just for the rework. We don't have any idea if we can get any compensation from the supplier for these parts - in part because it's so damn hard to prove that they are counterfeit, you kind of need to be an engineer who knows a lot about this part to even tell. In addition we'll need to order replacement parts to the tune of $10K. Not cool. But I don't care about the cost nearly as much as I do about missing a ship date and upsetting our customers.

We're going to do rework over the weekend on this and hope to be able to ship existing orders on Tuesday. Distributors with open POs are going to have to wait a little longer I'm afraid, but hopefully only a few extra days.

We're refunding everyone's shipping and I'll be sending out an email to eveyone shortly. We're also offering to upgrade the shipping speed of anyone who asks. We very much realize this does not make everything okay, but hopefully it will help a tiny bit.

Back to it.

Doesn't look counterfeit does it?

Update August 11th, 2011
Some images to document the issue:

Filed under: Uncategorized 6 Comments
10May/110

Mark’s Senior Design project at ASU

Here's a few pics from Mark's Senior Design project, for which apparently they won first place. Maybe Mark will get around to adding a few words here but until then here are some pics:

Flight controller PCB

Ready for solder paste

Paste applied, ready for parts!

Assembly under way...

Fully assembled.

Professor takes the controls...

Cameron crashes (like you never have...)

This appears to either be a shameless plug, or a refreshing example of eating ones own dog-food.

The final plane, before solar panels

Demo day

Poster (full resolution PDF)

Filed under: Uncategorized No Comments
10May/117

Long awaited 2nd product released into the wild

Logic16
Woo Hoo! Logic16 is finally released.  It has been a long time coming. The main bottleneck was the new 1.1.x software, and making that rock solid, but it was also plenty tricky on its own – in particular the analog front end. Analog 101 all over again, plenty of spice simulation, at least 5 or 6 board revs, a fairly high end Agilent scope and $1000 active probe. There’s things we could have done to make it a lot easier in retrospect, but part of the goal was to learn how we could design front ends for much higher end stuff. We now at least know what the right questions are, and I’m confident that we’ll be able to pull off some really nice stuff for the 3rd/4th products.

We started out looking to build something considerably more advanced than Logic16, but I think that ultimately Logic16 was a nice 2nd product. I’m confident that we understand the analog part of it, it’s a fair price point, and it’s a nice step up from Logic. I won’t release anything that’s more advanced than what we really solidly understand. That said I’m super excited for what we might be able to do in the future.

Logic16 Testing
We ultimately built a dedicated PCB for testing Logic16 – it uses a CPLD, DAC, and logic level translator to generate a number of variations of conditions which can then be examined in detail for signal integrity. It worked out well because we can use the same board to test each and every Logic16. We’re certainly going to be doing this sort of thing going forward. There’s all sorts of test setups I’d like to get going, especially in conjunction with automated software tests. Speaking of which, we intend to have 100% test coverage of the Logic software entirely automated. Pretty much something you could run around the clock until something breaks – including real data sources, device connection and reconnection, etc. We’re a ways away from that right now, and it frankly is a bit of a tall order.

Latest Software – Manchester and MP Mode
I’m super excited to have a solid Manchester solution out the door.  It’s had me worried for some time – that there would be so many variations of Manchester that there just wouldn’t be a good way to pull it off.  MP Mode is also finally done, although that of course is comparatively trivial.  Quite a few people sent us their Manchester data, which was very helpful when we finally got around to getting that done.

Pricing
We’ve known since the beginning that Logic was priced at kind of a weird point.  It was – and is – really important to me that students and hobbyists have access to something that it really good – but at the same time it offers an unprecedented bang for the buck (a little absurd, really) for professional engineers.  And as the software gets better, its value/dollar keeps going up as well.  The point is that there was a lot of money left on the table, and given the market size, it’s not an especially sustainable price point.  The idea all along was to follow it up with some more capable hardware versions that would be an attractive option for less price sensitive business customers.  Getting product 2 and 3 out there right away really should have been the order of the day:  product first, features second.  In any event, things are the way they are, and we’re in a pretty decent spot looking forward.

Tabs
I’m kind proud of the tabs in the latest software.  I spent way too long on it, but it turned out pretty well.  They are built from scratch, more or less.  Most people will probably never notice, but you can reorder them, and they animate when they move around.  Good stuff.

Cross platform build script
Right up until 1.1.5 we were literally maintaining different projects on each of the 4 platforms we build on – Eclipse for 32 and 64-bit Linux (on different machines), XCode on Mac and Visual Studio on Windows.  While this setup is not too bad for debugging platform-specific issues, as you might imagine it’s a major pain in the butt to release a build.  So for 1.1.5 I took the plunge and built up a build system that’s pretty workable.   To do this we wrote a C# application that builds up a folder structure of all the required files for each build target.  It also creates extensive scripts for building each target on the end machine, as well as collecting up all the results and packaging it in a way that’s fairly close to releasable.  It dumps all this into a shared folder.  Then you mount the folder from the other machines, and start a script that copies all the contents to a local build folder and it starts cranking away.  To keep things consistent we do the same thing on Windows.  There’s quite a few things that could be improved in the system, but so far its working remarkably well.  It’s very “fire and forget.”  Linux is built on two different dedicated laptops (one runs Ubuntu 32-bit, and the other Ubuntu 64-bit), and Mac gets built on the Mac mini.  The mac build is pretty slow since it’s building for ppc as well as x86, but overall it’s quite a workable system.  Day to day development is on Visual Studio, which works well.

New packaging
Finally!  I’ve wanted some nice packaging we could be proud of for a very long time – and finally we have it.  Well, we will at the end of this month anyway.  We met a packaging company at a manufacturing trade show in Anaheim, and they’ve been a real pleasure to work with.   Logic has always come in a nice carry case, but now I think people will really enjoy unboxing their Logics.  (after spending a couple hours at the show we went to Disneyland)

New inserts
We’ve had a little “business card” insert that shows how to plug in the wire harness and where to go to get the software pretty much sense the beginning.  But it kindof sucks, in that it’s just not all that nice, and I’ve been wanting to replace it with something better for a while.  We’ll now we’ve got a nice glossy insert which I think people will like better.   I think the unboxing experience is a key part of the overall user experience.  It’s kind of a sacred thing, really.

Vacation
John took a much deserved 2 week vacation which just ended last week, so I got a chance to rediscover the joys of taping boxes and printing labels.  Actually, I really do like it.

Prototype PCBs
Quick recommendation for prototype PCBs: www.pcb-pool.com.  I’ve had really good luck with these guys, and I very much appreciate that they come with free stencils.  By the way, this might be obvious, but take the solder paste out of the fridge and let it warm up to room temperature before applying it.  I’m not sure why I had not learned this lesson earlier.  If you don’t, as the paste warms up it slumps down and shorts with any paste near it, and you end up with kindof a mess.  I also am happy to report that using a cheap toaster oven, and just watching the PCB for when the paste melts, seems to work rather well, and better than using a hot air soldering iron.  The more uniform the heating, the less likely any 0402 parts are going to stick up, or pop of the board.

Arrow, Avnet, Future, Digi-key, Mouser, et al.
We’ve been looking into sourcing parts in the US, and doing PCB assembly here too, to get some better control on quality and lead time.  The semiconductor sales model is an interesting beast, to say the least.   I’ve learned all about how pricing gets negotiated, and how parts negotiated for a particular customer at really good pricing can find their way to CMs who technically shouldn’t be getting those prices.  The system is messy, and in my view there’s not a lot of incentive to buy parts exclusively from any one vendor.  We did a fully kitted run of Logic PCBs locally about a month or so ago, getting the parts exclusively from Digi-key and Mouser.  (Digi-reels are awesome!).  We used Advanced Circuits for the panelized boards, which worked well.  The CM lead time is really the issue as far as fast turnaround goes (unless there’s a part that’s not in stock).  Honestly, I’d really love to be vertically integrated when we get big enough – have our own PCB line, wire harness assembly, etc.  I know that doesn’t make a ton of sense – but it is an awfully attractive proposition when you’re sitting around out of stock for weeks on end.  Cash flow is mainly the culprit there, however, and choosing suppliers that offer terms certainly helps.  A strong desire for vertical integration is probably just a symptom of not taking the time to get the right CMs.  Still, it sure does seem cool.  Especially now that I know that SpaceX is something like 95% vertically integrated – with all sorts of awesome machining centers and manufacturing capability on site.

Finances, cash flow projections, and loans
One of Mark’s jobs over the next few months is to build an incredible, up-to-the minute ERP solution.  Cash flow projections, how much tax we owe, sales and sales trends, inventory and cost of goods sold.  It’s going to be integrated with a updated ordering system, a new (largely behind the scenes that is) website, and either QuickBooks (via it’s api) or something much better if that’s possible (Xero looks pretty cool).

We’re going to apply for an SBA backed loan to hopefully remove inventory cash flow gaps from the list of problems over here.  In order to do that we need cash flow projections, and what do you know, putting that together by hand is a rather enlightening activity.  Speaking of financing, I’m been thinking of all sorts of creative ways we might be able to finance some serious growth.  I’m especially intrigued by the kickstarter.com model.  That is just flat out a game changer in many ways.  I could have used that right out of school to fund a project I had back then that need 25K to fund injection molding.   What we need to fund is talent-hours, not manufacturing, so kickstarter is not as ideal for us.  Still, it’s a really interesting model.

Website and IT
The new website will be hosted on Azure and be written in C# ASP.NET MVC.  We’ll be migrating the current blog and community site (which is currently WordPress and a fairly modified Drupal installation) over to a new .NET based CMS framework, which I have high hopes for.  Despite its excessively humble functionality, the forum is well trafficked and fairly lively as these things go.  And I think it’ll get better and better to the extent we can improve the user experience for people on it.

OneNote
We’ve been having great luck using OneNote to manage the company – we have folders for each major functional area, and different sheets for more detail, like ideas and “the current plan”.  It’s synced up to the cloud so it’s always up to date, and we can even look at it on our iPhones.

What’s next
We’re taking a 3 months hiatus from engineering, starting this week, to focus on growing sales and ultimately the company.  We will fix any mission critical bugs that come up, but will not be adding features.  With luck, we can improve sales to the point where we can hire a full time software genius to continually crank away at the software.  The software is about half way to where it needs to be, and there are some huge, fantastic feature sets that are still to be added.  But we’ve got to figure out a way to accelerate the rate at which we can develop, or this thing doesn’t make a whole ton of sense.  You should start seeing the results of these efforts pretty soon.  I’m excited about it.

Moving
We need more space.  It was a bit of a disaster trying to ship from here the last couple weeks, climbing over boxes everywhere.  So we’re going to hopefully find another space in the same facility that’s double the size.  We’re going to take that opportunity to reorganize everything so that everything has a place and we can start being proud of where we work.  We’re going to get those nice Craftsman tool drawers, new desks and lots and lots of labeled bins.  Speaking of labeling things, I’ve finally got a functional filing system going that I actually like to use, after reading Getting Things Done.  That book is a bit all over the place, but I think it’s a great way to organize projects and ultimately your life.  I’ve also been reading The Innovator’s Dilemma, Rework, and Smarter Faster Cheaper.  (books on tape, that is)

Open House
Starting as soon as possible after we move, we’re going to be hosting a monthly open house.  Come one, come all, and see what we’re up to.  Delicious refreshments will be provided.

Graduation
My brother Mark has been out here working full time for the last semester, flying back and forth to Phoenix every so often to take care of school stuff.  Despite putting very little time into it, he and his team for Senior Design built, proved out, and flew their solar powered airplane, and it has the hardware to in principle be autonomous.  His team won the Senior Design prize, woo hoo!   And, he’s now graduated with a shiny new degree in Electrical Engineering. Hooray!

The latest Logic16 tester PCB

Active probe. Yes, it even has LED 'headlights'

New packaging!

And the new inserts...

The panels for the local Logic PCBA build

Digi-Reels!

Latest n' greatest

The official Saleae office plant

On a whim, a few months ago we rigged up a Arduino-controlled Lego robotic arm, controlled via a game controller through the PC.

Speaking of robots, here's the one my brother and I built for his 8th grade science project. Mark actually had functioning GPS way-point software in VB6, but my custom motor controllers blew up and tragically it just sat there on demo day. The idea was to pull kids around in a wagon or something.

Filed under: Uncategorized 7 Comments
16Sep/1011

An abbreviated pause for reflection.

Ideally when you write a blog post about your baby, in this case Saleae, you really need to be excited and proud of her. The last few days I haven't felt one way long enough to get anything down :)

In one, very real sense its kind of our moment of triumph - Woo Hoo! Cross Platform Software is Released! And yet you find yourself sometimes seriously wondering if the last two years of your life might have been much better served by staying pure Windows and releasing a flurry of awesome new products instead. Maybe it's the sort of thing you do after you're already successful and you can put an engineering team on it. Good question. But anyway here we are! And while we’re much farther away from having an awesome lineup of products than I’d like to be, when we do get there, our cross-platform position places a nice wide trench of sweat and tears between us and any competitor who wants to be cross-platform too.

I love that Logic runs on Mac now. I love Apple, and it’s great to finally be able to able to put up a picture of Logic running great on Mac. The software doesn’t look as good as I’d like yet, and lacks some key integration with OS X (it’s coming), but it would be difficult to argue that it’s not a really solid first step.

And now we’ve got a great offering for all the Linux shops out there. Woo hoo! Looks like embedded tools are increasingly going cross-platform (Xilinx comes to mind) and it’ll be great to be able to serve those guys now.

Another thing that’s cool is that I think it’s fairly safe to say that I’m unequivocally a Sr. software engineer now. This was not a walk in the park by any stretch. And I’m not sure that even now it would be very easy for me to do again. There’s a certain level of complexity at which you absolutely have to have a full-time, dedicated team with separation of concerns or it’s just not going to happen.

Private Beta
We’ve had the software in private beta for… I think ~1.5 years. Yah, that’s ridiculous. There were so many false starts and wrong paths... “Oh crap, if we do it this way we’ll just have to redo it again to support product X”. We had an initial version working and then decided that we had to switch to another cross-platform framework. Our initial revisions of the data pipeline (which were quite fast) had to be scrapped because they would have only worked with data in the format Logic currently provides. And being lead developer, and at the same time also the guy responsible for everything else that could possibly go wrong on the good ship Saleae wasn't helpful either.

Minh
My friend Minh, who helped me on the weekends for at least a year (and for a pretty meager pay rate too) – was absolutely instrumental in making this happen. He knows a lot more about hard core c++ than I did at the time. And also how to compile on different platforms, about binary comparability, and all that fun stuff. That’s the thing about c++ -- past a certain amount of complexity, you really better know how it works under the hood. I guess that’s true about .NET too, although it seems like you don’t hit that wall nearly as quickly.

Quick shout out to Stack Overflow – that site is hands down awesome, it saved my butt a lot. I have yet to post my own question, although recently I’ve been meaning to ask something about gcc.

Mark
By brother Mark spent his last summer in college (BSEE) out here with me hammering out code. He now knows more about c++, boost, stdc++, etc than I did 2 years ago. As usual, we figured we could finish it up (to the point it’s at now, basically) and launch our 2nd product by the end of the summer, with time at the end to go to Hawaii. Well needless to say that didn’t happen. =) But I think by the end of the year we’ll be about at that point. I’m really excited about the possibility that he might come out here most of next semester, as he only has one class. We kick some engineering ass working together.

The software needs more polish and bug fixes before it’s really solid, and I can’t wait for it to be really solid – meaning it doesn’t ever crash (or very rarely) – and doesn’t do anything stupid. Getting good crash reports back from the application in native code is not yet an art I have fully mastered, so that’s on the list as well. The code is littered with asserts, but some of the remaining issues are dreaded segmentation faults. But we do have enough log data give us a good shot at reproducing the issues.

I counted the other day, and the active code base consists of 236 files, half of which are headers. I don’t know how many lines of code, I looked briefly for something that could compute that (i.e. take out comments, lines with only brackets, empty lines, etc) but didn’t find much.

1.0.33
Over the past two years we haven’t made much progress on the Windows version (ol’ 1.0.33) of the software. Just a few odds and ends. In my mind, it didn’t make sense to continue working on a codebase that we we’re going to replace. (Not that it was - or is - clear that that's what we should have been doing). I think it’s a testament to the original software that despite not doing much with it, Logic continued to sell well enough to keep the lights on, and right up until this release continued to get praise from users. Not to say that all users we’re happy to be told that “we’re working on it” and “feature X will be incorporated after the launch of our cross-platform software”. And so that’s certainly one of the prices that was paid. We certainly listened, and I personally felt a bit sick inside every time I had to tell someone that x, y, or z isn’t something that Logic can do, but that “it’s on our list”. It’s a very long, very good list =)

John
Another key to this story has been John Montey. John steadfastly handles all the shipping and most of the non-technical customer issues, and anything else that comes up, which is plenty. He’s in Massachusetts now, which is why we’re shipping from there now. John’s set up an office out there and we moved out of the 2nd office we had over here. If John wasn’t with us, we would not be launching the software, no question. His ability to keep issues off my plate is the only possible way that this code is as far as it is now.

Turning 30
I turned 30 in March. I was supposed to have made it by now. What can you do be keep working on it. It’ll happen as long as we can produce great products that customers love. You might ask, in that case, why logic analyzers? -- to which I would answer, touché.

Scream Machine
Oh, I was really excited about this at the time – so as the code base got larger and larger, compile times were getting unmanageably long. First of all, it was a happy day when I discovered there’s a special command switch – not in the settings -- you can give VS2008 to have it compile files simultaneously if you have more than one core. (VS2010 may do this by default, I don’t know). This doubled our compile speeds, but still was not acceptable. At the beginning of the summer I put together a new workstation with parts from Newegg, the first computer I actually put together since college days. i7, 2.8GHz with hyper threading; 4 physical cores, 8 presented to the OS; and I think, anecdotally, that hyper threading is actually really beneficial for simultaneously compiling. And an 80GB Intel SSD. It’s a scream machine. I can rebuild the entire project in a couple minutes now. Recently I noticed that it wasn’t all that expensive for a 2-processor mobo – now that would really be awesome.

Logic gets a new design
Logic has a new form factor now. It’s milled out of a single piece of aluminum, so there’s no more seams. I’ve finally pinned down some metal finishing vendors who are reliable and do the finish I want (there are seriously only 2 or 3 in the US that have this process – and it was not at all easy to figure out what that process even was) so the Logics going out today have an unprecedented level of fit and finish.

The bottom of the device is an over molded, injection-molded part with our logo inlayed. I’m not entirely happy with it but it’s pretty good – and you never see it anyway. It needs to be grippier, mainly. But to do that we’d have make another tool (to increase the adhesion with a different junction design), and with our current cash flow that’s not high on the list.
There were a couple of reasons for the redesign. Mainly, I wanted to make the thing in the US, because we were having all sorts of issues getting these things made by our current vendor, and my efforts to quote it elsewhere in China, even with vendors I already knew and trusted, ultimately didn’t work out -- mainly (in retrospect) because I didn’t really know how to specify the surface finish. (it would be much easier now) But anyway, I also wanted more control over the surface finish, so that meant doing that in the states too. Also, the old design was a major pain to assemble. You don’t think about how many seconds something takes until you’ve actually had to do some operation 500 times on a deadline. And, lastly, I needed to try and reduce the machining costs if this thing was going to be made in the states. So I talked with our machine shop (American Prototype) and ultimately I designed the cost down to something that was reasonable. Much more than the price before, but the reliability and quality are impeccable. Total machine time per part is about 9.5 minutes over 4 different setups and 7 different tools. The majority of the operation runs at 75in/minute; 8500 RPM using a 0.375in diameter solid carbide end mill. Sound cool? That’s because it is.

It's pretty cool that the new Apple TV looks like a scaled up Logic :)

We also have a new carry-case for Logic, pretty much the same but has our logo on it – I really like it. Actually we’ve had this for a long time, just haven’t mentioned it before.

Space X
I followed, with much jubilation, as SpaceX put their Falcon 9 rocket into orbit on the first try. The sure willpower, and genius, and against-all-odds determination that Elon and co. exhibit are just stunning – and a real inspiration.

Well, that’s about it for now. I’ll have another update when we release the next product. Shouldn’t be too long! (famous last words…)

Thanks everyone!

Filed under: Uncategorized 11 Comments