Skip navigation
1 2 3 Previous Next

Raspberry Pi

345 posts

The Raspberry Pi and other low-cost, board-based computers are becoming increasingly popular amongst developers and hobbyists, thanks to the Internet of Things revolution. Users are easily able to experiment with IoT projects by connecting to a network using wired or wireless connections – whether this is through the simple use of an Ethernet cable, or with complementary accessories such as the Raspberry Pi’s Wi-Fi adapter dongle.


However, users requiring access to internet data on the go would benefit from an add-on that provides the ability to browse the web effectively, send SMS, and transfer data using a mobile network connection – especially if it is readily available as per the Raspberry Pi HAT specification.


When looking at forums and talking to Raspberry Pi users at events, we found that there were repeated requests for a product that added a 2G/3G/4G connection to the Raspberry Pi, as they were finding it hard to source a reliable add-on that would allow for data and SMS capability. We decided to develop a device that allows hobbyists and developers to create IoT projects on the go - and so, the PiloT® was created.

PiloT 3G HAT for Raspberry Pi


What is the PiloT®?

The PiloT® is a WAN communications board which provides a 3G / HSPA wireless interface for the Raspberry Pi. The PiloT® features an on-board Sierra Wireless HL Series module teamed with a SIM card of the user’s choice, as well as a GNSS solution, which is used to provide location and time information.


How does it work?

The PiloT® uses a small number of I/Os; the remainder are passed through on the 40-pin headers for use by other applications. Simple AT commands are used to control and monitor sessions on the Sierra Wireless HL Series module.


The PiloT® is able to communicate with the Raspberry Pi using serial or USB communications, with separate channels for control, data and location data. It can be powered by the Raspberry Pi, or a separate power supply can be used.


When used in CDC-ECM mode over USB, the PiloT® presents as an Ethernet-like WAN device, simplifying control of data sessions. In this mode, PPP is not required; a simple command initiates the session. The PiloT® can also be used to transfer data to the Sierra Wireless AirVantage® service using MQTT from a Raspberry Pi; offering a rapidly deployable device-to-cloud architecture.



Who is it aimed at?

Whilst the PiloT® is suitable for use in business applications by users looking to integrate the PiloT® into IoT projects, it is also ideal for hobbyists, developers and educators alike. The PiloT® allows for the transformation of a number of applications on the Raspberry Pi and other development boards by providing communications out in the field rather than tethering the user to Wi-Fi or Ethernet, allowing for another level of creative and practical opportunity and enhancing the convenience of everyday tasks.


Is it compatible with all Raspberry Pi variants?

The PiloT® is compatible with the Raspberry Pi 2, 3 and Zero, and can also be used in standalone mode to provide communications to other development boards.


PiloT 3G HAT as HL Series Evaluation BoardPiloT 3G HAT for Raspberry PiPiloT 3G HAT on UP board


Does the PiloT® offer 4G connectivity?

A 4G version (with 2G fallback) of the PiloT® will be available for purchase very soon - keep checking our ecommerce site for stock!


How well does it work?

We manually build and test every single PiloT® HAT so we are sure that our customers receive a high quality product, and we constantly ensure that PiloT® users have access to manually written and checked up-to-date user guides for the relevant PiloT® variant. We have taken the PiloT® to a variety of events – from large exhibitions to small conferences; demonstrating its capabilities with a heart rate monitor sending information using a mobile network connection, communicating accurate heart rate readings, along with accurate time to within around a second, and location information up to around 20 metres. The PiloT® runs at roughly 5Mbps downlink and 2Mbps uplink, and the 3G and 4G variants fall back to 2G in areas where data is limited.


Expo PiloT 3G heart rate monitor


Can I use the PiloT® to receive location and time information?

The  HL8548-GHL8548-G variant of the PiloT provides a GNSS engine which is based on SiRF V technology GNSS data can be transferred over serial or USB interfaces providing accurate location information for your application It can also be used to provide accurate time


Where can I get one?

Click here to visit for more information about the PiloT® and how to purchase it.

I am hoping that a new HAT we have designed and released will be of interest to anyone wanting to control motors within their own projects using the Raspberry Pi computer.


The Pulse Train Hat is an add-on board for the Rapsberry Pi computer and allows clean, fast and accurate pulses to be created using simple ASCII commands.


There are many hardware designs where a variable frequency pulse is needed, but one that is the most popular is for driving stepper/servo motors that use pulse and direction lines.

Motors like this are found in machines such as 3D Printers, CNC machines, Robot Arms and not to mention the other endless motion control and automation machines.


Below is a Test Rig we used while developing the code.


It allows us to test all 4 channels of the PTHAT by sending the pulses to stepper drivers, that were connected to small Nema 17 motors. It also has all the limit switch inputs brought out to switches, the ADC inputs connect to 10K pots and AUX outputs connected to LED’s.


We decided to use low cost stepper drivers that are usually found in 3D printers as they are not brilliant, but do the job. Our thinking is if the PTHAT can control these noisy little drivers, then handling the more expensive drivers would be easier!




Controlling motors may seem simple, but when you get down to detailed control, it can all become very confusing and a big learning curve.


With the new Pulse Train Hat (PTHAT) add-on for the Raspberry Pi and a new dedicated support site , we plan to make that task very simple and allow everyone to easily create their automation product.




We have created an number of example applications using Visual Studio 2015 that can be used with Windows 10 IOT.

These examples have been written in C# as a Universal Windows Platform (UWP) and all the source code can be downloaded from the website.









We have also designed the PTHAT to have it's firmware upgraded easily using a JTAG programmer that we supply with each board.

Also full details on the ARM processor we use has been released covering all the GPIO information, Clock settings and peripherals for people wanting to write their own firmware.




Also there are a number of wiring diagrams released covering various stepper driver hook ups.


Of course you do not have to use the PTHAT to control motors and can be used as a pulse generator for other projects.






Please feel free to check out the dedicated support site for more information

Hi, my name is Dan and my ham radio callsign is M0WUT.

I am developing an automated Raspberry Pi Zero based transceiver for the WSPR amateur mode.

What is WSPR?

