About

I’m Bryn Lewis from devMobile Software, a .Net developer working on Azure projects and have an unhealthy interest in the .Net nanoFramework and the TinyCLR.

This blog is about .Net Core, Microsoft Azure esp. the IoT bits, .Net Core on *nix , ML.Net, low power wireless communications, hardware, .NET nanoFramework, with the odd diversion into education related topics.

I work for a finance company doing “boring maths for accountants” and contract IoT projects.

I live in the formerly shaky city of Christchurch, New Zealand.

23 thoughts on “About

  1. Hey do you know the best place to source gadgeteer parts in NZ? or best place to source it for nz? shoot me an email. Cheers 🙂

  2. Hi Bryn,
    I am based in Auckland and would like to have a chat with you about your experience with netmf – what are your contact details?

  3. Hi Bryn, I have a small job I’d like to retain you for. I’d appreciate it if you could get in contact with me. I’ve also send a LinkedIn request. Many thanks …. Andrew O214686O1

  4. Hi Bryn, would you be available for hire to do a job? – hooking up a speed and torque sensor. I’ve got the basics, but bit lost on some things. I’m in Chch. Thanks, Nick 356-2275

  5. Hi,

    I am Alessandro from Switzerland. I read your blog. I have a question, maybe you can help me: I have a GrovePI and a Raspberry 3B model.

    I use the library GrovePI from https://github.com/DexterInd/GrovePi/tree/master/Software/CSharp

    GrovePi _collision = DeviceFactory.Build.GrovePi(); //Create obj
    _collision.PinMode(Pin.DigitalPin2, PinMode.Input); //Set obj as input on Pin2

    //Get Value from sensor
    message.Collision = _collision.DigitalRead(Pin.DigitalPin2); //Read value

    for other sensors I have classes:

    _airQualitySensor = DeviceFactory.Build.AirQualitySensor(Pin.AnalogPin2);
    message.AirQuality = _airQualitySensor.AirQuality();

    All work fine but for collision (Where I use generic GrovePi) interface does not run.

    Here the code for DigitalRead:

    public byte DigitalRead(Pin pin)
    {
    var wbuffer = new byte[4] {(byte) Command.DigitalRead, (byte) pin, Constants.Unused, Constants.Unused};
    var rBuffer = new byte[1];
    var i2cTransferResult = DirectAccess.WritePartial(wbuffer);
    Delay.Milliseconds(10);
    if (i2cTransferResult.Status != I2cTransferStatus.FullTransfer)
    {
    return 0;
    }
    i2cTransferResult = DirectAccess.ReadPartial(rBuffer);
    if (i2cTransferResult.Status != I2cTransferStatus.FullTransfer)
    {
    return 0;
    }

        return rBuffer[0];
    }
    

    The sensor is: https://wiki.seeedstudio.com/Grove-Collision_Sensor/

    Thanks a lot for your time and your help. I don’t know how can resolve the issue.

    Alessandro

    • Hi
      Is the Grove Collision Sensor connected to a digital port on the RPI or the onboard Microcontroller?

      If you’re using Windows 10 IoT Core and want an event when the collision sensor is triggered your could look at using an interrupt port on one of the digital ports not connected to the Arduino.

      private GpioPin InterruptGpioPin = null;

      InterruptGpioPin = gpioController.OpenPin(interruptPin);
      InterruptGpioPin.SetDriveMode(GpioPinDriveMode.Input);

      InterruptGpioPin.ValueChanged += InterruptGpioPin_ValueChanged;
      ….

      private void InterruptGpioPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
      {
      if (args.Edge != GpioPinEdge.RisingEdge)
      {
      return;
      }

      }

      @KiwiBryn

  6. Hi I’m very new to arduino I’m in christchurch. Would you please be able to point me to the right person to learning how to use. Any classes for beginners be very useful. Thanks
    JASON

    • Hi Bryn , My name is John Parry and I am a soap maker in Taranaki . Next week i want to go and spend time with my 10 and 12 yr grandchildren , and try to make with them 3 small conveyor belts for my soap using a Stepduino unit that I have and two Minebea stepper motors that I have recovered from a photocopier. So 1 stepper motor (23kmk036-f8v) is to drive 1 conveyor and another stepper motor (23kmk036p10v) to drive the second conveyor and both will feed on to another conveyor with a continuos drive motor. I am struggling to find information on how to go about it and where to look . Regards John Parry

      • HI John,

        Need to know where to start…

        Do you have the Arduino IDE installed on your computer, can you compile and download the “blink” sample application to the StepDuino and flash an LED?

        Bryn

    • Hi

      Sorry no, I ran out of time to go any further.

      I ended up using an off the shelf IP security camera – single images with an HTTP GET and/or video with RTSP.

      @KiwiBryn

  7. Hello Bryn,

    I’m Alvaro an student from Madrid, I’m doing a project with the Quail Board for College and I’m having some problems qith the board.

    My partner and I are 99% sure that the problems are because Mikrobus.net closed and we cant download the drivers for the board.

    I have seen that you made a project with the Quail Board in 2016 and I wanted to ask you… Do you still have the drivers? You would save our lives.

    Thank you so much for your time Bryn.

    Best regards, Alvaro

      • If you’re running Windows when you connect the Quail does a new device turn up in “Device Manager”? If not the board is most probably dead.

        The Microframework is dead the nanoFramework is the available for the Quail. The nanoFramework team have put a lot of effort into device libraries, tooling and documentation

        Download nanoff and follow the instructions on how to flash a Quail.

        Once you have updated the Quail you’ll need to install the nanoFramework Visual Studio (Free community version of Visual Studio is available) extension.

        Then you should be able to create a new empty solution then a new nanoFramework “hello world project”. Once you have confirmed that you can download and run your application have a look at https://github.com/nanoframework/nanoFramework.IoT.Device. The nanoFramework have a lot of device libraries with sample projects and instructions how to wire up devices up.

        @KiwiBryn

  8. Hi Bryn. Glad I stumbled on your page. I am playing with LoRa, specifically the SX1276 that is also in your blog from May22.

    Ive got 2x working on an Arduino R4 wifi board talking to each other in Duplex. Ive been trouble shooting when adding a 2812 LED Matrix shield on top of the LoRa Shield. I wanted to light a couple of pixels as RX/TX indicators.

    The matrix shield uses Pin13 as the data input, +5, GND pins only. Ive got the SV jumps set as default so that shouldnt affect Pin13? but once the LoRa.Begin is executed, the LED data fails. I can write led data before this LoRa.begin execution and LEDs work. As its a shield I has to remove the LED shield from the LoRa shield and jumpered it a different Digital pin , i.e. LoRa shield D3 <-> Shield D13. I tried all the unused pins in your graphic and they all work.

    Did you encounter this issue with D13 being active even though the jumper was set for SPI?

    I had already started a post on reddit about it before finding your page. https://www.reddit.com/r/arduino/comments/1eon4xu/lorabegin_crashes_my_neopixel_fastled_code/

    • Quick answer been sick- PIN 13 is the SPI SCK that is most likely the problem. Is the matrix shield and SPI device or does its library “bit bash”? Will read reddit thread tomorrow,

      • No problem, Im hearing alot of people getting knocked down with the flu at the moment.

        Cheers for looking into it. No Rush, just when you can. probably is a “bit-bash”. Im curious more than anything.

        Works fine on the Mega2560 as Pin13 is different.

        Thanks

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.