How to Easily Debug Embedded Interrupts Using Logic: Part 1

debug embedded interrupts

Interrupts are some of the most useful features of typical microcontrollers. As with all things embedded, being able to get hands-on and eyes-on visibility into your interrupt code can make the difference between quickly resolving a coding error and confidently moving on to the next task, or spending a late night debugging by trial and error. The Saleae Logic 4 provides the visibility you need, in an easy to configure user interface allowing you to quickly understand and solve your interrupt issues.

This series of blog posts will show you how to use the Logic 4 to capture, view, and measure interrupt signals generated by a typical embedded system. For an example Device Under Test (DUT), we are using a micro-controller development kit from SiLabs, for their ‘F960 8051 derivative; however, the general ideas here should be useful for other parts as well. Example code demonstrating the handling of external interrupts is provided with many development kits, and this code has been modified to suit this example.

The Hardware

The F960 dev kit provides switches, connectors, lights, and power for the 80C51F960 microcontroller. We use one switch as an external interrupt on INT0, and two GPIO pins, which we call Output1 and Output2, to give Logic visibility into the code. Output1 and Output2 are active low and are pulled up to the positive rail when inactive. Jumper plugs connect one of the switches to the INT0 pin.

The Software

The software provides the necessary configuration for using External Interrupt 0 (/INT0) as an interrupt source connected to a switch. The code executes the initialization routines and then spins in an infinite while() loop. When the interrupt switch is pressed, the edge-triggered /INT0 input will cause an interrupt. The Interrupt Service Routine (ISR) drives Output1 and Output2 low at ISR entry, and does some simulated work (just a counter decrementing from twenty). After the simulated work is complete (the counter reaches zero) Output 1 is set inactive, and the ISR terminates. Output 2 is set inactive in main (with global interrupts disabled).

This software and hardware setup allow us to measure, by triggering on the falling edge of INT0 with the Logic 4, the following:

ISR response time
The time from assertion of the interrupt signal to ISR entry (from
INT0 active to Output 1 active)

ISR running time
The time required by the work done in the ISR (from Output1 active
to Output1 inactive)

ISR service time
The time from assertion of INT0 until the ISR has completed,
control has returned to main, and the system is ready to process
another interrupt

In this example, the software configures the system to use the low-power RC oscillator at 50 KHz for the clock.

Setting-up the Hardware

The hardware including the DUT and Logic were set up according to manufacturer recommendation, with particular care given to anti-static and electrical supply considerations. The Logic User Guide suggests most wall-wart powered devices are mains-isolated, however it is worth using an Ohmmeter to check your setup before applying power. The signals needed for this example are INT0, Output1, and Output2, shown  connected to Logic 4 along with the SYSCLK.

Debug embedded interrupts - Hardware Setup
Logic 4 Connected to DUT

Setting-up the Software

The key parts of the software relevant to this example are main() and the INT0 ISR, shown here.

// MAIN Routine
// Output1 is LED3
// Output2 is LED4
void main (void)

PCA0MD &= ~0x40; // Disable Watchdog timer

Oscillator_Init(); // Initialize the system clock
Port_Init (); // Initialize crossbar and GPIO
Ext_Interrupt_Init(); // Initialize External Interrupts

LED3 = LED_OFF; // Output1 off
LED4 = LED_OFF; // Output2 off
IE_EA = 1; // Global interrupt enable

// Infinite while loop waiting for an interrupt from /INT0


IE_EA = 0; // Global interrupt disable
LED4 = LED_OFF; // ISR done, in main

IE_EA = 1; // Global interrupt enable




Debug embedded interrupts - Screenshot

// /INT0 ISR
// Whenever a negative edge appears on SW1, INT0_ISR is run.
// The interrupt pending flag is automatically cleared by vectoring to the ISR

int count = 20;
LED3 = LED_ON; // ISR start
while(–count > 0); // Simulate ISR work
LED3 = LED_OFF; // ISR work done


Debug embedded interrupts - isr

Configure the Logic 4

The next step is to launch and configure the Logic 4. Channel 0 is connected to INT0, Channel 1 to Output1, Channel 2 to Output2, and Channel 3 to SYSCLK. We want to trigger on a switch press, which is connected to INT0, so click on the trigger mode box in the Channel 0 configuration menu and select the falling edge trigger. Name the signals to your preference by clicking on the name in the Channel box and typing a new name. Click on the up-down arrow in the green ‘Start’ button, to configure the capture duration (we don’t need many samples for this example, and Logic accepts fractional seconds here, so I entered 0.1). Over on the right, go to Options->Preferences and select 1M Pre-trigger buffer size. This video shows how to do it.

Now that we have shown you how to configure the Logic 4, learn how to capture here.

Pre-Order Shipping Status Update

Hello everyone,

There have been some delays with Logic 8 and Logic 16 that have come to light over the last 2 weeks.

Logic 8 

Status: ~45 pre-order customers still do not have their Logic 8’s and we will not be able to ship them for 1.5-2 weeks.

There have been two issues here.  The first is that we ran out of PCBs because of calibration failures, and were unable to get those PCBs working;  More PCBs are currently being assembled but clearly the situation is very frustrating for the last ~45 Logic 8 customers this affects.  I eventually sent an email to these ~45 customers, but it should have been delivered as much as a week or more sooner.

The 2nd issue — and in my mind the more unforgivable issue — is that we started to print out everyone’s labels, including FedEx shipping labels — in an attempt to batch process more efficiently, as well as because we *thought* that we would be shipping all of them over the course of a few days or so.

The trouble with this was that this caused these orders to show up as “Label Printed” in our system — so when people wrote in asking “what is my order status” several of us over here looked up these individual’s orders, concluded that they were just about to ship, and indicated this to the customer along with their tracking number.  This went on for ~2 days before we realized what was happening and notified everyone doing support over here that “Label Printed” no longer meant what it normally did!  This means that perhaps 10-20 customers were directly told that their order was shipping when in fact it wasn’t.  Then — and where we really screwed up — is that for some reason we failed to immediately notify these 10-20 people of our mistake, which resulted in many of them understandably becoming quite upset!

And, as it would turn out, people clicking their “order status” links in their emails also can see a tracking number in there, regardless of if their unit has actually shipped or not.

Logic Pro 16

Status: ~143 pre-order customers still do not have their Logic Pro 16s.  ~30 are shipping today to the oldest of these, and the remaining 110 will be shipping Friday and Monday.

Here we have roughly the same story:  these boards had some sort of assembly or component defect issue (I’m still not sure exactly what it is yet) with some of the ultra-tiny load switch components, causing especially low yield that prevented shipping all the pre-orders as planned.

In addition, we had the same issue as detailed under Logic 8 above regarding the labels being printed early.

Concluding Thoughts

It has been a struggle to juggle the many fires constantly erupting over here — and try to make the right calls as to what gets priority for our highly limited staff.  This incident painfully reinforces how critical it is that we rapidly communicate with customers any issues that arise.

I am enormously frustrated recalling the mistakes that I have personally presided over which have caused such a disagreeable customer experience.   I feel that I have apologized so many times over the past months that it perhaps is in danger of becoming meaningless, so I will refrain from overtly doing so here yet again, but you know how I feel.  The one thing that keeps me going is that we will get though these hard times and with the right fixes to our systems and processes this situation in principal is entirely avoidable going forward.

-Joe Garrison, CEO

First Logic Pro 16s are shipping today!

Logic Pro 16 PCBs


Logic Pro 16– Shipping Started!

The very first Logic Pro 16s are shipping today, hooray!  Over the weekend and Monday my brother Mark heroically resolved the last blocking issue.  Pro 16 takes longer to program/calibrate than the other units so I don’t yet have an estimate as to when the very last pre-ordered unit will ship, but mid-next-week seems likely.

Logic Pro 8 – Update

All Pro 8 units are built/calibrated and most pre-ordered units have shipped, remaining units are shipping today and tomorrow.

Logic 8 – Update

All Logic 8s have been tested/assembled; most have shipped and the remaing pre-orders are shipping today/tomorrow.  I’m afraid there were some delays on many international orders due to some issues switching over to FedEx – I apologize for the delay on these international orders!

Logic Pro 8 is now shipping!

Hello Everyone!

Logic Pro 8 – Shipping Started!

We’re happy to report that the first Logic Pro 8’s shipped today, and many more will ship tomorrow.  Woo hoo!  We had a software glitch that bogged down the release of the software for a few days and that is why we couldn’t ship them sooner.  The software glitch is related to certain USB 3.0 host controllers which now seems to be resolved.   It will probably take us until late next week to ship the entire backlog.

