Towards a More Smart Thing for Automation and Internetwork
|Besides its complexity, dimension of Avior32 are set to 8.4cm x 3.4cm.|
(Examples of dimensions from two real Microduino paired, Avior32 A rendering, A Microduino with a coin and an Arduino Uno)
The Brain of Things (BoT) vs the Internet of Things (IoT)
add an important feature to those interconnected and automated Things,
the power of functional languages or languages used for artificial intelligence (like Haskell, or LISP), while supporting the simplicity to use languages like Python, Lua, and .NET, now widely accepted and well supported on single core 32 bit Microcontrollers. This real-time and multiprocess software system can't be achieved with this languages without a proper OS and a special hardware like Avior32 with 16 logical core MCU.
Avior32 concept is born to concentrate in a single miniaturized module with the stacking possibility the needed connections for batteries, the old but not replaceable (in terms of automation) RS485, as well as extension modules (Wi-Fi, ETH, 6LoWPaN, 868MHz, Zigbee etc), with an MCU extensible with Software peripherals. Then what born do not remain fixed.
The use of Xmos xCore-200, top Class MCU, comed after a long list of evalued candidates among ST, Atmel, Microchip, TI and Parallax. Finally we selected Xmos and it's the time to start.
"Because each peripheral driver is encapsulated in a single CPU, performance doesn’t suffer – or indeed, change at all – when you add more code to the other CPUs. That’s a big philosophical change from traditional processors. Even multicore chips can’t entirely separate the software effects of one CPU on another CPU. Threads can compete for shared memory, invalidate each other’s caches, delay interrupt response, and more."
But Something was still missing. The board was not optimized for Low power functions, like stay up and running even for a year from a single cell.
So that Like in a Brain also in the hardware we have sepeared two problems with not integrable solution and done a simmetric hardware with one side specialized in Low power (that can handle most of communication for example) with state of the art technology and one side with huge power and external SDRAM to run specialized or Huge application still with the best around ready to handle complex job like Computer Vision.
For GPIO and Peripherals extension, we accomodated two Microduino form factor headers, in order to stack extension boards on it one for each side of the board(each side of the brain), and four Type-C connectors to be used in combination with external custom cables/male/female/headers. This to keep maximum of flexibility without wasting any resource. Another Type-C is used to Power and control both the MCU both by UART & USB. Type-C ---> PC Board with hub for 4 USB ---> USB-A, USB-B, UART-A, UARTB out with only one cable. This is the Only Type-C on the board with reversible-USB ability and is placed on the center.
The Type-C is a very well done and cheap connector, it solved also the problem to Link many board together (in Xmos Link or Simply by I2C/SPI), to deliver power to the board, as well as to drain power from the board connected to another power cable/source. One of the Type-C is specialized to carry Battery Vbat + - from an external cell.
Regarding the base networking, still thinking to the embedded world, we selected RS485 (6lobac) for wired networking, and SPI (SDCard) to connect various SDCard shaped modules with various (the market is plenty of not standard solutions between sub 1GHz to 2.4Ghz) cards / adapters. So at the base we have just the RS485 with snap in cards for wireless.
The last problem with Avior board was, "hey the node becomed too much expensive to use it everywhere!"
so that Trapezium1 was set as complementary or why not stand alone very low cost solution.
(the way it is born) Different from Avior32 with a lot more planning.
in future a port of NuttX (as soon as the port is completed) in combination with various interpreters even powerful one like Haskell, .Net Micro, Python (Micropython with Computer Vision extensions - OpenMV). The NuttX + interepreters work will be then integrated in Alcor6L OS (our NuttX distribuition) that will be NuttX + Several VM/Interpreters running at once.
The bare minimum set of software in order to proceed with other connected & related projects like Mira128, is NuttX + Lisp running on the STM32L4 and Bare metal Micropython (OpenMV) running on Xmos XU216.
Some Random Documentation:
Video introduction to Xcore-200
Video of ANC Demo
^ Block Diagram of an Xcore-200 able to run up to 32 Threads simultaneously.^
http://www.xcore.com/ - Community around Xmos Silicon products.
xCore Github projects - https://github.com/xcore
xCore ModBus TCP - https://github.com/xcore/sc_modbus_tcp
RS485 Terminal Console Demo
sc_uart XCore Peripheral
xCore Lua port
Operating System Port (some dead):
Free RTOS Port
MoX OS Project
Mid 2015 Articles - News