WSPR stands for Weak Signal Propogation Reporter (full details WSJT Home Page) developed by Joe Taylor, K1JT.

In short, amateur stations transmit data packets containing their callsign, their location and how much power they are transmitting with. Once received, these can be decoded by a computer who uploads them to a central database Database | WSPRnet This can then be used to see whether conditions are good for working certain places on certain bands or not. It is also used as it is very bandwidth efficient (approximately 5Hz bandwidth) as well as time division multiplexed and due to the large amount of error correction built into the code, it allows contacts to be made using very low power.


The map below shows all stations received by my friend George M1GEO in a 24 hour period. Nearly all these stations were running <5W output power. George has a very good article explaining the coding side of the WSPR protocol and using an Arduino to generate the tones from a frequency synthesiser board off eBay which can be found here:


The WSPR protocol encodes your callsign, power and location in 162 'bits'. For full information on how this is done, this document by Andy Talbot, G4JNT is the best example I found I will also be sharing my Arduino code to perform the encoding in a later part of this project. I write 'bits' as it is not strictly 1 bit in the binary sense, it can take the value 0-3. This is due to the  WSPR transmission uses 4-FSK. FSK stands for Frequency Shift Keying and works by sending a carrier at a single frequency and then the information is carried by the frequency the carrier is at. The 4 indicates that there are 4 possible frequencies for the carrier, hence my use of 'bits' above as the use of 4 tones allow a value between 0-3 to be sent at any instant in time.  The WSPR tone spacing is 375/256 Hz or 1.465 Hz so the entire bandwidth is roughly 3 times that (4 tones -> 3 lots of spacing or about 4.5Hz.) The WSPR system is based around 2 minute windows (starting on the even minutes) where a station will decide (randomly but you can alter the probability you will transmit with a TX (transmit) percentage slider) whether to receive or transmit for that window. If transmitting, it will begin to send the 162 tones (which have the minimal time period of (1/seperation frequency = 256/375s or 683ms) This takes 0.683*162 = 110 seconds (roughly) and then will wait the remaining 10 seconds in the window before starting again. The main transmission method is by connecting the output of your computer soundcard into the microphone input of the radio so is treated the same way as if the user were whistling into the radio at the right frequency. This is called AFSK or Audio Frequency Shift Keying as the changing frequency is happening at audio frequencies then being mixed with an oscillator to produce the output at the right frequency. The alternative (as used in WSPRpi) is not to bother with this mixing process and just have an oscillator running at the RF frequency and directly changed the output frequency of that. This is called FSK and has the advantages of not requiring a modulator to combine the audio and LO signal which means a simpler circuit and no mixing products. Any harmonics of the audio signal will also get mixed with any (and all!) of the harmonics from the local oscillator producing a large number of output frequencies, not just the single carrier that is desired.


In receive, the radio will convert the received WSPR signal down to audio frequencies which are then fed into the soundcard of a computer. Once a two minute receive window is complete, the software will decode any WSPR signal that were received and upload them to the WSPR database, allowing maps like the one above to be produced. By only transmitting 20% (this is adjustable but 20% is the standard) of the time this allows even more users to use the same frequencies as different stations will transmit at different times.


WSPR GUI receiving Austria (OE6YWF) and Italy (IZ6BYY and IZ0IWD) on the 20 metre (14MHz) amateur band.


The Problem

The problem with this is that this setup gets rather messy with all of the cable required:




CAT/PTT is the system by which the computer tells the radio to start or stop transmitting.


It also requires my radio and my computer to be on the whole time. This consumes power and ties up resources. Also I haven't found a nice way to swap quickly between WSPR and normal operating (voice or Morse Code) without at least unplugging something and plugging in something elsewhich is a faff and I sometime forget. (For ham radio people: It may be possible on the K3, it's fairly new to me but it certainly couldn't be done on my old FT840)


WPSR is also a useful thing to take on a DXpedition (a radio trip to an unusual country or island which is rarely operated from) as it allows other people to see if they can hear your WSPR station to give them an idea whether it is possible for them to contact you and vice versa, it allows the operators on the trip to see if there is good propagation to a certain place.


The (sort of) Solution

Some people have produced standalone WSPR beacons which are transmit only, but these are normally expensive for what they are (if you look at George's website mentioned above he does it with an Arduino, a £7 board of eBay and about £2 of components and for little extra functionality the nicely enclosed units are £40 up), you have to tell them when to start transmitting as they have no way of knowing the time, have limited band options (either supplied with a single filter or bulky external ones) and don't offer good options for useful features such as automatic band changes or a useful way to see the results (particularly if on a trip and there is no Internet connection!) OK, the last point is impossible without a receiver as you rely on other people uploading to their received stations to the database so you can see who has received your signal. This makes them useless for you, as the operator of the rare station, without Internet.


The (Actual) Solution!

The solution I have gone with is a Pi Zero, adding Ethernet and a sound card via the GPIO (I want small size and no messy cables), and adding a PIC32 (Arduino only has 32 bit precision floating point numbers which is not accurate enough) with a Silicon Labs Si5351 synthesiser IC. This little chip cost 60p and is capable of generating 3 independent clock signal up to 100MHz. This plus an amplifer for the transmit side, some switchable filters to allow different bands to be used and a simple receiver should allow this to be possible and entirely self contained. A nice feature I added was a GPS receiver (I am most of the way through this project by now so this is currently working) to allow the unit to know when the two minutes transmit /receive windows were starting, to automatically know the location and to allow the frequency to be corrected using the 1pps output from the GPS receiver. The system knowing the actual time means that it can be set to automatically switch bands at certain times of day and the Ethernet socket is important even with the Pi Zero W having Wifi as the Pi will host a web server showing all of the received stations and the configuration for the WSPRpi so it (should!) be entirely driverless and need no extra software to run. If the trip is somewhere remote and there is no Internet, often a wired LAN is set up to allow the operators' logs to be synchronised but often there is no wireless network which is why the Ethernet connection is still important. I have named this project WSPRpi. The intended plan (a reasonable amount of which has already been built) is below.





The first part (adding Ethernet and a sound card) is online on element14 here: Adding Ethernet and Sound Card to Rpi Zero (WSPRpi part 1)


Thanks for reading. Any feedback would be appreciated in the comments or on Twitter @m0wut

Thanks and 73 (amateur radio speak for best wishes)


If you are here to see how to add Ethernet / soundcard functionality to the Pi Zero, this is a part to be used in my automated amateur radio WSPR transceiver. Explanation of which can be found here: WSPRpi part 0: Introduction and what is WSPR? If you are not interested in how I intend to use it and just want to see how to add Ethernet or a soundcard to a Pi Zero, skip to the Design section.



Finished result



For people interested in the use in the WSPRpi project:

The two most important features for the Pi to be able to receive WSPR signals are an audio input and an network connection. I say network connection as the WSPRpi may be used on DXpeditions without Internet connection so will provide a web server showing the received stations. This is why the Ethernet connection was still useful, even with the Pi Zero W being released when I was waiting for the PCBs to be delivered as often a wired LAN is run between the operators laptops but no wireless connection is available. If a connection to the Internet is present, it will also upload the spots to the WSPR database automatically.



This is based around two main ICs, the Wolfson / Cirrus Logic WM8731 audio codec and the Microchip ENC28J60 SPI to Ethernet adapter. Both of these parts were chosen as they had kernel drivers built in to the Raspbian distro, making using them relatively simple. There is little more to this design than the datasheet use circuit for both, put onto the same PCB. This produces the following schematic, I have attached the schematic as well:

ethernet schematic.png


R14 and R15 are not needed. They were put there in case the I2C bus required the external pull-up resistors but it works fine without. Strictly, the audio output filter components (C11, C12. R16, R17) are also not required for the WSPRpi as it only needs audio input but I added footprints for them as everything else was already in place. It's also an easier way to test the functionality of the WM8731.



The PCB was laid out, mainly trying to fit all those parts in the small footprint of the Pi Zero and keeping all the high speed data buses away from each other.

This was achieved but does mean that fairly small parts are used (SSOP IC) and the crystals have pads only on the bottom, meaning soldering these with a soldering may be a bit of an endeavour. Luckily, I have an Atten hot air station which managed these no problem.




I assembled the Ethernet portion of the board first as I wanted to use SSH to access the Pi. I don't have much space and having a second monitor around for longer than necessary would be a pain.

I have highlighted these on the BOM (attached also)


Preliminary Testing

I began by connecting the board (no Pi connected) to a 3.3V supply and it drew approximately 120mA which matched with a cheap Chinese breakout board for the same chip. If an Ethernet cable (connected to a router) is plugged in, the orange LED on the Ethernet connector should turn on and the green LED should flash, indicating network activity.


Mistake No. 1

I did not get any flashing LEDs, and got errors in the next step, Setup on the Pi, with a non responsive device. Due to the simplicity of the connections between the Pi and the ENC28J60, this pointed at bad soldering, incorrect power supply, wrong pinout or something wrong with the crystal. I double checked my soldering with decent magnification and it looked fine.The Eagle footprint was download from Farnell / element14 so was reasonably confident with that. Power supply was straight from my bench PSU so again unlikely. Probing with an oscilloscope showed both pins at about 1.1V DC. It turned out I had got my footprint for the crystal wrong, shorted both of the oscillator pins of the IC to the can and connected both ends of the crystal to ground. Oops!. Minor surgery later and this was fixed.



Bodge on the crystal. Please excuse the slightly melted pin header due to trying to fix this! This is a prototype board which is not quite right mechanically (connector locations and such) for the WSPR so I corrected this for v1.1 which will hopefully be the final version in the WSPRpi.


Setup on the Pi

I advise not plugging the Ethernet cable in until I mention to as I discovered some interesting things with how the driver handles addressing, explained in Set constant MAC address.

As the drivers for this are already part of the Raspbian distro, enabling these is very easy, at least for Raspbian users, I'm not sure about other distros. Once the board was connected to the Pi.


Going from a fresh install of Rapsbian (I used Jessie Lite, March 2017) I used the Lite version as I did not need a desktop for WSPRpi but the full version will also be fine.


Once logged in (as usual username pi, password raspberry)


Edit config.txt:

sudo nano /boot/config.txt

Add the following to the bottom:



sudo reboot


Once logged back in, run dmesg


This will give you one of two possible results:


Option 1: This is not good, the line at 13.148478 shows the driver was loaded fine so editing config.txt was fine but the line at 13.201186 shows that it couldn't find the 28J60.


Option 2: Success, as shown by the line at 13.422723. eth0 is showing as link not ready as I didn't have an Ethernet Cable plugged in.


Set constant MAC address

Initially I ran the Pi with a static IP so didn't have this problem, switching back to DHCP (router assigns the IP address) led to problems. A MAC address should uniquely identify the hardware and be the same after reboot. In Raspberry Pis with onboard Ethernet, this is calculated as a function of serial number and a series of MAC address that appear to be linked to Rapsberry Pi ensuring each is unique and doesn't change due to the serial number being hard coded. The kernel module for the 28J60 Ethernet controller instead randomly generates the MAC address on startup and on every reboot which will make most DHCP routers unhappy as they assign a different IP address to devices with different MAC addresses.


This was being a pain as my Pi didn't have a constant IP address to allow me to SSH in so this next step assigns a constant MAC address to the Pi.


Thank to Richard from


     1) Create the file /lib/systemd/system/setmac.service

sudo nano /lib/systemd/system/setmac.service



     2) Add the following contents:

Description=DSet the MAC address for the ENC28J60 enet adapter at eth0

ExecStart=/sbin/ip link set dev eth0 address 00:00:00:00:00:00
ExecStart=/sbin/ip link set dev eth0 up



Change the MAC address (shown above 00:00:00:00:00:00) to whatever. I recommend B8:27:EB:xx:xx:xx (x is 0-9 or A-F e.g. B8:27:EB:12:34:5A) as this prefix appears to be assigned to Raspberry Pis. At least, all of my Pis had this MAC address and it identified in Advanced IP Scanner as manufactured by the Raspberry Pi Foundation and appeared blank when another prefix was used.


     3) Exit the editor (Ctrl-X, y, Enter)


     4) Set File permissions

sudo chmod 644 /lib/systemd/system/setmac.service



      5) Execute the following two commands to enable the service

sudo systemctl daemon-reload
sudo systemctl enable setmac.service



     6) Reboot

sudo reboot


     7) Check that this has been saved



Hopefully you will see the following where the address circled in blue is the MAC address you specified:


Now the Pi can be plugged into your router where it will be assigned an IP address which should be constant after reboot. I recommend testing it is connected to the Internet by seeing it can access a website e.g.:


I then went to and it measured download speeds of 5Mbps and 2Mbps upload, not bad!


