Archive

Posts Tagged ‘orange pi’

$14 Orange Pi R1 Allwinner H2+ Board Comes with Two Ethernet Ports, 256 MB RAM

August 18th, 2017 9 comments

Shenzhen Xunlong has introduced the new Orange Pi R1 board with Allwinner H2+ quad core Cortex A7 processor that’s a bit different from their other models, as it includes two 10/100M Ethernet port, and should be suitable for intelligent controllers, or simple IoT gateways.

Click to Enlarge

Orange Pi R1 board specifications:

  • SoC – Allwinner H2(+) quad core Cortex A7 processor @ 1.2 GHz with Mali-400MP2 GPU
  • System Memory – 256 DDR RAM
  • Storage – micro SD card slot, 16 MB SPI flash
  • Connectivity – 2x 10/100M Ethernet (including on via RTL8152B USB to Ethernet) + 802.11 b/g/n WiFi (Realtek RTL8189ETV) with u.FL antenna connector and external antenna
  • USB – 1x micro USB OTG port
  • Expansion headers
    • Unpopulated 26-pin “Raspberry Pi B+” header
    • 13-pin header with headphone, 2x USB 2.0, TV out, microphone and IR receiver signals
  • Debugging – 3-pin header for serial console
  • Power Supply – 5V via micro USB port
  • Dimensions – 60 x 45 mm

Since it’s based on the same Allwinner H2+ processor as on Orange Pi Zero board, the extra Ethernet port is implemented via USB, and the I/O headers looks to be the same, it should be possible to run Armbian images on the board without that many modifications. The board may not be the best solution for small router, as there are already many cheap OpenWrt compatible routers that should do the job just as well, but thanks to the expansion header, it may make a useful intelligent controller or ModBus gateway to manage relays, sensors, robots, etc…

Potential Use Case for Orange Pi R1 Boards – Source: MGate MB3170 Product Page

If you have the kind of cascaded setup above, the 16MB SPI flash could save you the use of micro SD card, with network boot either from the control PC (if it is always on), or one of the Orange Pi R1 fitted with a micro SD card.

Orange Pi R1 board is sold for $13.90 plus shipping ($17.29 in total here) on Aliexpress.

Thanks to Anton for the tip

$15 Orange Pi Zero Plus Board Released with Allwinner H5 SoC, Gigabit Ethernet, WiFi, and SPI flash

August 12th, 2017 32 comments

We had Orange Pi Zero, followed by Orange Pi Zero Plus 2, then Orange Pi Zero Plus 2 H5, but now there’s another “Zero” model that’s called Orange Pi Zero Plus, which like Orange Pi Zero Plus 2 H5 board is based on Allwinner H5 processor, but adds a faster Gigabit Ethernet port, and offers a fairly different features set compared to the first Orange Pi H5 board, albeit in the same form factor.

Click to Enlarge

Orange Pi Zero Plus specifications with highlights in bold and stricken-through showing difference with Orange Pi Plus 2 H5 model:

  • SoC – Allwinner H5 quad core Cortex A53 processor with hexa core Mali-450MP4 GPU
  • System Memory – 512 MB DDR3
  • Storage – 8GB eMMC flash, micro SD card slot + 2MB SPI flash
  • Video Output – HDMI ; AV port via 13-pin header
  • Connectivity – Gigabit Ethernet, 802.11 b/g/n WiFi (Realtek RTL8189FTV) with u.FL antenna connector and external antenna. No Bluetooth
  • USB – 1x micro USB OTG port, 1x USB 2.0 host port
  • Camera – MIPI CSI port
  • Expansion headers
    • Unpopulated 26-pin “Raspberry Pi B+” header
    • 13-pin header with headphone, 2x USB 2.0, TV out, microphone and IR receiver signals
  • Debugging – 3-pin serial console header
  • Misc – 2x LEDs for power and status
  • Power Supply – 5V via micro USB port
  • Dimensions – 48 x 45 mm
  • Weight – 26 grams

The eMMC flash is gone, but has been replaced with an SPI flash that should allow for network boot without micro SD card. HDMI output is gone, so your only video output option would be via the video composite signal on the 13-pin header. Bluetooth is gone as they replaced the Ampak module by a Realtek one, and the camera connector. All those differences means the two Orange Pi H5 boards have different uses case, with the new board is better suited to headless application where you need Gigabit Ethernet connectivity, and potentially want to save a few dollars on the board price, and remove the need for storage (if you use network boot).

