Starting Developing on mbed os

Hi,

I’m going to start developing on mbed os and I’m looking for hardware. As I’m trying at a first stage to learn the OS, I was looking for a development board that could also be used as prototype.

I would like to ask the following things:

  1. In Hardware Overview | Mbed The modules and the components are the actual hardware that needs to be used. The Boards is just for prototyping?
  2. In Development boards | Mbed I was looking for boards for Build and run/ Debug and I was thinking of buying the Agora Product Development Kit | Mbed. It seems a good starting point. It has different sensors built in and I could experiment with the IDE and develop different things. However I would like to ask you if I could add further sensor in the future. For instance I would like to get the image of a camera and do different stuff, perhaps controlling a robot or another device. Is it possible to do extend its functionality?

Thanks in advance
Symeon

Hi @symeonmattes,

  1. Yes, the boards are primarily for prototyping. They provide common sensors, connectivity etc in addition to the MCU. If you move a design to production then you would start to identify the elements on the board that you need to keep in order to build a smaller (and usually cheaper) unit.
  2. Yes, you should be able to extend boards beyond their built-in features. The kit you are looking at actually comes in two parts - the Agora board itself (with the sensors) and the Fidor carrier board which handles debug and power. The carrier board should allow very straightforward additions to the overall kit.

I think @gldelta may be able to provide some further info on the Agora kit.

Hi @willlordarm

Thanks for your reply. Could you give me examples how I could extend it with different components? For instance I would like to add the following:

  1. Ethernet, e.g. (Components | Mbed)
  2. WiFi (Components | Mbed)
  3. TouchScreen
  4. Joystic
  5. Camera, e.g. (Components | Mbed)

I suppose they are quite a lot, so I’m not sure how the Agora Board could be extended, perhaps through Bluetooth, LoRa…not sure, or a component that could communicate with the other devices…

Thanks
Symeon

@symeonmattes I no longer work for Embedded Planet and they do not seem to have heeded my advice in creating a TectonicPlate that breaks out an arduino header.

@trowbridgec @vance86 @aglass0fmilk

1 Like

Hi @grit,

Not sure how arduino header works, but from a fast look (Headers | Ladyada's Learn Arduino - Lesson #0 | Adafruit Learning System), they are an interface for connection digital/analog components (e.g. sensors, other devices) to your board.

From Agora Diagram (https://os.mbed.com/media/uploads/vance86/cell_diagram.jpg) and the Board image (https://os.mbed.com/media/uploads/maclobdell/flidor_angle1_shadow.png) instead of digital Input/output you have a Tectonic Edge Connector, as they call it, that you can connect other devices by using different protocols, e.g. ADC, I2C, GPIO. Not sure for what I’m saying, but If I have another externa interface that can accept other sensors (e.g. Camera, Joystic etc) and communicate with the Agora board through I2C, GPIO etc then I could control them or get data from them?

So I’m not sure if I could have these kind of interfaces, like Arduino headers, that could communicate with what I’m saying.

@symeonmattes could you tell us what you intend to do with your board?

You say you are “going to start developing on mbed os”, are you also going to learn about programming at the same time or do you already have experience and background in embedded systems? Do you have experience with electronics, PCB design, etc.?

Depending on that information, it will be easier for us to recommend specific hardware.

Regarding what you want to add, those are all complex stuff that won’t work as a simple plug and play. Touch screen and camera, depending on resolution, will need a lot of pins and MCU power. Not all MCU can drive a TFT LCD touch screen.

I would start by breaking out what I want to do as simple functional units: sensors, touch screen, camera, connectivity and choose a board with a MCU that will be able to handle the most intensive tasks. You can develop around that.

Hi @ladislas,

The only experience with PCB design and electronics that I have is due to my studies as Electronic Engineering, some PCB design with Orcad Software and some experimentation that I have done with letrasets and district electronics such as npn/pnp transistors, capasitors etc. So in general I can’t say I have much experience with embedded systems but with some block diagrams/reading I think I could handle it.

My main working experience is on software architecture and a little on machine learning.

I don’t have currently a very specific plan, but what I would like is to have is a general purpose MCU, where I could connect some sensors (the one on Agora seems to be ok for a starting point) and then for sure a camera for image processing and human/object tracking. Probably I would like to connect also some microphones array for audio processing. The other interfaces, e.g. Ethernet/Wifi, are just for having a common home interface and perhaps control through mobile devices or another external device.

In general I’m not expecting to have a general purpose MCU and having the fastest application, but I would like to start familiarising myself with mBedOS, getting data from sensors, processing different data. In general, not sure if it’s possible, I would like to use some general purposes languages for sure C/C++ that I’m familiar with, perhaps python/matlab with more advanced maths (transpiling them to C) and so on.

Alright, then I think the Agora, as you said, is a good starting point. When you start feeling confortable with mbed and have tested and used all the sensors of the boad, then you’ll be able to move to something more powerful to include LCD and camera.

The beauty of mbed is that you write code once and it runs on every platform (with a few exceptions or modifications).

For the camera and the LCD should I buy another MCU or could I do my job with the Agora board? Could I just use the protocols I mentioned I2C, GPIO etc that exist on the agora to communicate with the camera or other unit?

As I said I just need experimenting for now and when the times come buy something more powerful.

I don’t think you can but it will depend on the hardware you buy, some LCD have an integrated MCU such as Nextion so you can use I2C or SPI to communicate and drive the LCD.

But usually those things don’t work just with I2C or GPIO as you also need SDRAM, this kind of things.

1 Like

Hi @symeonmattes, I work at Embedded Planet and would be happy to answer any questions you might have about the Agora board.

The Agora board itself has only the ‘edge’ connector that we named ‘Tectonic Edge’ (it’s really just a re-purposed mini-PCIe connector with a different pinout). The Agora board can be used standalone or be plugged into a carrier board via the Tectonic Edge connector which provides mechanical stability and enables routing of the GPIO, power, and other interface signals.

In the ‘Agora Product Development Kit’ (what you see on the Mbed page), the Agora board is plugged into our development board (named Flidor) which enables programming/debugging and breaks out all the various interfaces and GPIO (see the Flidor Mbed page for more info). The best bet to add any additional sensors in addition to the collection already populated on the Agora board itself would be to get ones that are SPI or I2C enabled as those interfaces are readily exposed to headers on the Flidor board. As @grit pointed out, we don’t currently have an Arduino interface board for Agora.

We’ve also got a fork of the Mbed mbed-os-example-pelion example application which demonstrates how to communicate with and read data from all the onboard sensors here: GitHub - EmbeddedPlanet/mbed-os-example-pelion: Mbed OS example of Pelion device management client

Another option would be to take a look at our new ‘Atlas’ board which is based on the same MCU (a Nordic nRF52840) as Agora, is available as an Mbed target, and features a DF12-32 connector for integration with sensor boards from Tiny Circuits.

NOTE: We also have a docs page we’re continuously expanding here: https://docs.embeddedplanet.com/.