Posts Tagged ‘development board’

ODROID-XU4 Development Board Price Drops to $59, Now Supports Linux 4.9 LTS

February 23rd, 2017 36 comments

ODROID-XU4 development board powered by Samsung Exynos 5422 octa-core processor launched in summer 2015, but even after two years, it’s one of the fastest, if not the fastest, low cost development board on the market. It is also equipped with Gigabit Ethernet and USB 3.0 ports, but so far at $74, it was quite much expensive than slower peers. Hardkernel has now decided to lower the price to $59 plus shipping, which is really a good deal in terms of price/performance, and you’ll also benefit from close to two years development, as the board now supports Linux 4.9 with updates promised until early 2019.

Here’s a reminder of the technical specifications:

  • SoC – Samsung Exynos 5422 quad core ARM Cortex-A15 @ 2.0GHz + quad core ARM Cortex-A7 @ 1.4GHz with Mali-T628 MP6 GPU supporting OpenGL ES 3.0 / 2.0 / 1.1 and OpenCL 1.1 Full profile
  • System Memory – 2GB LPDDR3 RAM PoP (750 MHz, 12GB/s memory bandwidth, 2x32bit bus)
  • Storage – Micro SD slot (up to 64GB) + eMMC 5.0 module socket (16, 32, and 64GB modules available)
  • Video Output – HDMI 1.4a port up to 1080p
  • Audio Output – HDMI, optional S/PDIF out via USB module
  • Network Connectivity – Gigabit Ethernet, and optional USB Wi-Fi dongle with antenna
  • USB – 2x USB 3.0 host port, 1x USB 2.0 ports
  • Expansion – 30-pin header for access to GPIO, IRQ, SPI and ADC signals + 12-pin headers for GPIOs, I2S, and I2C
  • Debugging – Serial console header
  • Misc – Power and RGB LEDs, cooling fan header, power button, RTC
  • Power Supply – 5V/4A power adapter (recommended) using 5.5/2.1mm barrel.
  • Dimensions – 82 x 58 x 22 mm
  • Weight – 60 grams with fan; 38 grams without cooler

One reason why the price is cheaper, is that the 5V/4A power adapter is not included by default, and if you don’t have your own, it will add $5.50.You’ll also find a list of accessories such as eMMC modules, enclosure, Cloudshell NAS kit, expansion boards, displays, etc… on the product page linked in the introduction.

The board can run various official or community-developed operating systems such as Ubuntu 16.04 + OpenGL ES + OpenCL, Android 4.4 to Android 7.0, Debian Jessie, Kali Linux 2.0, Arch Linux ARM, etc… and it is also supported by the Yocto Project. You’ll find the images and documentation on the Wiki, the source code is available on Github, and support in the active odroid forums and/or #odroid IRC channel.

STMicro Introduces STM32 LoRaWAN Discovery Board & I-NUCLEO-LWAN2 STM32 LoRa Expansion Board

February 21st, 2017 4 comments

STMicroelectronics and Mouser have launched two new products with LoRa connectivity: STM32 LoRaWAN Discovery Board with an STM32L072 ARM Cortex M0+ MCU and Semtech SX1276 transceiver, and I-NUCLEO-LRWAN1 STM32 LoRa expansion board for STM32 Nucleo boards with an STM32L052 MCU and Semtech SX1272 radio transceiver.

STM32 LoRaWAN Discovery Board

Click to Enlarge

Goblin 2 Arduino Compatible IoT Board Includes SIM5320A 3G & GPS Module

February 21st, 2017 No comments

Veracruz, Mexico based Verse Technology has recently launched Goblin 2, an Arduino compatible IoT development, based on Atmel/Microchip ATmega328P MCU, featuring a built-in SIM5320A 3G and GPS module, supporting RS-485 communication, and providing 3.3/5 and 24V power output.

Goblin 2 board specifications:

  • MCU – Microchip Atmel ATMega328P AVR MCU @ 16 MHz with 1KB EEPROM, 32kB Flash, 2kB SRAM
  • Wireless connectivity via Simcom SIM5320A  USB 2.0 module:
    • Dual-Band UMTS/HSDPA 900/2100MHz
    • Quad-Band GSM/GPRS/EDGE 850/900/1800/1900MHz
    • 1x SIM card slot
    • High accuracy 16 channel GPS
  • Expansion I/Os
    • 6x ADC input with 10 bits resolution
    • 10x digital in/out including 5 PWM
    • RS-485 protocol @ 10Mbps for up to 256 nodes on the bus
    • Header to Keypad, microphone and speaker for SIM I/O
  • Misc – 8 LEDs for power, battery, networking, RS485, UART, plus one user LED; Power switch, RS-485 /GPIO switch, program / SIM AT+ switch
  • Power Supply – 5V via micro USB port, solar panel up to 5V/200mA, 3.7V battery charger
  • Power Output- 5V @ 3A , 3.3V @ 300 mA and 24 V @ 500 mA
  • Dimensions – 65.5mm x 82.2mm

