Particle Matter: Updates from Sprint 39

Hi, Particlers!

This is the first of many twice-monthly releases we’ll be doing to let you know what’s been done in the last two weeks and what we’re planning next. We’ll release another one the week of 8/3. I’m hoping that it will help everyone be up to speed with what we’re working on and give people a chance to ask questions here on the forums.

Next week, we’ll be holding a live interview with @zach, Particle CEO, to talk about what we’ve been up to and provide answers to some general issues we’ve seen from our users. If you have a particular issue or question that you’ve seen, or something from this list that you’d like to hear more about, please post it here or PM it to me so that I can add it to the list of Things To Talk About In An Interview. We plan to do recurring live interviews with different leaders in the Particle Team, such as @zachary (CTO/Software), @will (Manufacturing/Hardware), and @steph (Business/Marketing), all of whom are great at answering questions about Particle as a whole as well as questions specific to their fields.

INTERVIEWS
What we expect the interviews to look like.

Before I get into the What We Did In The Last Two Weeks, I’d like to shed some light on how we work. Like many startups, Particle uses the Agile system for both software and hardware. There’s a Wikipedia article on that here, the tl;dr of which is “Build something in two weeks that you can demo, iterate on that in the next two weeks and demo again.” Each two week work session is called a Sprint. This post is a review of what we’ve done in the last Sprint.

SPRINT!
Sprint Review often involves demoing how many rings you collected.

This last Sprint was our 39th Sprint. (“Sprint 0” was the entire history of the company up to the release of the Core.) Here’s an update on our work over the last two weeks:

##Sprint 39 Updates

tl;dr Electron development, bug fixes, fleet management dashboard, android SDK, new docs.

Hardware Team

The leader of the Hardware team is @will. The Hardware team has been working on building the Electron.

  • Electron v009 is routed, and the new PCB prototypes are en route! Electron v009 is what we’re calling the “Alpha” prototype of the Electron–it has all of the critical ICs finalized, and will provide an excellent test platform for us to evaluate the early power performance of the new board. The binary that we’ll use for testing is shipped, and our hand-built yield rate is at 100%. This upcoming sprint, we’re going to clean up and open-source the hardware repository so we can start accepting feedback.
  • Most of the manufacturing updates have been posted here, but the summary at the end of our sprint is:
  • Programmer Shields, Relay Shields are live shipping. Shield Shields are currently en route to the US, and will begin live shipping next week.
  • We’re still working to ship the Power Shield, which has already completed mass manufacturing and packaging, out of China. The Power Shield includes a Lithium Polymer battery, which has regulations and restrictions around how it’s shipped. We’re researching those regulations to figure out how we can comply with all the rules and make sure everyone get their products.
  • If you’ve been following the Photon manufacturing saga, you may have heard about our regulator issues. We’ve just received authentic regulators at our factory (30K) and will be receiving another 50K units in the next couple of weeks. This problem shouldn’t ever come up again, which @will is particularly happy about.
  • The bottom line is, we’re still on track to meet or improve on the delivery dates we’ve most recently posted.

Software Team

The leader of the Software team is @zachary. The Software team has been focused on bringing you some important fixes to support the release of the Photon and continuing the journey toward functional Electron firmware.

  • A couple engineers at Particle have our very first versions of the Electron. We plan to do at least 3 more hardware revisions before the October release. One of those will be for Kickstarter backers at the beta tester level, shipping in August. We created a Hardware Abstraction Layer (HAL) in the firmware for the Photon, and Brett (@BDub) is in the process of extending the firmware HAL to support the Electron. You can follow progress on the feature/electron branch and watch GitHub’s great network view to get an overview of the action in firmware land.
  • Lots of people in the community have been helping submit issues and pull requests for the CLI. Thanks so much to everyone who has been helping out, especially @kennethlimcp! Emily (@nexxy) just pushed v1.5.18 of the particle-cli package to npm. Most notably we fixed a bug where particle flash my_photon tinker tried to send a Tinker binary for the Core—now it sends a Photon binary like it should. :+1:
  • Across the entire Software Team, everyone put in huge efforts toward continuous delivery to get our users better features and fixes faster. This included adding more automated tests, creating a “distance to continuous delivery” metric to measure the progress in several different projects, and setting up continuous integration servers like Travis CI to run those tests automatically on every commit and post messages to our internal slack chat when the builds pass or fail. While the specific work we did this sprint is invisible from the outside, our increased release frequency in the future across our entire stack, from firmware to cloud to fleet management to mobile apps and more, will be thanks in part to this quiet, behind-the-scenes progress.
  • Added Official Libraries to Build—we visually separated out the libraries that belonged to the Particle github account for extra easy access. We currently have the Internet Button, Relay Shield, and Power Shield, and more shields libraries will ship soon. This is in anticipation of new shields for the Photon landing in your beautiful hands. Over the next several months we’ll be gradually releasing a host of improvements to the libraries system; expect more news on this in a few weeks.
  • The Android Mobile SDK is finished! The mobile developers out there have been waiting with bated breath; thanks for your patience! You can now find open source on GitHub the Cloud SDK and the Device Setup Library, and they’re published to JCenter where Android developers expect. Ido (@ido) and Jens (@jensck) are working on comprehensive documentation and example apps now; those will be released in the next few weeks.
  • As announced yesterday, a Pub/Sub subsystem has been added to the iOS SDK. More details here.

Business Team

