Main Site Documentation

TinyCLR 0.7.0 and Quailserial ports


Using a Quail mainboard. HW REV.2.01

Has anyone been able to create a serial port on Socket 3?

I can create and use serial ports on Socket 1, 2 and 4 but have not figured out how to use Socket 3.

Socket 1, 2 and 4 are using:
UartProvider\2"; works socket 1 - works
UartProvider\1"; works socket 2 - works
UartProvider\0"; works socket4 - works

I thought this would work for Socket 3.
If I try to use UartProvider\5" (Usart6) for Socket 3
I receive:
An unhandled exception of type 'System.ArgumentException’
occurred in GHIElectronics.TinyCLR.Devices.dll
Exception Invalid id.

I then tried to use: Uart4 - “GHIElectronics.TinyCLR.NativeApis.STM32F4.UartProvider\3”;
I do not receive a exception when using.

However, I cannot find a test signal on any socket pin or screw terminal.

The testing signal writes to RX PC7 - TX PC6


Not a issue for me but I sure would like to know if it’s me
or something “In the works”



Looking at the firmware mappings,, there are only UartProvider\0, UartProvider\1, UartProvider\2, and UartProvider\3. For provider 3, it’s on pins PA0 and PA1.


TX Pin PA0 RX PA1 do not connect to socket 3

My simple test:

namespace TinyCLRTest7
internal class Program
static GpioPin pinTX; //PC6
static GpioPin pinRX; //PC7

    static void Main()
        //These Pins seem correct - Test signals found on socket 3 TX and RX
        pinTX = GpioController.GetDefault().OpenPin(STM32F4.GpioPin.PC6); //Socket 3 pin TX
        pinRX = GpioController.GetDefault().OpenPin(STM32F4.GpioPin.PC7); //Socket 3 pin RX

        // TX PIN(A, 0) - Write test Signal was not found on any socket or screw terminal
        // RX PIN(A, 1) - Write test Signal seen on Socket 1 INT
        pinTX = GpioController.GetDefault().OpenPin(STM32F4.GpioPin.PA0); //Socket 3 pin TX
        pinRX = GpioController.GetDefault().OpenPin(STM32F4.GpioPin.PA1); //Socket 3 pin RX

        // Test signal simple square wave
        while (true)
        }// End while

    } //End Main
} //End class

} // End namespace

Again… Not a issue. Just sending information of my findings


Will Georges, are you using the device.h I sent ? It contains the correct definition for UART6 on Socket3 (PC6/7). This should map to UartProvider\5 if I understand correctly.

I don’t know why you get an exception when you specify UartProvider\5, though.


If the Device.h in the ports repo is incorrect, feel free to send a pull request with the corrected version


are you using the device.h - Yes

What I was using:
#define STM32F4_UART_TX_PINS { { PIN(A, 9), AF(7) }, { PIN(D, 5), AF(7) }, { PIN(D, 8), AF(7) }, { PIN_NONE , AF_NONE }, { PIN_NONE , AF_NONE }, { PIN(C, 6), AF(8) } }
#define STM32F4_UART_RX_PINS { { PIN(A, 10), AF(7) }, { PIN(D, 6), AF(7) }, { PIN(D, 9), AF(7) }, { PIN_NONE , AF_NONE }, { PIN_NONE , AF_NONE }, { PIN(C, 7), AF(8) } }


I would rather not mess around with a Repo.

I’m not sure how to do it. I’ll leave that to the experts!