The board can programmed like any other Arduino compatible with the Arduino IDE uploading the code via the micro USB port, or if you want more control over the board using Atmel Studio.

Documentation can be found on Verse Technology website’s Docs page, and examples can be found directly on Github.

Goblin 2 is now for sale for $134 + shipping on the company’s website, and you may want to visit Goblin 2 product page for further details. In case, you are mostly interested in SIM5320 module’s features for your project, Adafruit sells a $80 FONA 3G breakout board to interface with your own board, and provides good documentation. Alternatively, you’ll also find SIM5320 modules (~$30) and breakout boards (~$50) on Aliexpress. The module has been around for several years, so it should be pretty easy to integrate into your own project. Note the last letter in the product name is for the continent, namely A is for America, E for Europe & Asia Pacific, and J for Japan.

Trenz Electronic TE0808 UltraSOM+ is a Xilinx Zynq Ultrascale+ ZU9EG System-on-Module

February 21st, 2017 1 comment

Xilinx Zynq Ultrascale+ ARM Cortex A53 + FPGA SoC have now started to show up in boards such as AXIOM Board based on Zynq Ultrascale+ ZU9EG. Price for the board has not been announced, and while a similar Xilinx development kit goes for close to $3,000, some people are expecting the board to sell for $400 to $600. Since the price of FPGA vary a lot from a few dollars to $40,000 for the top end chips, I decided to find pricing info about Xilinx Zynq Ultrascale+ MPSoCs which lead me to Trenz Electronic TE0808 system-on-module, which was unveiled in May last year, and I’ll cover in the second part of this post, after – hopefully quickly – describing Zynq Ultrascale+ family and nomenclature, and addressing the price “issue”.

First, there are three sub-families within Zynq Ultrascale+ MPSoC portfolio:

  • CG models with 2x Cortex A53, 2x Cortex R5, FPGA fabric
  • EG models with 4x Cortex A53, 2x Cortex R5, a Mali-400 GPU, and FPGA fabric
  • EV models based on EG, but adding a H.264 / H.265 video codec capable of simultaneous encode and decode up to 4Kx2K (60fps)

Within each sub-families there are multiple parts that differ by their number of logic cells, and I/Os. Since AXIOM board is using ZU9EG, I focused on EG family which start from ZU2EG up to ZU19EG.

Click to Enlarge

Once you’ve selected a part like ZU9EG, you’ll need to select a package ranging from FFVC900 (900-pin) to FFVE1924 (1924-pin), and offering options in terms of the number of the number serial transceivers and I/Os. So I plan to check the price for ZU9EG with FFBV900 package which should be the cheapest for that model.

While is a great site to check price for Chinese SoCs, you’ll probably want to use Octopart to check for other silicon vendors, and that’s what I did to check ZZU9EG-FFVC900 price. The cheapest I could find was on AVNet Asia for $2407 in single unit. The price should go down a bit in multiple quantities, but we should still expect boards based on this model to be around $2,500 to 3,000.

With that out of the way, let’s now look at Trenz Electronics’ SoM.

Click to Enlarge

TE0808 UltraSOM+ specifications:

  • SoC – Xilinx Zynq Ultrascale+ ZU9EG MPSoC with four ARM Cortex A53 cores @ up to 1.2 GHz, two Cortex R5 “real-time” cores @ 500MHz, a Mali-400MP GPU, 600K System Logic Cells
  • System Memory –  2GB 64-Bit DDR4 by default (up to 8 GB supported)
  • Storage – 2x 32 MB dual parallel SPI Boot Flash by default (up to 512 MB supported)
  • User I/Os:
    • 65x MIO, 48x high-density (HD) I/Os (all), 156x high performance (HP) I/Os  (3 banks)
    • Serial transceiver – 4x GTR + 16 x GTH
    • Transceiver clocks inputs and outputs
    • PLL clock generator inputs and outputs
  • Board to Board Connectors – 4x 160-pin
  • Power Supply – Single 3.3V power source required; 14 on-board DC-DC regulators and 13 LDOs; LP, FP, PL separately controlled power domains
  • Dimensions – 76 x 52 mm; 3mm mounting hole for skyline heat spreader