The Business Team is led by @steph and handles a lot of different projects, many of which are general or internal business. We won’t list everything, but here’s some stuff we worked on that is directly relevant to the community.

  • New Documentation is on the way. Expect for these to get released early next week, with improvements coming over the next several weeks. The new docs will include:
    Content reorganization. We are consolidating a lot of the info we’ve kept in disparate places into one searchable location at the docs. This will include:
    • Start-to-finish guide. We want someone with basic knowledge of arduino to be able to use Particle super easily. We want to provide something where you can start from the beginning, read to the end, and feel enabled to go out and build what you want to build. We’re organizing a section of the guide to do exactly this. To start, this is going to be a guided reorganization of some of the content we already have, but we hope to develop this with more examples and guided lessons. Currently we have a section for getting started, a section on tools and resources, and a section on how to build a product that has content similar to the Prototype to Production blog1. This entire section will be outfitted to be easily navigable and readable, with nice scrollspy and fwd/backward arrows, and some small CSS customizations for images, videos, and footnotes.
    • Reference Section. This will have all of the info currently in firmware, api, mobile, etc. Anything you might want to reference dictionary-style, instead of reading straight through. The nav bar is collapsible so that you are able to be in one section of the firmware docs and click through to find other sections that you may need.
    • Datasheets. Hardware datasheets will go here.
    • Support Section. Reorganized and more navigable and updated version of the content currently living on http://support.particle.io. Because this will be a part of the docs, everyone will be able to make pull requests to this page to update/add articles on new issues you’ve seen and solved.
    • Core/Photon Switchability. Although this currently exists, it’s pretty difficult to navigate and edit. We’ve made some changes we think will be really helpful here, both in terms of URL structure and the actual build of the page.
    • Comprehensive Search Bar. Because the content will be organized in one place, our search bar will now be able to give you results from any of the pages in the guide, reference, datasheet, or support sections. The first release of this search algorithm will probably not do exactly what we want it to, but we are now using a search system that is more customizable, and we think ultimately that we will be able to make it give really great and specific results.
  • We are preparing for the Beta Test of the Fleet Management Dashboard. This will allow companies with thousands of Particle-Powered products to monitor their consumer’s devices, flash OTA updates, and gather important data. If you’re interested in using the Fleet Management Dashboard, let me know.

That’s Sprint 39 for you. Post any questions and comments below. I’ll be back next week with a live interview with CEO Zach Supalla.

READYSETLEAVESOMECOMMENTS!!

13 Likes

Don’t have any questions yet, but this is really great. It’ll give the users a nice summary of the updates have occurred behind the scenes.

Keep up the great work!

3 Likes

Any news on 0.4.0 for the Core?

EDIT: I go looking to local-build a development branch for the Core, and can’t find any. The Photon (develop) branch has been updated within the past few days; the Core (master) branch dates from months to years back.

1 Like

Great update, much appreciated. In the interview could you touch on I2C Photon issue that is blocking I2C functionality with the SparkFun Weather Shield. Thanks and keep up the great work.

1 Like

@WebDust21: Have you had a look at the “Latest” branch for the Core?
Is this what you’re looking for?

1 Like

@ScruffR. If you say?? https://github.com/spark/firmware/tree/latest Looking through it, I see that it’s both for Core and Photon (WICED calls aren’t the Core!)…how am I supposed to choose between the two?

I’ll plug away with local compile, and see how it works (I’m just waiting for TCPServer.close(), WiFi.resolve(), etc…) And yes, I fully understand that the “latest” tree may have some bugs not-quite-worked-out.

1 Like

I’ve seen you’re in the best hands with @mdma (who’s supposed to be on vecation :wave: :point_up_2:)

2 Likes

Good to see documentation is on the agenda, the photon is my first spark/particle product, so had to learn how it worked as a new user, I am pretty good at C already so that helps, but the docs could be alot more clear.
For example, the guide I followed referred to variable as SPARK.variable, when its actually Spark.variable, and didnt make it crystal clear that its a one call thing, ie. you feed it a global variable and it will monitor that value.
Sprintf/variable does not support floats… even my 16mhz avr with a fraction of the flash/ram has float support in sprintf, looking forward to such a basic functionality coming back.

I am a bit dissapointed over the state of the software seeing how the photon hardware is 4months delayed, I had expected most of the kinks to have been solved by now.
Many examples use serial.println as debug statements, why is there not a simple spark.log, its a networked device, surely there should be an easy to use text debug option, .publish sort of does it using the dashboard, but it would be handy to have basic text debug in the build ide.

I did manage to get a decent datalogger going in 2days and improved it to use UDP comms in another 2, so it works, but there are many bumps in the road.
Although I may have to work around the photon deep sleep, since the bootloader spends almost 5 seconds flashing away with leds on each wakeup, making power savings from putting the CPU to sleep a lot less rewarding.

2 Likes

Hi, y’all. Thanks for the comments! We’ll try to address these issues either in this thread or in the interview this week. In the meantime, keep on posting! :smiley:

When building locally with make, as described in the firmware in docs/build.md you choose which platform you’re building for with, e.g., PLATFORM=core or PLATFORM=photon as an environment variable.

1 Like

I’d be interested in seeing details of your CI implementation. I’d like to be able to deploy and test on real hardware, but haven’t had time to put the effort into doing this. Currently, I run my code on a simulator, which incorporates as much of the spark core libraries as practical, but it’s not the same as the real thing, as I’ve discovered on a couple of occasions.