The board should also be compatible with Orange Pi Zero NAS expansion board, so you’d have an inexpensive micro NAS with performance and price that rivals with FriendlyELEC NanoPi NEO 2 NAS kit, minus the enclosure. 2017 has been an exciting year for affordable networked storage so far, with various options from the two lower-end solutions aforementioned, to the better upcoming ODROID-MC1, and the higher end EspressoBin board, with some interesting work also taking place on ROCK64 board.

Software-wise, it may be worth noting that there’s no stable Armbian build so far, but there are experimental Ubuntu Xenial images for Orange Pi Zero 2 H5 board with mainline Linux kernel, which should work on the new board by just changing the DTB file. However, I did use NanoPi NEO2 with Allwinner H5 as a OpenMediaVault NAS, and it worked well enough, so I would not worry too much about software support for this use case. I’m not sure about U-boot support in the SPI flash, but hoping for some feedback in the comments section.

Orange Pi Zero Plus is sold for $14.90 plus shipping ($18.29 in total here). If you’re interested in mini NAS / home cloud system, you’ll need to add the NAS expansion board for $6.98, which in my case brings the total to $27.13 including shipping. A direct comparison with NanoPi NEO2 NAS kit is not possible, since Shenzhen Xunlong micro NAS solution does not include a case, nor heatsink, but for reference, a complete NAS kit v1.2 with NEO2 board goes for $28.98 plus shipping, or $44.98 in total in my case.

How to Setup an Orange Pi Zero DIY Smart Speaker with Google Assistant SDK

July 30th, 2017 38 comments

A preview release of Google Assistant SDK working with Raspberry Pi 3 and other ARMv7 boards was released in May, and soon after, AIY Projects Voice Kit was offered for free with Raspberry Pi Magazine in order to a complete smart speaker kit working with RPi 3. I wanted to try it on one of FriendlyELEC or Shenzhen Xunlong Allwinner board, since all we need is audio input and output, and an Internet connection. Earlier this month, I came across Orange Pi Zero Set 6 Kit that had all I needed: Orange Pi Zero ARM Linux board, an expansion board with built-in microphone and audio output jack, and a cute and small case to neatly put everything together.

Orange Pi Zero Set 6 Kit Unboxing and Assembly

Shenzhen Xunlong sent me the kit so that I can try it out.

The package includes two Orange Pi packages, the plastic case, some a bag with screws and rubber pads.

One of the package comes with Orange Pi Zero board powered by Allwinner H2+ quad core processor with 512 MB RAM, micro USB for power, 10/100M Ethernet, a USB port, a WiFi antenna, and expansion headers on the top…

Click to Enlarge

.. and a micro SD card slot on the bottom, which we’ll use to boot the operating system.

The second package is for Orange Pi Zero Interface board v1.1 with two more USB port, an IR receiver, a 3.5mm audio jack, and a built-in microphone (top right).

Click to Enlarge

The next step is just to plug the interface board into Orange Pi Zero board, bending the WiFi antenna between the two boards…

Click to Enlarge

… before pushing the board from the bottom of the enclosure, tightened the cover with the 4 screws, and adding the 4 rubber pads.

Click to Enlarge

Installing Ubuntu on Orange Pi Zero & Configuring Networking and Audio Input & Output

Google Assistant SDK requires Ubuntu or Debian operating system, so I downloaded Ubuntu server legacy image on Armbian website, since the mainline image does not support XR819 WiFi module at all. I then extracted Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113.7z and flashed Armbian_5.30_Orangepizero_Ubuntu_xenial_default_3.4.113.img  with Etcher on a micro SD card using my main computer.

Once it was done, I took the micro SD card to Orange Pi Zero board, connected my own speakers to the 3.5mm audio jack and USB for power, as well as a 5V/2A USB charger to power the system.

Click to Enlarge

You may notice an extra USB dongle on the picture above, but we’ll talk about that later.

I’ll use WiFi to test Google Assistant, but I also connected an Ethernet cable to make it easier for first time setup. If you don’t have Ethernet, you could also connect the board to a TV via HDMI first.

After looking up the IP address of the board in my router, I connected with SSH using root (password: 1234):

The very first boot it will ask your to change the root password, and create a new user. You may want to create “pi” user at this stage. We should not be able to access the command, and run the following command to configure Orange Pi Zero board:

I first changed the timezone.

Then selected WiFi – Connect to wireless access point to connect to my WiFi router.

We can quit armbian-config, and optionally disconnect the Ethernet cable, and reconnect SSH over WiFi, which I did.

Back in the command line, I tested audio recording & playback with the built-in microphone and speakers using the same commands as in ReSpeaker guide:

The first command recorded my voice, and then I pressed Ctrl+C to stop, and play it back with the second command. I worked fine for me. If you wish you can adjust the playback and recording volume with:

We’ll also need to create .asoundrc file for Google Assistant to work with ALSA. For we need to note the microphone card and device number (0,0):

