Difference between revisions of "Embedded Open Modular Architecture/EOMA68/MiniEngineeringBoard"

From eLinux.org
Jump to: navigation, search
(add image and explanation of the Micro-Board)
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Micro Board: Engineering, Engineering and Experimentation =
+
= Mini Board: Engineering, Prototyping and Experimentation =
  
This board's primary purpose is to provide a wide range of options for experimentation purposes, as well as an Open Platform for Free Software Development.  It therefore includes a low-cost on-board ARM Cortex M3 Embedded Controller.  A secondary purpose is for the Micro Board to make the development process of in-house designs a smoother and easier prospect.
+
This board's primary purpose is to provide a wide range of options for experimentation purposes, as well as an Open Platform for Free Software (Software "Libre") Development.  It therefore includes a low-cost on-board ARM Cortex M3 Embedded Controller.  A secondary purpose is for the Mini Board to make the development process of in-house designs a smoother and easier prospect: the Expansion Header can be used to develop Software-driven alternatives to Resistive Touch controllers, Keyboard Matrix, Mouse Controller, PCM LCD Brightness Driver, Battery Monitor etc. each of which can often cost $1 to $2 per IC required for each purpose.
  
The STM32F appears to be the best choice, for exactly the same reasons that Olimex chose the STM32F for their [http://www.olimex.com/dev/olimexino-stm32.html Olimexino].  In large volume, the STM32F103RBT6 is around $USD 1.00 to 1.50, making it highly cost effective.
+
The STM32F appears to be the best choice, for exactly the same reasons that Olimex chose the STM32F for their [http://www.olimex.com/dev/olimexino-stm32.html Olimexino].  In large volume and at S.E. Asia Pricing (not European / USA Pricing), the STM32F103RBT6 is around $USD 1.50 to 1.70, making it highly cost effective.  Alternative Embedded Controllers (for example those from Texas Instruments) are both slower as well as more expensive.  There is even a version of the STM32F which has a built-in 2.4ghz Transceiver (for IEEE 802.NN and other uses).
 +
 
 +
The Mini Board can therefore be used for several purposes, in combination with the PCMCIA CPU Card:
 +
* SoC Vendor's "Board Support Package" (BSP) Reference Designs
 +
* A Free Software Developer Board, similar to the [http://beagleboard.org Beagleboard] and [http://pandaboard.org Pandaboard]
 +
* As a stand-alone Board (without the PCMCIA CPU Card)
 +
* An Arduino-like replacement, with or without a PCMCIA CPU Card
 +
* A development platform for ODMs
 +
* A [http://reprap.org/wiki/Mendel RepRap 3D Printer] controller with or without an embedded network-capable CPU Card
 +
* An OEM off-the-shelf platform for deployment in Industrial Embedded use.
 +
 
 +
as well as many other alternative purposes, besides these listed here.  A list of projects which include the source code for a mouse driver can be found on the olimex page [http://olimex.com/dev/stm32-h103.html]
 +
 
 +
== Use of Open Hardware Designs, and Software Libre ==
 +
 
 +
Following on from the success of the Arduino, the design of STM32F-based boards is being done under Free Software Licenses.  The Schematics Source code for the [http://leaflabs.com/devices/maple/ Leaflabs Maple] is available [https://github.com/leaflabs/maplenative here].  Adding the extra connectors and ICs required to create the Mini Engineering Board is therefore an almost trivial task.
 +
 
 +
Additionally, there is a GPLv3 [http://www.libopencm3.org/wiki/Main_Page STM32 Library]. Uwe Hermann describes [http://www.hermann-uwe.de/blog/libopenstm32-a-free-software-firmware-library-for-stm32-arm-cortex-m3-microcontrollers a number of Software Libre Tools] which are available that assist in the programming of STM32F devices.  Also the [http://wiki.laptop.org/go/OpenEC OLPC OpenEC] Project has pre-existing firmware source code which can be ported and adapted, saving several man-months of development effort.
 +
 
 +
== A powerful combination of low-cost and high-performance "Embedded" CPUs ==
 +
 
 +
To illustrate the potential combined uses of the Mini Engineering Board, it is worthwhile examining these lists:
 +
* [http://beagleboard.org/project List of BeagleBoard Projects] and [http://pandaboard.org/content/projects List of Pandaboard Projects] for examples of how successful a powerful embedded CPU board can become, in its own right.
 +
* [http://www.arduino.cc/playground/Projects/ArduinoUsers List of Arduino Projects] for examples of how successful a low-cost 16mhz CPU can become, even on its own.
 +
* [http://shieldlist.org List of Arduino Shields] for examples of off-the-shelf hardware modules that could be leveraged, if the Micro Engineering Board's Expansion Header is made compatible (or even partially compatible).
 +
* [http://en.wikipedia.org/wiki/List_of_Arduino_compatibles List of Arduino Compatible Boards] for examples of alternative possibilities to the example Micro Engineering Board described here
 +
 
 +
So the Mini Engineering Board combines the best of low-cost Open Source Embedded Hardware with the best of high-performance Open Source Embedded Hardware. The Micro Engineering Board therefore brings together two powerful and flexible concepts into one, to create something that is even more flexible, due to conformance to a simple yet future-proof standard (EOMA/PCMCIA) that itself comprises nothing more than Lowest-Common-Denominator Industry Standards of the past 10 years and above.
 +
 
 +
For the average SoC vendor overwhelmed with clients whose expertise in Hardware Development is limited and whose Software Development Expertise is nil or negligable, the benefits of having a thriving Free Software Community as well as an off-the-shelf Standards-Compliant prototyping platform already available should be very very clear.
 +
 
 +
Where this exercise gets particularly interesting is if the PCMCIA CPU Card has an on-board FPGA (or, if the CPU itself has an on-board FPGA, such as the [http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Zynq-7000 Series]).  In this case, the level of programmability and flexibility is almost beyond belief. Also, the possibility exists, thanks to a [http://www.milkymist.org/fpgatools/ Free Software Project for programming FPGAs], for programming such a powerful combination entirely using a Free Software Toolchain.
  
 
= Components and Interfaces =
 
= Components and Interfaces =
Line 9: Line 40:
 
[[File:Stm32_mini_engineering_board.png|frame|right]]
 
[[File:Stm32_mini_engineering_board.png|frame|right]]
  
The Micro-Board's Interfaces comprise:
+
The Mini-Board's Interfaces comprise:
  
* OMA-compliant PCMCIA Connector
+
* EOMA-compliant [[Embedded_Open_Modular_Architecture/PCMCIA|PCMCIA Connector]]
 
* eSATA
 
* eSATA
 
* RJ45 for 10/100 Ethernet
 
* RJ45 for 10/100 Ethernet
 
* 2x USB2
 
* 2x USB2
 
* 5V Power Socket
 
* 5V Power Socket
* Expansion Header for access to the STM32F's features
+
* Expansion Header for access to the STM32F's features and JTAG interface
 
* Expansion Header for pass-through access to 24-pin RGB/TTL, I2C and GPIO from the PCMCIA CPU Card
 
* Expansion Header for pass-through access to 24-pin RGB/TTL, I2C and GPIO from the PCMCIA CPU Card
  
Line 22: Line 53:
  
 
* a 4-port USB Hub, connecting the PCMCIA CPU Card and the STM32F
 
* a 4-port USB Hub, connecting the PCMCIA CPU Card and the STM32F
* a 3.3v LDO (and other Power Regulators)
 
 
* an STM32F103RBT6
 
* an STM32F103RBT6
 +
* a 250mA 3.3v LDO (to supply the STM32F)
 +
* a small low-speed, low-cost I2C EEPROM.
 +
 +
Total cost of parts is estimated, for mass-volume supply, to be around $USD 5 to 6: the STM32F is approx $1 to $1.50; a GL850G is around $1 to $1.50; the EEPROM around $0.25; a 3.3v 250mA LDO around $0.30.  Perhaps the most expensive part is the PCMCIA Connector (MOQ 1k units, example pricing $1.90 from [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=61127-5522-ND Digikey, FCI P/N 61127].  However, if [http://item.taobao.com/item.htm?id=10867117947 Taobao pricing for PCMCIA headers] (another example [http://item.taobao.com/item.htm?id=9935080677 here]) is anything to go by, prices outside of S.E. Asia for components, such as from Digikey, Mouser and Farnell, are definitely not a good guideline to judge mass-volume mass-production costs.
 +
 +
= Smaller Example Board =
 +
 +
[[File:Mini_pcmcia_engineering_board.png|frame|right]]
 +
 +
This example board is much simpler and would be even lower-cost than the version above, comprising nothing more than connectors, effectively.  It is included here to show the sort of size that an embedded board would be, in comparison to a [http://pandaboard.org Pandaboard] (4.5" x 4.0" - 114.3 mm x 101.6 mm).  By contrast, the total size of the PCMCIA CPU card with associated minimalist engineering board could well be under 2.25" x 4.25" (56mm x 107mm) - just over half the size of a PandaBoard.
 +
 +
Whilst there are less features shown on the minimalist Engineering Board, it has to be remembered that there can be Expansion Headers on the PCMCIA CPU Card itself (obviously hidden and inaccessible to end-users if the PCMCIA cover is in place).  Thus, whilst at first glance it may appear that this minimalist Engineering Board is unsuitable for general-purpose Engineering, it actually depends on the PCMCIA CPU Card on a card-by-card basis.  This minimalist option is presented therefore for cases where the interfaces presented through the re-use of the 68-pin PCMCIA connector are sufficient: the Mini Engineering Board is presented as an example for when standardisation is required for Embedded and Industrial Purposes, yet the flexibility of future upgrades of the main CPU card are still also desired.
 +
 +
= Contact and Discussion =
 +
 +
For questions, comments and general discussion, please use [http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook arm-netbook mailing list]
 +
 +
[[Category:Embedded Open Modular Architecture]]
 +
[[Category:ARM processors]]
 +
[[Category:Development Boards]]

Latest revision as of 16:59, 7 September 2016

Mini Board: Engineering, Prototyping and Experimentation

This board's primary purpose is to provide a wide range of options for experimentation purposes, as well as an Open Platform for Free Software (Software "Libre") Development. It therefore includes a low-cost on-board ARM Cortex M3 Embedded Controller. A secondary purpose is for the Mini Board to make the development process of in-house designs a smoother and easier prospect: the Expansion Header can be used to develop Software-driven alternatives to Resistive Touch controllers, Keyboard Matrix, Mouse Controller, PCM LCD Brightness Driver, Battery Monitor etc. each of which can often cost $1 to $2 per IC required for each purpose.

The STM32F appears to be the best choice, for exactly the same reasons that Olimex chose the STM32F for their Olimexino. In large volume and at S.E. Asia Pricing (not European / USA Pricing), the STM32F103RBT6 is around $USD 1.50 to 1.70, making it highly cost effective. Alternative Embedded Controllers (for example those from Texas Instruments) are both slower as well as more expensive. There is even a version of the STM32F which has a built-in 2.4ghz Transceiver (for IEEE 802.NN and other uses).

The Mini Board can therefore be used for several purposes, in combination with the PCMCIA CPU Card:

  • SoC Vendor's "Board Support Package" (BSP) Reference Designs
  • A Free Software Developer Board, similar to the Beagleboard and Pandaboard
  • As a stand-alone Board (without the PCMCIA CPU Card)
  • An Arduino-like replacement, with or without a PCMCIA CPU Card
  • A development platform for ODMs
  • A RepRap 3D Printer controller with or without an embedded network-capable CPU Card
  • An OEM off-the-shelf platform for deployment in Industrial Embedded use.

as well as many other alternative purposes, besides these listed here. A list of projects which include the source code for a mouse driver can be found on the olimex page [1]

Use of Open Hardware Designs, and Software Libre

Following on from the success of the Arduino, the design of STM32F-based boards is being done under Free Software Licenses. The Schematics Source code for the Leaflabs Maple is available here. Adding the extra connectors and ICs required to create the Mini Engineering Board is therefore an almost trivial task.

Additionally, there is a GPLv3 STM32 Library. Uwe Hermann describes a number of Software Libre Tools which are available that assist in the programming of STM32F devices. Also the OLPC OpenEC Project has pre-existing firmware source code which can be ported and adapted, saving several man-months of development effort.

A powerful combination of low-cost and high-performance "Embedded" CPUs

To illustrate the potential combined uses of the Mini Engineering Board, it is worthwhile examining these lists:

So the Mini Engineering Board combines the best of low-cost Open Source Embedded Hardware with the best of high-performance Open Source Embedded Hardware. The Micro Engineering Board therefore brings together two powerful and flexible concepts into one, to create something that is even more flexible, due to conformance to a simple yet future-proof standard (EOMA/PCMCIA) that itself comprises nothing more than Lowest-Common-Denominator Industry Standards of the past 10 years and above.

For the average SoC vendor overwhelmed with clients whose expertise in Hardware Development is limited and whose Software Development Expertise is nil or negligable, the benefits of having a thriving Free Software Community as well as an off-the-shelf Standards-Compliant prototyping platform already available should be very very clear.

Where this exercise gets particularly interesting is if the PCMCIA CPU Card has an on-board FPGA (or, if the CPU itself has an on-board FPGA, such as the Zynq-7000 Series). In this case, the level of programmability and flexibility is almost beyond belief. Also, the possibility exists, thanks to a Free Software Project for programming FPGAs, for programming such a powerful combination entirely using a Free Software Toolchain.

Components and Interfaces

Stm32 mini engineering board.png

The Mini-Board's Interfaces comprise:

  • EOMA-compliant PCMCIA Connector
  • eSATA
  • RJ45 for 10/100 Ethernet
  • 2x USB2
  • 5V Power Socket
  • Expansion Header for access to the STM32F's features and JTAG interface
  • Expansion Header for pass-through access to 24-pin RGB/TTL, I2C and GPIO from the PCMCIA CPU Card

The ICs required include:

  • a 4-port USB Hub, connecting the PCMCIA CPU Card and the STM32F
  • an STM32F103RBT6
  • a 250mA 3.3v LDO (to supply the STM32F)
  • a small low-speed, low-cost I2C EEPROM.

Total cost of parts is estimated, for mass-volume supply, to be around $USD 5 to 6: the STM32F is approx $1 to $1.50; a GL850G is around $1 to $1.50; the EEPROM around $0.25; a 3.3v 250mA LDO around $0.30. Perhaps the most expensive part is the PCMCIA Connector (MOQ 1k units, example pricing $1.90 from Digikey, FCI P/N 61127. However, if Taobao pricing for PCMCIA headers (another example here) is anything to go by, prices outside of S.E. Asia for components, such as from Digikey, Mouser and Farnell, are definitely not a good guideline to judge mass-volume mass-production costs.

Smaller Example Board

Mini pcmcia engineering board.png

This example board is much simpler and would be even lower-cost than the version above, comprising nothing more than connectors, effectively. It is included here to show the sort of size that an embedded board would be, in comparison to a Pandaboard (4.5" x 4.0" - 114.3 mm x 101.6 mm). By contrast, the total size of the PCMCIA CPU card with associated minimalist engineering board could well be under 2.25" x 4.25" (56mm x 107mm) - just over half the size of a PandaBoard.

Whilst there are less features shown on the minimalist Engineering Board, it has to be remembered that there can be Expansion Headers on the PCMCIA CPU Card itself (obviously hidden and inaccessible to end-users if the PCMCIA cover is in place). Thus, whilst at first glance it may appear that this minimalist Engineering Board is unsuitable for general-purpose Engineering, it actually depends on the PCMCIA CPU Card on a card-by-card basis. This minimalist option is presented therefore for cases where the interfaces presented through the re-use of the 68-pin PCMCIA connector are sufficient: the Mini Engineering Board is presented as an example for when standardisation is required for Embedded and Industrial Purposes, yet the flexibility of future upgrades of the main CPU card are still also desired.

Contact and Discussion

For questions, comments and general discussion, please use arm-netbook mailing list