The uThing is one of Bright Things core modules. It consists of a powerful MIPS processor running Ionic and a Real-time Atmel AVR microcontroller for controlling analogue and digital input/output.
The module is designed to be usable in a breadboard for rapid prototyping and at the same time be suitable for production systems.
The internal architecture of the uThing is as follows:
The architecture is build around two micro processors: a MIPS 24k and an AVR Atmega. The MIPS processor is intended to control networking, while the Atmega is intended to control analog and digital I/O in real-time. The two architectures can communicate with each other using either I2C, SPI or Serial communication.
|HEADER A||HEADER B|
|2||3.3V||Regulated 3.3V Supply/Output||Digital I/O 7||D7||2|
|3||5V||Regulated 5V Output||A/D Voltage reference||AREF||3|
|4||12V||Regulated 12V OUT||Analog out 5||A5||4|
|5||CTX||Serial console TX||Analog out 4||A4||5|
|6||CRX||Serial console RX||Analog out 3||A3||6|
|7||P0TX-||Ethernet 0 TX-||Analog out 2||A2||7|
|8||P0TX+||Ethernet 0 TX+||Analog out 1||A1||8|
|9||2V||Regulated 2V||Analog out 0||A0||9|
|10||P0RX-||Ethernet 0 RX-||Digital I/O 5||D5||10|
|11||P0RX+||Ethernet 0 RX+||I/O 10||IO10||11|
|13||P4TX-||Ethernet 4 TX-||I/O 8||IO8||13|
|14||P4TX+||Ethernet 4 TX+||D7||D7||14|
|16||P4RX-||Ethernet 4 RX-||D5||D5||16|
|17||P4RX+||Ethernet 4 RX+||D4||D4||17|
Should be connected to ground.
The MIPS part of the uTHing is build around an Atheros AR9331 SOC.
To be added
The MIPS and the Atmega processors are connected to a shared I²C bus. This bus can be used for communication between the processors or it can be used for communicating with external devices (or adapter boards).
To be added
The uThing includes a number of different serial busses. Both the MIPS and the Atmega processor includes an internal UART which are available on the external pin connectors of the module. If serial communication between the processors is required, these pins can simply be tied together. Alternatively a virtual USB UART connection is included. The USB port of the AVR processor is tied to the USB hub of the MIPS.
The Atmega USB port is connected to a USB electronics switch, so that if nothing is connected to the USB Device connector, then the Atmega USB port is connected to the MIPS USB Host Hub and will be seen as a emulated UART in Linux. If one connects another USB Host (such as a computer) to the USB Device connector, then the electronci switch will make the USB of Atmega to connect to it instead. This way, you can use the Arduino IDE directly to the Atmega of the uThing. It is Arduino Leonardo compatible, and the USB either shows up directly as a serial port, or you might need to install a driver for it.