as well as speaker card and device number (0,0):

If you want to use your TV as speaker, you’d use Card 1, device: 0.

If you have not created a pi or other user yet, you’ll want to add one belonging to sudoers and audio groups, and go the home directory:

Now create a ~/.asoundrc with the following match the card and device for our mic and speaker:

[Update: As we’ll see below this won’t work with the built-in microphone, but as indicated in the comments below, this can be fixed by changing pcm.mic section with:

I have not changed the rest of the post, but the built-in microphone on Orange Pi Zero does work now]

Setting Up Google Assistant on Orange Pi Zero

Now that audio and networking are both setup and working, we can carry on with the instructions to install Google Assistant SDK and demo. Those are the same for all boards, and I’ll describe them below in details.

We need to configure a Google Developer Project.

Go to the Project page in Google Platform Console, and click on Create Project.

I called it Orange Pi Zero Smart Speaker, and clicked on Create.

Next, we’ll need to enable Google Assistant API for our project. Simply click on Enable on that page. The “Orange Pi Zero Smart Speaker” project was already selected in my case.

We’re then being asked to create an OAuth Client ID. I only filled my email address, and a product name before clicking on Save.

Select Other in the next page, and give another name – I used “Linux Thingy” – before clicking on Create.

You should now see an OAuth client pop-up window with your client ID and secret. You can just click OK, no need to copy or save either.

Instead we’ll download client_secret_[your_client_id].json file on the next page by clicking on the arrow circled in red.

I then copied that file to Orange Pi Zero board using scp (change [your_client_id] with your actual client ID):

Now that we have configured most options we need in Google Cloud platform, let’s install Python 3 and dependencies:

At this stage to need to make sure “Web & App Activity” with “Include Chrome browsing history and activity from websites and apps that use Google services”  checked, Device Information and Voice & Audio Activity are enabled in the Activity Controls page. All options were already enabled for me by default.

We can now install Google Assistant SDK package including library and sample code:

and the authorization tool:

Run the authorization tool:

This should show a text reading “Please visit this URL to authorize this application: https://….”. Select the URL and open it in a web browser, and copy/paste the authorization code you see in the web browser back into the terminal.

We can now start the demo

That’s the initial output

I went to say “OK Google” and “Hey Google”, and… nothing. No answer, and no info in the terminal window either. I tried several times, and also played with:

as explained in the troubleshooting section in Google Assistant documentation, incrementing the value by 6 until I reached -60, before running the demo, and no luck. So I thought maybe my “American accent” could have been the problem, so I launched Google Translate in my phone, and make it say “OK Google”. Same disappointing result. I went to Google Cloud Console, and good see some activity, but with 100% errors.

Click to Enlarge

So I did some searching on the web, I could find one person changing the .asoundrc file, but I did not work for me with the file generating plenty of sound related errors when running the demo, and another fix a similar problem by changing the microphone. Which reminded me, I had bought a cheap USB microphone on eBay for $1.45. So I connected it to Orange Pi Zero board, and that’s the extra USB dongle in the photo with the speakers higher in this guide, and check the card and device number:

We can see the USB card 2, device 0, so I update the relevant line in pcm.mic section in .asoundrc:

and ran the demo again. Success! The device would reply to make “OK Google” request, and tell me the time, my name, the weather for tomorrow, sing a song, do some calculus and so on.

This is what the output looks like when the demo works:

Bear in mind that Google Assistant SDK is in preview mode right now, and it’s mainly aimed at developers. First, I understand you can’t do automation tasks, or play music like you can on an actual Google Home. The good news is that you can roll you own implementation, and for example, somebody made his AIY Project Voice Kit work with Google Music, something you should be able to reproduce on other boards. Google Home also includes a microphone array, which will make hot word detection more reliable even in noisy environment. Orange Pi Zero + USB microphone did a decent job though, as I could use it 5 or more meters away.

Next time you boot the board, you can login as pi user, and run the following commands to run the demo:

You could also use systemd to automatically start the demo, or your own implementation, and I did so with instructions adapted from Nordic Semi’s Google Assistant Wiki.

First, create /etc/systemd/system/google-assistant-demo.service file with the following content:

I add “Type = idle” as other the app would not run, possibly because it would start after the audio was enable. I did not find any audio specific services handled by systemd, so “type = ilde” will make sure the service starts after other are loaded.

Now we can enable the service, and start it:

The demo will run at this point, and it will start automatically each time your boot the board. I played with it for several hours and it seemed stable. Some people have however expressed concered about WiFi on Orange Pi Zero, so if you encountered some instability issues, you may want to switch to Ethernet instead, or use a WiFi USB dongle, or use another Orange Pi or NanoPi board with a time-proven WiFi module.

