Main Site Documentation

FEZ: The one Maker Board to Rule Them All


#1

Here at GHI Electronics, we focus on commercial products, but we have always enjoyed sharing our passion for electronics with the maker community – primarily through our FEZ (Fast and Easy) product line. Our first FEZ was the FEZ Domino released in 2009 – nearly ten years ago!

Today we are very excited to announce our rule-them-all board: the FEZ! It’s under $10!! And we have a Wi-Fi option too!

How is FEZ Different?

At first glance, the FEZ looks like any other duino-compatible board. This allows you to utilize the hundreds of shields available in the duino ecosystem. But what makes FEZ different is that it is backed by our TinyCLR OS. You will get modern development, debugging, libraries, and the .NET C#/Visual Basic languages you all know and love.

But what if I want to use MicroPython, Arduino, Mbed, or something else?

Go for it! We will even show you how! The FEZ is completely open for you to load your favorite software. The very popular STM32F401 chip is already supported by all the common platforms. We welcome any contributions to expand the support to new platforms.

Why do we say rule-them-all?

At under $10 with support for almost every software platform out there, including being the main reference board for TinyCLR OS, the FEZ is the answer regardless of your software choice. All this without breaking the bank.

What kind of software support does FEZ have?

FEZ is the GHI Electronics reference for porting the TinyCLR OS. It is a stable commercially supported port of TinyCLR OS. The other platforms are community supported through our forums. The documentation system behind them is hosted on our GitHub and we welcome community contributions.

What about the Wi-Fi option?

We also offer the FEZ with a Wi-Fi option for under $25. Our TinyCLR OS software support includes everything you need for your next IoT project. FEZ has been tested with from simple HTTP requests all the way up to Microsoft Azure and Amazon Web Services.

Is JTAG available?

Not to worry! We have exposed the SWD pins to connect your favorite tools, including ST-Link.

FEZ Product Page: https://www.ghielectronics.com/products/fez


#2

Hi!

The board sounds great! However I want to know if the TinyCLR framework supports this two features with the FEZ hardware as they are essential for the product I am developing:

  • Zerconf (also called mDNS) via the WiFi.
  • MQTT via the WiFi socket.

Thanks a lot!


#3

When will FEZ! be available?


#4

Looks like Mouser is already sold out of the wireless and there is only 3 left of the other one

https://www.mouser.com/ProductDetail/GHI-Electronics/FEZT18-N?qs=%2Fha2pyFadugQnavFTpLBGnQsp4%2FIt76Z0ltlSc0NchE%3D


#5

We have already tested MQTT with Azure and AWS. I am not sure what is Zerconf myself.


#7

I am betting it’s ZEROCONF.

http://www.zeroconf.org/

Not sure what part the poster is concerned with


#8

Hi !

Thanks for your answer, great news you support MQTT. Zeroconf is one of the multiple names this protocol have, other are mDNS or Bonjour (Apple). It broadcasts announced available services in different ports.

Following are two C# working examples for the Android & iOS platforms, I use this code in Xamarin.

FOR ANDROID:

    public class Zeroconf : IZeroconf
{

    public NsdServiceInfo serviceInfo;
    public RegistrationListener registrationListener;
    public NsdManager nsdManager;

    public void PublishOSCService(string port)
    {
        if (registrationListener != null) {
            nsdManager.UnregisterService(registrationListener);
        }

        registrationListener = new RegistrationListener();
        serviceInfo = new NsdServiceInfo();
        serviceInfo.ServiceName = "ServiceName on " + Android.OS.Build.Model;
        serviceInfo.ServiceType = "_osc._udp";
        serviceInfo.Port = int.Parse(port);

        nsdManager = (NsdManager)Android.App.Application.Context.GetSystemService(Context.NsdService);

        nsdManager.RegisterService(
            serviceInfo, NsdProtocol.DnsSd, registrationListener);
    }


}

FOR IOS:

public class Zeroconf : IZeroconf
{
    private NSNetService _service;

    public void PublishOSCService(string port) {
        //Register bonjour service:
        Device.BeginInvokeOnMainThread(() => { 
            if (_service != null) {
                _service.Stop();
            }
            _service = new NSNetService("local.", "_osc._udp", "ServiceName M on " + UIDevice.CurrentDevice.Name, int.Parse(port));
            _service.IncludesPeerToPeer = true;

            INSNetServiceDelegate netServiceDelegate = new NSNetServiceDelegate();

            _service.Delegate = netServiceDelegate;
            _service.Publish();
            _service.Schedule(NSRunLoop.Main, NSRunLoopMode.Default);
        });
    }
}
}

As you can see this part of the code is 100% platform specific, that is the reason I want to know if TinyCLR and this board can support this type of feature, now often used in IoT.

Thanks a lot ! :slight_smile:


#9

My quick guess is that it is not supported but I do not see why can’t this be added. I am now curious myself.


#10

This is a new milestone for GHI, and Fast N Easy. Well done.


#11

Look at this @Gus_Issa! Do you this this may be compatible with TinyCLR? the library is for .NET Microframework and support nDNS which is the same as Zeroconf:

https://archive.codeplex.com/?p=mip


#12

not going to be drop-in compatible (that wasn’t the aim of TinyCLR OS), but likely easy to translate to the new world


#13

Correct, plus the code depends on the enc28 IIRC. We are using ST WiFi.

If to plan on adding enc28 Ethernet then the changes are minimal.


#14

Can the WiFi act as an access point or only as a WiFi client?


#15

Guess what I’ve received this morning ? :mailbox_with_mail:

Guess who will play with Wifi soon ? :yum:


#16

Yes it can