Archive

Posts Tagged ‘open source’

Next Thing Has Released Software and Hardware Files for the $9 CHIP Computer

July 31st, 2015 10 comments

Next Thing CHIP computer powered by Allwinner R8 module, also referred as “the $9 computer“, had a very successful crowdfunding campaign having raised over $2,000,000 from nearly 40,000 backers. When launching an electronics products on a crowdfunding campaign, many companies claim their device will be open source, only to disappoint once the perks actually ship, and Next Thing made the same promise, except they appear to have delivered as shown in their latest update “Holy C.H.I.P! It’s C.H.I.P!!!” showing the first production samples, and providing links to hardware design files for the Alpha version, as well as buildroot, U-boot and Linux source code.

CHIP Computer Block Diagram as Shown in the Schematics (Click to Enlarge)

CHIP Computer Block Diagram as Shown in the Schematics (Click to Enlarge)

All resources can be found on docs.nexthing.co, but let’s check what they’ve released so far.

Hardware design files on Github include:

  • A Bill of Materials (BoM)
  • Schematics in PDF and DSN formats
  • PCB Layout in BRD and PNG format
  • Pinouts for U12 and U14 connectors
  • Mechanical files in DXF format

So everything appears to be there for an open source hardware board, except the Gerber files, but these could be generated from the PCB layout.

One the software from they setup three repositories for:

It also looks good, especially since the versions are recent, and they’ve certainly been helped in that task thanks to the involvement of Free Electrons engineers.

CHIP_Linux_4.1Most backers will still need to wait until December 2015 and beyond to get the board, but the 1,000 “Kernel hackers” backers should get their board in September 2015, so they’ll be able to play with these and improve the software and possibly find hardware bugs in the early boards, before it gets released to the masses.

Thanks to Brian for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Open Source Linux Drivers for PowerVR GPUs Might Be in the Works

June 18th, 2015 8 comments

When I write about a new processor with a PowerVR GPU, I can be sure there will be one or two comments saying something like “It has a PowerVR GPU, it’s a non-starter”, mostly because of the status of graphics drivers in Linux. Luc Verhaegen (libv) also made a presentation at FOSDEM 2013 listing various open source projects for GPUs found in ARM processors and PowerVR was the only one without any community project. Bear in mind that apart from Nvidia, and to some extend Broadcom for the VideoCore IV GPU found in  BCM2835 / BCM2836 processors used in Raspberry Pi boards, no other companies have released user space drivers for their GPUs, and all work is done by volunteers for other open source GPU drivers, and I’m not sure any of them work 100% yet.

Imagination has already provided working GPU drivers for their MIPS Creator-CI20 board, these are closed source binaries, but at least they should be usable in Linux. Now Alexandru Voica, Senior Marketing Specialist at Imagination Technologies, and who seems to handle press releases and many of the posts in the company’s blog, has hinted that Imagination is currently working on open source drivers for their GPU in reddit.

Q: Is there plans to make/help/fund open PowerVR driver for Linux?

A: Yes, there is a plan and it is one of the things I’ve been working on for the past few months. Hopefully I’ll have something more to share soon(-ish?).

Sadly, there aren’t any details right now, so we’ll have to be patient and see what comes out of this.

Via Phoronix and Harley.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

FireWRT is an OpenWRT 802.11ac Board Powered by Mediatek MT7621A Processor

May 14th, 2015 10 comments

There are plenty of low cost 802.11n routers or boards supporting OpenWRT, even starting at $10 or less such as A5-V11 mini router, but if you’re looking for something a bit more powerful with 802.11ac connectivity, options are much more limited, especially if you need something at a lower cost. One option is Xiaomi MiWiFi router based on Mediatek MT7620A with 64MB RAM, and T-Firefly team is now working on FireWRT board based on the more powerful MT7621A processor coupled with 512 MB RAM, and 16 MB SPI flash.

FireWRTFireWRT specifications:

  • Wi-Fi SoC – Mediatek MT7621A dual core MIPS 1004Kc processor @ 880MHz
  • System Memory – 512 MB DDR3 (Beta version: 256 MB)
  • Storage – 16 MB SPI flash memory, 2x SATA 3.0 ports, micro SD card slot
  • Wi-Fi
    • 802.11 b/g/n @ 2.4GHz up to 300Mbps
    • 802.11 a/n/ac @ 5 GHz, up to 867Mbps (AC1200 class router)
    • External High-Gain Antennas – 2x for 2.4GHz, 2x for 5GHz
  • Ethernet – 2x LAN (Gigabit Ethernet), 1x WAN (Gigabit Ethernet)
  • USB – 1x USB 2.0 host port, 1x USB 3.0 port
  • Expansion
    • mini PCIe slot (multiplexed with SATA), on the back of the board
    • 2x 32-pin headers with GPIO, I2C, I2S, UART, NFC, JTAG, RGMII, 12V, 5V, 3.3V, GND
  • Misc – Power, WPS and reset keys. LEDs for Ethernet, WiFi, SATA, and power
  • Power – 12V/2A
  • Dimensions – 125 x 93.5 mm