I’d like to thank Shenzhen Xunlong Software for sending the kit my way. If you are interested, you can purchase it for $12.95 + shipping.

Office, Factory, Business Model, and Ambitious Plans of Shenzhen Xunlong Software, Orange Pi Maker

July 15th, 2017 60 comments

Parts of the article have been updated after Steven Zhao update at the end.

Since Steven Zhao is the only one contact person at Shenzhen Xunlong Software, the maker of Orange Pi boards, and the company appears to be focusing on hardware development more than on software and documentation, so at one point in time, people were speculating that it could be one person operation 🙂 Last year, Steven told us there were over 10 persons working in the office. But hey, photos, or it’s fake! We now have a definite proof as Renaud Coustellier visited Steven Zhao in his Shenzhen Offices, and published a report on Minimachines (in French). I’ll provide a summary below, but visit Minimachines website, if you want the full story and more pictures.

First, Shenzhen Xunlong rented a floor, or part of it, in one of the many Shenzhen office buildings, and engineers are working in the typical cubicles, you’ll find in most other companies in China. The 200 m² office is now occupied by 50 employees doing hardware design, testing, and some customer support, and another part of the office is used for shipping parcels to customer. Manufacturing takes place in another factory in a cheaper place in inner China.

Click to Enlarge

The company is not only doing development boards, but also working on projects for their customers such as point-of-sales and game consoles. Those are not Xunlong products, and Renaud was not allowed to take pictures.

Xunlong was apparently initially involved in the development of the first Banana Pi board, and then went on to create their own Orange Pi boards. We also learned the typical development cycle for a new board: two months for the first design, and one month extra for testing, before mass production, so it takes around three monthsin total. Each card has to go through hardware and software tests to pass QA.

Xunlong sells around 40,000 boards per month, but the company is ambitious with a target of around 100,000 units per month by the end of 2017, and a new 5000 m² factory is now being built in Dongguan. Another positive point is that the company plans to hire (more) software engineers in 2017, instead relying  only/mostly on external projects such as Armbian. According to the report, beside Orange Pi board samples, the company also gave $24,000 to Armbian community to help them out. Xunlong also launched an initiative to provide free development kit if you have a specific project for it that would be beneficial to both parties (but I could not find a link).

Renaud and Steven (Right)

Then we also learn a bit more how the company can make boards at such a low price, and this get interesting. This was their conversion:

  • Steven: Orange Pi can purchase a good WiFi component for $1, with which boards will have a good WiFi connection
  • Renaud: Hmmm, if the price of the components is $1, then the price will be higher to the end user, and if you tell me the price, then I know your margin…
  • Steven: No, because today, all Orange Pi boards are sold to the BoM price.
  • Renaud – Does that mean the cost of engineers, office rental, equipment for development and design, and so on, is not reflected int othe price of the board?
  • Steven: Correct.
  • Renaud: But how how is that possible?
  • Steven: We receive subsidies from the government.

There you have it. That explains everything. We all pay about 50% of what we ought to be paying thanks to the Chinese taxpayers.

Beside the new factory, Xunlong has other bigs plans, as while they now sell though Taobao in China, and Aliexpress to the rest of the world, they plan to setup their own shop, where we should be able to buy the board directly from them. They intend to expand to IoT boards with 2G to 5G boards, ARM servers, and so on, and over the next 3 years, the plan is to recruit around 500 engineers, and sell ten times more boards than Raspberry Pi foundation. Maybe subsidies will have long been gone if that happens…

[Update from Steven:

Yes, there are some mistake, maybe it is because our translator wrong expressing.

1. About time arrangement for designing a new board: yes, we need 2 month for first design which also include samples production, but usually we take only 40-45days(30working days). Then after tested at customer side, we need around one month (20working days) for mass production. Which mean for a new product we need 3 months if do not take customer’s time calculating in testing.

2.  The new factory size is only 5000㎡ in Dongguan, and yes, we will donate Armbian $24,000 by the end of this year, for now we have only donated them part of the total amount.

3. About our cost and subsidies from government, yes, we sell most of our product at BOM cost, but we also have some models that still have margin profits, like PC Plus, Plus 2. If we keep running behind our expenses, how could government could support us? Government would not support you, if you have no income, they could only support you parts of the cost, like engineering cost, or part or office renting cost. So most of the cost should cover by ourself, we need to figure out how to how to sell more with margin profit. As you see, we do it now.

Finally, yes, we know what our weakness is, we will try to improve it in the following days.]

Thanks to Nobe for the tip.