Click to Enlarge

Two models are available with TE0808-03ES2 and TE0808-03-02I with the later coming with the first one based on XCZU9EG-1FFVC900 and the second XCZU9EG-2FFVC900I. I could not find what the differences are between “1FF” and “2FF” SoC. Note that the ICs used are currently engineering samples. The company recommends Vivado HL Design Edition to program the FPGA part of the chip, and PetaLinux 2016.4 is running on the ARM cores. You’ll find all technical information you may need via the Wiki, and support from the forums.

Trenz can also provide TEBF0808-04 baseboard for development, part of TE0808-03ES2-S Starter Kit with a E0808-03 module  SoM, a black Core V1 Mini-ITX Enclosure, a 12 V power supply, 2x XMOD FTDI JTAG Adapter, an 8 GB micro SD card, a USB cable and two Phillips screws.

Starter Kit and Baseboard – Click to Enlarge

Baseboard key features and specifications:

  • Storage – micro SD card, eMMC flash (both bootable), 1x SATA connector
  • Video Output – Displayport Single Lane PS GT Connected
  • Connectivity – Gigabit Ethernet RJ45, Dual SFP+
  • USB – USB3 with USB3 HUB
  • Expansion
    • PCIe slot – PS GT Connected, one PCIe lane (16 Lane Connector)
    • FMC HPC Slot (1.8V max VCCIO)
    • One Samtec FireFly (4 GT lanes bidir)
    • One Samtec FireFly connector for reverse loopback
    • CAN FD Transceiver (10 Pin IDC Connector)
  • Debugging – 20 Pin ARM JTAG Connector (PS JTAG0)
  • Misc – Fan connectors, FMC Fan, Intel front panel connector (PWR/RST/LED), Intel HDA Audio connector
  • Power Supply
    • ATX Power supply connector (12V only PS Required)
    • Optional 12V Standard Power Plug
  • Dimensions – Mini-ITX form factor

TE0808-03ES2 SoM sells for 2,500 Euros in low quantities excluding VAT and shipping costs, TE0808-03-02I for 3,500 Euros, and the Starter Kit for 3,800 Euros. Prices go down to as low as 1,750 Euros per unit  for orders of 1,000 modules or more. You’ll find purchase links on Trenz Electronic’ shop TE0808 Ultrascale+ page.

Qualcomm Snapdragon 820 SBCs: Inforce 6640, iWave iW-RainboW-G25S, and DragonBoard 820c

February 20th, 2017 5 comments

We’ve already covered Qualcomm Snapdragon 820 system-on-modules such as Intrinsyc Open-Q 820 and Inforce 6601, which can be used with baseboards that are suitable for development, but so far I had not seen a single board computer (SBC) powered by the processor optimized for mass production and suitable for integration into products. Bu this is about to change, as three Snapdragon 820 SBCs are now (or soon will be) available with Inforce Computing 6640, iWave iW-RainboW-G25S, and DragonBoard 820c.

Inforce 6640 SBC

Inforce Computing 6640 Single Board Computer specifications:

  • SoC – Qualcomm Snapdragon 820 quad core Kryo processor with 2x cores @ up to 2.2GHz, 2x cores @ up to 1.6GHz, Adreno 530 GPU, Hexagon 680 DSP
  • System Memory – 4GB LPDDR4
  • Storage – Up to 64GB UFS 2.0 flash, microSD slot
  • Video Output / Display Interface – 2x 4-lane MIPI-DSI DPHY 1.2 , 1x HDMI 2.0 interface for touch screen displays
  • Audio – WDC9335 audio codec; 4x line out; 1x stereo headphone out; 3x mic in
  • Camera – 2x 4-lane MIPI-CSI supporting sensors up to 28MP
  • Connectivity – Gigabit Ethernet (Atheros 8151), 802.11ac WiFi + Bluetooth 4.2 LE (QCA6174A), GPS/GNSS module (WGR7640)
  • USB – 1x USB 3.0 host port, 1x micro USB 2.0 OTG port
  • Expansion – 34-pin “PAC” expansion header with I2C, SPI, UIM, UART, serial console, 12x GPIO
  • Power  Supply — 12VDC @ 3A; PM8996 PMIC, PMI8996 charger
  • Dimensions — 100 x 70mm (Pico-ITX)
  • Temperature Range – 0 to 55°C (commercial range)

The company currently provides Android 6.0.1 and Android 7.0 BSPs, but based on the comments section on a related Linux Gizmos article, Inforce Computing is working on a Linux BSP that should be released by the end of March.