OpenWRT_SATA_USB_3_PCIeThe boar runs OpenWRT, and the company has already released binary images, source code (U-boot, OpenWRT SDK), schematics (PDF), and mechanical files on the project’s download page, as well as some WIP documentation on the Wiki.

You can’t purchase the board directly on Aliexpress yet, but the company launched a beta program to allow developers to purchase a $69 kit including FireWRT board, a 12V/2A power adapter, an acrylic enclosure, a SATA cable, an heatsink, and a USB TO TTL UART Module. Please note that this beta board only has 256 MB RAM instead of 512 MB for the final version.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

USBminiPower USB Power Supply Delivers 3 Outputs: 5V, 3.3V, and a Variable Output up to 14.3V (Crowdfunding)

April 29th, 2015 11 comments

Yesterday, I found out about a cheap 5V/3.3V USB power supply board, YwRobot MB-102, selling for $1 shipped on Ebay, but one person lamented the lack of 1.8V output, which may be required for example for modules like AsiaRF AWM002 that takes both 3.3V and 1.8V. One way is make your own power board, and get an expensive lab power supply, but I got a solution in my inbox this morning, with USBminiPower, as tiny USB power supply board with three output: 5V, 3.3V and a variable pin between 1V and 14.3V, as well as a 4 digit LED display showing the voltage and intensity just like Charger Doctor.

USBminiPowerUSBminiPower specifications:

  • MCU – Microchip PIC16 MCU (several are supported)
  • Voltage outputs – 5V (from USB port), controllable 3.3V, and controllable & adjustable 1V … 14.3V
  • Display – 4 Digit red LED to display intensity and voltage
  • Max Power – 2.45 Watts
  • Headers – ICSP header for uploading firmware, 3-pin for future expansion
  • Misc – Rocker switch to increase or decrease voltage for the adjustable pin. Button to enable/disable output.
  • Dimensions – 31x26mm

You just need to connect it to one of the USB port of your computer to use it. The variable pin voltage is controlled via the rocker switch. If the project is successfully funded the firmware source and hardware design files will be released. To modify the firmware yourself, you’ll need Pickit3 or ICD3 in-circuit debugger, and MPLabX installed on your computer.

USBminiPower_5VThe developer listed the project on Kickstarter where he aims to raise £5,000 or more. Rewards start at £6 (~$9) for a bare PCB, and up to £25 ($38) for a fully assembled board. Shipping is £1 to £5 extra depending on the reward and destination country, with delivery scheduled for June 2015 (Bare PCB) or August 2015 (Fully assembled PCB).

Thanks to Atanas for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

NodeMCU is both a Breadboard-Friendly ESP8266 Wi-Fi Board and a LUA based Firmware

April 18th, 2015 5 comments

NodeMCU is a LUA based interactive firmware for Expressif ESP8622 Wi-Fi SoC, as well as an open source hardware board that contrary to the $3 ESP8266 Wi-Fi modules includes a CP2102 TTL to USB chip for programming and debugging, is breadboard-friendly, and can simply be powered via its micro USB port.

NodeMCU_Development_BoardLet’s checkout the hardware first. The latest version of the board (V1.0) has the following specifications and features:

  • Wi-Fi Module – ESP-12E module similar to ESP-12 module but with 6 extra GPIOs.
  • USB – micro USB port for power, programming and debugging
  • Headers – 2x 2.54mm 15-pin header with access to GPIOs, SPI, UART, ADC, and power pins
  • Misc – Reset and Flash buttons
  • Power – 5V via micro USB port
  • Dimensions – 49 x 24.5 x 13mm
NodeMCU Headers' Pinout

NodeMCU Headers’ Pinout

The hardware documentation for the board can be found on nodemcu-devkit repo, including schematics and PCB layout designed with Altium Designer, but they should also be compatible with the cheaper Altium CircuitStudio. Sadly, the files have not been updated for 3 to 4 months, so they don’t completely match the latest hardware shown above, and some pins were not connected in the earlier version.