Logic Pro 16 – Shipping Starting Next Week

We received the first article production PCBA for Pro 16 last Friday, and the production boards should arrive this Friday.  There’s a couple odds and ends that need to happen software-wise before we can ship that but nothing we shouldn’t be able to crank out over a overly-caffeinated long weekend.

Logic 8 – Shipping the Backlog

We’ve shipped several hundred Logic 8s and are shipping 75-100/day so we should have everyone’s out by Friday/Monday I think.

Some of the first Logic 8's shipped!
Some of the first Logic 8’s shipped!
Logic 4 Black - In Stock!
Logic 4 Black – In Stock!
2014-09-24 19.36.28
Launch t-shirts!

Logic 8 Now Shipping!

Hi Everyone!

This is Mark again. I’m happy to say that as of right now, Logic 8 is finally shipping! There have been a number of delays since our last email; most notably was an issue with the digital input buffer chips that showed up when performing tests with high impedance signal sources ( > 1 K ohm). However that issue, and several others have been resolved, the calibration and programming system is working, and we’re finally shipping the new Logic 8!

Logic Pro 8 and Logic Pro 16
The delays with Logic 8 have pushed back the Logic Pro devices. We’ve just finished evaluations of the first assembled panels of Logic Pro 8, which passed with flying colors! The full batch is being assembled now, and the finished boards will arrive later this week. We have the rest of the parts ready to go – machined aluminum enclosures, packaging, etc. We’ve also made dramatic improvements to our programming and calibration workflow, and we will continue to improve it this week to speed up the calibration process as much as possible.

Logic Pro 8 expected shipping start date: 9/19/2014
Logic Pro 16 expected shipping start date: 9/26/2014

Like Logic 8, we won’t be able to ship all of the pre-orders at once, due to the calibration test time.

There are a few things that need to happen all at once for Logic Pro 8 to ship this Friday, and we’re working on all of them in parallel right now. Specifically, there are a few changes that need to be made to the VHDL to support the highest throughput options, the Logic Pro software support needs to be made release ready, and our test flow needs a few tune ups – proper results backup and pass/fail parameters. We’ll keep you informed if anything changes. Fortunately, most of this is very similar to the work required for Logic 8’s release, so I expect there to be fewer unanticipated delays. In addition to that, there are a few critical tasks this week to get Pro 16 ready for shipping next week.

I’m happy to say that the newest beta, 1.1.24, is out now! You can get it here. It has support for the new Logic 8s, which shipped today! (updated Friday)
I’m also excited to say that we’ve just started working with a new graphic designer on the software, so you can expect to start seeing more UI changes later this month! Thanks everyone for the feedback, and right now the designer is making the protocol bubbles easier to see, and addressing a number of critical readability issues.
Charles is working on some changes to the analog measurements, and is adding a basic voltage display feature, in addition to the existing and more complex feature detector.

There is a million other things going on, so I’m very sorry if we’re a little slow on support – which I personally apologize for. I normally handle the bulk of technical questions, but the software team is handling it now so I can devote most of my time to getting the products ready to ship.

Thanks again for your support!
Thanks and kind regards,
Mark Garrison

Logic 8 Update – the Home Stretch

Hi All,

This is Mark again. Unfortunately Logic 8 isn’t shipping tonight. However, it will start shipping soon, and we will be sending out the address collection emails shortly.

First the good news:

The Logic 8 HDL is complete! I’ve just fixed the last issue that was holding us back from a functional product. The software is working well too, although it’s still pretty rough around the edges.

The hold-up now is getting our programming and calibration software updated to work with Logic 8, update the Matlab code for testing and calibrating Logic 8 (more on that later) and actually processing all of the pre-ordered units.

The first thing I want to talk about is calibration. We’re still working on perfecting our calibration filter generator, which isn’t quite ready yet. For Logic 4, we simply captured the data set we needed to compute the calibration constants before shipping – since the calibration system isn’t quite complete yet.
With Logic 8, we’re going to do the same thing, since it looks like it could take a few more days at the least to finish up the process, and we need to dedicate quite a bit of time to the Pro devices too.