Inforce 6640 board can be purchased for $289 directly on the product page, where you’ll also find some info, and some documentation.

iWave iW-RainboW-G25S

The second board of our list is made by iWave Systems Technologies, based in Bangolore, India, and comes with the following specifications:

  • SoC – Qualcomm Snapdragon 820 quad core Kryo processor with 2x cores @ up to 2.2GHz, 2x cores @ up to 1.6GHz, Adreno 530 GPU @ 624 MHz, Hexagon 680 DSP
  • System Memory – 3GB LPDDR4 expandable to 6GB
  • Storage – 32GB eMMC flash expandable to 128 GB, microSD slot
  • Video Output / Display Interface – micro HDMI connector, 2 lanes MIPI DSI connector via 30P connector
  • Audio – WCD9335 audio codec; audio in/out jack;
  • Connectivity – 802.11 ac WiFi + Bluetooth 4.1, GPS (WGR7640)
  • USB – 1x micro USB 2.0 port, 1x USB 3.0 type C connector (optional)
  • Expansion – 30-pin connector with MIPI DSI,  4 lanes MIPI CSI up to 28MP @ 30 fps, 3x I2C, 2x GPIO
  • Misc – 3x tactile switch, console debug header
  • Power  Supply — 5VDC via micro USB port, 3.7V Li-Ion connector, PM8996 PMIC, PMI8996 charger
  • Dimensions – 56 x 50 mm

The company only mentions Android 6.0 Marshmallow support for the board, and expects it to be used for augmented & virtual reality applications, high end wearables,
video analytics, 4K digital signage, 4K camera, connected home & entertainment, location based services, infrastructure management, indoor navigation, unmanned aerial vehicles (UAV), and other high-end embedded computing applications.

You’ll need to request a quote to get the price for the board, and you can do so, as well as get a few more details, on the product page.

Arrow Dragonboard 820c

Click to Enlarge

I first found out about DragonBoard 820c, when I covered DragonBoard 600c development board last summer, but at the time there was not enough information to write a separate article. The board has now been listed on Arrow, and appears very similar to 600c board, so we have a few more details including basic preliminary specifications:

  • SoC – Qualcomm Snapdragon 820
  • System Memory – 3 GB LPDDR4
  • Storage – 32 GB UFS Flash + micro SD slot, maybe an mSATA slot?
  • Video Output – HDMI 2.0
  • Audio – Via HDMI, 3.5mm audio jack (TBC)
  • Connectivity – Gigabit Ethernet, 802.11 b/g/n/ac WiFi, Bluetooth 4.1, GPS
  • USB – 1x USB 2.0 port, 1x USB 3.0 port,
  • Camera – Support for up to 3x image sensors up to 28 MP.
  • Expansion
    • 1x 40 pin low speed expansion connector
    • 1x 60 pin high speed expansion connector
    • 1x 16-pin & 40-pin audio expansion connector
    • 1x 24 pin female header (not found on DragonBoard 600c)
  • Misc – Volume, power & reset buttons. 6 LEDS (4x user, 1x Wifi, 1x Bluetooth)
  • Power Supply – +6.5 – 18V DC input
  • Dimensions – 100 x 100 mm compliant with 96Boards CE Extended specifications

The page on Arrow states that:

This board only supports the Android operating system at this time.  There is NO Linux support for this board from Arrow, Qualcomm, or  Only the Hardware Manual and Android User Manual are available as documentation.

However, a Wiki page on Linaro website explains how to install Debian and Open Embedded on the board, and DragonBoard 820c is supported by the Yocto Project, or at least there’s work done on it.

Contrary to the other boards, DragonBoard 820c does not appear to be available just yet, and price is  not known either.

Linux 4.10 Release – Main Changes, ARM & MIPS Architectures

February 20th, 2017 3 comments

Linus Torvalds has just released Linux 4.10:

So there it is, the final 4.10 release. It’s been quiet since rc8, but we did end up fixing several small issues, so the extra week was all good.

On the whole, 4.10 didn’t end up as small as it initially looked. After the huge release that was 4.9, I expected things to be pretty quiet, but it ended up very much a fairly average release by modern kernel standards. So we have about 13,000 commits (not counting merges – that would be another 1200+ commits if you count those). The work is all over, obviously – the shortlog below is just the changes in the last week, since rc8.

Go out and verify that it’s all good, and I’ll obviously start pulling stuff for 4.11 on Monday. Linus

Linux 4.9 added Greybus staging support, improved security thanks to virtually mapped kernel stacks, and memory protection keys, included various file systems improvements, and many more changes.

