After months sitting on the shelf behind my desk I had some time to look at the contents of my RAK WisBlock Kit. The kit contains a selection of WisBlockBase, Core, Wireless, Sensor, Interface, Display modules, plus a Premium Screwdriver ( "sonic screwdriver").
In the RAK WisBlock Kit was a RAK2305 WiFi Espressif ESP32WisBlock wireless module which caught my attention. I'm a big fan (and a contributor to) the .NET nanoFramework which supports Expressif ESP32 powered devices.
The RAK2305 is WisBlock Wireless module so it plugs into IO Slot of WisBlock Base Boards.
RAK2305 The "learning journey begins"The first step was to figure out how to "flash" the RAK2305 module with the .NET nanoFramework firmware flasher tool (nanoff). I soldered headers on to RAK2305 module so I could connect my UartSBeeV5FTDI to the TXD0, RXD0, 3v3, and GND pins.
After some trial and error, I flashed the RAK2305 with the latest version of the .NET nanoFramework. I used the white jumper cable to connect IO0 to GND (header pin to the right of IO0) to get the Expressif ESP32 into firmware upgrade mode.
I then modified the .NET nanoFramework Blinky sample to flash the green TEST_LED (GPIO 18).
//
// Copyright (c) .NET Foundation and Contributors
// See LICENSE file in the project root for full license information.
//
using System.Device.Gpio;
using System;
using System.Threading;
namespace Blinky
{
public class Program
{
private static GpioController s_GpioController;
public static void Main()
{
s_GpioController = new GpioController();
.....
// RAK2305
GpioPin led = s_GpioController.OpenPin(Gpio.IO18, PinMode.Output); // LED Green (Test LED) on device
led.Write(PinValue.Low);
while (true)
{
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(525);
}
}
...
}
}
I then tried to plug the RAK2305 into a RAK5005-O/RAK1907WizBlock Base IO-Port but it wouldn't fit. The headers I had soldered onto the RAK2305 module fouled the RAK5005-O/RAK1907 so I carefully trimmed them with a pair of wire cutters.
I could get the Green Test LED on the RAK2305 to flash but when I tried to flash the blue and green LEDs on the RAK5005-O/RAK1907 the application failed when the port was opened with a "System.ArgumentException". According to the Expressif esp32 datasheet "GPIO pins 34-39 are input only" so it seems a bit odd that they are connected to LED1 & LED2.
At this point it was looking reasonably positive so I ordered a WizBlock CoreRAK2305 WiFi Espressif ESP32, RAK19001 WisBlock Dual IO Base Board and a selection of other WisBlock modules.
RAK11200 "Easier than expected"The RAK11200 WiFi and BLE Espressif ESP32-WROVER is a WisBlock Core module so it plugs into Core Socket of WisBlock Base Boards.
The first step was to figure out how to "flash" the RAK11200 module with the .NET nanoFramework firmware flasher tool (nanoff). I used the white jumper cables to connect IO0 to GND to get the Expressif ESP32 into firmware upgrade mode.
I then modified the.NET nanoFrameworkblinky sample application to flash the red and green LEDs on the RAK19001 and RAK5005-O base boards.
//
// Copyright (c) .NET Foundation and Contributors
// See LICENSE file in the project root for full license information.
//
//
using System;
using System.Device.Gpio;
using System.Threading;
using nanoFramework.Hardware.Esp32;
namespace Blinky
{
public class Program
{
private static GpioController s_GpioController;
public static void Main()
{
s_GpioController = new GpioController();
// RAK11200 on RAK5005 or RAK19007
//GpioPin led = s_GpioController.OpenPin(Gpio.IO12, PinMode.Output); // LED1 Green
//GpioPin led = s_GpioController.OpenPin(Gpio.IO02, PinMode.Output); // LED2 Blue
// RAK11200 on RAK19001 needs battery connected or power switch in rechargeable position.
//GpioPin led = s_GpioController.OpenPin(Gpio.IO12, PinMode.Output); // LED1 Green
//GpioPin led = s_GpioController.OpenPin(Gpio.IO02, PinMode.Output); // LED2 Blue
...
//led1.Write(PinValue.High);
//led2.Write(PinValue.Low);
led.Write(PinValue.Low);
while (true)
{
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(525);
}
}
...
}
}
SummaryI can flash LED(s) with a .NET nanoFramework application on RAK WirelessExpressif ESP32 powered WisBlock modules so the basics are sorted.
I'm working on a number of projects about connecting WisBlock sensors, GPS modules, other vendors sensors, LoRaWAN modules and running devices on solar power. I am also working on a couple projects which upload telemetry to an Azure IoT Hub etc.
FootnoteI have included the schematics of the RAK2305 WiFi Espressif ESP32, RAK11200 WiFi and BLE Espressif ESP32-WROVER, RAK19001 WisBlock Dual IO Base Board and RAK5005-O Base Board so I can reference them in future posts.
Comments
Please log in or sign up to comment.