"... and no one shall work for money, and no one shall work for fame; But each for the joy of the working, and each, in his separate star, shall draw the thing as he sees it, for the god of things as they are"

-Kipling

 

Installing Mono and C# on the Beaglebone Black

Summary

Updated Nov. 2018

The ultimate goal of this project is to get Mono/C# installed and operational on the Beaglebone Black and also to implement a tool chain which permits remote editing, compiling and debugging. The BBBCSIO project implements a library which enables a C# program to read, write and accept interrupts from the GPIO Pins and other OCP peripherals such as the SPI port.

The effort spent implementing a remote compilation toolchain might seem a bit odd if you are new to the microcontroller world. If so, you probably do not realize the utility of a nice functional remote toolchain - especially the debugging. I am sure that once you have it configured you will find it is much, much, more pleasant to work in a nice Interactive Development Environment (IDE) with syntax highlighting, bookmarks, context sensitive help and all of the other conveniences of a modern programming environment. Once you are able to press a button to compile and transport the code to the Beaglebone Black and also be able to remotely step through it in a debugger you will probably never willingly go back to a text based editing solution.

This sequence of pages will show you how to write code on your PC in Visual Studio and have it remotely execute and debug on the BBB. The section at the bottom of the page discusses how to set up a similar procedure using MonoDevelop on a Ubuntu Linux box.

Background

The Beaglebone Black is an extremely powerful and inexpensive microcontroller board which incorporates more or less every item of functionality you might wish to have in a microprocessor solution. I won't go into to all of the details - you can look them up for yourself - however at 1Ghz, with HDMI, USB, Ethernet and installed Linux it is pretty cheap and powerful.

The Beaglebone Black

One of the big features of the Beaglebone Black, as far as I am concerned, is that it has a large number of pins that can be configured as input or output GPIOs. This makes it possible to control or monitor a large number of interesting things. The fact that some of the pins can use PWM or A/D sampling and that there are also two 200 Mhz co-processors imbedded in the 1 Ghz core (the PRUs) is just icing on the cake. If you are interested, this page discusses why this, and other projects, were developed for the Beaglebone Black.

The Beaglebone Black is very much in active development and things will doubtless change. In the future, the information below may well become inaccurate or irrelevant as the the Beaglebone Black and its onboard software are updated. Note: The information below is current as of November 2018 and is a update of the previous information on this page which was provided in May 2015.

Installing Mono and C# on the Beaglebone Black

Visual Studio 2017 Remote Debugging

Remote Compilation and Debugging on the Beaglebone Black Using Visual Studio

MonoDevelop on Linux Remote Debugging

Installing MonoDevelop and Configuring a Remote Compilation Tool Chain on the Beaglebone Black

Notes on the Beaglebone Black

License

The contents of this web page are provided "as is" without any warranty of any kind and without any claim to accuracy. Please be aware that the information provided may be out-of-date, incomplete, erroneous or simply unsuitable for your purposes. Any use you make of the information is entirely at your discretion and any consequences of that use are entirely your responsibility. All source code is provided under the terms of the MIT License.

Acknowledgements

Various internet resources were used to help understand the workings of the Beaglebone Black. Especially useful is the Beaglebone Black Community Forums and the people there are very knowledgeable and helpful. Thanks forum members!.