$13 Orange Pi Zero Set 6 Kit Could Make an Inexpensive DIY Google Home Alternative

July 13th, 2017 7 comments

Since Google released the Google Assistant SDK for Raspberry Pi 3, and other ARMv7 boards, I thought I should it try myself on one of the tiny headless boards I have, as you just need audio output and a microphone. I first planed to use NanoPi NEO board with NanoHAT PCM5102A audio board, a cheap USB microphone, and pair of speakers, but this morning, I’ve come across Orange Pi Zero Set 6 kit that looks perfect for this applications and sells for just $12.95 plus shipping ($18.27 in total for me) with Orange Pi Zero board, Orange Pi Zero interface board, and a case.

Orange Pi Zero board is powered by Allwinner H2+ quad core Cortex A7 processor with 512MB RAM, and can run the required Ubuntu/Debian distribution using one of the Armbian images, and connected to the Internet over Ethernet or WiFi, however if you want to use the latter, be aware that stability and performance issues have been reported.

Microphone and audio output are added using Orange Pi Zero Interface Board V1.1 which adds one built-in microphone, and a 3.5mm audio jack where you should be able to connect your speakers. You’ll also get two extra USB host ports.

All you need to complete the hardware setup is a micro SD card, a pair of speakers, and a USB power supply. I’ve seen some demo requiring that you press a button before speaking. That will not be possible with this kit unless you add some button connected through USB or GPIO, but hopefully it’s possible to use the “hot word” technique to avoid adding that extra button.

The instructions on Google developer website for ARM boards seem clear enough, but since Aliexpress lists over 3,000 orders for that “Set 6” kit, I assumed somebody already tried that and wrote some specific instructions. Sadly, I had no luck finding such instructions, but I noticed somebody did something similar with Orange Pi PC board that includes a microphone and audio jack, and he uses a jar as an enclosure.

Ficus Online also posted the instructions on his blog, where he explains how to use a hotword too, so in theory you would not need any button. You may want to check their full website, as they use this Smart Jar as a home automation gateway with other purposes than just Google Assistant. If alternatively, you have some 96Boards on hand, there’s a specific Google Assistant project being worked on. If you prefer Amazon Alexa, there’s a project for Orange Pi + Alexa on Github, but it has not been updated for a year.

NetBSD is Now Running on Allwinner H3 Boards

July 11th, 2017 7 comments

Most people will run Linux kernel on development boards because it does the job, and that’s usually the only option. But others have been working on NetBSD kernel for Allwinner H3 boards, and it’s now running on various H3 boards with serial console, USB, Ethernet, SD card, and eMMC flash working.


Jared McNeill explains they first had to deal with low-level code to initialize the CPU and MMU, before using a U-boot layer to disguise NetBSD as the Linux kernel in order to load kernel and device tree file. The code then jumps to the generic ARM FDT implementation of initarm to relocate DTB data and perform other steps, and finally they can enumerated devices. This is explained in greater details in the aforelinked blog post on NetBSD website.

Jared tested the implementation on NanoPi NEO and Orange Pi Plus 2E, but others have reported success on various hardware based on Allwinner H3 processor. Other ARM development boards have been supported since 2015 by NetBSD 7.0 and greater with Raspberry Pi 2, ODROID-C2, BegleBone Black. Allwinner A20/A31, and others, but the work done on Allwinner H3 is different, as it’s the first implementation to use device tree, and eventually it should be possible to ship a single GENERIC evbarm kernel for all boards.

Thanks to Geokon for the tip.

How to Use Octoprint on Orange Pi Lite Board, Amlogic S905X and S912 TV Boxes

July 11th, 2017 9 comments

Karl here. This was article originally going to be how to setup Octoprint 3D printer server on an Orange Pi Lite. But after looking and running through the instructions it seemed like it would be too much so I created an img to simplify things. I also explored running Octoprint on an Amlogic S905x or S912 device and it turned out to be an even better solution. You get a case, power supply, and eMMC flash storage.

What is Octoprint?

I use Octoprint mainly for its ability to start and stop prints without having to use an sd card. Time lapse is also a nice feature. And one last thing is that I setup a pushbullet notification when it is complete. For a full list of features check out http://octoprint.org/.

What is needed?

Orange Pi Lite Kit – Click to Enlarge

Octoprint Setup

Common Instructions

  • Download Orange Pi Lite img from here and Amlogic img from here.
  • Burn to your micro SD card with Win32DiskImager, dd, or Etcher..

Credentials

Login: root password: octoprint
Login: cnx password: cnx

Hostname

Orange Pi Lite: orangeocto.local
Amlogic: amlogicocto.local

