C# Host for Notecard

In case your interested in using Visual Studio and C# as a host for Notecard. I have published an I2c driver that works great with the Notecarrier-AF and GHI Electronics FEZ Feather.

2 Likes

As the resident .NET geek of Blues Wireless, I think this is awesome :slight_smile:

I’ll definitely be looking more closely at this in the near future. Curious to know the pros/cons of TinyCLR vs nanoFramework if you know of any.

Thanks!
Rob

Both products were born from the original .NET Micro Framework. TinyCLR is a commercial solution that is highly optimized for a couple specific chipsets. Most of the libraries are open source. However, the firmware interpreter running on the chip is not. In my opinion this is a great option for commercial projects and has good forum support. If your building your own hardware, they have some system on modules (SoM) that take the complexity out of creating your own boards but at a cost.

NanoFramework on the other hand is 100% open source and has been ported to many chipsets by both the nanoFramwork team and the community. It is also part of the .NET foundation so I guess you could say they have Microsoft’s backing. The nanoFramwork community is more active and working on a few features like generics that TinyCLR doesn’t have. NanoFramwork and TinyCLR both have a few unique features but generally speaking they have the same core features like GPIO, I2C, SPI and UART. I think both solution are great, but in my option GHI has better hardware options.

This driver can be easily ported over to the nanoFramwork. If there is enough interest in having a nanoFramework version. It’s something I can take a look at.

1 Like

I just ordered a board from TinyCLR to test this out. Looking forward to trying the Notecard with it!

Excellent! Please don’t hesitate to reach out if you have any issues getting started.

I finished up putting together a prototype board. It’s using the low power chipset and works great so far! Now the fun begins. :slight_smile:

1 Like

@RobLauer - I’m working on a serial debug logger and I’m running into an issue. I created a driver that is listens to the the AUXTX and AUXRX. When I set the AUXEN pin to high I get “\0\0” returned on the uart interface. However, after turning the tracing on and doing a sync I don’t receive any trace data. Will the sync always show some type of debug information. I’ve tried to enable location and a few other things but nothing seems to force any type of debug info.

At this point I don’t think it’s the driver because when I put a protocol analyzer on it I get the exact same response. I’m sure this is me doing something wrong. Following along with the document below it looks pretty straight forwarded but I’m struggling to get any meaningful data out of the interface. Curious if you might have any ideas I can try.

I think I have this issue figured out. It looks like the {“req”:“card.trace”,“mode”:“on”} command must be issued from the same interface that you are trying to debug from. In my case I was listening to the AUX RX/TX interface but issuing the “trace command” using the I2C. Once I issued the command using the serial interface it started to work as expected.

Can you confirm for me this is the expected behavior. Also, if I use the serial interface to set the “trace commands” will I2C commands still show up as debug messages. I’m assuming I2C will work to trigger commands as long as I use the serial interface to set the on/off commands.

Yes, you are correct.

AUX RX/TX is the debugging interface for the firmware running directly on the Notecard. It operates orthogonally to whichever serial interface you are using to provide data to the card. As such, it will NOT directly affect the operating serial interface or the debugging statements enabled through that interface.

The debugging statements provided by the operating serial interface are typically responses that have been returned from Notecard transactions and have been logged out by the SDK (e.g. note-c, note-arduino, note-python, etc…).

Lose the wires!

I have released to nuget an updated set of drivers along with a simple terminal application that runs as an embed web server from the host. This web application can then provided Wi-Fi web based commands to notecard. Check out driver repo for more information.

2 Likes

Awesome. Can you provide a link to the nuget package here for reference?

NuGet packages can be found here:
https://www.nuget.org/packages?q=bytewizer.tinyclr.drivers.blues

1 Like

I have published to Altium CircuitMaker a working barebones notecard carrier board that is designed to be hand soldered. This design is using a lower power chipset then the FEZ feather picture above. I have also created a 3D case for it. It’s taken me a couple revisions but at this point I don’t have any know issues. :slight_smile:

Altium CircuitMaker Project
https://workspace.circuitmaker.com/Projects/Details/MicroCompiler/TinyCLR-Notecard

1 Like

Hey @bytewizer,

I’ve gone through the getting started tutorial for TinyCLR and have deployed the simple LED flash example with no issues (fun to use Visual Studio for this!).

However, I’m running into an issue I assume you already overcame when I use the Notecarrier-AF (same one you are using in the beginning of this thread). When I have the FEZ Feather seated on the AF, my PC no longer recognizes it (simply doesn’t appear as a USB device). Voltage issue maybe?

Unfortunately I’m in a chicken-and-egg scenario where I can’t seem to deploy and run your Notecard example without the Notecard actually being available.

Thanks!
Rob

FWIW, I’m able to use the Notecarrier-AL just fine, so I’m guessing there is some voltage issue with the AF

I’m guessing you are right regarding it being a voltage issue. You might want to try to use two USB cables. One plugged into the AF directly and one into the Fez feather. I have used this method to connect and watch the debug messages from the notecard. The other thing you might try is if you have a USB hub that is powered, you might get better results from that then directly connected to the PC.

Im using theUSB port off my monitor and connecting it directly to the Fez Feather and have have not had any issues powering the FEZ and the AF from the same cable.

FYI @bytewizer I wrote up my experience using the FEZ + Notecard in this blog post (really great dev experience!):

1 Like

This is really excellent post! I love the developer experience too. It fits very nicely with the JSON interface of the notecard.

@RobLauer Your blog post inspired me to see what it would take to modify the driver to run on .NET nanoFramework NanoCLR OS. I had some success. :grinning:

Here is a link to the .NET nanoFramework nuget package:
https://www.nuget.org/packages?q=bytewizer.nanoclr

Using a Blues Wireless Notecarrier-AF with Adafruit Feather ESP32 Starter Kit. I documented the basic steps required to getting the Adafruit Feather firmware flashed, configured and ready to go.

https://github.com/bytewizer/blueswireless/tree/develop/src/Bytewizer.NanoCLR.Drivers.Blues.Notecard

1 Like

Absolutely fantastic, thanks!

The Blues Wireless Driver is now included in the community contributions of the official .NET nanoFramwork repo.

3 Likes