Change Hostname (optional)

As this Pi would also be running a webserver, I went into raspi-config

sudo raspi-config


and changed the hostname (Option 2) to WSPRpi so I could access it later. I also updated Raspbian, to prevent issues installing anything in the future

sudo apt-get update


If you are following the WSPRpi project, please note this down as it will the web address of the server to view the received spots


All other components were then soldered onto the PCB.




I know two pins on the IC are shorted, this is intentional (see Mistake 2)

Setup on the Pi

Again go into config.txt

sudo nano /boot/config.txt


Find the line that says



Comment it out as it interferes with the I2S bus used to talk to the audio coded we've added



and add the following:




sudo reboot


Run dmesg to check on the state of the audio driver




The two errors (in red text) are fine. The important line (circled in blue) is the one that says:

audioinjector-audio soc:sound: wm8731-hifi <-> 20203000.i2s mapping ok

This means everything is fine.


Mistake Number 2

Again I didn't get this working first time. Once again, device not responding which produces an output in dmesg which look like:

[ 5.710350] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.710381] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)
[ 5.746090] EXT4-fs (mmcblk0p7): re-mounted. Opts: (null)
[ 5.847273] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.847304] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)
[ 5.855053] wm8731 1-001a: Assuming static MCLK
[ 5.855425] wm8731 1-001a: Failed to issue reset: -5
[ 5.855535] wm8731: probe of 1-001a failed with error -5
[ 5.857826] usbcore: registered new interface driver brcmfmac
[ 5.858302] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.858312] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)


Again, the connections were very simple so: soldering, power supply, footprint or crystal.

Soldering: Checked with magnifying glass. It was fine.

Power supply: Fine

Crystal: Fine

Footprint: Turns out I had accidentally deleted a traced and left the mode pin floating. It needed to be shorted to ground to set the input to be I2C for the configuration instead of the default three wire protocol. One of the pins next to it (CSB) was grounded so I manually shorted these. This was surprisingly difficult on SSOP to selectively short just two pins! This has also been corrected for the version 1.1 PCBs.


Setup on Pi (continued)

The sound card by default doesn't use the inputs and outputs that I used. To edit the open the mixer



The layout does look slightly different on the Pi, I'm doing this over SSH so the graphics are slightly different but it's functionally the same.

Press F5 to see all options then use the arrow keys to navigate to the "Line" option (4th one across) and press Space so it shows L R Capture. Navigate to the "Output Mixer HiFi" option and press "m". It should now be highlighted in green.

It should now look like the image below albeit with minor graphical differences if you are doing this directly on the Pi.



Final Testing

To test the sound output, I decided a bit of Internet radio would be a nice way to test both components of this build.

I plugged in a cheap pair of headphones into the Left and Right outputs. I didn't have room on the PCB for a proper socket so soldered one on wires to the board.


First I installed mplayer (This took a while)

sudo apt-get install mplayer


Then I used:

mplayer -playlist


and the sound of Aerosmith indicated success!


I then added the above to the end of /etc/profile to have the Pi autostart streaming from Heart on power-up and used it as an Internet radio for a few days as it was very comfortable to listen to driving a 16 Ohm speaker.



Once I was happy that the board worked, I soldered a 3.3V regulator and supplied it from the Pi's 5V output (GPIO pin 2) for convenience. This will not be needed in the final WSPRpi where I intend to have a motherboard all these sub-boards will plug into to supply power, it's just for testing.





If you do build this / have feedback, it would be interesting to hear your thoughts, either as a comment here or on Twitter @m0wut.


Thanks and 73 (amateur radio speak for best wishes)


Last year MathWorks announced the MATLAB and Simulink Hardware Challenge, in which a lot of you from our element14 community participated. I am here to introduce the MATLAB and Simulink Mobile Devices Challenge this year.

  • Have you developed a cool Android or iOS app using MATLAB or Simulink?
  • Have you created a MATLAB or Simulink project where you use an app from your mobile device to control an Arduino or Raspberry Pi?
  • Have you analyzed sensor data from Android or iOS Mobile devices (phone or tablet) using MATLAB or Simulink?


If you answered yes to any of these questions, here is your chance to win up to $1000. If you answered no to these questions, visit this page to get some ideas and join in on the fun –  because who doesn’t like to win some cash.


This is how it works –

  1. Create an original video describing your project and upload it to YouTube with the tag: #MATLAB4MOBILE on or before 12 June 2017 (3 P.M. EDT)
  2. Complete the entry form on the challenge page.
  3. Don’t forget to share your video with your friends and family as the number of views and likes on the video will help you win the challenge.

For more details and the challenge rules please visit the homepage for this challenge. Hope to see your projects in action .


At Embedded World 2017 I saw something that initially made me very confused. It was a rugged piece of hardware that clearly looked like it was related to the Raspberry Pi in some way but upon opening it up I couldn’t see how a Pi would fit inside. The internal connector looked interesting because it had pins instead of a socket, so how could a Pi 3 plug on top of it? And it had many Ethernet and USB ports already fitted. It took someone to explain it to me. This was actually a complete new custom design that had the Raspberry Pi 3 already inside it!


The company, Hilsher, has worked with the Raspberry Pi 3 manufacturers in order to create an entirely new variant of the Raspberry Pi 3. After seeing and learning about it I really want one. It is the best Pi variant yet, ruggedized, with a decent power connector, expandable, and capable of operating in all typical Raspberry Pi usage scenarios and more as will be described. It is not currently available, but will be available soon.



What do Hilscher do?