Amlogic Instructions

  1. Boot and find the update app
  2. Click Select
  3. Choose the aml_autoscript.zip
  4. Click Update
  5. Then Update again
  6. Once it boots log in with root and run “sudo /root/install.sh”
  7. Now we need to see if WiFi is working. Run “nmtui”. This should be self explanatory, and if you see your access point stop. Don’t bother to connect. Exit run “shutdown” wait for it shutdown, remove the SD card, and pull the power and power back on. You can skip the next few steps in this section.
  8. If you did not see your access point exit out of “nmtui” and run the command “sudo modprobe wifi_dummy” repeat looking for access point in step 7.
  9. If you still don’t see your access point run the command “sudo modprobe dhd” repeat looking for the access point in step 7.
  10. If you have to modprobe either to get wifi working once you boot from the internal storage log in with root and run the command “sudo nano /etc/rc.local” and add your “sudo modprobe xxxxxx“ command before exit 0. Cntrl X then y then enter to exit nano and save. Reboot and continue.

Orange Pi Lite Instructions

  1. Connect a keyboard and connect to a monitor or tv
  2. Login with root
  3. Run the command “sudo cfdisk /dev/mmcblk0”
  4. Delete /dev/mmcblk0p1 with the arrow keys
  5. Make a new one and it should fill in the full size of your sd card.
  6. Then finally write. It will prompt you are you sure and type out yes.
  7. Arrow over to quit and enter.
  8. Reboot with the command “sudo reboot” and wait for the Orange Pi to reboot.
  9. Log back in with root and run the command “sudo resize2fs /dev/mmcblk0p1
  10. Reboot again with the command “sudo reboot” and wait for the Orange Pi to reboot.

Remaining Octoprint detup instructions common to all devices

  1. Log back in and run the command “nmtui” to connect to your network. This should be self explanatory. After connecting to wifi if you choose to set a static IP address quit and go back in to nmtui and edit the connection to set the IP address. When setting the IP address suffix the IP address with a /24 to denote a 255.255.255.0 subnet mask
  2. Finally quit and run the command “shutdown” and wait for it to turn off.
  3. Move the Octoprint server and connect to your printer.
  4. To log in open your browser and navigate to http://x.x.x.x:5000 or orangeocto.local:5000 or amlogicocto.local:5000.
  5. Run through the setup it is self explanatory and in settings add /home/pi/OctoPrint/ as your git update path.

Notes

I really recommend setting static IP addresses through your router if it has the ability. Or you can use the .local address above if you have zeroconf/avahi on your machines .

I also recommend the Amlogic server. You get a board, enclosure, power supply, and eMMC flash to run off of. You still need an SD card to get started, but it is not permanent. I ran into trouble on Orange Pi Lite, but it does work. I think the Orange Pi Lite board I received is flakey.

You have a lot of headroom on these to provide other services, e.g.. home automation, media server with no transcoding, NAS, Minecraft server, or anything else that runs on Linux.

Big thanks to balbes for making Linux work,  Jean-Luc, and Armbian forum members who tested Orange Pi Lite version.

Tested on

  • X96 1/8 S905X with wifi dummy
  • X96 2/16 S905X with wifi dummy
  • Tanix TX 5 Pro S905X with dhd
  • Yoka KB2 S912 with wifi dummy

It looks like Realtek (RTLxxxx) WiFi chips need the wifi dummy, and Ampak (apxxxx) chips need the dhd.

Cura

Cura 2.6 came out just just recently with the ability to connect directly to Octoprint. It is really cool feature.

To setup login to octoprint and grab API key.

Then open Cura 2.6 and go to manage printers. Highlight printer and press Connect Octoprint.

Add an Octoprint instance, set preferences, and input API key.

Now you can start prints directly from Cura and monitor prints.

Click to Enlarge

I would really like to thank Gearbest for sending the Orange Pi Lite board, power supply, and SD card, as well as Amlogic boxes and 3D printers from previous reviews. If you decide to do this project yourself, please think about ordering from Gearbest through our links. It helps us out to continue to experiment with different hardware and provide these articles.

Linux 4.12 Release – Main Changes, ARM & MIPS Architectures

July 3rd, 2017 6 comments

Linus Torvalds has just released Linux 4.12:

Things were quite calm this week, so I really didn’t have any real reason to delay the 4.12 release.

As mentioned over the various rc announcements, 4.12 is one of the bigger releases historically, and I think only 4.9 ends up having had more commits. And 4.9 was big at least partly because Greg announced it was an LTS kernel. But 4.12 is just plain big.

There’s also nothing particularly odd going on in the tree – it’s all just normal development, just more of it that usual. The shortlog below is obviously just the minor changes since rc7 – the whole 4.12 shortlog is much too large to post.

