BeagleLogic Standalone – Featuring the OSD3358-SM

 

This article was guest written by Kumar Abhishek about his award winning BeagleLogic project.  Kumar is an engineering graduate from the Indian Institute of Technology (IIT), Kharagpur, India. His journey into electronics began at a very young age and since then he has worked on projects using a variety of embedded platforms. He is a Google Summer of Code alumnus with BeagleBoard.org and has also served as a mentor for BeagleBoard.org in the Google Summer of Code program.

All of us at Octavo Systems would like to congratulate Kumar on his award and exciting future! 

Background

Three years ago, as a student under the Google Summer of Code program for BeagleBoard.org, I developed BeagleLogic – that turned the BeagleBone Black and its variants into a Logic Analyzer using the Programmable Real-Time Units (PRUs) on the AM335x SoC to capture up to 14 inputs up to 100 MSamples/sec. It is possible to fill up to 300MB of the 512MB DDR RAM in the BeagleBone with logic samples – that’s 3 seconds of data at 8 channels (1.5 secs at 16 channels). I also designed a cape for the system – called the BeagleLogic cape that would allow buffering the external logic signals up to 5V TTL so that they do not damage the BeagleBone.

However this approach had limitations. First, 2 of the 14 logic inputs overlapped with the on board eMMC so only 12 inputs were usable by default. 16 inputs were possible, but on the BeagleBone it was possible to use only 14 of them at max. Also there was a limit on just how fast data could be brought out of the BeagleBone which has just 100Mbps Ethernet to the host computer (BeagleLogic can generate data up to 1.6Gbps when sampling at the highest rate). The AM335x had Gigabit Ethernet but there was at that time no variant of the BeagleBone that had a Gigabit PHY (since then a variant has been released which does have gigabit ethernet).

Since then I have thought that it’d be great to have a version of the BeagleBone tailor-made to be a logic analyzer and address these limitations (with Gigabit Ethernet and 16 logic channels) as BeagleLogic hits quite a sweet spot in the price-vs-performance matrix of the logic analyzers available in the market. However I never quite came to it as I had very limited experience and engineering resources to be able to do a custom version of the BeagleBone hardware with impedance controlled traces, length matching and all. Even if I could design it, getting it fabricated in prototype quantities would have been expensive.

Enter the OSD3358

The launch of Octavo Systems and its OSD3358 SiP got me excited, and the idea of a turnkey version of BeagleLogic was rekindled as the design would be greatly simplified due to the SiP integrating the core components, leaving me to focus on the features I want to add to the system.

At the 2016 Bay Area Maker Faire I met up with co-founder, Jason Kridner and members of the BeagleBoard.org community and they expressed their interest in such a board. However due to life catching up, it wouldn’t be until 2017 when I decided to pursue the idea further. The project was announced on the Hackaday.io platform and titled “BeagleLogic Standalone”. Michael Welling, the creator of the PocketBone agreed to do a design review once the design was ready.

Design timeline and notes

From concept to completion, this project took 4 months working on it part-time. I relocated in August so work happened at an even slower pace during that month.Timline

The schematics were originally based on the OSD3358, however Jason encouraged me to design based on the newly announced OSD3358-SM as it was smaller and had a more optimized ballmap. The schematics were then migrated to the OSD3358-SM in late July. At the beginning of the routing exercise, I was really apprehensive if the design could be routed in 4 layers but thanks to the optimized ball map of the OSD3358-SM, the routing was easily completed so.

BeagleLogic Top Layer
Top Layer
BeagleLogic Ground Layer
Ground Layer
BeagleLogic 3.3V Power Plane and Signal Layer
3.3V Power Plane + Signals
BeagleLogic Bottom Layer
Bottom Layer


OSHPark graciously sponsored the first 6 prototype boards. The boards were assembled at GHI Electronics in Michigan. From there they were shipped back to me in India for bring-up.

Board bring-up

Once I had the boards, it was time to boot them. With help from Robert Nelson, u-boot was patched for supporting the BeagleLogic Standalone board as it has its serial console on UART4 unlike the BeagleBone that has its serial console on UART0. After programming the board EEPROM and a couple of false starts, the board booted and I was in! After installing BeagleLogic on the board, it was ready to roll.

BeagleLogic Standalone

One by one, the eMMC, USB Host, Gigabit Ethernet and most importantly, the logic analyzer inputs were brought up and everything worked as it should. It captured logic data, and it was verified that it was capturing data exactly as it should be. I even 3D printed a case for the board, here you can see it.

BeagleLogic in Case

Awards and What’s Next

BeagleLogic Standalone competed and won the honor of top five finalist in the 2017 Hackaday Prize. in the “Best Product” round of the prize. This prize honors product projects among hundreds of competitors that “awaken the hardware entrepreneurs to build a manufacturable thing that will shake up the industry”.  As part of the competition I had to send 3 prototypes to Supplyframe (the parent company of Hackaday) for judging in mid-October, and the manufacturing support from GHI was critical in meeting the deadlines of the contest – couldn’t have made it without their support.

You can follow the project on its Hackaday.io page for more updates. Documentation on the board is up at standalone.beaglelogic.net. BeagleLogic Standalone is an open hardware design – the files are up on GitHub.

I’d like to thank Jason Kridner, Michael Welling, Drew Fustini, Robert Nelson, GHI Electronics and Octavo Systems for their support along the way.