Category: How we work

It’s that time of the year again ! As the days get darker and darker here in Sweden, we’re happy to getting some time off to share some warmth with our families.

And to kick off the holiday season, we prepared a little treat for you ! We enjoyed making a Christmas video that tested how we could use the Crazyflie at home. Since we’re not at the office anymore, we decided to fly in our homes and this video shows the different ways to do so. First, take a look at what we’ve done:

Now let’s dig into the different techniques we used.

  • Tobias decided to fly the Bolt manually. His first choice was to land in the Christmas sock, but that was too hard, thereof the hard landing in top of the tree. We were not sure who would survive: the tree or the Bolt!
  • Kimberly installed two base stations V2’s and after setting up, determined some way points by holding the Crazyflie in her hand. Then she generated a trajectory with the uav_trajectories project (like in the hyper demo). Then she used the cflib to upload this trajectory and make the crazyflie fly all the way to the basket. Her two cats could have looked more impressed, though!
  • Using trials and errors, Barbara used the Flowdeck, the motion commander, and a broken measuring tape to calibrate the Crazyflie’s path next to the tree.
  • Arnaud realized that, with all the autonomous work, we hardly fly the Crazyflie manually anymore. So he flew the Crazyflie manually. It required a bit more training that expected, but Crazyflie is really a fun (and safe!) quad to fly.
  • Marcus used two Lighthouse V2 base stations together with the Lighthouse deck and LED-ring deck. For the flying, he used the high level commander. The original plan was to fly around his gingerbread house, but unfortunately it was demolished before he got the chance (by some hungry elves surely!)
  • Kristoffer made his own tree ornament with the drone, which turned out to be a nice addition to a Christmas tree !

It was a fun way to use our own product, and to show off our decorated houses.

I hope you enjoy watching this video as much as we enjoyed making it.

We are staying open during the Holiday season but on a limited capacity: we still ship your orders, and will keep an eye on our emails and the forum, but things will get a bit slower here.

We wish you happy holidays and safe moments together with your loved ones.

The Holiday season is already in full gear here, with Christmas lights everywhere, and even though it’s not going to be an usual celebration for many of us, we’re trying to find ways to make it memorable.

Our first thought for preparing the year to come (other than hoping for less dire circumstances worldwide) is to find out how we can better your experience.

Since this summer, we’ve been wondering how to improve ourselves. We have made some great headways in stabilizing what we offer. Whether with our documentation (new step-by-step guides and online tutorials), our hardware (our new propellers work perfectly) or our software (a new client and app API), we tried to improve what we already have.

We pride ourselves in knowing our defaults, but we strive to correct them as much as we can. However, we’re aware that we’re not perfect, and have some blind spots. Be that as it may, improving ourselves means also knowing where there’s room for improvement! And that’s where you are needed.

We’d like to know your thoughts and feedback, and the best way to learn from you is to ask you questions. So we created a quick survey: it takes only 3 minutes to answer and would help us a lot. In fact, it will help us shape 2021, or at least the beginning of it, as we want to stabilize our portfolio and our documentation. The goal of the survey is to pinpoint the areas that need improvements and to gain general knowledge on our customers.

Click here if you want to help and answer the survey!

A Christmas party !

And, before we start 2021 with your feedback, we’d like to hear from you in real time! We’re indeed planning a Bitcraze Christmas gathering, on:

  • Day: Tuesday December 15th
  • Time: 17:00 Central European Time (Malmö, Sweden).

It would be nice to join us with some (virtual) mulled wine, to talk about the Crazyflie, or share some Christmas spirit together . We promise we won’t sing any Christmas carols, but maybe we can show some nice videos!

So join us on the Discord server where we will provide further information and open up a video&voice channel/Mozilla hubs room on the day itself.

It’s been more than 6 months now that I’ve joined Bitcraze and we are currently looking for more passionate people to join our team. So what is it like to work at Bitcraze? Here is my story.

First weeks