In the diff department, 4.12 is also very big, although the reason there isn’t just that there’s a lot of development, we have the added bulk of a lot of new  header files for the AMD Vega support. That’s almost exactly half the bulk of the patch, in fact, and partly as a result of that the driver side dominates  everything else at 85+% of the release patch (it’s not all the AMD Vega headers – the Intel IPU driver in staging is big too, for example).

But aside from just being large, and a blip in size around rc5, the rc’s stabilized pretty nicely, so I think we’re all good to go.

Go out and use it.

Oh, and obviously this means that the merge window for 4.13 is thus open. You know the drill.

Linus

Linux 4.11 provided various improvements for Intel Bay Trail and Cherry Trail targets, OPAL drive support, pluggable IO schedulers framework, and plenty of ARM and MIPS changes.

Some of the most notable changes in Linux 4.12 include:

  • Initial AMD Radeon RX Vega GPU support
  • BFQ (Budget Fair Queuing) and Kyber block I/O schedulers have been merged, meaning the kernel now has two multiqueue I/O schedulers suitable for various use cases that should improve the responsiveness of systems.
  • Added AnalyzeBoot tool to create a timeline of the kernel’s bootstrap process in HTML format.
  • Implemented “hybrid consistency model” for live kernel patching in order to enable the applications patchsets that change function or data semantics. See here for details.
  • Build of Open Sound System (OSS) audio drivers has been disabled, and will likely be removed in future Linux releases
  • AVR32 support has been removed

Some of the bug fixes and improvements for the ARM architecture include:

  • Allwinner:
    • Allwinner H3 –  USB OTG support
    • Allwinner H5 – pinctrl driver, CCU (sunxi-ng) driver, USB OTG support
    • Allwinner A31/H3 SPI driver – Support transfers larger than 64 bytes
    • AXP PMICs – AXP803 basic support, ACIN Power Supply driver, ADC IIO driver, Battery Power Supply driver
    • Added support for: FriendlyARM NanoPi NEO Air, Xunlong Orange Pi PC 2
  • Rockchip:
    • Updates to Rockchip clock drivers
    • Modification for Rockchip PCI driver
    • RK3328 pinctrl driver
    • Sound support for Radxa Rock2
    • USB 3.0 controllers for RK3399
    • Various changes for RK3368 (dma, i2s, disable mailbox per default, mmc-resets)
    • Added Samsung Chromebook Plus (Kevin) and the other RK3399 “Gru family” of ChromeOS devices.
    • Added Rockchip RK3288 support for ASUS Tinker board, Phytec phyCORE-RK3288 SoM and RDK; added Rockchip RK3328 evaluation board
  • Amlogic
    • New clock drivers for I2S and SPDIF audio, and Mali GPU
    • DRM/HDMI support for Amlogic GX SoC
    • Add GPIO reset to Ethernet driver
    • Enable PWM LEDs and LEDs default-on trigger
    • New boards: Khadas VIM, HwaCom AmazeTV
  • Samsung
    • Split building of the PMU driver between ARMv7 and ARMv8
    • Various Samsung pincrl drivers updates
    • ARM DT updates:
      • Enhancements to PCIe nodes on Exynos5440.
      • Fix thermal values on some of Exynos5420 boards like Odroid XU3.
      • Add proper clock frequency properties to DSI nodes.
      • Fix watchdog reset on Exynos4412.
      • Fix watchdog infinite interrupt in soft mode on Exynos4210, Exynos5440, S3C64xx and S5Pv210.
      • Enable watchdog on Exynos4 and S3C SoCs.
      • Enable DYNAMIC_DEBUG because it is useful for debugging
      • Increase CMA memory region to allow handling H.264 1080p videos.
    • ARM64 DT updates:
      • Exynos power management drivers support now ARMv8 SoC – Exynos5433 – so select them in ARCH_EXYNOS
      • Enable few Exynos drivers (video, DRM and LPASS drivers) for supported ARMv8 SoCs (Exynos5433 and Exynos7)
      • Add IR, touchscreen and panel to TM2/TM2E boards
      • Add proper clock frequency properties to DSI nodes
  • Qualcomm
    • Enable options needed for QCom DB410c board in defconfig
    • Added new PHY driver for Qualcomm’s QMP PHY (used by PCIe, UFS and USB), and Qualcomm’s QUSB2 PHY
    • Qualcomm Device Tree Changes
      • Add Coresight components for MSM8974
      • Fixup MSM8974 ADSP XO clk and add RPMCC node
      • Fix typo in APQ8060
      • Add SDCs on MSM8660
      • Revert MSM8974 USB gadget change due to issues
      • Add SCM APIs for restore_sec_cfg and iommu secure page table
      • Enable QCOM remoteproc and related drivers
    • Qualcomm ARM64 Updates for v4.12
      • Fixup MSM8996 SMP2P and add ADSP PIL / SLPI SMP2P node
      • Replace PMU compatible w/ A53 specific one
      • Add APQ8016 ramoops
      • Update MSM8916 hexagon node
      • Add PM8994 RTC
  • Mediatek
    • New clock drivers for MT6797, and hi655x PMIC
    • Fix Mediatek SPI (flash) controller driver
    • Add DRM driver and thermal driver for Mediatek MT2701 SoC
    • Add support for MT8176 and MT817x to the Mediatek cpufreq driver
    • Add driver for hardware random generator on MT7623 SoC
    • Add DSA support to Mediatek MT7530 7-port GbE switch
    • Add v4l2 driver for Mediatek JPEG Decoder
  • Misc
    • Added ARM TEE framework to support trusted execution environments on processors with that capability (e.g. ARM CPUs with TrustZone)
    • ARM64 architecture now has kernel crash-dump functionality.
  • Other new ARM hardware platforms and SoCs:
    • NXP – NXP/Freescale LS2088A and LKS1088A SoC, I2SE’s i.MX28 Duckbill-2 boards, Gateworks Ventana i.MX6 GW5903/GW5904, Zodiac Inflight Innovations RDU2 board, Engicam i.CoreM6 Quad/Dual OpenFrame modules, Boundary Device i.MX6 Quad Plus SoM.
    • Nvidia – Expanded support for Tegra186 and Jetson TX2
    • Spreadtrum – Device tree for SP9860G
    • Marvell – Crypto engine for Armada 8040/7040
    • Hisilicon – Device tree bindings for Hi3798CV200 and Poplar board
    • Texas Instruments – Motorola Droid4 (OMAP processor)
    • ST Micro – STM32H743 Cortex-M7 MCU support
    • Various Linksys platforms,  Synology DS116