The key to understanding the netPI is to examine the motivation for the product. Hilscher is a 30-year old company (originally established in Germany but now they are a global business) deeply involved in Real-Time Ethernet (also known as Industrial Ethernet). This technology (actually, a range of technologies – there are several standards) has become the dominant way of building automation within factories. Every time you see a robotic assembly line building a car, there will be a controller somewhere talking to many sensor devices and output devices, and all the communication between controller and such node devices is occurring over the Real-Time Ethernet connections.



Real-Time Ethernet takes traditional Ethernet but transports some protocols over it that can be deterministic. This means that message loss is not tolerated like in a non-industrial network. In a normal non-industrial network there is no guarantee that a packet will not be lost. It is up to the higher-layer protocol to re-send the packet if needed. Transmission Control Protocol (TCP/IP) is used to relieve the application layer (user applications) from the burden of reassembling packets of data and requesting retransmissions but these would cause delays that would be unacceptable in an industrial assembly line. To take one example, known as PROFINET IO, Real-Time Ethernet solves this typically by defining a type of ‘upper-class railway carriage’ type of scheme where there is a regular train time and the upper-class carriage portion of the train is never allowed to fill up with non-priority packets. Only the deterministic packets are sent in that carriage.



There can be different levels of determinism such as strict (which requires packets to arrive within a certain time) or soft determinism which doesn’t mind if the packet takes a little longer sometimes to arrive (but it must arrive and must not be dropped) depending on the particular type of Real-Time Ethernet that is being used. There are also techniques to ensure that packets do not sit for very long in a buffer. A normal (non-industrial) Ethernet interface will collect up the packet before it is announced to the application. With Industrial Ethernet it is possible to start serving the packet to the application (the sensor or output node software) as it arrives on the wire. This type of functionality is only possible with special hardware. A normal Ethernet interface does not have this capability.


Hilscher is a company which has developed custom chips to perform Real-Time Ethernet capability and embedded them into different products such as:

  • Modules or Interface boards that can connect a computer (say using PCI-E) to the Real-Time Ethernet bus to perform controller or node operations depending on the specific use-case
  • Interface PCBs that can connect embedded hardware (say using dual-port memory) to the  Real-Time Ethernet bus
  • Gateways that can perform Real-Time Ethernet operations and interwork them to traditional Ethernet and TCP/IP for sending over the network for server based applications to monitor or control or manage using protocols that function well over IP networks or the Internet, such as MQTT
  • Test tools for diagnosing Real-Time Ethernet


In essence, the Hilscher products act like a bridge between the Industrial Ethernet world and any other hardware or software, either locally or over networks.


A while ago Hilscher launched a little PCB that could connect to the Raspberry Pi using the 40-pin connector on it. The PCB had Hilscher’s secret-sauce Real-Time Ethernet chip on it, a couple of Ethernet sockets (some Real-Time Ethernet technologies use both ports) and talked to the Pi using the serial peripheral interface (SPI) that allows applications running on top of Linux on the Pi to interwork with Real-Time Ethernet. This product allows for possibly the cheapest way for anyone to experience Real-Time Ethernet. It would even be possible to use several Pi’s and build up a controller and nodes and simulate a factory basically.



Having a high performance ARM chip opens up a lot of possibilities. Hilscher decided to take the leap and build a custom product that would use the heart of the Raspberry Pi but in a ruggedized industrial form-factor. For the software stack, Raspbian wouldn’t do; a hardened Linux kernel is needed for reliability and security. However to maintain ease-of-use Hilscher did a clever thing and provided Raspbian in a ‘software container’ so that software programmers still get the same Raspbian experience if this is desired, but in a protected container. This will be examined further below in a bit more detail.



The end result is a product that can be used and programmed the same as any normal Raspberry Pi in any preferred language of choice, and has applicability for a range of functions in industrial automation. The possibilities are immense. It could be used as a gateway, or a controller, or it could be used to attach additional custom sensors or actuators. It just depends on the software, and whatever users decide to attach to the netPI’s hardware interfaces.


Check out the discussion with Hilscher at Embedded World 2017 here:


Hardware Overview

The netPI has a single circuit board which contains Raspberry Pi 3 functionality including wireless and Bluetooth and video connections. It has the same 40-way connector inside so all the usual Pi accessory boards can be fitted inside the enclosure. The USB connectors are spread out, it has a total of 4.


It has the default Ethernet interface but also an extra two Ethernet interfaces built-in; these are intended for connecting to the industrial network. There is also a built-in real-time clock with power back-up.



What is very cool is that there is an expansion connector slot with blanking plate on the side and it allows for modules to be inserted and removed. These could be additional Ethernet interfaces or other future functionality.


The interface is based on a mini-PCIe connector but the connections carry general-purpose input/output (GPIO) and serial bus signals such as I2C and SPI. The details of the expansion interface will be opened up so it will be possible to design custom hardware to fit into the slot.


Industrial customers could benefit from the netPI even if they do not use it for real-time Ethernet, since it would be possible to design sensors or control circuitry to fit into the expansion module slot. A module that supports thermocouple probes could be a nice example.


Overall the hardware design is very nice. The radio antenna has been designed for good coverage by extending it beyond the metal chassis (a non-conductive shell to enclose the antenna is not shown in the photo). I also liked the easy-to-see LEDs, the space to install additional functions (even though the netPI is still very compact) and the wider-range power supply input with a more usable connector than micro USB.



Software Overview

The nice design extends beyond the hardware too. In order to provide something secure and reliable while remaining easy-to-use, Hilscher have taken the effort to produce a software image which uses a hardened Linux kernel (based on the Yocto project) at its core. On top of that a container technology is run (Docker). This is kind-of similar to virtualization but can be more efficient in terms of resource usage. Docker is one of the open-source success stories that is extremely valuable and worth experimenting with.



The end result is that it is possible to run Raspbian in a container, and upgrade it (and any applications) as required, remotely. The benefit of this is that software developers can make use of all the familiarity they already have with Raspbian (and can even develop apps on a traditional Pi 3 before deploying to the netPI). Furthermore there is reduced risk of software clashes; it is possible to add additional containers for all your new applications, each running on a separate Raspbian if desired. The container technology allows for safe upgrades because one can always fall back to an earlier container if a new one has any issues.


Hilscher supply a ready-made Raspbian container that already has technologies like Node-RED and all the drivers to support Real-Time Ethernet built-in. People can directly use that, or modify it by adding their own applications to create a new container and then deploy it remotely to as many netPI’s as desired.



I was impressed with the level of detailed attention paid to the product design and the software implementation to make it easy for developers and for deployment. I hope to see and experiment with more Hilsher technology in future, I like that they have found ways to make Real-Time Ethernet accessible for all.


Go Go Gadet Raspberry Pi Zero W

Posted by clem57 Top Member Mar 14, 2017

Go Go Gadget Raspberry Pi Zero W


                    Happy Birthday from Raspberry Pi Foundation!!!

     March 7 was Raspberry Pi’s fifth birthday: it has been five years since we launched the original Raspberry Pi, selling a hundred thousand units in the first day, and setting us on the road to a lifetime total (so far) of over twelve million units. To celebrate, we’re announcing a new product: meet Raspberry Pi Zero W, a new variant of Raspberry Pi Zero with wireless LAN and Bluetooth, priced at only $10.



20170314_115745 Pi Zero W.jpg


     With this announcement, I was excited to see this as an important upgrade. Finally a way to use the Zero W with WiFi from Cypress using the CYW43438 wireless chip just like the older brother the Raspberry Pi 3. The only problem was how to get one when they sell like hotcakes.Then I got my chance when on Saturday Micro Center announced stock of Zero W as 923029. So bright and early Sunday morning I went down there to get me one. Talking to the sales rep, I found they dropped shipped 200 to this store which was not their normal shipment. And yes they were going fast. BTW, the second one cost 14.99 which is still not bad.

     In addition today is Pi day! Not Raspberry Pi but that other famous Pi 3.14 etc. What more reason to read this little(ish) tutorial. I am sorry for the many steps, but I wanted a complete setup for noobs and experienced users alike. So lets get on with it.


                                        457746_925313_01_front_thumbnail.jpg?1488940459712                457746_925313_02_front_thumbnail.jpg

    The Dilemma


So I get home and start looking at the new small board and ponder how to setup this wonder without a keyboard, mouse, and HDMI monitor. Yes, I could use them and be done, but that is not the way most people would try it. Even though wireless should work, how was the configuration of wireless to get started without keyboard and monitor.

After Googling the net, I came up with an idea! The good folks at Adafruit had this article This seemed the way to go thinking of the choices. But it was not without trials and tribulations. The serial USB seems to be the simplest until I found no logon till the TTY was setup first. A chicken and an egg problem to be sure. So without further ado, here we go.


     Ready Set ...


  1. Find the latest Jessie Rasbian Lite at and download it. I chose this because it can work on a small SD card of 4 GB and does not have a graphical interface to run. This means I load only what I need. For reference I used 3/2/2017 version

  2. Next I mounted the micro SD card on a USB interface on Windows computer. I chose a  need tool called Etcher at, It is smart and simple to use. Also you can flash more than one card at a time. It will verify the image as well.

  3. Even though the tool does an "Eject" on the card for you, remove and reinsert the same card since we have a few hings to do.

  4. Look for boot (E:) on Windows. For Linux or Mac, this would be the first partition FAT32. Later it is mounted at /boot in the tree. Edit config(.txt) file with either Notepad or Wordpad. If you use Wordpad, you must be careful to save as TXT and not anything else. Firstly, save a backup copy as config2.txt to be safe. Now add the following line as the last line in file:



    Now we can do a save as config.txt and reply Yes to overlay it.

  5. Next we edit cmdline.txt same as above. Again save a backup as cmdline2.txt. Now add the following after "rootwait" with just a space before and after. Do not hit the enter key since this file is very particular.


  6. One last edit, edit config.txt in Notepad. Do a save as and in the bottom the name is "ssh." include the period but not the quotes. Make sure all files are selected not just plain text. Then hit the save button. You should see this as a file not a text file. This will allow ssh the first time.

  7. Now properly Eject the card to use in the new Pi Zero W.

  8. Put micro SD card into Pi Zero W. Plug a micro USB into the inside called USB not PWR. I plugged this other end into a Pi 3. Why not Windows? Because of missing RDNIS driver for Windows 10 and Bonjour for Windows 10. For Windows, go to Directory: /static/beaglebone/latest/Drivers/. Select the correct version for Windows checking for 64 bit or not. Follow install procedures. Next go to, and select "Download Bonjour Print Services for Windows Vx.x.x'. Again follow install and now Windows can handle name resolution as well as RNDIS USB driver.

  9. On the Pi 3 they have both included in a full Jessie Rasbian desktop. Later I will locate and add when I find the drivers.

  10. Under the Pi 3, I opened a terminal window. Here I entered:



    Look for                    ID 0525:a4a2 Netchip Technology. Inc Linux-USB Ethernet/RNDIS Gadget

  11. Now we can SSH into the Zero W with: See note 1 below for more information.


    ssh pi@raspberrypi.local
  12. Reply Yes to next message to add ECDSA key and next the default password of "raspberry" (no quotes of course)

  13. Enter config file to change password and optionally host name. Also turn on SSH for future use.


    sudo raspi-config
    Interfacing Options
    P2 SSH
    <NO> to reboot now option
  14. Now to setup wireless settings with your SSID and PSK after any lines already there, paste and change the correct values:


    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  15. Edit the interfaces file to fix up a static USB0 so logins can be done by IP address: Skip this as it did not work as intended/


    sudo nano /etc/network/interfaces
    allow-hotplug usb0
    iface usb0 inet static
  16. Now reboot the Zero W with:


    sudo reboot
  17. Wait a while and try to re-login. Note any changes to the host name will affect the xxx.local name or just use the static IP of



  18. Try a ping test like:


  19. After all this bask in the sunlight and enjoy a cup of Java. Oh that is another topic. Adios amigos.

Raspberry Pi have (today) launched the new Raspberry Pi Zero Wireless.



