This project is coming soon. Sign up to receive updates and be notified when this project launches.
Welcome to the loop. This is where every embedded developer finds themself for much of the day. I spend a lot of time in the loop. I code. I flash. I debug. I repeat. My productivity (inversely related to my frustration) is a function of how quickly I can go around this loop.
Stratify Toolbox is a flash and debug tool for ARM Cortex-M devices that
Let’s look more closely at how time is spent in the loop.
Code. Many hardware vendors have limited support for non-Windows platforms and require you to use their not-so-resource-friendly IDEs for debugging. The Toolbox works independently of code editing. So you can code however you like, on Windows, Linux, or Mac.
Flash. Flashing should be fast and easy. The Toolbox quickly loads firmware onto any supported ARM Cortex-M chip over SWD. It works quickly and transparently so you can get right to debugging. Operation over USB is driverless on Windows, Linux, and Mac.
Debug. Approaches to debugging are quite diverse, but they tend to fall into one of two camps…
printf()-ers vs. the Code Steppers
I have been a
printf()-er for as long as I can remember. My experience with debuggers made my time in the loop considerably longer as I found myself stepping through code and haphazardly scanning variables. With
printf() (and a little planning), I could have the code show me what I wanted, when I wanted, in the format I wanted. But
printf()-ing has its limitations:
printf()-ers usually use a UART for output, and it can be tricky to get the UART running.
printf()-ing causes delays in program execution which can lead to strange, difficult-to-debug behaviors.
printf()-ers are embarrassed to admit,
printf()depends on a lot of code (even
malloc()in some cases). This can be an irritation when working with larger devices and a show stopper when working with smaller ones.
Fortunately, the ARM Cortex-M has sophisticated debug hardware just sitting there waiting to make
printf()-ing awesome. Stratify Toolbox uses that hardware to provide a fast, minimally-invasive debugging experience that addresses all three of the challenges described above.
printf()is available immediately after startup; there's no need to bring up the UART.
printf()routine is off-loaded to the Toolbox, so the target implementation is both ultra-lightweight and full-featured.
Many of the Toolbox features are available without installing any software on your computer. For example,
curland the Toolbox REST API
When you install
sl—a lightweight command line tool consisting of a single executable file that is under 5 MB and has no external dependencies—you can:
sl is trivial to install (yay!) and just as easy to delete (boo!). It runs on Windows, Mac, and Linux.
The Toolbox has built-in bus analysis and analog IO. You can use target firmware
printf() statements to indirectly command the Toolbox. You can…
Having complete control of the Toolbox from within your code editor helps you minimize loop time by obviating the need to fiddle with external tools and triggers. Just add a
printf() statement that the Toolbox recognizes, and you’re all set.
Stratify Toolbox is powered by Stratify OS, an application-based MCU operating system that takes full advantage of ARM Cortex-M hardware features. Applications are built independently of the kernel and run in memory-protected space with their own stack pointer. The Toolbox includes core features for managing applications, files, and Wi-Fi networks. Furthermore, the SDK allows anyone to build and share additional tools.
With our easy-to-use SDK, you will find yourself building and installing new applications in no time at all. As we demonstrate in our Setup & Configuration Guide, just a few simple steps will have you up and running on Windows, Mac, or Linux in less than ten minutes.
printf()Stream and Firmware Recovery
I am getting ready to send a prototype to Crowd Supply. This is an exciting step! Crowd Supply requires all projects to send them a prototype before they launch. This gives them a chance to kick the tires and ensure backers will get what they pledge for. While writing up a how-to guide for the prototype, it occurred to me that I might as well share it with all of you. So here you go! Read the full update.
Ease-of-use is one of our top design priorities for the Toolbox. This obsession with usability can be seen in the lengths to which we've gone to ensure that you have complete control, right out of the box. No drivers. No downloads. No installs. No configuration. Read the full update.
In this update, you can learn more about our open source, embedded C++ framework by taking a look at how to do bus scanning with Stratify Toolbox. Read the full update.
This update includes a breakdown of how Stratify Toolbox accesses the Internet. Read the full update.
I have recently made some major progress on designing and implementing the hardware and software systems that power Stratify Toolbox. This was no easy task. The Toolbox is powered by the STM32H750 microcontroller and Stratify OS. The STM32H750 is an ARM Cortex M7 with an L1 cache and up to a 480 MHz CPU, which is a major workhorse. Stratify OS is a microcontroller RTOS that I have spent the last decade building specifically for ARM cortex chips. Bringing it all together required quite a bit of system integration. This update breaks it down for you. Read the full update.
Please join me at 1 PM tomorrow, Wednesday April 22nd, for an Ask Me Anything (AMA) on Crowd Supply's Discord. This update includes an invitation to that AMA, information about a Coronavirus-related side project, and an interesting tidbit from our survey of potential Stratify Toolbox users. Read the full update.
To let your voice be heard, so that the features you want the most get the attention they deserve, please fill out our Toolbox Feature Survey! Read the full update.
This update provides a brief Setup & Configuration Guide for the Stratify Toolbox SDK. Just ten minutes and a few simple steps will have you building and installing new applications on Windows 10 or MacOS. (Give us a shout if you'd like to see a Linux guide here as well!) Read the full update.
A small, portable, USB-connected electronics lab-on-a-board that includes an oscilloscope, waveform generator, power supply, logic analyzer, and multimeter.
A USB hub with per-port power and data disconnects + dev board + I²C, GPIO, and SPI bridges
A better SPI adapter