nRF52dk with Espruino

Posted on
  • Hi everyone! I use nrf52-DK with Espruino ide.
    I want to start soft i2c. I tried to use hardware and software examples as espruino.com/I2C.
    I wrote a code:

    // set up SPI
    var i2c = new I2C();
    i2c.setup({ scl : 30, sda: 31 });
    // Write a single byte (0) to address 0x52
    i2c.writeTo(0x52, 0);
    
    

    but everytime i have an error message like:

    *

    Uncaught Error: Function "setup" not found!
    at line 1 col 5
    i2c.setup({ scl : 30, sda: 31 });
    Uncaught Error: Function "writeTo" not found!
    at line 1 col 5
    i2c.writeTo(0x52, 0);
    *

    Could anyone help me?

  • Which firmware are you using? that should work fine...

  • I find at nordic devZone this hex espruino_1v86.26_nrf52832 here:
    devzone.nordicsemi.com/blogs/980­/espruino-program-nrf5-devices-in-javasc­ript-see-th/
    but its version is 86 but now is avalible v91 for other boards....

  • Ooh, thanks a lot!!!! It works well!

  • And one else question. Are i2c pins already defined by default?
    if yes, what are their pin numbers?
    I try to use SSD1306 but it doesn't works

  • Post your error messages now you have updated the firmware...

  • I rebuild code with soft i2c, ssd1306 works, but it skips every other line. And symbols seems are broken. What a problem may be?


    1 Attachment

    • naforym.jpg
  • And one else question. how to flash mcu? it doesnt works in settings...flasher...flash

  • What is your display brand/model number? Some of those SSD1306 displays have different connections internally and need different initialisation codes :(

    You can't flash the nRF52DK using the Web IDE. However if what you're asking is how to write your JS code in to flash, you type save() on the left-hand side.

    It's worth going through the getting started tutorial as it'll explain it: espruino.com/Quick+Start

  • yes. Understood)
    Now i defined ble service:

    //Start BLE service
    NRF.setServices({
      0xABCD : {
        0xDCBA : {
          value    : 0x01,
          //maxLen   : 1,
          writable : true,
          readable : true,
          onWrite  : function(evt) {
            digitalWrite([LED3,LED2,LED1], evt.data[0]);
          }
        }
      }
    });
    

    it works while i am not saving program in flash. After saving my service disappears


    2 Attachments

    • Screenshot_2017-03-05-19-31-20-246_no.nordicsemi.android.mcp.png
    • Screenshot_2017-03-05-19-29-50-590_no.nordicsemi.android.mcp.png
  • Put the code in an onInit function - it should then be called at startup and will set the services up for you.

  • What is your display brand/model number? Some of those SSD1306 displays have different connections internally and need different initialisation codes :(

    SSD1306 oled display from china has a number at back side: GM009606A , i used it with my C library in keil. It worked nice. How can i repair it? Where i can find source file to fix it?

    Next time i tried to connect CC3000 wlan module (TI CC3000 booster pack), but compiler says than cc3000 and http modules not found and i have a log :

    ERROR: Timeout in CC3000 driver (16384)

    SPI1.setup({ sck : 27, miso : 26, mosi : 25, baud:1000000, mode:1});
    var wlan = require("CC3000").connect(SPI1, 24 /* CS */, 23 /* EN */, 22 /* IRQ */);
    wlan.connect( "Amigo_WiFI", "*******", function (s) { 
      if (s=="dhcp") {
        require("http").get("http://www.pur3.co.­uk/hello.txt", function(res) {
          res.on('data', function(data) {
            console.log(">" + data);
          });
        });
      }
    });
    

    Is CC3000 supported? I use nrf52DK

  • This is the JS fine for SSD1306: github.com/espruino/EspruinoDocs­/blob/master/devices/SSD1306.js#L33

    You can copy the code in to the Web IDE directly and use it - compare the highlighted lines with the ones in your C code. Chances are the configuration is different.

    I'm afraid the CC3000 isn't supported by default in nRF52 - GSM and ESP8266 should be though. If you want CC3000 you'd have to compile your own firmware.

  • Does Espruino support scheduler or simple task manager?

  • I'm not quite sure what you mean? It has a built in scheduler which you use with setTimeout/setInterval, and it uses that (and an internal event queue) to execute functions when they're needed.

    There is no preemption, but that's not really what JS is about.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

nRF52dk with Espruino

Posted by Avatar for Amigo @Amigo

Actions