DC only calibration
Our plan right now is to get the next version of the software to support DC calibration only – specifically, the frequency response of the products won’t be calibrated, but the DC voltages will be accurate. Right now, there is a small amount of error in the voltage measurements of the shipped Logic 4s. We designed them to operate over a slightly larger range than 0 to 5 volts, so that any component variation wouldn’t infringe on that range. However the software doesn’t know that yet. This calibration is done on a per-device level. We have already computed these values for all Logic 4s shipped, and this data will be recorded from the Logic 8s as well.
If this doesn’t make it into the very next release, it shouldn’t be far away. Charles and Chris will be working on finishing this tomorrow, and I hope to include this with the Logic 8 software update.

Frequency response calibration
For reasons similar to those above, the AA filter’s frequency response isn’t perfectly flat by design. There is a very small droop in gain at the higher frequencies, and this will interfere with amplitude measurements in the software. We won’t have this support added to our software for a little while, but we’ve already recorded the amplitude and phase response of every device we’ve shipped – we just need to finish up the Matlab implementation of the calibration calculator and finish the software support for it.
To keep things from getting too confusing about calibration, we’re going to add a screen to the software indicating what calibration information is currently in use for your device, as well as create a support article about it.

Automated programming and test
This is one of the main hold-ups for Logic 8. We’re finishing up adding Logic 8 support to our automated programming and test software, but there is a big issue – right now, it looks like it could take up to 10 minutes to test each Logic 8! We haven’t started to optimize the process, which is currently very manual and inefficient, but in the short term, this means we won’t be able to ship all of the pre-orders at once. While we’re working on optimizing the process, we will also be programming, testing and shipping the units in the order that pre-orders were placed. Hopefully we will be able to get the automated test time down to as short as possible, because right now it would take several days to test all of the Logic 8s, and Logic Pro 16 would take weeks. I’m confident we should be able to speed this up a lot over the next few days.

Logic Pro 8 and Logic Pro 16
There are a few HDL tasks that need to be finished before we can start shipping the Logic Pro products, and I’ll jump into that right away. Specifically, Logic Pro 16’s dual ADCs need proper sample synchronization support, and some tune-ups to the FX3 GPIF II interface. The FX3 firmware also needs some tune-ups, although it’s working pretty well. USB 3.0 works great on Windows and OSX, but we’re still having some trouble on Linux, which might delay USB 3.0 support for that platform, but I’m sure we will be able to get that working soon. The software may also have some performance issues with these devices at launch, but we already have a plan to improve and optimize our data processing code to handle the much higher data rates.

In short, Logic 8 will start shipping soon, but we will have to spread shipping over several days, because our calibration process is still pretty slow. Out of the box, Logic 8 won’t be fully calibrated, but we have all of the data here to finish calibration on all of the units, including those we’ve already shipped. DC calibration will be added first, and that should be out in the next software release, and support Logic 4 and Logic 8.

Thanks again for your support and commitment! If you have any questions at all, please let us know.
Thanks and kind regards,
Mark Garrison

Saleae Pre-Order Update #4 – Logic 4 is shipping!

2014-08-20 17.58.00


Logic 4

  • Now Shipping!

Logic 8:

  • Estimated shipping date: September 4th
  • Constraint: HDL/software development backlog
  • PCB: all on hand (PCBAs done by this Friday)
  • Electrical components: all on hand
  • Metal case, etc: on hand / in route

Logic Pro 8

  • Estimated shipping date: September 12th
  • Constraint: HDL/software development backlog
  • PCB: all on hand
  • Electrical components: all on hand
  • Metal case, etc: on hand / in route

Logic Pro 16

  • Estimated shipping date: September 12th
  • Constraint: HDL/software development backlog
  • PCB: all on hand
  • Electrical components: all on hand
  • Metal case, etc: on hand / in route


Logic 4 Shipping

