The New Kid on the Block is not a kid longer,
The Arduino PRO Family
As I wrote on the equipment page, I will keep publishing about the equipment being used or tested for BCB, I don’t write too much in this section because there are not that many new equipment that catch my attention.
Well, Arduino made a huge impact in the world by allowing a lot of people to get into electronics, I would say, I am one of them. However, until this new line of products recently launched, the Arduinos weren’t quite suitable for deploying devices on the field, that was my opinion until I discovered the Arduino PRO Family. They went PRO and they went PRO in style. As a brief summary I would say that his is a well rounded board, robust with an almost brilliant set of features. What it got me interested is the fact that Arduino is really understanding the needs of a growing market that needs to have a solid building block to deploy devices on the field.
TECHNOLOGY FOR CONSERVATION IS GETTING SMALLER
WELL DONE ARDUINO!
I’ve posting some things regarding the Sony Spresense, If you are reading this you are probably a tech person, and I bet you want me to compare the Sony Spresense and the Arduinos Portenta and see a lot of blood or melted silicon on your screen!!! Well, the truth is I won’t do that and there is a solid reason for me not to do that. The Sony Spresense is an extremely powerful and feature rich development board, they are not meant to be deployed as final products. The Sony’s business model is to allow you to discover the amazing power of their technology and then build your own stuff with the chips as the foundation. In this part of the world, that could be complex so we tend to push the limits due to budget and technical restrictions. The Arduinos Portentas on the other side can be seen as an intermediate step between a prototype / PoC and a final product. They are meant to be a development board that you can effectively deploy in the first stages of your projects and why not on your final devices. There is no question that if your project becomes a commercial product you will end up building your own PCBs from scratch, however failing in the initial steps could mean you won't ever reach success, even Arduino leaving the UNO form factor behind counts.
In terms of performance and complexities I will say the following as a guideline. The Sony Spresense has a wider view, more cores, more APIs and even some extreme well rounded sensing engines including the complementary Sony Neural Network Console, however, they are not focused on anything in particular, it is a platform to explore everything. The Arduinos Portenta in Combination with the Vision Shield LoRa DO have a target in mind, and I am happy to say that it is the same target I have. This simple fact will be a good example of what I mean with these words. The Sony Spresense comes with a low power consumption 5MP camera (Nice colors) and the Arduino Vision Shield comes with a low power consumption QVGA Grayscale camera. It seems Arduino is weaker in that area, however, the truth is: The Vision Shield is meant to be used for Machine Vision applications on the edge while the Sony Spresense is meant to be used for …. whatever you want. Taking into account Machine Vision on edge devices it is impossible to use 5MP quality pictures, you need large NN in order to do that and none of the options available on the market allows you to do that (and they won't for a few year yet). I use less resolution even when solving things by code. In terms of performance, if you have an application where one good core is enough then the Portenta is faster by a lot, however, if you have an application that could be benefited by having multiple cores running almost independent things then the Spresense could be a better choice. Taking into account my needs I will stick to both for now, I have some plans regarding autonomous drones as well, they will be key in conservation efforts and the NuttX RTOS is something I rely on and I still don't have enough experience with the mbed RTOS. The bottom line: no blood, just take a look at what your goal is and I hope these lines will allow to you select the best choice for you.
First impressions of the Portenta H7 + Vision Shield LoRa
The Arduinos portentas are meant to be deployed, that's a fact, however, the moment I saw the packaging my first thought was … wow, they are a beauty it will be hard to deploy them!! nice boxes and neat boards.
Before getting into details I will enumerate a set of features that truly reflects what the Portenta is meant for, as I write this, you have to take into account that Arduino made another great choice and that is to allow you to customize your board, what I will say here is related to a standard configuration, I didn’t ask for anything in particular such as a particular encryption chip or more memory on board. The Portenta has a dual core MCU, one of them is a Cortex M7 running at 480Mhz and the other one is a Cortex M4 plus a graphic accelerator, the memory on board is reasonable considering the current state of tinyML, you will find 8MB of SDRAM, 16MB Flash + 2MB + 1MB of SRAM, this last value is what your application will be able to use at runtime. It comes in an Arduino Nano form factor and it is compatible with those shields, like the MKR ones. The board comes with two of the most popular communication forms, WiFi and BLE, while I don’t care that much about WiFi given my current needs, the BLE stack is valuable in terms of device maintenance on the field. On of the things I welcome the most is the lack of pinheads and the flat clip-on connector to connect other shields in a reliable fashion, the Vision Shield LoRa is connected using that connector and they look strong. It is an Arduino so you can expect a lot of digital, analog and PWM pins. This board expose a reasonable amount of pins, however, the 80 pin high density connector pins will be exposed in their carrier board only (a huge one, good for a desktop!). It also has a battery connector and charger ready to be used without altering the board, they are truly ready to be deployed.
What the Vision Shield LoRa adds is where things start to make more sense. The shield contains two MEMS mics, an SD Card a HiMax low power consumption camera (HM-01B0) Grayscale, QVGA resolution and a LoRaWAN chipset. The board also includes a JTAG connector, I didn’t use it yet but I assume it is for massive flashing and debugging purposes. The dimension of the shield are equal to the Portenta's. On both boards you will find connectors for the antennas (both WiFi and LoRa). All these things make a well rounded package.
In order to make this device the perfect one for me I would add a GPS, however, this board is meant to be connected to a LoRaWAN network and you can get the Geolocation from the gateway. In my case I tend to avoid gateways so the MKR GPS Shield could be the next thing for me.
In terms of software, you almost know what to expect. You will have an Arduino core and below that you will find the Mbed OS API. The Vision Shield will add a microPython environment that you can use with the openMV IDE, the installation was OK however the messages were a little bit confusing when connecting the board to the openMV, confusing but with a nice taste, the firmware flashing procedure said it would take up to 5 minutes, it tooks seconds.
Making it work.
First Impressions count, however, you have to see things working to get an idea of the potential. The setup procedure was straightforward, I found some issues and those issues were the expected ones and their were covered in the guide, for instance, I am using Ubuntu and for contingency reasons I also use modems. The Ubuntu’s modemmanager will prevent you to see the board on the arduino IDE.
Using this particular configuration (The Portenta + Vision Shield) will expose you to three environments (or more considering external frameworks such as tensorFlow or edgeImpulse), one is the regular Arduino plus the native Mbed OS and the micro-python environment used by openMV.
In question of minutes you will have the environment ready to work, even flashing the required firmware (if you use the Arduino IDE you will have to flash the Arduino bootloader, if you want to use the openMV IDE you will have to flash the proper firmware from the IDE itself as well)
I started to test the board in the field of Machine Vision, audio recognition will follow; by using the openMV IDE you will realize how fast this thing is, amazing, I was playing with blob detections and other things and it was great. I also tested some things using edgeImpuse. At the time of writing the Portenta is not fully supported by EI.
In order to use edgeImpulse you will have to do a few more configuration steps, all of them were trouble free (edgeImpulse tools are not correctly included in the PATH variable though, a minor manual task required). You will have to install node.js, the Arduino CLI in order to flash the edgeImpuse firmware and the edgeImpulse CLI as well, this last step will be needed run a daemon that will allow you to connect your Portenta to Edge Impulse. So far EI will allow you to use the Camera only for sample gathering and live classification and you won't be able to flash the model back to the Portenta from the studio yet. The things that are supported work really fine. The funny thing about having that many firmwares is that each one will let you know they are running by blinking a led in a different color (Green fading= Arduino Bootloader, Blue blinking= openMV Firmware, Violet= edgeImpulse firmware. I will post more about this subjects in the near future under the blog section. For an introduction on ML on MCU see this page here.
A well rounded pack of features with a specific goal in mind, a shared goal in mind. The documentation is also good, the Portenta site is just getting started and I expect more publications according to the respectable set of features on the board. The community is also there, quite big and I hope many will engage with the Portenta.
I also believe that edge computing and tinyML will grow enormously in the following months / years so I see this as a very good idea, Believe me or not but this combination of features is what I was asking for to many tech companies during a couple of years.
Besides the roles these boards could have in the industrial world, let me say that the future of technology for conservation, which is my focus, by using appropriated equipment at reasonable prices is looking better and better as time passes by. Thank you Arduino for being an enabler to provide solutions to critical issues our world is facing.
If you want to see the Arduino Portenta in Action running tinyML Models see these posts:
Stay tuned, remember to subscribe, the WildEdge site IS and WILL be free of charge. Welcome Arduino Pro!