NodeMCU can be purchased for $10 and up on Aliexpress or Seeed Studio. However, it’s not entirely clear which version of the board is sold… The Aliexpress shop shows hardware v0.9, but says they will send the latest version, while Seeed Studio mentions NodeMCU “v2″,  and shows picture of v1.0 hardware, which should be the one you want. The new board will also be up for sale in Europe on nodemcu.eu for 15 to 18 Euros including VAT.

NodeMCU firmware is build with ESP8266 SDK v.0.9.5, based on Lua 51.4 without debug and os modules, lua-cjson, and relies on spiffs (SPI Flash File System) file system. The quick start guide is written on the bottom of the board:

  1. Install CP2102 driver (not needed in Linux)
  2. Use 9600 baud rate
  3. Connect Wi-Fi and enjoy!

Once you are connected, you can just type the command in the terminal. For example to connecting to your Wi-Fi router:

wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
print(wifi.sta.getip())
--192.168.18.110

You can also toggle or/and read GPIO status in a similar way to what you’d with Arduino:

pin = 1
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
gpio.mode(pin,gpio.INPUT)
print(gpio.read(pin))

To get the board automatically run a script right after boot is complete, you can edit init.lua as follows:

file.open("init.lua","w+")
file.writeline(print("hello world"))
file.close()

You can find the firmware source code and documentation on Github, as well as nodemcu-flasher, a Windows only tools to flash the firmware to a module. There’s also a separate tool called esptool that will let you flash nodemcu from Linux. In case you find the documentation is all over the place, you might want to checkout NodeMCU video tutorial below.

Nodemcu.com is the official website for the project, but you’ll find more information on Github. You can also get answers to your questions on their BBS or ESP8622 community forums.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

RaidSonic Releases Firmware and Source Code for Atheros AR9331 Wi-Fi Audio Streamers

April 16th, 2015 4 comments

RaidSonic is a German company releasing products such as media players and multimedia accessories under their ICY BOX brand. One of those products is ICY Box IB-MP401Air music streaming received based on Atheros AR9331, and that looks very similar to SoundMate M2 I reviewed last year.

SoundMate M2 (Click to Enlarge)

SoundMate M2 (Click to Enlarge)

But if you look on their product page, you’ll find out a few download links:

So I’ve downloaded the source code file (IB-MP401Air_Sources_and%20License_Terms.rar) to have a look. It has two compressed files, one with the license, and IB-MP401Air_Sources.tar.gz with the source code.

tar xzvf IB-MP401Air_Sources.tar.gz
cd dns320B_GPL20150212/
ls -l
total 12
-rwxr--r--  1 jaufranc jaufranc 1400 Apr 16 16:49 building-the-firmware.txt
drwxr-xr-x 14 jaufranc jaufranc 4096 Feb 12 10:54 dns320B_GPL20150212
-rwxr--r--  1 jaufranc jaufranc  925 Feb 12 08:25 making-u-boot.txt

SoundMate_M2_Make_Menuconfig

The file showing how to build the firmware (OpenWRT) explains you should not use a newer Linux distribution:

Please note that this is an older OpenWrt version that might not build on newer distributions like Fedora 19 or later. If you want to build the firmware on a newer distribution you might need to get extra patches from OpenWrt to work around compilation errors. As an alternative you can install an older Linux distribution to build this firmware on.

Fedora 19 was released in July 2013, but I’ve still tried to build it on an Ubuntu 14.04 machine, and it failed:

cd dns320B_GPL20150212/
make
….
x86_64-linux-gnu-gcc -std=gnu99 -I. -O2 -I/media/hdd/edev/sandbox/soundmate/dns320B_GPL20150212/dns320B_GPL20150212/staging_dir/host/include -O2 -I/media/hdd/edev/sandbox/soundmate/dns320B_GPL20150212/dns320B_GPL20150212/staging_dir/host/include -MT clean-temp.o -MD -MP -MF .deps/clean-temp.Tpo -c -o clean-temp.o clean-temp.c
In file included from clean-temp.h:22:0,
from clean-temp.c:23:
./stdio.h:477:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, “gets is a security hole – use fgets instead”);
^

It might build better on older Linux distributions, although you may still have to be ready to fix build errors on the way.

Thanks to dhead666 for the tip. Via OpenWRT Forums.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

lowRISC Open Source SoC Project Announces its First Release with Tutorials for Simulators and Zedboard

April 14th, 2015 4 comments

lowRISC project aims to produce a completely open-source SoC (System-on-Chip) based on the 64-bit RISC-V instruction set architecture, as well as a corresponding development board, thus eventually producing a fully open hardware systems. The project has now announced its first release “tagged memory preview release” with a tutorial explaining how this has all been designed, and how to run simulations with software tools, or FPGA boards such as Zedboard.