Logic 4 is now shipping!  Woo!  Thank you Logic 4 backers, and thanks for your trust and patience!  Also, if you haven’t received an email to send us your shipping address please write us (, you may have missed it.

More on Logic 4 further down, let’s move on to:

What is this HDL/Software Development Backlog Nonsense?

This is what I would be thinking, and maybe I would be just a little bit annoyed (or maybe a lot) if I was reading that after following along with our updates over the past months.

First of all the good news:  there are no material / assembly constraints any more — everything is in stock or on the way.

The bad news is that HDL development has some quirks that need to be resolved before we can safely ship.  In addition (and to a lesser extent) we need to make sure the software is working perfectly well in conjunction with the HDL.  For Logic 8 we don’t expect this to take more than a week, and the reason we have two weeks above is because our intrepid HDL developer Mark is unavoidably detained for a week, which we’re all a little bit stressed about but there’s nothing that can be done about it.

Specifically, there are some remaining HDL issues with the CIC digital filter (a glitch/bug), some timing constraints issues, and some minor security development work.  On the software side a bit more time needs to be put on USB 3.0 support for OS X and Linux.  The firmware also needs to be fully reviewed.  In the scheme of things, this isn’t much, but it is frustrating to us and I’m sure to many of you reading this.  For what it’s worth, I offer my apologies.  We’ll try and make it up to you by shipping a beautiful, refined, and ‘it just works’ product you can be proud to own and have waited for.

Did we mention Logic 4 is shipping?

Woo!  Logic 4 is the smallest and least expensive of the new product family, but believe it or not it’s actually really cool.  Here are some fun facts.

Logic 4 Fun Facts

  • The code name for Logic 4 for was “Logic Student”
  • 136 components (Logic16 only has 163!)
  • Uses the Cypress FX2 chip in the tiny 8x8mm 56-VFQFN package
  • Uses an I2C crypto chip for resistance against cloners
  • Has an RGB led with a cool light pipe (James even built a “light pipe insertion tool”)
  • Has a USB micro connector (unlike Logic and Logic16)
  • Has a -.23V charge pump IC (helpful for not clipping ground in an op-amp circuit)
  • Has dual 74AHC573 latches to make fast 4-bit sampling possible with the FX2
  • Has a 7th order passive ant-aliasing filter: 1 resistor, 3 inductors and 3 capacitors
  • PCB is 6-layer, .032 thick, 1.5″x1.5″
  • The tooling for the logo badge on the top cost the same as a decent used car
  • Uses #2-64 screws (Logic/Logic16 used #0-80)
  • Has custom machined “feet”
  • First units shipped in red!

James is in China

Most parts of Logic are made/assembled in the United States, but the aluminum case is currently not.  James is over in China right now making sure that the machined aluminum enclosures are top quality.  I’ll see if we can’t get a blog post from him about that.  We also should get a post in about our own assembly operation, which is pretty cool.

Testing Software / Hardware

Some of the delays with Logic 4 right towards the end involved getting the testing setup ready for prime time.  I’m happy to report it is now happily logging calibration data to an online database.

New Software Release — with support for Logic 4!

We’ve just pushed the latest software, and for the first time this includes analog support.  It’s a little more rough around the edges than I’d like but the software team is cranking away and it’ll be nice and refined before too long.  Chris has added drag-and-drop and it is AWESOME.  Try it.  Try multiple selections too (shift-click).  Analog measurements are a bit rough, but it’s getting there and is going to be fantastic. Behind the scenes, Aparna has been working on securing our software against the cloners.

Next Steps

Software – bug backlog, UI/UX refinement, and  and more testing/fixes for Logic 8/Pro 8/Pro 16 integration.

HDL / Firmware – Fixing timing constraint issues and filter-related data glitches.

Hardware – Improvement of automated test software/hardware

Thank You

This has not gone as smoothly as we had planned.  I particularly dislike pushing back the ship dates instead of moving them forward!  If any of you, in your own lives, have shipped things early –and properly managed expectations — and have some tips or  a recommendation for a book or something please do write into support!

Thanks so much for your trust and patience.  You’re going to love the new products.


2014-08-20 19.12.33
New testing software
2014-08-20 18.21.10
Logic 4! Arguably the cutest of our new products.
2014-08-20 18.14.54
Jimmy packs each of the new Logic 4’s — with love!

Saleae Pre-Order Update #3

Update #3

Hi All,

This is Mark Garrison – Chief Technical Officer at Saleae and Joe’s younger brother. I haven’t written a blog update in a while, but I’m excited to share with all of you our third pre-order update! You may know me if you’ve written into support about the beta software updates, or with technical questions. I lead the software team and write the firmware and HDL for the new products.

As always, thanks again for your support, feedback, and commitment! This is our third pre-order update, and we will be updating this blog post with more information over the next few days. Right now, this is the same information we included in the customer update email.

Unfortunately, there have been a few new delays since our last update. It wasn’t until yesterday that we were able to secure updated promise dates on the delayed orders, and the new ship dates are as follows:

Logic 4: Monday, August 11th, 2014
Logic 8: Monday, August 25th, 2014
Logic Pro 8: Friday, September 5th, 2014
Logic Pro 16: Friday, August 29th, 2014

I’m very sorry for the additional delays! Here is a summary of the status of each device, and I will add more information about these delays soon.

Logic 4:
The aluminum enclosure has been delayed and won’t arrive at our location until August 7th. This is the last component needed to ship Logic 4. We will be assembling the units over the weekend and begin shipping the next week.

Logic 8:
The electronic components are the main bottleneck now – I spent much of last week changing suppliers and orders to make sure all of the parts for all products should be at our office by August 11th. The day after, we ship them to the assembly facility located not far from us in the Bay Area, where a 7 day build will begin. (Ultimately, it was the op-amp that had the longest lead time that we couldn’t improve.)
The biggest risk to the shipment date of Logic 8 is the arrival dates of the electronic components, followed by our ability to validate the first panel on assembly day. More on that soon.

Logic Pro 8:
The main bottleneck for Logic Pro 8 are the PCBs themselves. We’ve had several issues with the assembly company, and the new arrival date for the PCBs is August 21st. Note that Logic Pro 16 will actually ship sooner – more on that below.

Logic Pro 16:
Logic Pro 16 has been the biggest concern for us this month. Not long ago we discovered a show stopper design flaw in the PCB that was already in production – potentially delaying the shipment of Logic Pro 16 significantly. However, we were able to fix the design flaw, bring on another PCB manufacturer, get a slightly lower price AND get the promised ship date sooner than Logic Pro 8! We are currently investigating using this new partner for our other builds in the future, and we have used them a number of times in the past for prototype PCBs. This is why Logic Pro 16 will actually ship slightly sooner than Logic Pro 8.

First, thanks to everyone who tested out the 1.1.20 beta and wrote in with feedback! That’s helped an enormous amount, and I look forward to getting the next release out soon. We’re taking a short break from new features to complete release-critical features – specifically improving the reliability of the firmware & FPGA designs, implementing the anti-clone features, and fixing critical device related bugs. The good news is that all four products are working pretty well now, and the systems are in place to be able to easily release no-risk firmware updates with the software. In fact, each release of the software automatically ensures that the correct version of the firmware is installed on our device, and the process is completely automatic. It’s the same process we’ve used to keep the Logic and Logic16 firmware up to date since we launched those products. I look forward to diving into much more detail in future blog updates, but we now have USB 3.0 working very well on Windows and OSX, and we’re working hard on getting the Linux USB 3.0 support up to speed. In fact, I’ve already done testing with Logic Pro 8 at 20% above our original advertised bandwidth – something I hope to release as a software & firmware update later on down the road. We also now have a USB 3.0 host controller from every USB 3.0 host vendor, and we’ve started testing all of them to determine if we will have any PC hardware specific issues. You can expect quite a bit of information about USB 3.0 on our support site in the future. We’re also working on expanding backwards compatibility for our software on Linux to support more business customers running distributions like CentOS. We will also be releasing a new version of the analyzer SDK that supports the protocol search feature for third party developers very soon. Finally, the next beta release of the software will include the new drag & drop channel re-ordering feature that we’ve just finished. We’re about to start working with a new graphic designer, so unfortunately the next release will still have a decent amount of “programmer art” but we will have the final UI perfected in the not too distant future.

Aluminum Enclosure:
We’ve had a lot of concerns about the machining quality and delays we’re experiencing with the new aluminum enclosures, but we have a lot more confidence now in their quality and shipping times. We’ve recently started a daily call with the factory to check in on the daily progress, process control and address any issues as they come up. It’s critical that these metal cases are delivered on time and defect free, and we’re really excited about the new cases – especially the red ones! We’re currently working out a delivery date issue with the anodization process of the metal feet – we just discovered that they were not included in the expected ship date of the first batch of enclosures, and we’re working on making sure they arrive on time to ship the new products.

I’m excited to get the first release of the software that supports the new products out soon – on or before August 11th, 2014. And we’re finally going to get out of beta!

Thanks again for your support and commitment! If you have any questions at all, please let us know.

Thanks and kind regards,
Mark Garrison

My advice for young engineers (and older ones too)


This is my personal, heartfelt and practical recommendation, assuming you have the freedom to do this:

1. Move to the Bay Area — San Francisco or Mountain View or anywhere close enough to commute to those places.

2. Work at the most exciting start-up you can find.  If you can’t do that, then work a Silicon Valley firm like Apple or Google where you’ll learn super fast.

3.  To do that, learn hands-on practical CODE.  That said, you can also do EE, mechanical, and so on, but learn coding too.

4.  The most important thing about code is that it is clean and readable and makes sense to anyone who looks at it.  Everything else is secondary or not important at all.

By the way, this isn’t an attempt to recruit, just wanted to share some ideas I was thinking about. Not everyone is in a place in their life to follow through on some of this, but if you can, embrace the opportunity for all its worth.

That’s all I’ve got for you right now.

Launch Update #2


The second beta has been released! Get it here:

Logic 4

  • Estimated shipping date: August 1
  • Constraint: Aluminum case (scheduled for late July)
  • PCBA:  Assembled and ready

Logic 8:

  • Estimated shipping date: August 15
  • Constraint: Aluminum case
  • PCB: scheduled for mid-July
  • Electrical components:  scheduled for on or before August 6

Logic Pro 8

  • Estimated shipping date: August 15
  • Constraint: Aluminum case / PCB
  • PCB: scheduled early August (working to bring this in)
  • Electrical components:  scheduled for on or before August 6

Logic Pro 16

  • Estimated shipping date: August 15
  • Constraint: PCB
  • PCB: scheduled late 8/13 (working to bring this in)
  • Electrical components:  scheduled for on or before August 6

Machined Aluminum Cases

The aluminum cases required another round of first-article approvals – in particular the factory needed a dimensional change to aid manufacturability, there were some cosmetic issues with the metal finishing of the Logic ‘feet’ components, and we added laser etching to the back of the part.  The new first articles are being finished right now and after approval we should be three weeks out from production parts. I was hoping to have these production parts right about now, allowing us to ship Logic 4, but unfortunately it hasn’t worked out that way.


The PCBs also added some lead-time mainly to some design changes on our end and a lot of back and forth over getting things approved (stackup, panelizations, impedance, and so on).  This only affects Logic Pro 8 and Pro 16, with the Pro 16 PCB currently having the longest lead time of 8/13.  I’ve requested that to be brought in to the 1st but I don’t have confirmation they can do that yet.

Electrical components

I was able to bring in lead times on almost everything, but there is still one component stuck at 8/6.  I think this part can be moved up to the 1st with some expedited shipping – our rep is exploring that now.  If we can get the PCBs pulled in to the 1st as well then this will be helpful.

*Other company updates*

Software Team

The software team, headed up by my brother Mark, continues to do very well.

They are still on a two-week Scrum cycle, and have a Scrum meeting once per day.  The team is getting more and more experienced with the software and able to help each other more and more – rather than relying on Mark as much.  Mark has been running these various software ‘bootcamps’ where a developer is asked to thoroughly  research a topic and then explain it to the team – optimization and multithreading for example, and that seems to be going well.

Our focus remains on polishing the software ahead of the official launch.  Performance is key – this application is extremely, extremely data intensive.   Other tasks on the final two sprints include security, calibration, simulation, drag and drop of channels, keyboard shortcuts, and bug fixes and UX improvements.  Proper support for Mac gestures and non-Ubuntu Linux is also on the list.

Security / Clones

Regarding security, we’re taking it pretty seriously this time around.  Logic has been cloned, and there’s not much we can do about that, but we expect to be able to protect Logic16 and all the new products from cloning from here on out.  Mark reads the forum posts by our various friends in Asia who have successfully cloned Logic16; it’s very interesting and kind of a weird experience reading about how your product was cloned, I can assure you.  In the case of Logic16 we’ve developed a weird sense of respect for our advisories, and have learned a lot about how they see the world – and can imagine how if raised in similar circumstances, we would probably do the same thing and feel just fine about it.   All that said, we don’t expect that Logic16 clones will be able to work with any new versions of our software.

Oversees Shipping

We have received a lot of questions from mainly European customers asking how we will be shipping the new products.  For the pre-order only, we will be shipping directly from the US, and yes, you will most likely get a bill from FedEx for VAT. After the pre-orders we will be collecting VAT on our website, and for all EU countries – in addition to as many other countries – we will be able to guarantee that you will not get a customs bill. We’ve worked with FedEx to get super accurate country-by-country customs information.  On a country-by-country basis we will set it up so we are billed for customs, and any charges we just charge for up front.  For EU countries for example, this will just be VAT.

Inventory & Financial Systems

With the assistance of our new interim CFO, we have been looking at inventory management and financial packages.  The landscape of accounting packages starts with QuickBooks and Xero, which are inexpensive.  Up from there you have Intacct, which from all accounts is great for accounting, but you need to be at least a $20M company for that to make sense.  At the same time as Intacct starts to make sense, so to the enterprise ERP systems, like NetSuite.  But as nice as that would be, it’s not going to happen at our size.  So… QuickBooks or Xero.  Xero is out because its inventory capability is too primitive (this should be different in a year, they are working on that right now).

For inventory, we looked really closely at Aligni.  It supports electrical components really well – in particular version control, octopart integration, great quoting, tiered pricing/order minimums, and a formalized build cycle.  There’s also Fishbowl and a few other ones.  The biggest problem with Aligni was that it would require a lot of work to integrate properly with QuickBooks.  Getting large numbers of parts and assemblies into QuickBooks is cumbersome to say the least, but there are some third party tools to make it less painful.  In particular we’ve used Transaction Pro Importer 5 with good success. The QuickBooks API is SLOW.

We ultimately decided to just use the QuickBooks inventory and upgrade to QuickBooks Enterprise so we could add “Advanced Inventory” which adds a couple of useful features.   On top of this we’ll be adding custom software to help in figuring out what needs to be ordered and when, which we’ve been doing for a while.  We also were able to create some log-ins for the assembly team that had restricted permissions – so they can directly use QuickBooks without seeing (or editing haha!) salary information, etc.


For planning/forecasting/budgeting we’re pretty set on starting to use Adaptive Insights.  This is not cheap, but is barely affordable for a company our size.  But with the help of our interim CFO I’m hopeful that our forecasting will be much, much more useful.


For manufacturing the assembly team is using Kanban with great success – just cards, no software.  I hope to apply this to reordering supplies soon (supplies not tracked in inventory).  In addition we will be linking the Kanban cards with various QuickBooks activities so that the inventory status stays perfectly in sync with production.  Lastly, I’m hoping to start tracking assembly time for individuals and specific Kanban jobs – with the goal of at least having COGS (cost of goods sold) contributions from the different production activities.

New Marketing Agency

As some of you on Facebook may have noticed, we’ve engaged with a marketing agency on a trial basis to see if we can explore some different marketing channels and find one that works.  They will also be optimizing our Google AdWords efforts among several other areas.  Historically most of our sales come through personal recommendations, which is awesome.  We’re hoping that though some new marketing efforts we can grow more quickly than we have in the past and support a larger team to take on bigger projects in the future.

Bi-weekly Meetings

A few months ago we started to do some status meetings every two weeks, and I think it’s been very helpful for top level planning.  We have one for software, manufacturing, and marketing.  The one I like the most is the ‘big picture’ meeting which allows me – for a couple of hours – to forget all the things going wrong at the particular moment step back and dream up what we could be doing next – both in terms of a few months and in terms of a few years out.  It’s a breath of fresh air and I think will help us keep in mind where we want to go even when on the day-to-day level we’re only thinking a month out or so.

Furry Friend

Lastly, we get a temporary Saleae mascot a recently — Charlie.   Charlie is my friend’s bunny that we will be watching for a little while. Initially this was because she went on vacation, but I’ve convinced her to let us keep Charlie a little longer.  Shh, don’t tell building management.


Full featured, fully animated drag and drop is coming in the next release.
Full featured, fully animated drag and drop is coming in the next release.


Just an example of some amazing code cranked out by the developer team :)
Just an example of some amazing code cranked out by the developer team :)


This is Mark's "launch beard".  He cannot shave it until after we ship.
This is Mark’s “launch beard”. He cannot shave it until after we ship.


James & Jimmy have been working on this Kanban system and it's going extremely well.  They are currently working on version 2.
James & Jimmy have been working on this Kanban system and it’s going extremely well. They are currently working on version 2.


Some SLA prototypes of a test clip we've been working on.
Some SLA prototypes of a test clip we’ve been working on.


This guy is staying with us for a few weeks.  His name is Charlie.
This guy is staying with us for a few weeks. His name is Charlie.