My first day of work was actually during one of our quarterly meetings, which means it was during a conference, in a good hotel with a nice spa and dinner, well needed after many hours of retrospective, brainstorming and planning. It was the perfect way to enter the Bitcraze world, and get to know my colleagues: it included serious talks, but also massages and board games. Did I get used to the good life? Well, I discovered that it was not all champagnes and jaccuzi: my first actual day at the office, I cut my finger pretty badly, spreading blood all over the kitchen. That’s fine, now everyone knows I’m not to be trusted with a knife! And I have a nice “Bitcraze” scar to show.

The on boarding itself included some education from our process guru, Kristoffer. I was excited and very curious to discover how a self-organizing company functioned, and I learned a lot during those sessions. I discovered a new way of working. It got some getting used to, but I got to really analyze and question my working habits and reflexes, which is always healthy. I am now an adept of lean and agile processes, and love being involved in the innerworking of the company and its processes.

Daily habits

As the days went along, I took my marks. I am everyday happy to get up and go to work. I especially love Mondays, that usually involve a nice morning chat, sitting on the sofa, discussing how the weekend was or the latest Netflix documentary, before beginning our weekly meeting. I discovered that Bitcraze is all about habits and routines, that I sometimes had to adapt to my non-geeky role. Tuesday for examples is usually dedicated to coding and programming: for me, it meant that’s the day I dig into the accounting!

We also have a tradition of “fun friday” that I really enjoy. The concept is simple: Fridays are dedicated to something that we love and have fun with. It allowed me to play around with my Crazyflie and its various decks, but also to work on my photographic skills or think about a more dedicated marketing strategy. It helps that usually, Fridays end with a nice chat around a beer and some VR games.

I love that I’ve got an independence to decide how my day is going to look like. My daily tasks include a lot of different things and areas. It’s a real luxury to me to be able to choose what I feel like tackling at any point. If I don’t feel like crunching numbers, I can deal with the shipments. Maybe today I’ll order those office supplies we need, or look into our social media statistics. When I first got recruited, the word “passion” came back a lot, and it didn’t disappoint: everything we do is driven by passion. I get to do and learn a lot of different things, and rarely get bored.

Global pandemic

Unfortunately, just as I begun to be comfortable on my new everyday routine, the world was hit by a global pandemic. Our habits were completely changed as we closed the door on the office and worked from home for 3 months.

I am actually really proud of how we handled it. Sure, the process and work flow changed drastically, but we kept on going, having faith in each other and in our capability in handling it. We kept the communication channels open, and produced the AI deck while working remotely.

For me, those times were though. I still needed the everyday guidance of my colleagues, which is trickier when they’re not sitting next to you. But it also gave me the opportunity to do more by myself, which ultimately led to learn things a lot quicker, I think. The hardest, though, was when everybody got to get back to the office, and I couldn’t: I belong in a risk group for Covid. I miss the fika with my colleagues, and working remotely seem pretty lonely.

Working as a non-tech

The trickiest part for everyone when I joined Bitcraze was to fit in the more technical aspects of the company. I only have a little programming and tech background, so including me in the geek discussions without using too much jargon was not easy for the guys. I learned a lot, in a short time. I still bug them with my questions and have a long list of terms and concepts I need to read about. But that’s ok, because my “cluelessness” actually provided good insights on the work we still have to do on documentation. And the work to understanding each other better actually flowed both ways: I had also sometimes to include my colleagues in more administrative aspects that they don’t know, or don’t care about. It’s interesting to try to adapt the Bitcraze process just because I’m here: it’s not only about developing tech anymore, we have to think about a way to involve administrative tasks to our methods.

All in all, working at Bitcraze is everything I thought it will be, and more: I love spending time with my colleagues. Each morning, I feel lucky to have joined a passionate and exciting company. I didn’t think I’ll be someone that happily turns her computer on a Sunday night to check what Monday will have to offer, but that’s what I end up doing most of the weeks.