lowRISC_Rocket_Chip

Rocket Chip Block Diagram

 

The project is based on Rocket core, written in Chisel language by the RISC-V team at UC Berkeley. Chisel can generate code to produce a cycle-accurate C++ emulator, Verilog optimised for FPGAs or Verilog for use in an ASIC flow.If you want to try it out, you’ll need a Linux machine, preferably running Ubuntu 14.04 64-bit, with GNU GCC 4.8 installed, and follow the tutorial in order to get the source code, and build tools such as riscv64-unknown-elf-gcc compiler, and Spike simulator, as well as a RISC-V Linux kernel. Finally, they’ll show you how to run various simulations using Spike, the C++ emulator, or an FPGA board.

This is only a first step, and much more work is needed, with the organization expecting to provide more features in the next releases including “tag support in the Spike simulator and support for the L2 cache, as well as a better ISA and core support for tags”, and later on, the development of an “untethered version of the SoC with the necessary peripherals”.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Allwinner CedarX Media Codec Library GPL/LGPL Compliance Update

March 23rd, 2015 29 comments

Last month, I wrote about potential open source licenses and VP6 copyright infringement by Allwinner with their CedarX media codec library, and then since there’s been a few developments.
Allwinner_GPL_LGPL

First, Allwinner sent me an email saying they’ve now updated Cedarx library and referring my previous article. Here’s an extract:

Here, I have some update of the Allwinner’s open-source status.

We have done a lot of discussion with the developers from the linux-sunxi communication about the software license of CedarX. For each question or requirement asked by the developers, Allwinner has identify and try to give the best solution.

Now, we believe Allwinner’s CedarX license is fully compliant and resolves concerns from the community. And you can take the announcement https://www.mail-archive.com/[email protected]/msg10597.html as a reference.

Allwinner is always supporting the open-source, and try to do better and better. You can see some update on the github https://github.com/allwinner-zh, and some feedback from developers: https://github.com/allwinner-zh/bootloader/issues/5.

It’s difficult to make everyone happy, but we believe Allwinner will do better and better, and give more and more help to the developers, and we believe Allwinner will be accepted by more and more developers.

The announcement claims “the CedarX media codec framework is now released with full open source code under the LGPL license”. That actually means there’s an open source API to access the closed source binaries that’s released under the LGPL license. The good news is the VP6 code that could infringe on On2/Google copyrights has now been removed and they are using ffmpeg instead.

So I asked on linux-sunxi IRC channel to find out if there was real progress made, and soon after some more details were released on linux-sunxi mailing list, and the part that looks really bad is:

264FillDefaultRefList() and a lot of code around it is straight out of the libavcodec h264 decoder. The original name for that function is ff_h264_fill_default_ref_list() in libavcodec/h264_refs.c: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264_refs.c#L115 This is new, as some totally different code for h264 was available in the previous versions of the cedarx binaries.

This looks like Allwinner reached a new low, as it would mean Allwinner purposely renamed some function from LGPL code to make it look like it was their own. However, another email on arm-netbook mailing list by a soon-to-be Allwinner’s software engineer gives some more light to what actually happened here:

I can explain the whole process in a whole detail, because I was directly involved in the process of this decision and I can tell where this is going right now:

The rename was done to fix the LGPL violations by adding a wrapper for the GPLed libraries which will be LGPLed and published. This way we have Binary<->LGPLed open source code<->GPL libraries

Next step will be to drop the whole “we ship our own SDK”-thing and move over to stream our code into the existing open source alternatives.

But until the FOSS libraries have all the functionality from the shipped SDK we can not just stop supporting our customers in China. Also we can not suddenly make it open source for the following reasons:

  • Some engineers and managers do not fully comply with the GPLing of their code yet.
  • The code has awful coding style and my armcc refuses to compile at least 2/3 of the code because of the Chinese comments.
  • Also some of the engineers obviously have never heard the term “revision control” which makes it even harder to locate the actual version of the source code from which the binary was compiled from… -.-‘

So Allwinner has not make it right just yet, but at least they are trying, and even hiring western engineers to try fixing the licensing issues. I’m just not sure the current plan for binary<->LGPL wrapper<->GPL is actually valid, but at least they have longer term plan to upstream changes to open source project, at least that’s the way to understand the email above. Beside legal and technical work, moving from closed source “license infringing” code to properly licensed code is also a social engineering task, as all stakeholders in the company and possibly their customers must be convinced proper licensing is the way to go, and not the business as usual “just copy code from the net” and ignore licensing terms as Allwinner and many other companies have done in the past.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter