Avatar for user135646

user135646

Member since Oct 2021 • Last active Aug 2022
  • 6 conversations
  • 16 comments

Most recent activity

  • Avatar for user135646

    Flashing via DFU didn't work (the file sent over ok on the app, but nothing happened).
    Programming via the J-link on the nRF DK board didn't work either (which was odd).

    But I found a J-Link Ultra+, and that programmed it just fine. The radio demo seems to be working - thank you for the help.

    The current board doesn't have a programming header per-se, so one unit will be kept as the 'radio test unit'. No need for the Espruino .hex, but thanks for offering.

  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Thanks Gordon, all useful advice.

    I was on v2.12, but have updated to v2.14 and seen an improvement in timings, although there'll still be one or two long pulses in a second's worth and it still doesn't quite go down to 20us. But I agree it's much improved and if I get fed up with fiddling with timers it's probably good enough to work with.

    Thank you for the links re. hardware and examples, I'll have a read up on them.

  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Hi All,
    Working on something that needs to produce accurate-ish (+/-20%) pulses down to 20us every 10ms for 1s. I'm currently using a combination of setInterval() and digitalPulse() (see snippet below if interested).

    With a bit of dialling-in, the 1s duration is reliable enough, setInterval() is working great at 100Hz, and digitalPulse() gives good results at 200us and passable ones at around 140us.

    digitalPulse can do 32us, but there's about +40/-0 us of variation in it so it's not ideal. For stuff around 100us things could be fudged so that the +40us sits as +/-20% around 100us, but it doesn't work once you get faster than that.

    So the question is, what timers are free to use that don't interfere with Espruino? What timers (if any) does digitalPulse() use? Was thinking of using a one-shot timer triggered over and over by setInterval().

    // Timeouts of OFFSET_MS used to account for speed of js execution. Obtain OFFSET_MS empirically.
    // Timeout to start pulses.
    setTimeout( () =>   { tmp1 = setInterval( () => { 
                    digitalPulse( PULSE_PIN, true, pulseDuration_ms );
                }, CNST_PERIOD_MS )
            },  OFFSET_MS
        );
    // Timeout to stop pulses after some time.
    setTimeout( function(){ PULSE_PIN.reset(); clearInterval(tmp1); }, Duration1_ms+OFFSET_MS);
    
  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Had a look at that example, and it seems to be exactly what I need! Thank you. Now to dig out the NRF52-DK...

    Is it simple enough to get Espruino back on the chip?

  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Hi All,

    We're have a product using an Espruino MDBT42Q, and are looking at running tests in service of the RED (Radio Equipment Directive; an EU thing).

    A test house has come back asking if the device can be made to constantly transmit on the lowest, middle, and highest frequency channels one by one (which for BLE would be channels 37, 17, and 39 respectively).

    I've looked through the software reference and found the useful 'setTxPower' function, but is there a way to do either or both of constant transmission (doesn't have to be intelligible data) and transmitting over a fixed channel?

  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Thank you both. Turns out it was definitely a size issue. Working fine from Flash now.

  • in Puck.js, Pixl.js and MDBT42
    Avatar for user135646

    Hi All,
    Been a few months developing with Espruino now. After getting my head around javascript it's actually very nice. Scheduling things is a breeze in particular.

    I've been developing a project off the Espruino and testing with jest, and now it's time to move it onto the Espruino where it should all just work (haha).

    The code's being moved in chunks and tested as it goes along. However, after adding the most recent chunk and uploading to RAM I get :

    >Uncaught SyntaxError: Got EOF expected ':'
     at line 1 col 13365
    ...Disconnected:256,OverCurren
                                  ^
    Execution Interrupted
    New interpreter error: LOW_MEMORY,MEMORY
    > 
    

    at first I thought this was some bug with the minification (the chip has 64k RAM, so it shouldn't (on the face of it) be struggling with 14k of program), but with that turned off I get:

    >Uncaught SyntaxError: Got EOF expected '}'
     at line 752 col 32
                tmp = false;//STM.s
                                   ^
    Execution Interrupted
    New interpreter error: MEMORY
    > 
    

    So it's the same error, but at a different place in code.

    The code as it stands is 14131 bytes when minified, and 33480 bytes as-is.

    The console doesn't give any obvious clues, is there some tool available to debug the issue? Or is it that I'm actually out of memory? The code's only ~1000 lines at the moment, but there's another 500 or so to go.

Actions