The MIPS architecture also had its share of changes:

  • Fix misordered instructions in assembly code making kenel startup via UHB unreliable.
  • Fix special case of MADDF and MADDF emulation.
  • Fix alignment issue in address calculation in pm-cps on 64 bit.
  • Fix IRQ tracing & lockdep when rescheduling
  • Systems with MAARs require post-DMA cache flushes.
  • Fix build with KVM, DYNAMIC_DEBUG and JUMP_LABEL
  • Three highmem fixes:
    • Fixed mapping initialization
    • Adjust the pkmap location
    • Ensure we use at most one page for PTEs
  • Fix makefile dependencies for .its targets to depend on vmlinux
  • Fix reversed condition in BNEZC and JIALC software branch emulation
  • Only flush initialized flush_insn_slot to avoid NULL pointer dereference
  • perf: Remove incorrect odd/even counter handling for I6400
  • ftrace: Fix init functions tracing
  • math-emu – Add missing clearing of BLTZALL and BGEZALL emulation counters; Fix BC1EQZ and BC1NEZ condition handling; Fix BLEZL and BGTZL identification
  • BPF – Add JIT support for SKF_AD_HATYPE;  use unsigned access for unsigned SKB fields; quit clobbering callee saved registers in JIT code; fix multiple problems in JIT skb access helpers
  • Loongson 3 – Select MIPS_L1_CACHE_SHIFT_6
  • Octeon – Remove vestiges of CONFIG_CAVIUM_OCTEON_2ND_KERNEL, as well as PCIERCX, L2C  & SLI types and macros;  Fix compile error when USB is not enabled; Clean up platform code.
  • SNI – Remove recursive include of cpu-feature-overrides.h
  • Sibyte – Export symbol periph_rev to sb1250-mac network driver; fix Kconfig warning.
  • Generic platform – Enable Root FS on NFS in generic_defconfig
  • SMP-MT – Use CPU interrupt controller IPI IRQ domain support
  • UASM – Add support for LHU for uasm; remove needless ISA abstraction
  • mm – Add 48-bit VA space and 4-level page tables for 4K pages.
  • PCI – Add controllers before the specified head
  • irqchip driver for MIPS CPU – Replace magic 0x100 with IE_SW0; prepare for non-legacy IRQ domains;  introduce IPI IRQ domain support
  • NET – sb1250-mac: Add missing MODULE_LICENSE()
  • CPUFREQ – Loongson2: drop set_cpus_allowed_ptr()
  • Other misc changes, and code cleanups…

For further details, you could read the full Linux 4.12 changelog – with comments only – generated using git log v4.11..v4.12 --stat. You may also want to ead kernelnewsbies’s Linux 4.12 changelog once it is up.