Archive

Posts Tagged ‘raspberry pi’

Top Programming Languages & Operating Systems for the Internet of Things

May 19th, 2017 3 comments

The Eclipse foundation has recently done its IoT Developer Survey answered by 713 developers, where they asked  IoT programming languages, cloud platforms, IoT operating systems, messaging protocols (MQTT, HTTP), IoT hardware architectures and more.  The results have now been published. So let’s have a look at some of the slides, especially with regards to programming languages and operating systems bearing in mind that IoT is a general terms that may apply to sensors, gateways and the cloud, so the survey correctly separated languages for different segments of the IoT ecosystem.

Click to Enlarge

C and C++ are still the preferred languages for constrained devices, and developers are normally using more than one language as the total is well over 100%.

Click to Enlarge

IoT gateways are more powerful and resourceful (memory/storage) hardware, so it’s no surprise higher level languages like Java and Python join C and C++, with Java being the most used language with 40.8% of respondents.

Click to Enlarge

When it comes to the cloud with virtually unlimited resources, and no need to interface with hardware in most cases, higher level languages like Java, JavaScript, Node.js, and Python take the lead.

Click to Enlarge

When it comes to operating systems in constrained IoT devices, Linux takes the lead with 44.1%, in front of bare metal (27.6%) and FreeRTOS (15.0 %). Windows is also there in fourth place probably with a mix of Windows IoT core, Windows Embedded, and WinCE.

Click to Enlarge

Linux is the king of IoT gateways with 66.9% of respondent using it far ahead of Windows in second place with 20.5%. They have no chart for the cloud, probably because users just don’t run their own Cloud servers, but relies on providers. They did ask specifically about the Linux distributions used for IoT projects, and the results are a bit surprising with Raspbian taking the lead with 45.5%, with Ubuntu Core following closely at 44.4%.

Click to Enlarge

Maybe Raspbian has been used during the prototyping phase or for evaluation, as most developers (84%) have been using cheap development boards like Arduino, BeagleBone or Raspberry Pi. 20% also claim to have deployed such boards in IoT solutions.

Click to Enlarge

That’s only a few slides of the survey results, and you’ll find more details about Intel/ARM hardware share, messaging & industrial protocols, cloud solutions, wireless connectivity, and more in the slides below.

Via Ubuntu Insights

Android Things Developer Preview 4 Released with Google Assistant SDK Support

May 18th, 2017 2 comments

Earlier this month, Google released a preview of the Google Assistant SDK that works on boards running Debian like the Raspberry Pi 3, and even launched AIY Project Voice Kit for the later. You can now play with Google Assistant on Android Things as the company has just released Android Things Developer Preview 4 with support for Google Assistant SDK.

The operating systems works on any Android Things certified devices, but the example instructions  for Google Assistant API on Android Things also include steps to use Raspberry Pi 3 board together with AIY Projects Voice kit.

The developer preview 4 also adds I2S to the peripheral I/O API and is demonstrated in the aforementioned example, and new hardware support with NXP i.MX7D based Pico Board equipped WiFi & Bluetooth, Ethernet, USB ports, an audio jack, and an I/O expansion port.

Pico Board with NXP i.MX7D SoM

Android Things DP4 also brings the ability for developers to enable/disable Bluetooth profiles at run time. Finally, Google mentioned the open source hardware Edison Candle to show an example of Android Things hardware, which we shortly covered previously. Separately, Rockchip published a press release about a Rockchip RK3229 solution supporting the Google Assistant SDK and Android Things. Sadly, few details are provided in the PR, and RK3229 devkit is not listed in Android Things Hardware page.

You can download Android Things DP4 in the developer preview page.

NAS Kit v1.2 Gets Support for NanoPi NEO 2, an UAS Capable USB to SATA Bridge, and an RTC Battery

May 12th, 2017 32 comments

Last month, FriendlyELEC launched a NAS Dock kit for NanoPi NEO board, but they’ll already removed it from their store. That’s because they have a new version NAS Dock v1.2 that also supports NanoPi NEO 2 with Gigabit Ethernet, replaces JMicron JM20329 by UAS capable JMicron JMS567 USB 3.0 to SATA bridge, and adds an RTC battery.

The rest of NAS Dock Kit v1.2 specifications remain the same:

  • 1-bay NAS Dock expansion board with
    • JMicron JMS567 USB 3.0 to SATA bridge
    • SATA connector for 2.5″ HDD drive
    • Extra USB host port
    • On/off switch, and dual color status LED
    • Header to connect NanoPi NEO / NEO 2 board
    • 12V DC power input
    • Dimensions – 151 x 89.7 mm
  • NS-120 aluminum enclosure (154 x 100 x 47.5 mm, 414 grams)
  • Heatsink set for NanoPi NEO / NEO 2
  • 4x M3 6mm screws, 8x M2.5 6 mm screws
  • Four rubber pads
  • Front and back covers

Since NEO 2 has a low profile Ethernet jack, the company provides both NEO and NEO 2 back covers in the kit. It’s probably less hassle than providing two kits.

Software has also improved, as while the company still provides an OpenMediaVault image, it’s now based on Linux 4.11 + Debian 8. You’ll find the download links and instructions in the Wiki. FriendlyELEC also added the better iozone benchmark to the quick hdparm test to compare the “SATA” performance to Raspberry Pi 3, NanoPi NEO, and NanoPi NEO 2 boards.

They should really have done a file copy test over Gigabit Ethernet, as NanoPi NEO 2 should be about 2 to 3 times faster while copying a large file. Raspberry Pi 3 shared Ethernet and USB bandwidth may also affect the performance badly in some specific use cases, while NanoPi NEO 2 won’t have this type of problem since Ethernet and USB are two separate interfaces in Allwinner H5 processor.

The other good news is that despite the improvements, FriendlyELEC NAS Dock Kit price has not changed, and it is still sold for $12.99 + shipping. You’ll also need a  $14.99 NanoPi NEO 2, a micro SD card, a 12V/2A power supply to complete the setup. In other news, the company has also introduced a kit with NanoPi NEO 2 board, and a cute metal case with OLED display going for $34 in total (board included).

Meet Zynqberry, a Xilinx Zynq FPGA Board with Raspberry Pi 2/3 Form Factor

May 10th, 2017 19 comments

Earlier this year, I wrote about Trenz Electronic’s Xilinx Zynq Ultrascale+ system-on-module, but I’ve just found out I missed another interesting product from the company. The ZynqBerry is a board powered by Zilinx Zync Z-7007S or Z-7010 ARM + FPGA SoC with Raspberry Pi 2/3 form factor.

Click to Enlarge

ZynqBerry specifications:

  • SoC
    • Xilinx Zynq XC7Z007S-1CLG225C (Z-7007S) single core ARM Cortex-A9 MPCore up to 766MHz + FPGA with 23K logic cells
    • Xilinx Zynq XC7Z010-1CLG225C (Z-7010) dual core ARM Cortex-A9 MPCore up to 866 MHz + FPGA with 28K logic cells
  • System Memory – 128 or 512 MB DDR3L
  • Storage – 16 MB Flash SPI flash + micro SD card slot
  • Video Output – HDMI, MIPI DSI interface
  • Audio Output – HDMI, 3.5mm audio jack (PWM audio only)
  • Connectivity – 100 MBit Ethernet via (LAN9514 USB Hub with Ethernet
  • USB – 4x USB 2.0 host ports
  • Camera – MIPI CSI-2 interface
  • Expansion – 40-pin Raspberry Pi compatible header
  • Debugging – USB UART and JTAG ARM & FPGA debug via micro USB
  • Power Supply – 5V via micro USB port
  • Dimensions – Raspberry Pi form factor

TE0726-03

Three different hardware versions of the board are available:

  • TE0726-03R – Minimal version with Xilinx Z-7010, 128 MB RAM, no Ethernet, no USB, no HDMI, no MIPI connectors – 79 Euros
  • TE0726-03M – Xilinx Z-7010 with 512 MB RAM – 109 Euros
  • TE0726-03-07S-1C – New model equipped with Xilinx Z-7007S + 512 MB RAM – 99 Euros

The ARM core(s) on the board run PetaLinux, and FPGA part can be programmed using Vivado Design Suite. You’ll find software and hardware documentation, and demos (HDMI, SDR, ALSA, CSI) in the Wiki. Some knowledge of German may be useful in the download area.

ZynqBerry boards can be purchased directly on Trenz Electronic website.

AIY Projects Voice Kit Transforms Raspberry Pi 3 Into Google Home, Comes Free with Raspberry Pi Magazine

May 5th, 2017 11 comments

We’ve just reported about the preview release of Google Assistant SDK that works on the Raspberry Pi 3, and other boards with a microphone, speakers, and access to Internet. The Raspberry Pi foundation and Google have now made it even easier, as they launched AIY Projects Voice Kit with a Google Voice HAT, a speaker, a stereo microphone Voice HAT board, a button, a few cables, and a cardboard case.

You’ll just need to add your own Raspberry Pi 3, follow the instructions to assemble kits, load and setup the software. Once this is all done, you’ll be able to press the top button, asking anything you want to Google Voice, including the weather.

Price? Sort of free, as it comes with MagPi 57 magazine, where you’ll also find detailed instructions for the kit. Google AIY Projects got its name from a mix between (DIY) and artificial intelligence (AI), and considering it’s “Projects” and not just “Project”, we can expect more kits in the future.

Creality CR-10 3D Printer Review – Part 2: Tips & Tricks, Octoprint, and Craftware

May 5th, 2017 No comments

Hey Karl again with part 2 of my 3D printing experience with the CR-10, after the first part describing CR-10 3D printer setup and first prints. The intent is to share my experiences with the CR-10 with the perspective from a noob. I have to say if you are hard heading like I am, and do a lot of research but don’t fully listen to what you are reading, you are going to waste a lot of filament and time. I spent a couple hours a day for weeks with trial and error and watching the printer and how it works adjusting about a billion settings and testing. I am hoping this will help any current or future CR-10 owner speed up the learning curve.

Measuring Filament Diameter

The single biggest thing to improve my print quality I found was measuring the filament. I read about this several times but just didn’t do it. On some prints it didn’t matter they came out great. On others I had terrible zits and under and over extrusion. Depending on the model the effects are more pronounced.

Click to Enlarge

I purchased a cheap plastic caliper that only goes down to tenths right now so I have to do some trial and error. I plan on getting a metal one in the very near future to cut down that time that goes to the thousandths.

Before vs After – Still trying to figure out why gaps are in the print…suspect z rod issue maybe need to increase driver potentiometer. This print was done before zrod mod and I haven’t printed enough since to be conclusive)

The Batman on the left is before and batman on the right is after. It really hard to show in pictures but the one on the right is 200% better. You can see it really well on his face. Overhangs on both are a little rough. Overhangs are places in the print where you’re printing in mid air with no supports. Eventually I will look at changing the parts cooler to help with this. A different parts cooler can cool the filament faster and it will sag far less. For now on these, I can do some post print cleanup.

Here is a seem on the round part of the batman head that is just barely noticeable.

To measure unroll about 3m of filament and measure at 10 points. At each of those points measure then rotate caliper around 90 degrees. Average the 20 points and set it in your slicer filament diameter. I purchased 3 different brands and none seem close to 1.75. I been running between 1.65 and 1.69. My caliper bounces between 1.6 and 1.7. I will probably pick this one up for $27.

Extruding Temperature

The nozzle temperature calibration is the second most important procedure I found to affect prints. This one is pretty easy to do. I downloaded a customizable temperature tower. I set mine up from 225-170 at 5 deg increments with highest temp at the bottom. Then set Craftware nozzle temperature to 225 then used set this code in the layer script box to adjust the temperature at different heights. Craftware didn’t like the the STL generated by Thingiverse for this particular object. I imported into MeshMixer and exported to an OBJ to fix.

Depending on the filament you are using you can adjust the temperatures. I highly suggest testing outside the manufactured suggested temperature. The wood filament that I purchased from GearBest works best for me 10 degrees cooler than the suggested lowest temperature.

Click to Enlarge

At first I printed with trial and error. After doing a temperature tower I was way off, and noticed a difference in quality. Although this particular temperature tower doesn’t seem perfect. On the red PLA, I ended up going slightly higher than the one that looks best. On the picture, below it is really obvious with the wood filament which is better. The red and black are not as obvious. I will try some different temperature towers in the future.

Click to Enlarge

CR-10 Hardware Upgrades:  Mirror and Spacer

I made 2 modifications. I replaced the glass printbed that came with the printer with a mirror. I read mirrors have to be extremely level in order to not cause distortion. I purchased a 10 pack from a local hardware store for about 10 dollars. This gave me a good flat surface and as a benefit I didn’t have to use paper to level. I didn’t realize this for a long time, so I tweaked all kinds of settings trying to get the first layers looking better.

After trying to get a perfect first layers, I did a bunch of reading on bed leveling. I ended up purchasing some feeler gauges (ended up being a waste). It is really for me hard to level while sliding something between 2 slick surfaces. I had read a really long post in a forum about just eye it if you have a mirror. This worked really well for me. It is surprising how well you can level with the naked eye. I set the level as close to the bed as possible without touching. When I move the nozzle to the 4 corners above the glass if there is any pressure on the filament it will leave just the slightest line.This is something that you just have to do and experience to perfect.

The second thing I did was insert a washer between z axis servo and frame. After reading a few posts on the Facebook forum I decided to take a look at mine. Sure enough z axis rod was in a bind. I didn’t even realize this. But one symptom is that before this I was only able to push the z axis down. Now I am mostly able to move up and down with the stepper motors disabled.

OctoPrint

My SD card slot on the control box stopped working. I was able to get it working by bending in the outside of the reader inside the box to force the card to make contact with the pins. I knew this solution wouldn’t be a permanent solution. I can solder a new one but haven’t got to it yet. Luckily I had a Raspberry Pi my brother gave me. I never found a good use until now. There is no way I would trust a Windows box for this task. I would cry if I was in a long print and windows decided to update or some other Windows thing. I loaded Octoprint with Win32DiskImager on an SD card. Set my network settings in a text file, SSH’ed over and expanded the partition to the SD card size. I set a static IP address through my router and now back in business. I kinda wish that I started with Octoprint. It is very handy. It is much easier than constantly swapping SD cards around. One other benefit is I hooked up a webcam and I can see progress in any browser while at home… If I wanted to check from anywhere I could VPN to the house as well. It is really straight forward and easy to use. I also setup a pushbullet notification to send me a picture when a print is complete. I just started doing time lapses in Octoprint which is really a cool feature. I did have a few issues where prints would fail randomly and get a communications issue. It is a known issue on the Octoprint wiki. There were a few causes so I covered them all, and haven’t had an issue since. I did end up charging my phone with the USB cable that I was using to power the Raspberry Pi with, and I definitely attribute it to the cause of the issue. Phone charged much slower over this cable on a charger I know typically charges much faster. More on this issue in previous article here. I also replaced the long USB cable that came with the printer with a very short 4” one. While it was turned off I also installed a heat sink.

Click to Enlarge

Click to Enlarge

Click to Enlarge

Craftware

Let’s talk about slicers. Slicers take the 3D object and makes a file that the 3D printer reads, and it tells the printer how exactly to print the object. Every single move, temperature change, etc… is controlled. After much trial and error I found that Craftware works best for me as a slicer. I have not tried Simplify 3D because it costs $150. The single biggest reason IMHO is the automatic placement of the seams. Seams practically disappear in turns. Craftware will choose the seam placement in the corner over a flat surface on its own. I have some really clean prints. Right now, I am focusing on finish with as little post print cleanup. Another feature is in the slicer settings there is window that visually shows how the settings are affecting the print. One final noteworthy feature is the ability to manually place supports. Automatic works as well but I believe automatic puts too many.

I started out with default settings and did some test prints. I only tweaked very few settings.

Below are some screenshots.

Main Screen with a benchy – Click to Enlarge


There is a bug. When installing the first time, load the second to last version, and set your build volume. Then upgrade to the latest. Otherwise the size will have to be set every time it is launched.

Click to Enlarge

After placing and scaling your parts, press the slice button and change all your settings.

Click to Enlarge

Now you can inspect the print, and see how each layer is printed. Press Save to save your gcode.

I find myself changing settings for every print after dialing it in. There is no one size fits all. I look at these every print:

  • Layer height
  • Draw speed
  • Infill
  • Top and bottom layer count

Gotta have LED’s

I have a couple feet left…will probably stick a few to the nozzle frame and power by a fan.

More 3D Print Samples

Here are just some of the prints that I have done.

Click to Enlarge

Cortana Chip. One of first prints for buddy of mine for CosPlay. I was still tweaking settings but turned out OK.

Click to Enlarge

Box I designed in Tinkercad, so friend can mount his NEO TV to bottom of his wall mounted TV. This was before I measured filament and still had bad zits.

Vase. Printed after started measuring filament. Flawless and is water tight.Printed in vase mode.

One of many Baby Groots printed. My buddies went wild over this one. I have printed it several times. About a 30 hours print at .1 layer, and slow.

Designed this in Fusion 360 to fix my ice dispenser in my Fridge. Printed really fast because I didn’t care if it looked bad. 6 outer layers for strength with 20% infill. Really surprised this is holding up in freezer. I was a little off on center hole measurement and enlarged with a drill. Dumb cheap calipers.

Click to Enlarge

First print with supports. Auto-generated in Craftware. Second is after bulk cleanup. Need to take tweezers to get remaining bits. Keep in mind this thing is tiny. .2 layer height.

Final thoughts

The only complaint that I really have are the noisy fans but they could be replaced, and the faulty micro SD card reader. This is my first printer, but I still think they could be less noisy. Other then that, I have enjoyed my time with the CR-10. I would like to thank Gearbest for sending the CR-10 to review, and if you are interested in the printer you could purchase it from their website for $309.99 plus shipping using GBCR10 coupon. I plan on 1 more article. Some bigger prints and some mods I would like to try (but running out of filament). If you have any questions or comments feel free to post below.

Google Assistant SDK Turns Your Raspberry Pi 3 into Google Home

May 3rd, 2017 7 comments

Google Home allows you to select music, control your home automation system and more with voice commands, but now you can do the same with a Raspberry Pi 3 as Google released a developer preview (alpha v1) of the Google Assistant API that works on Raspberry Pi 3, and other development boards running Debian or Ubuntu.
Functionalities are limited right now, with RPC API and Python sample code, but it only works with English language, and features such as timers & alarm, playing music, news, or podcasts, and precise location are not supported. Location is determined using your IP address only, and if you’re using some third party services / products such as Uber or Hue, you’ll need an actual Google Home device for initial setup.

Google has provided instructions to use Google Assistant SDK with Raspberry Pi 3 board. First you’ll need a USB microphone ($5.99 on Amazon), and speakers connected via USB or the 3.5 mm audio jack. After installing Raspbian on the board, you’ll need to configure a developer project and account settings, configure and test audio (with arecord/aplay), and finally install Python and the Assistant API sample:

Once this is done, authorize and run the sample:

Press Enter, ask something, and your Raspberry Pi 3 board should answer.

Since you just need audio and network working on the hardware, this should also work on other development boards, and Google has indeed provided instructions for other platforms too. Basically the same steps, but less detailed, except for the authorization part which seems a little more complicated.

Thanks to Harley for the tip.

ZX Spectrum Next Retro Keyboard PC Relies on Xilinx FPGA, Raspberry Pi Zero “Accelerator” Board (Crowdfunding)

May 2nd, 2017 11 comments

ZX Spectrum keyboard computer was launched in April 1982 in the United Kingdom, and 35 years later, a team of developers has now been working on ZX Spectrum Next somewhat resuscitating ZX Spectrum by emulating Z80 processor in a Xilinx FPGA, using an optional Raspberry Pi Zero board as an accelerator, and adding some modern features like HDMI output and WiFi.

While the case is only a 3D rendering for now, they have a working board prototype with the following specifications:

  • FPGA – Xilinx Spartan-6 FGPA emulating Z80 processor in 3.5Mhz and 7Mhz modes
  • System Memory – 512KB RAM (expandable to 1.5MB internally and 2.5MB externally)
  • Storage – SD Card slot, with DivMMC compatible protocol used in the original ZX Spectrum
  • Video
    • Hardware sprites, 256 colours mode, Timex 8×1 mode etc.
    • Output: RGB, VGA, HDMI
  • Audio – 3x AY-3-8912 audio chips with stereo output + FM sound
  • Networking – Optional WiFi module
  • Joystick – DB9 compatible with Cursor, Kempston and Interface 2 protocols (selectable)
  • PS/2 port – Mouse with Kempston mode emulation and an external keyboard
  • Special – Multiface functionality for memory access, savegames, cheats etc.
  • Tape support – Mic and Ear ports for tape loading and saving
  • Expansion – Original external bus expansion port and accelerator expansion port for Raspberry Pi Zero
  • Misc – Real Time Clock (optional), internal speaker (optional)
  • Power Supply – 9V

Spectrum Next board can also fit into the original case, if you find the new design too… well new.

The Raspberry Pi Zero is used to bring OpenGL support to the ZX Spectrum, as well as more memory and a faster processor, so beside running retro apps on the ZX Spectrum Next, you can also run apps that would not work before. The good news is that the board already works, and you can run program in normal or accelerated mode, Doom, Wolfenstein 3D and more. The source code for the FPGA’s Z80 core will be released to the community.

ZX Spectrum Next has launched on Kickstarter, and has been rather popular so far having raised over £412,111 out of its £250,000 goal. If you want to upgrade your old enclosure, you could pledge £99 ($128 US) for the board only, but if you want the full package with the new enclosure, you’ll have to pledge at least £175 ($226). It’s probably not coincidence that’s the same price as the original ZX Spectrum with 48KB RAM when it launched in April 1982. Delivery for the board only is schedule for August 2017, while you’re expected to wait until January 2018 for the full version. Shipping adds 10 quids to the United Kingdom, and 25 quids to the rest of the world.

The Register reports there is no relationship between RCL, the company behind the failed ZX Spectrum-branded Vega and Vega+ consoles, and the team working on ZX Spectrum Next.

Via Liliputing