Is that the Mountaineer Prime firmware ?
I bet it is.
Congratulations to the parents
Hereās the first child of a (soon) growing family.
I was invited to the baptism and took some videos and pictures :
Wine was excellent, guests were very kind and they promised more to come :whistle:
Cool.
yes, yes it is isnāt it.
Is the Mountaineer Prime firmware open-source? If not, how did it get on this board?
@ Bec a Fuel - Great progress!
Does MicroE make that board ? Is that a beta ? I dont see listed on the site
This one will be even more cool, I think.
Childbitrh is expected very soon :whistle:
Hmmā¦ :think:
Maybe a real working board would be better.
:whistle:
This is cool stuff, and I see that the Gadgeteer plug is there as well. I wonder how many hardware interface standards needs to be built before someone builds an audio module THAT WORKS??
@ Bec a Fuel - Nice!
OT:
@ njbuch - You can help me build the driver for the VS1063 chip. Audio quality is descent and the codec support is good on the chip. Plugins are also supported.
Moving to new threadā¦
Thanks !
But Iām not the only one involved in this project. I can tell Justin is in, as you may expect.
I donāt know yet if I can reveal the others :-[
Very soon you will be able to (easily) use the MikroElektronika Click boards with C#/NETMF, thanks to Oberon and MikroE, to name a few.
Here are the Click boards : Click Boards - MIKROE
Drivers templates, applications templates, opensource code, many IOs, integrated Flash ram, USB host, stackable Click boards are some of the great features of this MikroBus.Net board. :dance:
Here are some news about this project, which is now very close to be released !
First, I will thank all of the people that have been and are still involved in it :
- MikroElektronika
- Cuno, from Oberon microsystems, Inc.
- Niels (njbuch), for his diplomatic talents
- and of course, last but not least, our Justin for his abilities in building boards
This project has started as a private project for astronomers but soon derivated to a more general board. I wanted to use Click boards because I (personnaly) think they are very good boards and suit my need better than Gadgeteer. Many here know that about me, btw.
So the challenge finally was : build a board that would easily accept MikroE Click boards and that can be programmed in C# using NETMF.
Itās been a little time before the Rev-A prototype went out of the Justin Factory and everything after that went āquicklyā : drivers coding, dev environment setup, ābetterā board with 4 slots instead of 2, website designing, and so onā¦
While we were at it, we didnāt forget Gadgeteer users : Justin has created a G-board that can accept a Gadgeteer module, as you can see in the latest video published.
Now, what will happen ? Very soon, the website will be public (time for last reviews and domain name attached to it) and you will be able to see the work done and also know how you can participate in this effort if you want to.
Iām posting this here because the MBN boards will be able to drive Gadgeteer boards and some persons may be interested, this is not spam nor it is intented to criticize anything.
MikroElektronika has been very kind by providing some Click board so that we can propose drivers when we launch the project. And they even publish a nice article on us :
Again, thanks to everyone involved in this and thanks to everyone that may want to join !
Christophe
@ Bec a Fuel - Congratulations to you and everybody involved!
@ Architect : thank you very much ! This is really an exciting project.
One last demo, this time with the Quail mainboard (4 MikroBus sockets) and 5 Click boards on it :
Relay (basic I/O)
Led8x8 (SPI)
Pressure (IĀ²C)
BarGraph (SPI)
CapSense (IĀ²C)
Pressure is stacked on the Led8x8. This is possible because they donāt use the sames pins on the MikroBus slot.
What is not visible on the video is the Pressure Click board data (see attached screenshot).
Also, hereās the source code for the demo running :
using System;
using System.Threading;
using Microsoft.SPOT;
using MikroBusNet;
using MikroBusNet.Exceptions;
namespace Examples
{
public class Program
{
static Led8x8Click Leds;
static BarGraphClick Bars;
static CapSenseClick Cap;
static PressureClick Pres;
static RelayClick Relay;
static Byte[][] Digits, InvertedDigits;
static Boolean DeviceOK, RState;
static Thread TCheck;
static UInt16 NbBars;
public static void Main()
{
Hardware.Led1.Write(true);
InitDigits();
try
{
DeviceOK = false;
RState = false;
while (!DeviceOK)
{
try
{
Pres = new PressureClick(Hardware.SocketOne, 0xBA >> 1, 100);
DeviceOK = true;
}
catch (DeviceInitialisationException)
{
#if DEBUG
Debug.Print("Init failed, retrying...");
#endif
}
}
Leds = new Led8x8Click(Hardware.SocketOne);
Bars = new BarGraphClick(Hardware.SocketTwo);
Relay = new RelayClick(Hardware.SocketThree);
Cap = new CapSenseClick(Hardware.SocketFour, 0x00, 100);
TCheck = new Thread(_TCheck);
TCheck.Start();
Cap.SliderDataChanged += Cap_SliderDataChanged;
Cap.ButtonPressed += Cap_ButtonPressed;
Leds.Brightness = 1;
Leds.Display(true);
Leds.Clear();
Thread.Sleep(1000);
NbBars = 1;
Hardware.Led1.Write(false);
while (true)
{
Bars.Bars(NbBars);
DemoDigits();
NbBars++;
if (NbBars > 10) { NbBars = 1; }
Hardware.Led2.Write(!Hardware.Led2.Read());
#if DEBUG
Debug.Print("Temperature : " + Pres.Temperature.ToString("F2") + "Ā°, Pression = " + Pres.Pressure.ToString() + " mbar");
#endif
}
}
catch (Exception ex)
{
Debug.Print("Exception : " + ex.Message);
}
Thread.Sleep(Timeout.Infinite);
}
private static void _TCheck()
{
while (true)
{
Cap.CheckButtons();
Cap.CheckSlider();
Thread.Sleep(100);
}
}
static void Cap_ButtonPressed(object sender, MikroBusNet.Events.ButtonPressedEventArgs e)
{
Cap.LedBottom = e.ButtonBottom;
Cap.LedTop = e.ButtonTop;
Relay.Relay1 = e.ButtonTop;
if (e.ButtonBottom)
{
RState = !RState;
Relay.SetRelay(0,RState);
Bars.Brightness = RState ? 1.0 : (Double)0.01;
}
}
static void Cap_SliderDataChanged(object sender, MikroBusNet.Events.SliderEventArgs e)
{
if (e.FingerPresent) { Leds.Brightness = (Byte)(e.SliderValue / 5); }
}
private static void DemoDigits()
{
for (Byte i = 0; i < 10; i++)
{
Leds.SendArray(Digits[i], true);
Thread.Sleep(100);
}
for (Byte i = 10; i > 0; i--)
{
Leds.SendArray(InvertedDigits[i - 1], true);
Thread.Sleep(100);
}
}
private static void InitDigits()
{
Digits = new Byte[10][];
Digits[0] = new Byte[8] { 0x00, 0x3E, 0x7F, 0x49, 0x45, 0x7F, 0x3E, 0x00 };
Digits[1] = new Byte[8] { 0x00, 0x40, 0x44, 0x7F, 0x7F, 0x40, 0x40, 0x00 };
Digits[2] = new Byte[8] { 0x00, 0x62, 0x73, 0x51, 0x49, 0x4F, 0x46, 0x00 };
Digits[3] = new Byte[8] { 0x00, 0x22, 0x63, 0x49, 0x49, 0x7F, 0x36, 0x00 };
Digits[4] = new Byte[8] { 0x00, 0x18, 0x18, 0x14, 0x16, 0x7F, 0x7F, 0x10 };
Digits[5] = new Byte[8] { 0x00, 0x27, 0x67, 0x45, 0x45, 0x7D, 0x39, 0x00 };
Digits[6] = new Byte[8] { 0x00, 0x3E, 0x7F, 0x49, 0x49, 0x7B, 0x32, 0x00 };
Digits[7] = new Byte[8] { 0x00, 0x03, 0x03, 0x79, 0x7D, 0x07, 0x03, 0x00 };
Digits[8] = new Byte[8] { 0x00, 0x36, 0x7F, 0x49, 0x49, 0x7F, 0x36, 0x00 };
Digits[9] = new Byte[8] { 0x00, 0x26, 0x6F, 0x49, 0x49, 0x7F, 0x3E, 0x00 };
InvertedDigits = new Byte[10][];
InvertedDigits[0] = new Byte[8] { 0xFF, 0xC1, 0x80, 0xB6, 0xBA, 0x80, 0xC1, 0xFF };
InvertedDigits[1] = new Byte[8] { 0xFF, 0xBF, 0xBB, 0x80, 0x80, 0xBF, 0xBF, 0xFF };
InvertedDigits[2] = new Byte[8] { 0xFF, 0x9D, 0x8C, 0xAE, 0xB6, 0xB0, 0xB9, 0xFF };
InvertedDigits[3] = new Byte[8] { 0xFF, 0xDD, 0x9C, 0xB6, 0xB6, 0x80, 0xC9, 0xFF };
InvertedDigits[4] = new Byte[8] { 0xFF, 0xE7, 0xE7, 0xEB, 0xE9, 0x80, 0x80, 0xEF };
InvertedDigits[5] = new Byte[8] { 0xFF, 0xD8, 0x98, 0xBA, 0xBA, 0x82, 0xC6, 0xFF };
InvertedDigits[6] = new Byte[8] { 0xFF, 0xC1, 0x80, 0xB6, 0xB6, 0x84, 0xCD, 0xFF };
InvertedDigits[7] = new Byte[8] { 0xFF, 0xFC, 0xFC, 0x86, 0x82, 0xF8, 0xFC, 0xFF };
InvertedDigits[8] = new Byte[8] { 0xFF, 0xC9, 0x80, 0xB6, 0xB6, 0x80, 0xC9, 0xFF };
InvertedDigits[9] = new Byte[8] { 0xFF, 0xD9, 0x90, 0x86, 0x86, 0x80, 0xC1, 0xFF };
}
}
}
@ Bec a Fuel - Have you tried Etherrnet click board?
I think you can use without any problem (with eth firmware). Iām successfully using it on a Mikromedia + for STM32f4.
@ dobova : I donāt have this Click board, so no, I didnāt try.
Iāve used the Wifi+, though, which I find very good. Existing driver (for MBN board) only lacks Ad-Hoc mode and TCP server features. I personnaly didnāt need those features, hence their absence :-[
But this board was āeasyā to use, thanks to the integrated TCP/IP stack The ETH Click code sample, on the other hand, seems to rely on an Ethernet lib, which source code is not public (I didnāt find it, that is). So it would require extra work for us, I think.
@ Bec a Fuel - I understand your point.
I see that you are working on 4.3 netmf which really Iāve not yet touched, so I donāt know if lwip can be integrated as it is in 4.2, but I think that can be done. Note that Enthernet click board is an ENC28 board so I donāt see a big issue. Using STM32F4 internal Eth is a different stuff, but I think the guys at Mountaneer have just done firmware for that.