A Brief Mountaineer History
When Beat had NETMF for STM32 up and running for the first time, in early December 2010, we (Oberon microsystems) knew we had a problem. Our breakthrough Cortex-M3 port of the .NET Micro Framework worked fine on an expensive STM32F103 development board, but there were still hardly any affordable STM32 boards on the market that we could use in customer projects, and none that could be easily modified for special customer requirements. While it is not very difficult to develop a new microcontroller board with an STM32 from scratch, potential customers still perceived this as a substantial hurdle and project risk.
Although Oberon is decidedly a software engineering company, we considered developing a simple prototyping board that we could provide to our customers as a proof of concept and reference design. We would own all necessary design files, so that customers or their hardware partners could easily modify them, while we would concentrate on our core competence, i.e., system architecture, firmware development, and application-level software development.
When we mentioned this project to our friends at CSA Engineering in January, Stefan suggested that we work together. Oberon only does hardware development under special circumstances. In contrast, this is a standard service of CSA. CSA has extensive experience in designing low-power hardware, in designing hardware requiring medical certification, etc. With such a boost, we should be able to create a great little board, one that both of our companies could leverage in customer projects.
When we took a closer look at .NET Gadgeteer in May 2011, we liked its plug & play concept. Particularly attractive for us: the standardized connectors ("sockets"), with their reasonable selection of simple socket types. They promised to be a flexible, systematic, processor-independent and vendor-independent way of making a microcontroller's I/O pins accessible to extension modules. Many socket types require no intelligence in a module, making it easy to design inexpensive modules for typical digital and analog I/O requirements. So we decided to use the Gadgeteer pin assignment standard for our board.
Unlike the first Gadgeteer products, we took the liberty of providing a USB connector directly on the mainboard, so that this "red mainboard" could be conveniently powered directly from USB without additional modules. We also envisioned an architecture that makes it mechanically simple to put a mainboard and attached modules in a box - and that also makes it easy to merge mainboard and attached modules onto a single custom board. Beat designed a prototype layout which showed that even a two-layer layout for the mainboard would be feasible.
Thanks to the cooperation beetween our two companies, we could extend our plans to two different mainboard variants: the one as originally planned with USB only and very small, the other with Ethernet in addition but slightly larger. Similar to Netduino (USB only) versus Netduino Plus (USB plus Ethernet). Both would have several MB of external Flash on board, so that data logging would be possible even without relying on SD cards.
In August, we published our first edition of NETMF for STM32.
Corentin designed the schematics and layouts of the two boards, and managed the production of the first prototype boards, which used STM32F2 microcontrollers with 128 KB RAM. Heinz supervised the hardware design and did a number of design reviews over the course of the project. He made sure that the design conformed to the strict quality rules of CSA. Meanwhile, Beat worked on an STM32F2 edition of NETMF for STM32. When the prototype boards arrived in September, NETMF was up and running on the same day.
CSA began to work on the Ethernet driver, a major new component (initially Corentin and Markus worked on this part, later mainly Pierre-Yves).
In October, Microsoft released NETMF 4.2, which included our production quality NETMF for STM32 port for STM32F1 microcontrollers. In the same month, Oberon and CSA agreed to make both firmware and hardware fully open source, and decided on Mountaineer as brand name for our boards. We also got into contact with STMicroelectronics, which was working on its own port of NETMF to the STM32. They turned out to be very supportive of our work.
We started to plan for a revision of the boards, which would use the brand new pin- and software-compatible STM32F4 microcontrollers. At 168 MHz they are faster than the F1 and F2 versions of STM32, but more importantly for us they provide 192 KB of RAM. As we hoped at the time, and know by now, this is enough RAM for NETMF with a TCP/IP stack, the Gadgeteer libraries, and still plenty of room for an application.
At the beginning of January, the first Gadgeteer program was up and running on our F2 prototype boards. At the end of the month, we had a visit of James Scott, a member of Microsoft's Gadgeteer team. He encouraged us to make the mainboards commercially available, and to that purpose make our layout and silk screen more compatible with the .NET Gadgeteer guidelines that had been published in the meantime. We gave both a USB mainboard prototype and an Ethernet mainboard prototype to Microsoft, to assist them as they started to port Gadgeteer to NETMF 4.2. At the time, there was no commercially available mainboard with NETMF 4.2.
In February, Pierre-Yves did extensive testing of the Ethernet driver in different network configurations. Corentin designed several I/O modules and had a couple of the original prototype boards populated with the STM32F4 chips. As expected, NETMF was running on these boards as well.
In early March, GHI Electronics announced their FEZ Cerberus Gadgeteer mainboard, based on the STM32F4. This was great news, as they had used our NETMF for STM32 (F1 Edition) as basis for their own F4 fork, and intended to make both hardware and software open source. This low-cost board promised not only to make Gadgeteer even more popular, but would also be a strong motivation to make NETMF and Gadgeteer software run well on an STM32F4, and therefore on our mainboards also. At the end of March, we had our mainline NETMF for STM32 (F4 Edition) running on a FEZ Cerberus. One of our pilot customers gave a successful demonstration of a product they were developing, using one of our prototype Mountaineer mainboards with an F4 microcontroller.
In April, SecretLabs announced their Netduino Go, the second surprise in one month. This new member of the Netduino family is also based on an STM32F4, and they had also used our F1 Edition as basis for their firmware. Meanwhile we decided to have the first batch of Mountaineer boards produced in Switzerland, while we began to talk to potential producers and distributors for later batches. Eventually, we decided to work with GHI Electronics, as they could not only produce and distribute our boards, but also give support to the maker community through their online forum.
On May 11, we announced the Mountaineer Group and NETMF for STM32 (F4 Edition). On Codeplex, a project repository with a first public beta release was published. GHI announced new Cerberus firmware based on this software. The firmware of later GHI boards with the STM32, like the FEZ Cerbuino Bee, were also derived from our NETMF port.
On May 18, we announced the Mountaineer Platform, the two mainboards, and the hardware cooperation with GHI.
On November 28, we announced that innovActive engineering of Italy has joined the Mountaineer Group.
During 2013, we have been mainly working on customer projects and firmware exten-sions required for these projects. CSA developed the M4-MCU board, an industrial variant of the Mountaineer boards. Oberon developed a fast 4-bit driver for SD Cards, and USB Host support for attaching mass storage devices. Also, the new board has external RAM and external Flash that needed to be supported.
These new features, and the new hardware, can be used to speed up the development of other industrial NETMF-based solutions. For this purpose, we introduced the Mountaineer Prime brand.
In September, we received permission from 2G Drives to publish a description of the project that we did for them. It is a smart gateway to a combined heat and power plant (English and German versions):
In October, we released the Mountaineer 4.3 SDK and firmware, built on Microsoft's current code base. This release has been in internal use for about half a year, and has undergone customer testing for more than one month upon release.
At the end of March 2014, we released Beta 2, which uses the newer NETMF 4.3.1 (aka 4.3 QFE1) code base of Microsoft. A bit later, Beta 3 was released with new support for MFUpdate (in-field firmware updates).
The new release also contains an experimental feature: a crypto library with the well-reputed NaCl algorithms.
At Embedded World in Nürnberg, the Limmat platform was unveiled by one of the Mountaineer Group members, along with a reference board that implements a
Beacon-to-3G gateway. The platform is based on NETMF for STM32.
As Microsoft does not appear to further support NETMF, the members of the Mountaineer Group have refocused on other platforms, e.g., Mono on Linux, which allows using C#, .NET and Visual Studio on embedded platforms - although not on microcontrollers.
Beat Heeb (Oberon microsystems) implemented NETMF for STM32 (F1 and F4 editions) and created the initial hardware design for the USB mainboard. He also implemented all the Mountaineer Prime Firmware features.
Corentin Zill (CSA Engineering) did all production hardware design for the two mainboards and the I/O modules, coordinated production runs, and worked on the documentation (e.g., data sheets and getting started guide) and the Gadgeteer installer.
Cuno Pfister (Oberon microsystems) sponsored and managed the project on the side of Oberon microsystems, created the original product concept and architecture, and set up the Web pages.
Heinz Aebi (CSA Engineering) supervised hardware development and provided quality control.
Markus Veser (CSA Engineering) supervised firmware development on the side of CSA Engineering.
Pascal Spörri (Oberon microsystems) did the research into NaCl and implemented this crypto library for NETMF. He also helped with the MFUpdate mechanism.
Pierre-Yves Schütz (CSA Engineering) designed, implemented, tested and optimized the Ethernet and PHY driver and the integration with the lwIP protocol stack. He also worked on the Gadgeteer installer and on general improvements to the F4 port.
Stefan Brunner (CSA Engineering) sponsored and managed the project on the side of CSA Engineering, and was the driving force behind making the Mountaineer boards commercially available. Sadly, Stefan passed away in early 2014 after a long struggle with cancer. He is sorely missed.
And all the other engineers from CSA Engineering and Oberon microsystems, who helped with their feedback, and with both moral and technical support! Without their support, this project would simply not have been feasible.