That’s why my feelings today are mixed: I’m actually leaving the office to enjoy my generous Swedish maternity leave. Being pregnant and welcoming a new life is exciting, and I’m really happy to extend my family, but not working at Bitcraze will feel weird and I know I will miss it. Nevertheless, I know the guys will do fine without me, and I’ll be back in 2021 for more exciting news!

And if you’re interested in working at Bitcraze too, you’ll find more infos here !

It is apparently a recurrent theme within Bitcraze:New people come into the office, claim that the documentation is a bit of a mess, then will make it their personal mission on the company to try to fix it (because ‘how hard can it be?’) and come close to a mini depression when it turns out that it ain’t so easy at all.

And yes, I absolutely fell in into that trap too. During my PhD I did not really work on documentation like this (with the exception of papers) so I made quite ambitious plans last year as you can read in this blogpost. We managed to already cross a couple of things off: we moved wiki pages to the github and host it on our website and created datasheets for products, which should make it possible to close the wiki product pages.

However, we still haven not managed to completely close off the wiki because some pages can not really be split up or might have information on there that might not be very future proof. But there are definitely many matters to improve, so we are just writing some of our thoughts down.

Beginner – ? – Developer

One of the things that we noticed that is missing, also by comments of you guys on the forum or by mail, are the means to bring the crazyflie starters quickly to the developer phase. There are some tutorials to be found on our website, but the general feeling is that it does not elevate the general understanding of how everything works. Even the tutorials that cover the autonomous flight with a flowdeck does not go further than giving install instructions and handing over the full python script while not explaining which element does what.

Of course, there are already user manuals to be found in the github docs, however those are maybe too big of a step and take much for granted that the reader knows every ‘in between’ step. It would be much better, for any level, to have step-by-step guides on how to set thing up and what each element’s role is in the code. That would probably work much more effectively as a start for beginning developers.

So we had some tutorials in mind that can elevate first starters to come closer to the developer page:

  • CFCLIENT: How to working with the logging / parameter framework and the plotting tab
  • CFCLIENT: How to interpret the debug console output
  • CFLIB: How to connect to the Crazyflie and read out logs and parameters
  • CFLIB: How to send set points and the commander framework
  • CFLIB: How to build up the Multiranger push demo step by step
  • CF FIRMWARE: How to work with the Applayer (adding own modules or code)

If there are more tutorials that you would like to see, please let us know!

Doc closer to the code

The consensus here in general, is that we would like to have the documentation as close as possible to the doc. At least we have taken a step into the right direction by importing the docs into the Github Repos. This means that with every new feature added, the person responsible can add documentation to it directly in the same commit/pull request.

However, if the description is part of function’s or classes doc strings, it is as close as it can get! The contributor does not need to change the separate markdown file but can change the information directly. Moreover, it can also auto generate documentation for us, as you can see here from one of our try-outs with sphinx and our crazyflie-lib-python repo:

Part of the class and module overview of CFLIB with some auto doc of the high level commander.

Maybe for a beginner such documentation would not be great as a start, but for a more trained developer this could be very useful. My personal problem with most automatic generated documentation is that I find them difficult to read and find the functions that I need. However it would be possible to change the layout to make it a bit more readable since we will host it on our website. And since we mostly use C and Python in our repos, the most logical tools would be Doxygen and Sphinx. There are probably other possibilities out there, but if we would like to integrate this in our framework, we would like to go with tools that are future proof.

The whole picture

The problem with Autodoc is that it mostly shows the itty-bitty-gritty details of a library or firmware, however the users tend to get lost and can not see the whole picture. Also we are maintaining a lot of libraries and firmwares to consider (as you can see here in this list) based on which hardware they are applied for. This means that we have separate documentation pages on almost all of those.

And then comes the decision of where to place information. For instance, the CRTP (Crazy RealTime Protocol) is documented in the crazyflie firmware documentation, since there it is indeed how it is implemented, but CRTP does not only affect the crazyflie firmware. It goes from the STM32F4 to the NRF to the crazyradio through the USB on your computer through the cflib which is the backbone of the CFclient. This is an topic that users would like to have to an overview from if they would like to develop something with the CRTP.

Step-by-step guides are maybe still too detailed to explain the whole picture so maybe we should have some other way to have this overview shown. Maybe by an online lecture or a more lesson type of medium?

There is a lot of sources out there (like write the doc) that have tips on how to maintain the information sources for users, but of course we need to have a documentation structure that is useful and readable for many types of users and maintainable from our side. Let us know if you want to share any insight from your own experiences!

It has been a few months of when the Covid-19 crisis started, but it feels like almost a year ago when we all decided to stay and work from home. Considering circumstances, we managed to do to handle ourselves pretty well. We set up our home labs in our kitchens and/or living-rooms and managed to do a lot of development. Even though this situation did not come easy as you can see from our experiences here, we were able to pull ourselves through it in one peace. Now we also have to consider that Covid-19 is here to stay and we need to deal with the complications until at least the vaccine is finished and distributed. Until then, we might have to think about alternatives on how we do things, including how we go to events and meet/talk to you all!

Every year we try to go to at least two conferences, with last year being a particular busy year of us going to three big events (ICRA 2019, IMAV 2019 and IROS 2019). Before going to those conferences, we usually try to crunch and make an awesome demo. This also enables us to add new features to the firmware or fix problems that we find during this crunch. Moreover, we also really like to meet our users face-to-face, so that we can hear about how you use the Crazyflie in your research or classroom!

Since going to conferences and in-person events will be difficult to do this year and maybe the next, we were thinking about events that we can possibly organize to as an alternative. We were thinking about a couple of options on which we would like your opinion on as well. For instance, we could do an remote tutorial or lecture, like we did here for EPFL. Or maybe we can organize an online seminar we were invite users to give a talk about their work (I personally took part in a VR seminar in Mozilla hubs, which was pretty awesome). We can also consider to invite users for an online meetup to talk about the direction of the Crazyflie and its firmware. Another idea that we had recently, is to organize an online Crazyflie competition, where users can control the Crazyflie remotely or upload custom firmware, so that it can fly autonomously through an obstacle field.

We set up a poll of these ideas, so we can know what you guys like best! Also please comment below if you have further ideas about this or start a thread on the forum!



It’s been more than 2 months since we decided, to preserve our health and the Swedish health care system, to work from home. Since then, the majority of the world has had to do the same, and as all of you, we had struggled to adjust to this new situation. What’s it like behind the curtain ?

The home setting

First things first: I’m not from the tech side of the company. Setting up my working environment was not difficult. I have my laptop, I plug it, and boom, I’m ready to work. I know that some of my colleagues had to get creative, setting up base stations in their summer house or in their kitchens.

My main problem setting up was dealing with comfort and distractions. Comfort means finding a good chair, and resist the temptation to just slouch on the couch – let’s be honest, maximum productivity is not achieved when the remote control is one arm’s length away.

Dealing with distractions is a whole another problem. My husband works remotely too. We’ve learned quite quickly that we can’t both work in the living room: collisions of video calls, or simply resisting the urge to chitchat together made it impossible. But the one major distraction that was impossible to ignore is 20 month-old and full of youthful energy. In Sweden, preschools are not closed, but every cold symptoms mean staying at home. It is perfectly reasonable, but we soon realized that having a toddler nearby is incompatible with working peacefully. As many parents have learned during the last couple of months, kids are a great way to lose your train of thoughts, to disrupt a video-call with inappropriate sentences or to simply disrupt any plan. As fun as it was to see how our daughter deal with the “no banging on the room’s door when mommy is working” rule, I feel incredibly lucky that we have a big enough apartment to be able to work in a separate room, and of course that she was able to have fun at the daycare while we could work from home.

A new routine

I have to say that I’m quite proud with the way we settled into this new routine. We meet each morning, setting up the goals of the day. We did that at the office too (see here), but where it lasted 10 minutes when we were all together all day, it can easily climb up to 45 minutes now. We tried to use new tools, and whether those worked or not (if you can tip on a good virtual whiteboard we’ll appreciate it!), in those two months we had time to experiment new ways of working. We tried to set up a quarterly meeting, (meaning a whole day of meeting) without a good quality webcam.. And managed it!

As the days turned into weeks, we realized that one big problem with our new setup meant that each day looked the same. This Groundhog day feeling made us lost count on our 3-week cycle and left the weekends with a strange, unsatisfying aftertaste. After all, now that I’m all the time at home, what’s the difference between a workday and a Saturday ? Well, I haven’t figure out a good solution yet.

It’s not all bad, though. I like that my new routine includes a big, often home-cooked lunch with my husband (I’m French, so of course my first thought is towards cooking !). And after the first weeks of minor stumble, the Bitcraze team is as productive as ever, with some exciting things coming soon. I have to admit too that I got used to listening to my own music while working, or that reducing the commute has allowed for some much appreciated 30 extra minutes of sleep.

And, last but not least, with the warm days returning, I started taking my laptop near the sunlit window, allowing for a great bask in the sun – what I often need to gather up energy.

My perfect spot near the window

Away but together

Each one of us had his struggle with remote work. For me, who has just started in the company, it was an unexpected challenge. I still have a lot of things to learn, and it’s easier when I can just tap on someone’s shoulder or quietly observe what they’re doing. Instead, I had to figure out quickly how to do things on my own. It meant making some mistakes, but eventually I’m convinced I’m now more efficient than if I had more relied on my colleagues – learning things the hard way is sometimes the best way.

If you are working from home too, you’ll understand when I say that the hardest part has been to keep up the motivation. At Bitcraze, we’re a tight-knit group, and I never realized before how much I rely on social interactions to keep me going. I’m a social animal, and my coworkers are always one of the most important part of my work. Helping them, seeing how they’re doing, sharing a ‘fika’ (Swedish coffeebreak) … I had no idea it was such a big chunk of my workplace well-being.

Thankfully, we’re now a digital tight-knit group. We have daily digital fikas to keep up with each other’s progress, and even though we could be more thorough with them, it helped with the loneliness.

As I noticed my motivation went usually down after my home-cooked lunch, a new resolution came forth: after lunch, exercise ! A great way to keep in shape and to resist the temptation of a quick nap. I’ll indeed gingerly admit that, with a comfy bed so close, it’s hard to not think about closing my eyes, just for one second… Getting the body moving and the heart rate up is the best solution I’ve found to avoid this trap, with the added benefit of not gaining too much weight during this strange period.

We also started having picnics when the weather allowed it. Respecting social distancing (each on its own blanket), it is a great way to reconnect, share a meal in the sun, and appreciate the great parks of Malmö.

A Bitcraze picnic

All in all, I’ve learned a lot during these months working from home. We’ve managed to tackle the hurdles in our way and found our stride with this new routine. Improvisation, creativity and adaptation were necessary, but I’m happy to report we didn’t lose our motivation and will to create great product !

New stock

Speaking of great products, we have renewed our stocks that were beginning to thin a little. The buzzer decks, for example, are back in stock !

Considering the recent pandemic and the global situation, we at Bitcraze had to think about what will be our next step. Even though everyday life in Sweden is still going on, and all of us are in good health, we know there are a lot of you that are impacted by the CoronaVirus. We wanted to take responsibility for each other, the Swedish health care system, and the rest of our community by actively minimizing our social interactions. The best we can do right now is contributing to stop the disease and preserve our health. 

So for the time being, we all will be working from home. Shipping of orders will be a bit slower (twice every week instead of the current four times), but other than that we hope to still be available as usual. Forums posts, sales and other daily tasks will go on as usual. Hopefully you won’t see the difference! We will still work on providing you the best flying experience we can. 

With the new situation comes new challenges for the team, that we’re trying to make the best of. First of all, we will test a whole new way of working – together but apart! And we hope this will also give us the opportunity to work on some things that otherwise are a little bit left out… But you’ll have to be a little patient to discover these!

If you’re stuck at home and are getting bored, why not fly your Crazyflie and send us a video? We’ll post regularly those on our social media to fight against the current feeling of gloom and potential loneliness associated with confinement!

Our thoughts and well-wishes are with everyone affected by the situation.

Hello there ! 

My name is Barbara, and I’m really proud to say I’m the new member of Bitcraze. As of now, I will be dealing with everything non-technical, so that the great minds here can focus on creating more of their amazing products!

If you want to know a little more about me, I should start by the beginning. I come from France originally, but have moved a lot over the years. From my early childhood in Tunisia to my semester abroad in Canada, I never really settled down… Until I came to Sweden, a little over 5 years ago. After having lived in Paris for some time, Malmö was a much needed breath of fresh air. In France I worked on a lot of different fields: receptionist, assistant, salesperson, teacher’s assistant, even as an actress. Those different experiences broadened my horizon and taught me a lot. Most of all, I learned to follow my passions: helping people, singing, and generally loving what I’m doing. My last assignment included community management and content creation in a video game company, but I’m happy to use every bit of my 5 years experience as an administrative assistant to be the office wizard here at Bitcraze. 

When I’m not taking care of my family or working, I keep on following my passions. I could talk hours about movies or books (especially about Terry Pratchett books, or musicals, my favorite type of movies!). I took up knitting a year ago and can’t put my needles down now. And I consider myself a real geek. Video-games, movies, comics, I even learned some programming over the years (even tough I can’t compare with the other team members!). My greatest challenge last year was to build my own PC, and I have to say that I managed it with flying colours. Another way I past the time (while making everyone happy) is by baking, and every time a new batch of cookies gets out of the oven, I feel the weight of the family tradition: my grandfather was a french pastry cook, and I proudly follow his footsteps (and recipes!).

I’m really happy to join the Bitcraze team and excited about the future. I hope I’ll learn a lot from working with Arnaud, Kristoffer, Kimberly, Marcus and Tobias. My girly-geek side can’t stop jumping with excitement at working in such an impressive and stimulating environment. 

Fosdem 2020

Arnaud is going to Fosdem this weekend, check out his forum post and say hi if you are there.

2019 is coming to an end and we are soon flipping the calendar to a new year. This is the last blog post of 2019 – time to look back and recap what has been going on during the year.

Community

We have had quite a few blog posts by community members this year. It is exciting for us to hear about the cool things our users are doing with our products, and we are happy to share them with all of you. If you have not read them yet and you might have some spare time during the holidays, it is well worth the time spent!

During 2019, we have also attended a number of conferences and events, where we have met a lot of interesting people, heard about amazing projects and got feedback from users. We attended FOSDEM (Belgium), ICRA (Canada), IMAV (Spain), ISRF (South Korea) and finally IROS (China).

Software

There have been quite a lot of improvements to the software in the Crazyflie ecosystem. Apart from bug fixes there has been some restructuring to simplify modifications and increase the utilization of system resources. The Crazyflie firmware has also been generalized to support multiple hardware platforms. We have added an app layer, Peer 2 Peer communication and support for new decks (see below).

The community has been buzzy contributing new and improved functionality as well as bug fixes to the software stack. Just to mention a few: support for new sensors, improved positioning support, better logging to SD-card, improved communication, new controllers and compressed trajectories. We can not express how grateful we are, thank you all!

Hardware

There have been quite some work on new hardware as well during 2019. We kicked the year off by releasing the two new platforms: the Crazyflie 2.1 and Roadrunner, and finished it by the recent release of the Crazyflie Bolt.

On the deck side there has been a focus on positioning support in the Passive– and Active marker decks that we have released in collaboration with our friends at Qualisys. The Lighthouse deck also falls into this category, we are excited about the performance and have high hopes of future awesomeness when it leaves Early access!

We have put a lot of work into the AI-deck during the year. Unfortunately we did not manage to finalize it 2019, but hopefully it should not be too long into 2020 until it is available in the store.

Documentation

Documentation is always hard, especially when the system is spread over many repositories. We have moved a fair amount of our documentation from the wiki to the code repositories to keep it closer to the code, and hopefully make it easier to keep it up to date. The documentation is now also published on the web to make it easy to access.

Logistics

We have tried out various 3d party shipping solutions earlier, but have settled on shipping our selfs, from our own warehouse in Sweden. This give us better control of the process and we have made a number of improvements and automated as much as possible to keep it lean and smooth.

Bitcraze

It has been an intense year for the Bitcraze family. We have moved to a new office with much more space and opportunities. It has required quite some work to set up labs, flight arena and other areas to our liking, but finally we have settled in and are very happy with the result!

Björn decided to leave the company in the beginning of the year, but on the other hand Kimberly joined in May! We have also had the great pleasure of hosing interns Victor and Zhouxin during the year.

Kimberly McGuire

On the system side, we have revamped our server platform for web, forum, wiki and internal services and are now using kubernetis. We also had a rapid increase in spam on the forum during the summer, but managed to counter it with better anti-spam tools.

Conclusions

It is a good exercise to look back and remember what we have done during the year. We are equally surprised each time we do this and realize all the things we have managed to squeeze in, only being 5 persons in the company! It has been yet another hectic year, but full of happiness and excitement.

Thanks for an awesome year!

We are currently finishing production test design for a couple of expansion decks and we figured we never wrote about it and about the more general board production process. In this blog post we wanted to talk a bit about how we test boards in the productions phase, taking as an example the forthcoming active marker deck.

The active marker deck

When finalizing an electronic board, we send to the manufacturer documentation that allows to manufacture & assemble a, hopefully, functional board. Although we assume that the individual components are in working order, the problem is that the assembling is not always perfect, so we need to check that everything we do is actually working,. This is what the production test is solving.

The first thing is to find out what to test, for that we need a strategy. The strategy we have been using is to test every step where we have modified or work on: for example we will test all the connections we have soldered in the manufacturing process. We will normally not test all the functionalities of ready-made module. For example, following this strategy, we will usually test all communication interface we have cabled, but we will not test all functionalities of a microcontroller we solder on the board, these are deemed to be already tested and working by the microcontroller manufacturer. This step usually end up with an annotated schematic:

Annoted schematics of ActiveMarker Deck

Once we know what to test and roughly how to test it, we document a test rig that will be able to run the tests automatically. Some tests are generic and applicable to all our boards, for example we do test voltages with a multi-meter on every board that has a regulator. Some tests are very board specific. For example, for the active marker deck we want to test IR LEDs and an IR detector, we define a test rig that has reflector to reflect the LED to the detector and we will use the onboard detector to test the LEDs:

Simple block diagram of the test rig for the ActiveMarker Deck

We are normally using a Crazyflie on all our test rig, since it is usually possible to test all functionality from the deck port. We also try as much as possible to integrate the test software into the real software. For the active marker deck it meant adding 38KHz modulated output mode to the LEDs in order to emit a signal detectable by the detector, which will make it to the final firmware. Finally, we have a test software, running on the test computer, that uses the Crazyflie python lib to talk to the Crazyflie and run the test. The last step of all the test is to write the deck One Wire identification memory so that it can be detected by a Crazyflie.

Screenshot of the test program for the test engineer

From these specification, the manufacturer can then build a test rig and start testing boards, non-passing board will be re-worked until they pass or discarded.

Test rig for the Multi-ranger expansion deck

What we have learned in our years at Bitcraze is that testing phase is the most important part of the development process of PCB. Therefore, the earliest we already start thinking about the production tests in the board design, the more smooth the final phase of production of our new products will be.