• Thr 2019.06.13

    Okay - Found this:


    ref line #49    'spi' : 1,

    but, unable to locate how this one hdwr SPI is setup. Pin map for 'cs' 'rst' anyone?

    When using the hdwr setup from pin map link below - second image from end post #1 - and


    I am led to believe that these are valid pins, as print does kick back what I sent without error:

    SPI1.setup({ sck:D5, miso:D6, mosi:D7 });
    SPI: {
      "_options": { "sck": D5, "miso": D6, "mosi": D7 }

    as when using the little loopback trick from #5



    Now on to RFM95

    Note that freq 915 is required for USA and thus module RFM95 needed

    ref RFM69 on Pico: https://www.espruino.com/RFM69
    ref RFM95 attempt: http://forum.espruino.com/conversations/­307305/

    But, when I attempt to connect applying a pin value for 'cs' or 'rst'

    var rfm = require("RFM69").connect({spi:SPI, cs:D8, freq:915}, function() {

    I'm faced with un-initialized pins: (Note that 'rst' omitted for simple error return)

    Uncaught Error: Function "send" not found!
     at line 1 col 10
    in function "w" called from line 1 col 11
    b.w(47,170);if(170!=b.r(47))throw Error("RFM69 not found");b...
    in function called from system
      "spi": {
        "spi": function () { [native code] },
        "cs": D8, "freq": 915 },
      "cs": undefined, "rst": undefined, "freq": 434 }

    The resultant "send" not found! error seems to be as the pin for 'cs' D8 doesn't seem to initialize.

    Successes so far:

    While an overly ambitious desire to get working and provide a tutorial for the RFM69/95 module, as others seem to be having difficulty also, and realizing that most forum post references ended 2 years ago (late 2016), this task may be near impossible, but might be fun learning to see if the module could be re-written.

    "To Boldly Go Where No Man Has Gone Before!"

    I understand this is un-supported, uncharted waters:


    ESP8266 closest match

    Found an article that had SPI running with Arduino on a D1 mini. Wanted to see if Espruino would work instead.

    After reading the headaches from this install attempt, Jan 2018:


    and having a WavGat D1 variant, see image @MaBe link#18 lying around from a previous CN massive sale discount order I just couldn't resist, gave it a whirl. Surprisingly, in my case, after botching the wrong pull-up pin for flash, was able to get Espruino running with no headache on my part. 'Hello World' in under an hour!

    AI Thinker ESP8266MOD



    Pin	Function	ESP-8266 Pin
    01 5V	5V	-
    02 G	Ground	GND
    03 D4	IO, 10k Pull-up, BUILTIN_LED	GPIO2
    04 D3	IO, 10k Pull-up	GPIO0
    05 D2	IO, SDA	GPIO4
    06 D1	IO, SCL	GPIO5
    07 RX	RXD	RXD
    08 TX	TXD	TXD
    09 RST	Reset	RST
    10 A0	Analog input, max 3.3V input	A0
    11 D0	IO	GPIO16
    12 D5	IO, SCK	GPIO14
    13 D6	IO, MISO	GPIO12
    14 D7	IO, MOSI	GPIO13
    15 D8	IO, 10k Pull-down, SS	GPIO15
    16 3V3	3.3V	3.3V
     2v01 (c) 2018 G.Williams
    Espruino is Open Source. Our work is supported
    only by sales of official boards and donations:
    Flash map 4MB:512/512, manuf 0xe0 chip 0x4016
      VERSION: "2v01",
      GIT_COMMIT: "748a4d3",
      BOARD: "ESP8266_4MB",
      FLASH: 0, RAM: 81920,
      SERIAL: "a020a606-7bff",
      CONSOLE: "Serial1",
      MODULES: "Flash,Storage,hea" ... "r,crypto,neopixel",
      EXPTR: 1073643636 }

    In the meantime, I'll continue to research and will update here as I discover more. . . .

  • Looks like the RMF96 and SX12xx modules have different parameters. The RFM69's connect's first parameter should be the SPI object, not an object with an spi property:

    // from the docs:
    rfm = require("RFM69").connect(SPI2, {cs:B10, rst:B1, freq:434}, ...
    // your code:
    rfm = require("RFM69").connect({spi:SPI, cs:D8, freq:915}, ...
  • It appears we were updating at the same time. . . .

    Good catch @AkosLukacs!

    I had been playing with that as I kept getting WebIDE syntax errors R-Hand editor side, and wondered, as no one had success in either of the other forum links if one or the other was a typo.

    But, with a bit of fiddling,

    var rfm = require("RFM69").connect(SPI1, {cs:NodeMCU.D8, rst:NodeMCU.D0, freq:915}, function() {

    'cs' and 'rst' are now recognized.

    >SPI: {
      "_options": { "sck": D14, "miso": D12, "mosi": D13 }
    Uncaught Error: RFM69 not found
     at line 1 col 58
    ...row Error("RFM69 not found");b.w(47,85);if(85!=b.r(47))throw.­..
    in function called from system
      "spi": SPI: {
        "_options": { "sck": D14, "miso": D12, "mosi": D13 }
      "cs": D15, "rst": D16, "freq": 915 }

    The "RFM69 not found" error seems to be from ~L080:


    The part I'm still struggling with is that in order to get a correct syntax check, I need to use
    the NodeMCU.Dx format, I seem to get errors, as it might just be that those GPIO pin designations just don't exist for the D1 mini. Is it ESP8266, ESP32, RFM69, or Espruino under the hood?

    Still searching for the Git source that might explain the NodeMCU.Dx mapping to see if limitations exist there.


Avatar for AkosLukacs @AkosLukacs started