For more information on the Raspberry Pi Zero range, including where to buy the new Raspberry Pi Zero Wireless please visit the Raspberry Pi Foundation website at


Happy 5th Birthday Raspberry Pi!

Hello Again,

As i said in others post of mine i am working on a house automation system based on raspberry pi and arduino ... I ve moved a lot with this.. I also writing a program for this. I wrote the program in Visual basic has over 1000 lines of code cause it is also like JARVIS from ironman... It can execute a dissent amount of pre installed commands. I also added a feture when the doorbell ring a window pop up in my screen and it show me who is in the front door with face recognition.... I now want to move to the "next level" and make it work also on my there any way to make it synchronise in real time pc software and Android? For example if i dim the lights in one room to see the changed value on my phone and reverse or monitor the temperatures(data comes from arduino to pc software)

One idea that i had is to setup a local server. Or website on the arduino and share the data with pc and android. But i don't know if this is gonna be okay.

So... Any thoughts?

Thanks a lot nicolaoscon96

Almost everyone has heard of RetroPie.



The open source software which has enabled a bunch of Ikea tables with embedded Raspberry Pi.


Unfortunately, they've recently learnt a bitter lesson in trademarks, that unless you get there first, someone else can pull the rug out from under your feet, as the makers behind RetroPie call out for legal help.



Amazingly, someone from India has setup a website selling Raspberry Pi's with the software on the SDCards, something which is already against the license of RetroPie.



Furthermore, they're practically claiming RetroPie as their own, as they have filed a trademark in America (yes, even though they're from India) to lay claim to 'RetroPie' and 'Emulation Station'.



Allegedly the person behind this trademark registration has come out with his side of events and reasoning why they've done this:




So perhaps a word of warning, even if you're creating something open source, even if you're giving it out there and believe the GPL and licensing protect you, ultimately you cannot stop someone unless you've put measures in place to protect it first, and you're able to chase after them with the money necessary to hire lawyers/solicitors. A sour lesson, all the same.

A few months back, I enrolled for a design contest at . Needless to say its one of those contest where hundreds(500) of people join but every few complete. Anyway I did my part and here are a few tit-bits I gathered.


The implementation

I initially though about adding a massive array of features but then remembered that it was a contest sponsored by Cypress. Instead I worked on one part and ended up getting stuck in a loop. I started with the Texas Instruments MSP430 and finally settled on using a RPi 2 instead. The idea took me a month to finalize and 4 days to implement! That was so stupid I though BUT the fact it a lot of the times this happened. I spend an additional week trying to learn PSOC creator and made a small video.


I also did a lot of goofing around and have the footage to prove it. Its still needs a bit of editing but I will post it




when I am done Here are a few pictures




Im pretty OK with the result as everything is clean (thats a first!) and work.


Putting together the enclosure was a tough decision as I did not want to go with the boring box design but due to personal blunders, I had to cave.


Here is a time lapse that was the result of the Cel Robox.





Here is why I am actually writing this blog. I need feedback. Feedback on what is right and what is wrong. Why this is important is ...


(Content to be filled in after collection of feedback)


So what do I solicit feedback on? Here it is...


and this little video I mocked up considering advice from Workshopshed sir, jancumps sir fvan sir


So the question is... "what do you guys think?"

"what is the first thing that comes to you mind when you see this content?"

"Why am I hungry"... OK forget that one.


Thanks in advance.

Live long and prosper.

Not even a near record breaking heatwave can stop BitScope Blade hosted Raspberry Pi servers as we discovered by accident when our trusty old Dells came to an ignominious end but the 32 BitScope Blade Raspberry Pi in the same overheating room survived without skipping a beat!


We had an unexpected demonstration of just how robust Raspberry Pi is as a compute platform this week. If you live downunder where our R&D headquarters are, you will know it's been very hot for quite a while. It just seems like it will never end.


Recently the mercury topped 40℃ (or about 104℉ for our North American friends) here in Sydney. We know it's hard to imagine from the Northern hemisphere right now but if the airconditioning fails it's quite intolerable, and not just for humans.


Unfortunately, that's just what happened over the weekend just past in our lab and inside it got very hot.


File Server Meltdown


We run a range of computers and some them are servers that run 24x7. Or they're supposed to! Two of them are Dell PowerEdge Blade Servers which have been with us for quite a few years, as you can see.


One of them is our office file server and the other is our R&D file server. Both of them are quite important to us.


Unfortunately, the airconditioning failure was just a little bit too much and the R&D server overheated and failed, taking all the data with it, despite our efforts at recovery. The other one also died but (fortunately for us) we managed to relocate the hard disk to another computer and recover the data. Now before you laugh at us for not backing up, we do, and we were able to recover most of the data that would have been lost, but the stuff we'd been working on most recently was, unfortunately, lost.


Raspberry Pi Servers


Meanwhile, on the wall opposite, and in the same overheating conditions, was the pair of Raspberry Pi 2 we threw together up as our redundant office DNS/DHCP server. This little server had been running for 6 months when we wrote about them just after the Raspberry Pi 3 launch last year.


They have been running flawlessly since then with no more than a few reboots to upgrade them the entire time. At the time, we added the small hard disk drive with the intention of migrating our file server across to them too, but we never got around to it. Such a shame!


BitScope Blade Duo and Raspberry Pi.


We run about 32 Raspberry Pi in Blade Racks and wall mounted Blade Servers 24x7 in the same office.


Not one of them failed !


We should have moved our office and R&D file servers across already.


We're going to now!


As we wrote a few days ago, we reckon Blade DuoBlade Duo and pair of Raspberry Pi and WDLabs' PiDrive is perfect combination for replacing our old servers.


We'll write up what we've done when it's all up and running. There's nothing like a little dogfooding to prove a product idea. In fact, we have a quite a few applications in development together with the software to implement them. We'll post details soon and we'll add our new file server to the list. The fact that we've run our office DNS and DHCP and more recently a pair of WiFi AP from one Blade Duo and pair of Raspberry Pi 3 without a single hitch is testament to the reliability of Raspberry Pi when powered by BitScope Blade. They consume a fraction of the power of x86 based servers, are very low cost, and if last weekend proves anything, they don't need airconditioning or special cooling set ups to work reliably.