Some newsworthy changes for Linux 4.10 include:

  • Virtual GPU support – Intel GVT-g for KVM (KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core processors with Intel Graphics. Unlike direct pass-through alternatives, the mediated device framework allows KVMGT to offer a complete virtualized GPU with full GPU features to each one of the virtualized guests, with part of performance critical resources directly assigned, while still having performance close to native.
  • New ‘perf c2c’ tool, for cacheline contention analysis – perf c2c (for “cache to cache”) is a new tool designed to analyse and track down performance problems caused by false sharing on NUMA systems. The tool is based on x86’s load latency and precise store facility events provided by Intel CPUs. Visit C2C – False Sharing Detection in Linux Perf for more details about the tool.
  • Improved writeback management – Linux 4.10 release adds a mechanism that throttles back buffered writeback, which makes more difficult for heavy writers to monopolize the I/O requests queue, and thus provides a smoother experience in Linux desktops and shells than what people was used to. The algorithm for when to throttle can monitor the latencies of requests, and shrinks or grows the request queue depth accordingly, which means that it’s auto-tunable, and generally, a user would not have to touch the settings. Read Toward less-annoying background writeback for more details about this improvement.
  • FAILFAST support –  This release also adds “failfast” support. RAID disk with failed IOs are marked as broken quickly, and avoided in the future, which can improve latency.
  • Faster Initial WiFi Connection – Linux 4.10 adds support for using drivers with Fast Initial Link Setup as defined in IEEE 802.11ai. It enables a wireless LAN client to achieve a secure link setup within 100ms. This release covers only the FILS authentication/association functionality from IEEE 802.11ai, i.e., the other changes like scanning optimizations are not included.

Some notable ARM architecture improvements and new features:

  • Allwinner:
    • Allwinner A23 – Audio codec driver
    • Allwinner A31/A31s – Display Driver (first pipeline), audio codec support
    • Allwinner A64 – clock driver
    • Allwinner A80 – External SDIO WiFi
    • Allwinner H3 – Audio codec driver, SPI
    • New boards support: NextThingCo CHIP Pro, Pine A64, NanoPi M1
  • Rockchip:
    • Initial support for Rockchip PX5 & PX3 automotive platforms
    • Added Rockchip RK1108 evaluation board
    • Added support for Rikomagic MK808 Android TV stick based on Rockchip RK3066
    • Update Rockchip PCI driver to support for max-link-speed
    • Rockchip rk3399,rk3066 PLL clock optimizations
  • Amlogic
    • Support for the pre-release “SCPI” firmware protocol shipped by Amlogic in their GXBB SoC
    • Initial support for Amlogic S905D, and S912 (GXM) SoCs
    • Added support for Nexbox A1 and A95X Android TV boxes
    • Cleanup for the Amlogic Meson PWM driver
    • New Amlogic Meson Graphic Controller GXBB (S905)/GXL (S905X/S905D)/GXM (S912) SoCs (meson)
    • Resets for 2nd USB PHY
    • Initial support for the SD/eMMC controller in the Amlogic S905/GX* family of SoCs
    • Updated DTS to enable support for USB, I2C, SPI, maibox/MHU, PWM, ethernet MAC & PHY, secure monitor, IR, and watchdog.
  • Samsung
    • Device Tree for Samsung Exynos5433 mobile phone platform, including an (almost) fully supported phone reference board
    • Added support for TOPEET itop/elite board based on exynos4412
    • DeviceTree  updates:
      • Add Performance Monitor Unit to Exynos7.
      • Add MFC, JPEG and Gscaler to Exynos5433 based TM2 board.
      • Cleanups and fixes for recently added TM2 and TM2E boards.
      • Enable ADC on Odroid boards
      • Remove unused Exynos4415 DTSI
  • Qualcomm
    • Add support for Qualcomm MSM8992 (Snapdragon 808) and MSM8994 (Snapdragon 810) mobile phone SoCs
    • Added support for Huawei Nexus 6P (Angler) and LG Nexus 5X (Bullhead) smartphones
    • Support for Qualcomm MDM9615 LTE baseband
    • Support for WP8548 MangOH Open Hardware platform for IOT, based on Qualcomm MDM9615
    • Other device tree changes:
      • Added SDHC xo clk and 1.8V DDR support
      • Add EBI2 support to MSM8660
      • Add SMSC ethernet support to APQ8060
      • Add support for display, pstore, iommu, and hdmi to APQ8064
      • Add SDHCI node to MSM8974 Hammerhead
      • Add Hexagon SMD/PIL nodes
      • Add DB820c PMIC pins
      • Fixup APQ8016 voltage ranges
      • Add various MSM8996 nodes to support SMD/SMEM/SMP2P
  • Mediatek
    • Added clock for Mediatek MT2701 SoCs
    • New Mediatek drivers: mtk-mdp and mtk-vcodec (VP8/VP9/H.264) for MT8173
    • Updated the Mediatek IOMMU driver to use the new struct device->iommu_fwspec member
  • Other new ARM hardware platforms and SoCs:
    • Hisilicon – Hip07 server platform and D05 board
    • NXP – LS1046A Communication processor, i.MX 6ULL SoC, UDOO Neo board, Boundary Devices Nitrogen6_SOM2 (i.MX6), Engicam i.CoreM6, Grinn i.MX6UL liteSOM/liteBoard,  Toradex Colibri iMX6 module
    • Nvidia – Early support for the Nvidia Tegra Tegra186 SoC, NVIDIA P2771 board, and NVIDIA P3310 processor module
    • Marvell – Globalscale Marvell ESPRESSOBin community board based on Armada 3700, Turris Omnia open source hardware router based on Armada 385
    • Renesas “R-Car Starter Kit Pro” (M3ULCB) low-cost automotive board, Renesas RZ/G (r8a7743 and r8a7745) application processors
    • Oxford semiconductor (now Broadcom) OX820 SoC for NAS devices, Cloud Engines PogoPlug v3 based on OX820
    • Broadcom – Various wireless devices: Netgear R8500 router, Tenda AC9 router, TP-LINK Archer C9 V1, Luxul XAP-1510 Access point
    • STMicro  – stm32f746 Cortex-M7 based microcontroller
    • Texas Instruments – DRA71x automotive processors, AM571x-IDK industrial board based on TI AM5718
    • Altera – Macnica Sodia development platform for Altera socfpga (Cyclone V)
    • Xilinx – MicroZed board based on Xilinx Zynq FPGA platforms

That’s a long list of changes and new boards and devices… Linux 4.10 only brings few MIPS changes however:

  • KVM fixes: fix host kernel crashes when receiving a signal with 64-bit userspace,  flush instruction cache on all vcpus after generating entry code (both for stable)
  • uprobes: Fix uprobes on MIPS, allow for a cache flush after ixol breakpoint creation
  • RTC updates:  Remove obsolete code and probe the jz4740-rtc driver from devicetree for jz4740, qi_lb60
  • microblaze/irqchip: Moved intc driver to irqchip. The Xilinx AXI Interrupt Controller IP block is used by the MIPS based xilfpga platform and a few PowerPC based platforms.
  • crypto: poly1305 – Use unaligned access where required, which speeds up performance on small MIPS routers.
  • MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls

You can also read Linux 4.10 changelog with comments only, generated using git log v4.9..v4.10 --stat, in order to get a full list of changes. Alternatively, you could also read Linux 4.9 changelog on

How to Use CHIP Board as a Linux Printer & Scanner Server

February 19th, 2017 13 comments

We have a Canon Pixma MP250 series multi-function USB printer connected to a Windows 10 laptop at home, and for several years, I had no problems printing from my Ubuntu computer to that printer. However, this setup recently stopped to work, and whatever I would do, printing would never start from my Ubuntu PC, even though the file was (allegedly) successfully transfered to the Windows 10 laptop connected to the printer. So I decided to setup my own printer server, as well as a scanner server since it’s a multi-function printer, using one of the boards from my collection. As I opened my cabinet, I wondered whether I would use an Orange Pi board, Raspberry Pi board, or Nano Pi board, but I needed WiFi since there’s no Ethernet in the office where the printer is located, and I found that Next Thing CHIP board was the ideal candidate as it comes with a USB port, built-in WiFi, and storage, and I paid just under $15 in total to have it shipped to South East Asia. So I’ll report my experience setting up CUPS printer server and SANE (Scanner Access Now Easy) on the board. Those are generic instructions working on Debian / Ubuntu, so they will other work for Raspberry Pi, Orange Pi, Nano Pi board, etc… via WiFi or Ethernet.

Click to Enlarge

While I reviewed PocketCHIP last year, I had yet to actually use a standalone CHIP board. I did not want to connect it to a display, so I used some of the “Headless CHIP” instructions to set it up. I used a micro USB to USB cable to connect it to my computer, and use minicom to connect to /dev/ttyACM0 with 115200 8N1 settings, and yould access the command line with chip / chip credentials:

Then I configured WiFi from the command line, by first listing SSIDs:

and connect to my the closest access point from the list above:

The next step is to check whether CHIP has successfully connected to the wireless router with the command:

That’s all good. The micro USB to USB cable works, but it was unstable in my case, with the two LEDs something going dark due to power issues, which means CHIP consumes more power than NanoPi NEO + armbian, as I’ve been running it from a USB port for several weeks… CHIP ships with Debian with XFCE4, so it might be a good idea to remove the corresponding packages:

Alternatively, you could flash Debian without GUI based on the instructions here.

So since WiFi had been setup, I connect the board to a 5V/2A power supply, and logged it to the board with SSH, and everything became much more stable. I received the board in the middle of the last, so I updated the system first:

Now that the initials setup was done, I could start the printer server setup, with the steps below greatly inspired from instructions on Next Things forums.

By default CHIP board hostname is  “chip”, so I changed it to something more specific by editing /etc/hostname and /etc/hosts, and replacing chip with CNX-PRINTER. You’ll need to restart avahi-daemon for the changes to take effect:

At this point, we can access the board with CNX-PRINTER.local instead of using the IP address or chip.local. So I could SSH to the board with:

If you are doing this from a Windows machine, you’ll need mDNS (Bonjour) installed for .local addresses to be recognized, and one way is to simply install iTunes.

The next step is to install CUPS server:

CUPS will start automatically, and the web interface will be accessible from the locahost interface on port 631, but since I have not connected a monitor, this would not be convenient, so we can enable remote management with:

At this point I could access the web interface by going to http://cnx-printer.local:631/ in my preferred web browser.

Click to Enlarge

If you have not already done so, you may want to connect the printer to the board’s USB port, and power it on at this stage. Now we can click on Adding Printers and Classes.

Click to Enlarge

and then click on Add Printer, which will switch to an HTTPS connection with a self-generated certificate, so you may get a warning, but you can safely add the certificate to carry on. You’ll then be asked for a username and password. Don’t login with chip user, but instead root. The default password is also chip, so you may want to change that in the board.

Click to Enlarge

The next page is called “Add Printer”, and my printer was automatically detected. So I selected “Canon MP250 series (Canon MP250 series)”, and clicked on Continue button.

Click to Enlarge

You can add some location information on the next page, and also remember to tick Share This Printer, before clicking on Continue. Note that if you’re going to use Windows clients, you may want to note the Printer Name, in my case Canon_MP250_series, as we’ll need it.

Click to Enlarge

The next page will show a list of models, but in my case everything was already selected, to I just had to click on Add Printer to carry on with the setup.

Click to Enlarge

Finally, you’ll be asked to define some default options, but again I did not change anything there, and clicked on Set Default Options to complete the setup.

Click to Enlarge

The next step was to fo the Printers in Ubuntu to see what I had to do to configure the network printer, and the answer is: Nothing at all. The new networked printer was automatically detected and added to the list of printers.

Click to Enlarge

I went ahead, and clicked on Print Test Page, and it worked beautifully, although it started a little slower than usual.

But the printer server won’t last long if it cannot work with my Wife’s Windows 10 laptop, so I followed some instructions on ArchWiki. First I went to Control Panel -> Hardware and Sound -> Devices and Printers, and clicked on Add a printer.

Click to Enlarge

In the next window, you’ll need to select “Select a shared printer by name“, and type the printer name.

Click to Enlarge

The URL should look like http://<hostname>:631/printers/<printer_name>, where <hostname> is the IP address or hostname, and <printer_name> the printer name shown in CUPS web interface. Once this is done we can click on Next, and you’ll be asked to select Windows drivers for your printer, once it is done you’ll get a confirmation the installation was successful.

Click to Enlarge

The printing server installation went pretty smoothly, and worked with both Linux and Windows clients. But my printer is also a multifunction scanner, so I’d also need to enable scan function too. I adapted instruction @ and SaneDaemonTutorial on using SANE. I did manage to make it work, but only once. I guess there may be a permission or systemd issue, and I’ll update the post once I find a solution. In the menatine, I’ll still report what I’ve done below.

Before we try the scanner over the network, we need to make sure it works locally inside the CHIP board. SANE is probably already installed, but to make sure we can install the following packages.

The following command will try to find scanners, and it could find my Canon MP250 series scanner connected via USB:

Another way to check this out is to use the following scanimage command line:

We can now try to scan one image:

The scanning started shortly after, and we’ve got our scanned file:

So far, so good. SANE is is working…

We can now configure saned (SANE daemon) to be able to access the scanner from the LAN. First we need to create /etc/systemd/system/saned.socket file as root with:

Please note that this differs from the instructions on Ubuntu as there seem to be an error. The line:

does not seem right, and would cause systemdctl to report a “bad message”, and the line at the top are ignored by systemd. I tried to edit the Wiki, but I could not due to a gateway error on the site.

We also need to create a separate file called /etc/systemd/system/saned@.service with:

We als oneed to enable access to computer on the LAN, by editing /etc/sane.d/saned.conf:

The exact IP address subnet will depend on your own local network configuration. We can now enable saned (so that it starts automatically), and start it as follows:

We can check the status with:

So everything appears to be going smoothly. We can now configure clients. Let’s start with a Linux client (my Ubuntu computer) to make sure it work. We can first install xsane, a graphical interface for saned:

And then configure sane to connect to our SANE daemon by editing /etc/sane.d/net.conf, and adding the hostname or IP address of our server, and enabling time out:

Time to start xsane from the command line or dash for some scanning, except it did not work for me with the window below showing up each time after a few seconds.

So I spent a few hours studying about this problem, reading articles online, capturing packets with Wireshark, and trying the same thing on a Windows client with SaneWinDS. I could not find any solution in any articles, but I could see packets exchanged between the server and client, and SanWinDS could connect the CHIP board SANE daemon, but would not find any device/scanner. I could not find anything relevant in /var/log. or dmesg either, so I tried to mess up with the config files, and changed saned@.service to use User=chip instead of User=saned, and success! I could start xsane, and scan a document.

Click to Enlarge

So I rebooted, the board to see what would happen, and sure enough it went back to the “no devices available” window. I tried to change that back to User=saned, and reboot, and then try again with User=chip, but I had no luck in all of my subsequent attempts, and ran out of time for the day… The solution is probably close, and I’ll update the post once/if I found out what the problem is.

EU funded AXIOM Board is Powered by Xilinx Zynq UltraScale+ FPGA + ARM SoC

February 17th, 2017 9 comments

Back in 2015, Xilinx unveiled Zynq Ultrascale+ MPSoC combining ARM Cortex A53 & Cortex R5 cores, a Mali-400MP2 GPU, and UltraScale FPGA, and the company recently launched ZCU102 Evaluation Kit based on the SoC, which sells for just under $3,000. But if you are based in the European Union, you’ll be glad to learn about 4 millions Euros of your taxes have been spent to design a board based on the same MPSoC family as part of the AXIOM project, which was developed in collaboration with European universities and companies with the “aim of researching new software/hardware architectures for Cyber-Physical Systems (CPS) to meet the expectations” in terms of computational power, energy efficiency, scalability through modularity, easy programmability, and leverage of the best existing standards at minimal costs.

AXIOM (Agile, eXtensible, fast I/O Module) board’s key specifications:

  • SoC – Xilinx Zynq Ultrascale+ ZU9EG MPSoC with four ARM Cortex A53 cores @ 1.2GHz, two Cortex R5 “real-time” cores @ 500MHz, a Mali-400MP GPU @ 600 MHz, 600K System Logic Cells;
  • System Memory – 32 GB of swappable SO-DIMM RAM  (up to 32GB) for the Processing System, plus a soldered 1 GB Programmable Logic.
  • Storage – 8 GB eMMC flash (PCN layout supports up to 32GB), and a micro SD card reader.
  • Display – miniDP connector, single channel 24-bit LVDS interface, touch panel connector
  • Connectivity – Gigabit Ethernet port (RJ45)
  • USB – 4x USB Type C ports, 2x USB Type A ports
  • Expansion
    • Arduino UNO headers
    • 12x GTH transceivers @ 12.5 Gbps  (8 on USB Type C connectors + 4 on HS connector)

There’s also mention of an Axiom Link interface that would allow to interconnect multiple AXIOM boards in order to arrange small clusters.

Since it’s a public project I would have expected it to be open source. While there are some deliverables available for download, they appear to be outdated with “the technical specification of AXIOM board” PDF mentioning only AXIOM-15 and AXIOM-35 boards based on the previous Xilinx Zynq-7000 series SoCs. We can also find links to a Wiki, as well as git and svn repository, but all those are in a private area that requires a login, and as far as I could tell, it’s not possible to register. So maybe the EU commission wants to protect its investment, or we just need to be a little more patient. [Update: This Download page  seems to have more public info available]

Click to Enlarge

The AXIOM Board is said to combine features required for High-Performance Computing, Embedded Computing and Cyber-Physical Systems, with typical applications including real-time data analysis of a huge amount of data, machine learning, neural networks, server farms, bitcoin miners, and so on.

It’s unclear when/if the board will be available for sale, and at what price.

Via Board DB and Single Board Computers G+ community.