What's a board?

Posted on
  • One issue I'm encountering is the notion of a board. Looking at pinouts for the esp8266 I see:

    • esp-01 has 512KB flash, which makes a number of features unattainable (such as OTA update, or filesystem in flash), and it has 2 gpio pins
    • esp-12 has 4MB flash and all 17 gpio pins + adc
    • adafruit huzzah is perhaps the best low cost breadboard ready board, it has an esp-12, but of course a different pinout

    Looking at the emw3165:

    • the emw3165 has a specific pinout with 41 pins, of which a bunch are NC
    • the WifiMCU is a very nice breadboard-ready board, which I assume many people will be getting, and it has a different pinout than the module

    It seems that the way things currently are we should have one board definition file for each of the 5 options above. But of course a lot is redundant. Is that the way you'd like to go? Or, to take the emw3165 example, should we have a single board definition with a photo that has both the module and the WifiMCU and then place the pins on both? Or.... ?

  • For the two EMW3165's, it seems like the right course of action would be to have one board definition, and then in the docs, have pictures of the bare module, and the breakout board, both with the pin names and functions marked on them. It's not like anything needs to be renumbered internally.

    I think the same goes for the ESP8266's (though the ones with low flash might need to be considered a different board anyway, since they have less functionality too.

  • Hmm. The board ID is used to tell the web IDE what pins are available on the board... However having two builds that are almost the same does seem a bit pointless.

    In fact boards like maple and olimexino do
    share the same board file at the moment.

    The whole board image thing is a bit rough around the edges right now. I guess it would be nice to redo it in such a way that we could have different images for the same board, and also so it didn't involve CSS :)

  • Ok, not sure what to take from all this. I think the practical way forward is to create an image for the emw3165 that includes the bare module as well as the WifiMCU and puts pin labels on both. For the esp8266 I think it's worth doing the same dual-image for the adafruit huzzah and esp-12 and then keep a second board definition for the esp-01.

  • @DrAzzy

    ...bare module ... and doc

    ...feels like the 'right' thing... because each value-(add)-board seller will just come up with their own naming of ports...

  • I only have opinion on the ESP8266 board. My vote is one board for the ESP8266. This would encompass ESP-01, ESP-12, NodeMCU devKit and boards from Adafruit, Sparkfun and all the others out there. While I fully realize that some of these boards expose lesser pins on the physical board, in each case, they are all ESP8266s. When writing a JavaScript app for any and all of these boards, the app will be the same. Obviously a programmer running the script on an ESP-01 will have less physical pins to solder against ... but the program will still run without error ... they just have to be cognizant that they can't easily get to the additional pins for electrical connection.

    The amount of flash memory does indeed differ by board. However ... if the Espruino code base will fit within the minimum flash (512K) that we have so far seen with an ESP8266 I am wondering if there isn't a run-time solution to determine (or configure) the flash size available to applications? If there were, this would then allow us to have one set of firmware for ALL ESP8266 boards irrespective of flash size.

    The objection I anticipate to that last notion is that it will prevent Over The Air (OTA) flashing of new Espruino firmware builds to an ESP8266. While loss of any function is lamentable, my vote on that issue is that OTA for Espruino is a low priority item. Once we hit stability of ESP8266 port, I do not anticipate refreshes of the Espuino firmware at a rate that would result in gross dissatisfaction with USB->UART loading.

  • Yep, I'd try and get away with one 'board' file wherever possible.

    this would then allow us to have one set of firmware for ALL ESP8266 boards irrespective of flash size

    Yes, that sounds like neat idea...

    As I understand it, OTA on the ESP8266 was more of a developer tool? If so, maybe it could be kept around with ESP8266_OTA in the Makefile (but the same board.py?)

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

What's a board?

Posted by Avatar for tve @tve