Espruino on ARMinARM board

Posted on
  • Hi,

    I'm working on an STM32 breakout board for the Raspberry Pi. It's called "ARMinARM", and it also runs Espruino (next to CMSIS and libopencm3 examples, eLua and libmaple so far). One of the goals was to have everything (code editing, compiling, uploading and debugging) done on the Raspberry Pi without the need for extra debugging hardware or Windows computers. Also be compact, sturdy and hackable.

    The project page is here: http://www.onandoffables.com
    The ARMinARM branch of Espruino: https://github.com/ARMinARM/Espruino/tre­e/arminarm (pins for documentation and images not updated (yet))

    I really love how easy it was to port Espruino over. Basically just copying a .py file and changing some variables. Good work on that! :-)

    Unfortunately chromium isn't able to run the webIDE on the Raspberry Pi. All the ARMinARM specific tools that I make available for the Raspberry Pi are commandline based, so it's not weird to use gzip's awesome esp-cli commandline tool to communicate with Espruino. I will post a 'thank you' in his topic as well.

    Please let me know if you (Gordon) feel if I somehow misrepresented you or Espruino. I would hate it if that happened.

    Anyway, just saying 'hi' and a big 'thank you'! Event based programming on a microcontroller makes so much sense! And I love the Espruino kickstarter board :-)

  • Thanks for posting up! Could you do a pull request for any changes you've made? It'd help to stop Espruino getting forked too majorly...

    Also, it looks like you've got it compiling nicely on Raspberry Pi? It'd be great if you could do a post on exactly what is required for that (eg where to get the compiler), as it might be a good way for people to compile Espruino when they don't have a PC running linux (rather than having to have a VM set up).

    I notice you don't actually show one of the more cool things about the board - that you can just send single commands to it from code running on the Pi (even bash)... There's some info at http://www.espruino.com/Interfacing or an old post on the RPi forums:
    http://www.raspberrypi.org/forums/viewto­pic.php?f=45&t=19301&p=188619

  • Thanks for your comments.

    Sure, I'll do a cleanup and a pull request. Does that mean you're going to compile the ARMinARM version and distribute it together with versions for other boards? That would be awesome and make my life a lot easier. The reason for the fork and download scripts for the precompiled .bin I provide is that I didn't want to bother you with it. I figured you'd have a lot of work when half the world and their mother decides to sell boards that also run Espruino. You're making this too easy :)

    If you don't mind I'll wait a few weeks when I'm 100% sure these boards are actually going out to people. I'm only 99.99% sure now, but in it for the long run, so no rush. And I don't want you to be doing any work for nothing. By that time I may have also had the chance to have a better look at how to build the documentation. The pinout in the .py file are still the pins I copied from the Espruino board file, and do not match the ARMinARM board.

    I had to build the toolchain for the Raspberry Pi myself. It's based on the Yagarto toolchain. The build scripts can be found here: https://github.com/ARMinARM/arm-toolchai­n-build-scripts
    That takes ~20 hours to build on a Raspberry Pi (I really should be cross compiling this), so there's a precompiled version here: https://github.com/ARMinARM/arminarm-bin­
    It's downloaded and installed by the script files here: https://github.com/ARMinARM/arminarm ('install_toolchain.sh' in the bin directory, which is called by the 'setup' menu)

    I'll make a post about how to compile a nightly build of Espruino on the Raspberry Pi in more detail when I get the chance (soonish).

    Good point about the other cool stuff about Espruino. The website is in its early stages as well, so for now I was hoping people will look on the Espruino website for details (and maybe even buy an Espruino board, that'll be good). I will definitely add the 'espruino_command.py' script though, and write something about it. Because that is indeed very cool.

  • Thanks. I'm not sure about adding the build - but at least having as much in the main repo as possible reduces the risk of fragmentation...

    Good news about the toolchain - thanks for putting it up!

  • Having the board file + edits in the Makefile in your repo will still make my life (a lot) easier. Thanks! :)

    I'll try and do a how-to tonight.

  • Just posted a how-to on compiling Espruino on a Raspberry Pi with Raspbian here: http://forum.espruino.com/conversations/­1671/ (in battle with forum software ;)

    I did run into the "-O3" versus "-Os" gotcha. Never noticed before, because the ARMinARM board doesn't use your bootloader obviously and also has more room in the Flash department. Very interesting. What toolchain are you using?

  • Thanks!

    I use codesourcery-2013.05-23-arm-none-eabi. I've been meaning to switch to -Os and a newer compiler as it'll free up ~50kB of flash, but it's really flaky when I do that (some compiles work, some don't - seemingly at random).

    I don't know if it's related to the bootloader, because when I remove the bootloader so I can properly debug the code, everything starts working :)

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

Espruino on ARMinARM board

Posted by Avatar for arminarm @arminarm

Actions