Porting Espruino to MDBT42Q

Posted on
  • Hi all,

    I have played a little bit with Puck.js and now I want to make few custom boards with oLED, MBDT42Q etc. for my new home project. I need some guidance how can I port Espruino on to MDBDT420 as it is the same module used in Puck.js.

    I have J-link lite, nRFgo studio and have played around little bit with nrfjprog.exe and mergehex.

    I guess my main question is the zipped firmware listed on Espruino GitHub is a bin file whereas nrfGo sutdio wants hex file. Also, where can I get espruino bootloader and espruino hex file so I can merge them with mergehex and then flash the BLE module using J-link lite. I assume I can use softdevice 132 from Nordic website as that should be standard across nrf52 modules.



  • Hi - yes, the Puck firmware on the site doesn't the a bootloader or softdevice... But you can find utilities (intelhex python lib and mergehex?) that'll convert bin to hex and you can just upload it without a bootloader.

    Realistically you'd want to set up a build environment yourself using the info here: https://github.com/espruino/Espruino/blo­b/master/README_Building.md

    and then you can do custom images, with a bootloader if needed.

    However I'm actually planning on selling pre-programmed modules really soon now that come with a bootloader on: http://www.espruino.com/MDBT42Q

    And I'm producing mdbt42q images for just the bare modules as well... So if you haven't yet bought any modules I'd hold off until I'm selling them - they'll actually be a very similar price to what you can buy them from online normally.

  • Just to add, I deleted your duplicate post on the official boards forum. This is definitely the right place to ask questions like this.

  • Thanks Gordon, I will wait for the mdbt42q image.

  • How far away are you from having the mdbt42q modules for sale ? We need some more !

  • :) I've got a bunch here - if you email me what you want I'll send some out.

    I'll be skipping Tindie and launching a shop on Espruino.com where I already have listings for them set up. I'm supposedly on holiday this week and am talking at MakerCon next week, but the plan is to launch the shop when I get back from that (as I'd like to be around to sort out any teething problems!).

  • I'd like to get my hands on a couple also @Gordon. Possible?

  • Could you wait 2 weeks? It'll be really nice and easy when they're available on the Espruino store... All the invoices/tax/etc gets done automatically.

  • No problem.

  • I know it's been a long time since this conversation started and an MDBT42Q module pre-flashed with firmware is available, but right now I'm in the same situation as @user88194 when he started this conversation.

    I made a prototype using puck.js and wanted to make custom boards and use the same firmware. I was doing some prototyping using nRF52832 DK before, so I have one of that with me and I thought I could just buy some MDBT42Q module and use the puck.js firmware from Espruino website to flash it to make similar to the pre-flashed MDBT42Q.

    But as @user88194 mentioned, I found out that I need a .hex file to proceed with nRF52832 DK/nRFgo/nrfjprog.

    Can anyone please guide me in the right direction, to get a .hex version of puck.js firmware or reliable way to convert the available .bin to .hex. I've already tried converting bin2hex.py using intelhex, but didn't work for me. Maybe I'm doing something wrong?

    Anyone who successfully achieved this mission?

  • You need the bootloader and softdevice in the hex file as well as the actual firmware. Best bet is to build your own - just follow the instructions on https://github.com/espruino/Espruino/blo­b/master/README_Building.md and use PUCKJS or MDBT42Q as the board name

  • Following the instructions outputs, among others, a file named bootloader_espruino_2vXX.XX_mdbt42q.hex as well as dfu_settings.hex.
    I tried flashing bootloader_espruino_2xXX.XX_mdbt42q.hex to the target with nrfGo Studio, with no success.
    What is the correct procedure to flash the bootloader?

  • I use this way:

    Switch the board to bootloader mode and then use nRF toolbox app to flash the new firmware as zip.

  • thanks @MaBe. However, in my case I don't have any bootloader flashed yet, and I want to overcome this limitation by flashing it by myself...

  • Ok, have you checked Android D6Flasher?

  • I just gave it a try, but it seems to stay at 0% flashing.. Even here I think the device needs to already have a bootloader inside to work properly...
    Anyway thank you for your help, and also for pointing me to this app, it should be helpful in some cases.

  • OK problem solved.
    I realised the reason the bootloader wasn't working is that I accidentally made a permanent solder bridge between D0 (BTN pin, used by the bootloader) and VCC.
    I just removed the solder bridge and now the bootloader works well. I was able to update the latest FW (2.05) with DFU.

  • Cool, thanks for sharing. So what are the plan for this device?

  • I am trying to build a Gameboy-like gamepad. Ultimately I was hoping to be able to control a Gameboy emulator running on my smartphone :-) BTW there is also some discussion in this thread.

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

Porting Espruino to MDBT42Q

Posted by Avatar for user88194 @user88194