Post reprinted with permission from the BitScope Blog.

Following the recent launch of BitScope Blade and the case studies about the weather station in Nepal and the interactive Theremin exhibit at MAAS we received a lot of questions about which Blade is best for what purpose. Read on to learn why Blade comes in three editions and how you can best make use of them.


BitScope Blade Reloaded is our computing infrastructure platform for Raspberry Pi.


It is available in three editions; UnoUno, DuoDuo and QuattroQuattro which power and mount one, two or four Raspberry Pi and support the use of Raspberry Pi and BitScope accessories including HATs, displays, cameras and other devices. Blades may be used stand-alone or combined to build large computing platforms.


In this post we'll focus on some stand-alone examples.


GF10G blade uno hat example

So what does Blade do ?

BitScope Blade solves the “power and mounting problem” using Raspberry Pi.

A common problem when using single board computers like Raspberry Pi is how to power it reliably. The other common issue is how to mount it robustly.

These problems become more challenging when peripherals and expansion hardware such as HATs and USB are used and/or when using more than one Raspberry Pi at once.

BitScope Blade solves these problems making it easy to build small stand-alone servers, routers and workstations up to full sized compute clusters, private clouds, industrial IoT, edge and fog computing platforms, industrial data acquisition and control systems. HATs and almost any other peripheral compatible with Raspberry Pi may be used with BitScope Blade.

Blade Uno, the ideal "motherboard" for Raspberry Pi & HAT

The simplest Blade application is a motherboard for Raspberry Pi, a HAT and optionally one or more USB devices.

GF10G uno application example

For example, this BitScope Blade UnoBitScope Blade Uno is configured with Raspberry PiRaspberry Pi, Pimoroni Explorer HAT and BitScope MicroBitScope Micro to build a complete self-contained mixed signal test and measurement system.


Blade Uno provides power and mounts the Raspberry Pi, the HAT and BitScope. It accepts any source of power from 9V to 48V (so long as it’s 10W or more) with power connected via the 2.1mm socket or via the Blade tabs.


Additional accessories such as Raspberry Pi Display and one HUB Expansion Card or other SPI, I2C Serial or GPIO connected devices can also be used. The entire assembly can be mounted via the Blade's M3 mounting tabs or simply sat on a flat surface using the stand-offs.


The Raspberry Pi network port is available for network connections and/or a monitor (via HDMI), keyboard and mouse (via USB) and audio (via the 3.5mm). Full access to all the Raspberry Pi I/O is avaiable via the Explorer HAT. A "hat tip" to Pimoroni for the exceptionally handy Explorer HAT! We use this setup to help teach new users about logic protocols with BitScope Logic for BitScope Micro


Blade Duo, the ideal platform for tiny redundant "micro-servers".

For example, this Blade Duo mounts a pair of Raspberry Pi 3 and WDLabs’ PiDrive mounted on the back.

GF10G duo application example

The PiDrive is perfect for this (see our earlier post about building servers with Raspberry Pi). The PiDrive is powered via a Raspberry Pi and Blade Duo ensures there is plenty of power to drive it.


Blade Duo has the same HUB Expansion and I/O as Blade Uno and it offers auxiliary power connectors for external devices underneath each Raspberry Pi.


Using the Raspberry Pi 3 built-in WiFi the pair of Raspberry Pi can be networked to each other and/or a connected network switch or WiFi access point to configure them as a pair of servers or a router and server pair. The range of applications is huge, essentially anything you can think of using a pair of Raspberry Pi, e.g. UTM gateways, WiFi access points, VPN IPSec routers etc.


Blade Quattro, the industrial cluster platform for Raspberry Pi

A more sophisticated application for BitScope Blade, using Quattro, is a four node compute cluster.

GF10G quattro application example

Blade Quattro extends Blade Duo to power and mount up to four Raspberry Pi. Compute cluster applications such as a small private clouds, a build or render farms, web CMS any many other multi- node applications compatible with Raspberry Pi can be used.


Multiple Blades (of any edition) can be used to build very large compute clusters and a range of rack mount solutions are available to enable to physical construction, commissioning and deployment of large cluster computing systems of up to hundreds of nodes. For one excellent example of a small cluster built with Blade Quattro, check out Andy Clark's recent series about his Blender Render Farm.


In future posts we'll describe cluster computing examples ranging from 2 nodes to 200 that can be built with BitScope Blade Quattro, Duo and Uno. We'll also publish details of some software solutions such as Docker and explain some of our own tools designed to make Raspberry Pi programming and cluster management with Blade easy.


We designed BitScope Blade to unlock the huge potential of Raspberry Pi for use in industrial applications because nothing beats Raspberry Pi on price/performance, availability and viable software solutions.


We look forward to seeing what applications you decide to build with Blade!


There's more information across the element14 Community about Blade.


Post reprinted with permission from the BitScope Blog.



I want to introduce a new small project of me. It's a OLED display shield for Arduino and Raspberry Pi. The shield includes 3 buttons and leds to realize simple menues etc. The communication with the Arduino or RPi works via I2c. You will need only 4 wires to connect the shield.


Pls check this link for sample code and more information


The pcb fits perfect in our DIN rail enclosure sets for Raspberry Pi and Arduino.


Arduino OLED


Raspberry Pi

Shield front view



Interfacing 16x2 LCD by using  MCp23017 16 Bit input/output Port Expander IC with Raspberry Pi by using I2C Interface. To interact with the IC here we have used Pi4J and JAVA.



MCP23017 Features:

  16-bit input/output port expander with interrupt output

  Cascadable for up to 8 devices on one bus

  25mA sink/source capability per I/O

  Supports 100kHz, 400kHz and 1.7MHz I2C™Compatible compatible    modes


Intro visual Source:

MCP23017 Details :


Links :

I2C Communication on Pi :

16x2 LCD with Pi :

Java Application on Pi Playlist:

Schematic :

Pi4J GPIO Numbering :

Download Pi4J Library :

Code :



Subscribe YouTube :


Guys Subscribe to my channel for latest contents into your inbox.

Support me to keep going.


Website :

Filter Blog

By date: By tag: