# Viper MAV 2021 Roadmap

**URL:** <https://forum.opencyphal.org/t/viper-mav-2021-roadmap/1082>\
**Category:** General\
**Created:** [January 21, 2021, 2:49pm UTC](https://forum.opencyphal.org/t/viper-mav-2021-roadmap/1082 "2021-01-21T14:49:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![aentinger](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/aentinger/32/1428_2.png) [@aentinger](https://forum.opencyphal.org/u/aentinger)\
**Post date:** [January 21, 2021, 2:49pm UTC](https://forum.opencyphal.org/t/viper-mav-2021-roadmap/1082/1 "2021-01-21T14:49:04Z")

</div>

[![](https://forum.opencyphal.org/uploads/default/original/1X/d996e300f0f00c0fdeb49c7b2dd48b0c26ec2597.jpeg)](https://github.com/107-systems/Viper-Firmware)

Since the Viper MAV project is still somewhat in the design exploration phase we are only capable to assemble a tentative roadmap. However, a tentative roadmap is better than none, as it creates both a direction to follow and commitment to actually follow it.

- [107-Arduino-UAVCAN](https://github.com/107-systems/107-Arduino-UAVCAN) shall be extended to support all currently officially released UAVCAN profiles ([public\_regulated\_data\_types/uavcan](https://github.com/107-systems/public_regulated_data_types/tree/master/uavcan) and [public\_regulated\_data\_types/reg/drone](https://github.com/107-systems/public_regulated_data_types/tree/master/reg/drone)). Since the message set for controlling ESCs is contained within reg/drone this is setting us up for being able to control UAVCAN v1 based ESCs. This would entail extending [nunavut](https://github.com/UAVCAN/nunavut) to automatically generate [Arduino UAVCAN wrapper files](https://github.com/UAVCAN/nunavut/issues/179) as manually creating all those types would be a maintenance nightmare. Another possibility would be to leverage the [code generation web-service](https://forum.opencyphal.org/t/an-easy-to-use-web-service-for-compiling-dsdl) under development.

- Complete implementation of both **UAVCAN on Arduino** reference implementations [UAVCAN-GNSS-Node](https://github.com/107-systems/UAVCAN-GNSS-Node) and [UAVCAN-ToF-Distance-Sensor-Node](https://github.com/107-systems/UAVCAN-ToF-Distance-Sensor-Node). During this process we expected to discover common functionality which could be extracted into a reusable Arduino library.

- Complete implementation of [107-Arduino-BNO085](https://github.com/107-systems/107-Arduino-BNO085) to fully support the already existing [NavShieldBNO](https://github.com/generationmake/NavShieldBNO).

- Extend [107-Arduino-TMF8801](https://github.com/107-systems/107-Arduino-TMF8801) with currrently missing features (such as GPIO control and daisy chaining of TMF8801 modules).

- Eventually add [kocherga](https://github.com/Zubax/kocherga/tree/uavcan-v1) based 2nd stage bootloader for software update via UAVCAN/CAN ([uavcan forum thread](https://forum.opencyphal.org/t/uavcan-bootloader-for-viper-mav)).

If you feel that there’s something that’s currently not on the roadmap but should be - please feel free to reply to this post. Also, if there’s something you’d be interesting in doing than I’d love to hear about it (private message, forum post, [email](mailto:107-systems@lxrobotics.com), …).
