Sony is making its Spresense felt…
Think of ‘Sony’ and most people would envisage consumer end-products like PS4s, Bravia TVs or thumping-bass stereos. Some folks will think of music or films but not many will go to ‘semiconductors’ as their first thought, despite the semiconductor division turning over 731 billion Japanese yen (US$6.9 billion) in 2017 selling things like image sensors for the cameras used in smartphones, including Apple’s iPhones.
That perception could change over the coming months, especially among rapid prototyping devotees, as more people become aware of the powerful Sony CXD5602 microcontroller and the Sony Spresense development kit that supports expeditious software development on this device.
So, What Is Spresense?
Spresense is essentially an ecosystem that includes 3 boards (5 if you include add-ons, which we will get to) and support software. The components of this ecosystem are:
The main board measures 50 x 20.6 mm, so it’s a little bigger than an Arduino Nano (at 45 x 18 mm). Its beating heart is the hex-core, 156MHz ARM® Cortex®-M4F Sony CXD5602 microcontroller with 1.5MB of RAM and 8MB of flash. The M4F is a Harvard architecture device; essentially a 32-bit floating point digital signal processor (DSP), so with six cores, you’re looking at a lot of real-time audio/video/whatever signal processing capability with this microcontroller.
Which is kind of handy, as the device also has a 192 kHz/24 bit High-Resolution Audio codec (plus another 192 kHz A/D converter) and a direct 8-bit parallel input from the board’s camera connector, while the supporting CXD5247 chip allows up to 8 channels of digital (4 channels of analogue) microphone input and has a built-in stereo D class BTL amplifier supplying up to 400mW (into 8Ω impedance) for audio output.
As if that weren’t enough, there is a global navigation satellite system (GNSS) receiver supporting the United States' Global Positioning System (GPS) and Russia's GLONASS and the potential to support China's BeiDou Navigation Satellite System (BDS) and the European Union's Galileo. If you can’t do waypoint-based drone flying with this kit controlling the drone, you should probably try another hobby.
We also have all the usual I/O suspects: GPIO, SPI, I2C, UART, I2S.
Now, I know what you’re thinking: with all this great stuff packed in there, we’re probably going to be using a lot of power, right? To mitigate this, Sony uses an FD-SOI (Fully Depleted Silicon On Insulator) production process to ensure the microcontroller’s power consumption is low enough for extended-use battery powered applications.
The Extension Board is what would once have been known as a ‘breakout board’ and is where we can easily connect to many of our features. It measures 68.6 × 53.3 mm, the same size as the Arduino Uno, so it probably won’t surprise you to find out that it has the familiar Arduino format I/O pins so it is compatible with a range of existing shields. Be careful though, as the Extension Board supports 3.3V or 5V digital I/O. The extension board is also equipped with a mic interface, headphone jack and microSD card slot.
The Camera Module looks similar to the Raspberry Pi camera and has an effective pixel value of 2608(H)x 1960 (V) which is approximately 5.11 Megapixels. The ribbon cable plugs directly into the camera connector on the main board which carries the CMOS 8 bit parallel camera interface and I2C control interface.
The functionality of the Spresence ecosystem can be extended further using what Sony call Add-on boards. At the moment there are two available (made by Rohm Semi):
- BLE Add-on: which provides a (TELEC, FCC, CE, IC Radio Law certified) Bluetooth Low Energy module with built-in antenna and supporting software.
- Sensor Add-on: which delivers 3 types of sensors essential for accurate motion sensing (acceleration, barometric pressure, geomagnetism) and can be further extended to sense things like brightness, proximity, colour, magnetism, temperature, UV, and heart rate (pulse waves).
In keeping with our Arduino theme, there is an Arduino library that allows developers to rapidly try out their ideas for the Spresense using the familiar Arduino IDE.
For those looking to squeeze more out of the advanced features of the board (e.g. multicore processing, memory optimisation and power saving) there is a full SDK based on the Nuttx real-time operating system (RTOS).
Why We Like It
Many developers are familiar with the Arduino’s physical format and the IDE, so getting started is quick and easy.
The Sony Spresense provides some nice high-end functionality in audio and global positioning, with wide-open possibilities to add other functionality. It also has the processing power and RTOS support to do some interesting things with the data you generate.
In a world where everything seems to have an IoT angle, the six M4F cores available in the microcontroller give developers a lot of scope to process data at the edge, in real time - allowing nodes to independently react to more events in their surroundings regardless of any bandwidth constraints or adverse internet conditions. At the very least, you have the power to compress your data stream on the fly, which could rapidly become a system performance godsend as nodes are deployed at scale.
All in all, a powerful and pretty cool-looking dev kit.