Tag Archives: Raspberry Pi

RX300 – The Windows 10 Thin Client with the Raspberry Pi

The Raspberry Pi (RBPi) has no hard disk, is stateless, and can work as a desktop terminal, which makes it an ideal candidate for use as a thin client. It connects to the data center for all its applications, sensitive data, memory, and runs a Remote Desktop Protocol such as the Windows Terminal Services.

That makes the RBPi a virtual desktop computing model, as it runs virtualization software, and accesses hard drives in the data center. Thin client computing has thin clients, software services, and backend hardware as its components.

Users can use thin clients as a replacement for a PC to access any virtual desktop or virtualized application. This is a cost-effective way to create a virtual desktop infrastructure. NComputing is using the RBPi as a thin client, named as RX300, to access the Windows 10 desktop.

A central machine runs the NComputing vSpace Pro 10 desktop virtualization software, and streams several Windows desktops, including Windows 10. The virtualization software allows the centrally managed Windows desktop to be run on hundreds of RX300 clients.

According to NComputing, the vCAST streaming technology it uses for full-screen playback can do full HD as local or web video on the RX300s. This precludes the central server from needing a dedicated GPU. Once you buy the RX300, an automatic free subscription to the vSpace Pro 10 technology automatically kicks in, but only for twelve months.

Each RX300 is an RBPi 3 model B with four USB 2 ports. They have full USB redirection and server-side device drivers that offer support for a complete range of peripherals. While running the official Linux-based Raspbian Operating System, each RBPi RX300 runs as a thin client and accesses a virtual Windows 10 desktop.

According to NComputing, the RX300 thin clients are simple to configure and receive updates from the vSpace Pro 10 servers. The CEO of NComputing, Young Song says they selected the RBPi 3 as the base for its thin clients as the board is affordable and portable.

From its vSapce Pro 10, NComputing streams a Windows desktop to a single client. For streaming desktops to several clients simultaneously, vSpace Pro 10 must be running on the Windows Server 2016 or similar. Therefore, the user will also need to purchase appropriate licenses to access the Microsoft clients.

The price per seat of a thin client deployment has now dropped and they are more cost-effective as compared to regular PCs. By using RBPis as thin clients, this claim is a definite reality.

Several industries and enterprises are now switching over to thin clients. They may have different requirements, but all share a few common goals. IT personnel exploring such goals are equivocal about the benefits of thin clients—cost, security, manageability, and scalability.

The term thin client is derived from small computers in networks being clients and not servers. The goal is to limit the capabilities of thin clients to only essential applications. That makes them centrally managed, while not being vulnerable to malware attacks. They also have a longer life cycle, use less power, and are less expensive to purchase.

RS485 Relay Output Module for the Raspberry Pi

Although many consider the RS485 relay output module as an archaic protocol, it is still important to the industry. The RS485 protocol allows up to 32 devices to communicate through the same data line over a cable length of up to 4000 feet with a maximum data rate of 10 Mbps. Not many other protocols can equal those numbers.

The single board computer, the Raspberry Pi (RBPi) is increasingly finding its way into more and more industrial applications. However, the limiting factor for most compatible relay modules is the number of contacts available, which are either too few, or limited by the GPIO pins used.

The RS485 relay interface overcomes this limiting factor. Modules such as the Pi-SPi-RS485 and VP-EC-8K0 support the Modbus protocol. That offers the industrial user up to 253 modules at eight relays per module, theoretically making it possible to use 2,024 relays from one interface. Practically, there are two limitations.

According to the hardware protocol, the RS485 relay can support up to 32 unit loads, before a repeater/amplifier becomes necessary for the next batch of loads. Popular modules use the Texas Instruments RS485 drivers such as the SN65HVD72DR half-duplex IC, which according to the TI data sheet, allow only up to 200 unit loads.

In addition, the hardware protocol of the RS485 relay output module specifies the maximum distance between the extreme ends of the RS485 transmission line cannot exceed 4000 feet. For greater distances, a repeater/amplifier becomes necessary.

Therefore, for any industrial application requiring serious outputs such as few hundreds of easily configurable relays, each with 10 A SPDT contacts with MOV protection, where the distances are within 4000 feet between all modules, the RS485 modules for the RBPi are a perfect fit. Some modules are field ready as they have an optional DIN rail enclosure.

RS485

RS485 is an industrial standard for transmitting serial data via a hard-wired cable—EIA/TIA-485 defines the system. RS485 offers the ability of multi-drop cabling with data speeds of up to 10 Mbps over 50 feet, and slower communication speeds of 100 kbps for up to 4000 feet. Industrial applications such as data acquisition widely use the RS485 protocol.

Simple networks often use RS485 links, connected in 2- or 4-wire mode. A typical application may have several addressable devices linked to a single controller, PC, or SBC such as the RBPi. This typically uses a single line for communication.

Using simple interface converters, linking systems using the RS485 and RS232 protocols is possible. This may include optical isolation between the two circuits. It is also possible to incorporate surge suppression for any electrical spikes that the communication line may pick up.

RS485 makes it easy to construct a multi-point data network for communication. According to the protocol, you can have 32 nodes capable of both transmitting and receiving. Furthermore, you can easily extend this capability further by using automatic repeaters and using high-impedance drivers/receivers. That means hundreds of nodes can exist on a network, extending the common mode range for both drivers and receivers with tri-state and power off modes for power saving.

Tinker Board: Raspberry Pi Competitor from ASUS

The community of single board computer users is passionate and the DIY enthusiasts are growing daily. While they are infatuated with the amazingly tiny package called the Raspberry Pi (RBPi), they are constantly clamoring for more performance and connectivity features. This demand has produced several competitors to the RBPi, and the tech giant, ASUS Computers is now providing one in the form of a Tinker Board.

The ASUS Computers product is a mini-PC based on the ARM core, and its actual model number is the ASUS 90MB0QY1-M0EAY0. However, it is easier to remember it as the Tinker Board. The smart name from ASUS for the product is the exact demographic of its intention, offering a tiny, all-in-one product for makers and tinkerers, to use in media servers, fun projects, and embedded applications. For instance, the Tinker Board allows one to build a personal NES Mini alternative.

Although a 64-bit ARM Cortex-A47 quad-core processor, the Broadcom BCM2837, powers the RBPi3 at 1.2 GHz, a 32-bit ARM Cortex-A17, the quad-core Rockchip RK3288 processor powers the Tinker Board, operating at 1.8 GHz. ASUS claims the Tinker Board is almost twice as fast as the RBPi3 model B. Additionally, against the 1 GB RAM configuration of the RBPi3, the Tinker Board offers 2 GB of RAM.

The Tinker Board has other advantages as well. The hardware includes the complete H.264 4K video decode capability, supported by a far stronger graphics performance from the ARM Mali-T764 with a graphics core of the Rockchip RK3288. The audio capabilities are also better with the Asus minicomputer offering audio sample rates at 192K/24-bit, while the RBPi3 offers only 48K/16-bit, which necessitates an add-on board for HD audio from the RBPi3.

The integrated, Gigabit Ethernet port at full speed on the Tinker Board gives it a substantial boost over the 100 Mb LAN on the RBPi3. Similar to that available on the RBPi3B, the Tinker Board also has an 802.11b/g/n Wi-Fi and Bluetooth 4 capability. In addition, it has support for SDIO 3.0, and offers swappable antennas for the built-in 802.11 b/g/n Wi-Fi module.

Similar to the RBPi3B, the Tinker Board also supports the Debian Linux (modified by ASUS) operating system and KODI, with its slick media streaming interface. Similar to the RBPi, the Tinker Board also comes with no on-board storage, and you have to use a micro SD card. However, the additional capabilities on the Tinker Board make it about twice as expensive as compared to the market price of the RBPi3B.

Physically, both single board computers are of the same size, with mounting holes in the same position. Obviously, ASUS wants the Tinker Board to be a drop-in replacement for the RBPi3. The same configuration of the GPIO pins for both boards lends further support to this credence.

The RBPi concept has spawned a whole new era of tiny computer devices, selling in several schools, colleges, and universities. Many other device manufacturers have since piled on and released their own version of the credit-card sized powerhouse.

In this chaotic, crowded environment, the specifications of the Tinker Board, although not ground breaking, could play nicely in the existing RBPi-based projects.

Monitor Appliances with Raspberry Pi

We use many appliances to help us around the house and office. However, most of them are not smart enough to inform us when they have finished the chore allotted to them. That means we have to leave whatever we are doing at intervals to check and monitor the state of the appliances. This reduces our efficiency for doing important work requiring long stretches of concentration.

All this can be set right if you have the single board computer, the Raspberry Pi (RBPi) readily available. You can program it to notify on your phone or desktop when appliances begin or end their cycles. That leaves you free to decide whether you leave your work or not to attend to the appliance.

The project is suitable for any model of the RBPi including the RBPi Zero. Actually, it makes use of a sensitive vibration sensor. Simply stick this sensor monitor onto any appliance. Any equipment, however old, generates mechanical vibrations when working. The sensor detects the minor vibrations and if they continue for a specified time, the sensor assumes the appliance is operating.

You can use this project to get notifications from any appliance such as furnaces, fans, garage door openers, dishwashers, clothes washers, and dryers, in fact, anything that vibrates when operating. Your RBPi sends tweets or PushBullet notifications when a device stops or starts vibrating.

This project needs the following parts: any model of the RBPi, a micro SD card, a USB Wi-Fi dongle, an 801s vibration sensor module, and a micro USB power source capable of supplying 1 amp. The power source can be any model of phone or tablet charger. If using an RBPi Zero, you will also need a micro USB adapter for plugging in the Wi-Fi dongle.

For this project, you can use the Raspbian Jessie Lite operating system. Download the image and transfer it onto the micro SD card. The card should have two partitions—a boot partition formatted to FAT32, and an OS partition formatted to the EXT3 file system. If you use Windows or Mac for transferring the image, you will need drivers to create the EXT3 partition.

Create and add a new ssh file in the boot partition. Include the host name and authentication data for the Wi-Fi. This will enable the ssh daemon, and you will be able to log into your RBPi from your desktop or laptop. It will also allow the OS to connect to your home network automatically when booting.

Insert the micro SD card into the RBPi socket, add the Wi-Fi dongle, and plug in the 801s vibration sensor to the RBPi GPIO pins. Make sure the pins of the sensor, the +5 V, GND, and the data pin, are connected to the proper pins on the GPIO. The data line of the sensor should go to GP15. Plug in the power source, turn the power on and you should be able to connect to your RBPi via ssh.

You will need some additional files and libraries to make this project work. Get them from here. To enable the proper notification time, set the local time zone on the RBPi.

LCD Touchscreens for the Raspberry Pi

Those using the single board computer, the Raspberry Pi (RBPi), can now get several high-resolution LCD screen models on the market. While they are cheap, some are designed to integrate with the RBPi specifically. SunFounder, a company specializing in accessories and kits for RBPi and Arduinos, produce a series of these screens. For satisfying different segments in the market, SunFounder has lately produced and is marketing a number of models with varying price ranges.

SunFounder LCD 10.1” HD

With a resolution of 1280×800, this high definition LCD is a true gem for RBPi fans. The screen has appropriate screw supports for use as a desktop screen. If you remove the supports, the screen can be used in any other context as well. The rear of the screen has a compartment with an electronic screen presenting input connectors in other formats such as VGA and AV, including HDMI. The back also has provision for mounting the RBPi and fixing it with screws. As the networking sockets and USB ports of the RBPi remain at the edge of the screen, cable connections are not hindered.

This high quality display has low weight and is highly adaptable to other purposes. That means you can screw it on different types of support, for which it has adequate arrangements. The viewing angle is also very good, and one is not forced to look at the upper front of the screen to be able to work with this model.

SunFounder LCD 7” HD

Significantly cheaper than its 10” elder brother, this 1024×600 TFT LCD is very compact and has convenient dimensions. However, it has a smaller viewing angle, considering this is purely a desktop model. Apart from HDMI, the LCD accepts inputs such as VGA, AV1, and AV2.

Kuman LCD 7” HD

Technically identical to the SunFounder 7”, this LCD is equipped with a touch screen. As this is somewhat cheaper, the 1024×600 Kuman TFT LCD is more economical. However, it is slightly heavier than its rival is. It accepts HDMI, VGA, and AV inputs.

SainSmart LCD 7”

If you are looking for something still cheaper, and able to sacrifice some resolution, the SainSmart model should appeal to you. At a resolution of 800×480, this TFT LCD also includes a touch screen. However, this is not a desktop model, and you must arrange for a suitable housing. Weighing considerably lower than the others do, it accepts inputs in the form of HDMI, VGA, AV1, and AV2.

Raspberry Pi LCD 7”

Although officially released by the Raspberry Foundation, this 800×400 LCD model is comparatively expensive. However, it comes with a touch screen and has a video shield for the RBPi boards. The case housing must be purchased separately, which adds to the cost.

Kuman 7”

If you are looking for a model you can assemble, this 800×480 model from Kuman makes that possible. This is the same as the other Kuman model, but less expensive. Additionally, it has a touch screen and a remote control. It accepts input formats such as HDMI, VGA, and AV.

The Raspberry Pi MeARM

Arms are a favorite with robotic enthusiasts. The number of joints in an arm ensures this. For instance, an arm can be made to rotate a full circle, and bend to almost at right angles. Each finger on an arm can be manipulated independently, and each finger can have at least three joints. Therefore, an arm with even two fingers and an opposing thumb can pick up objects—with pressure sensing. A simple project such as an arm can become as complicated as one can make it.

The above reasons made the original MeARM kit a veritable success. It was a pocket sized robot arm and budding Raspberry Pi (RBPi) enthusiasts quickly latched on to it. The design was simple, an open-source. It needed only three parts, the servomotors, screws, and the laser-cut parts. This simplicity spread the design round the world, making it massively successful. Although parents were skeptical of its complexity, children loved it. Its makers, the Bens, are now back with a new project, the MeARM Pi.

The new MeARM Pi, like its predecessor, is also simple enough for children to build it themselves. The RBPi gives the arm its hardware and processing power making the whole project a pleasant, fun, and simple experience. In just thirty minutes, you can build the new MeARM, connect it to your RBPi, add the Wi-Fi, connect it to your network, and start programming it using your favorite language—JavaScript, Python, Snap, or Scratch. Now, isn’t that a fun way to start learning to code?

The workings of the MeARM Pi are straightforward and simple. The GPIO pins on the RBPi drive the servos directly. The RBPi communicates directly with the joysticks using an I2C ADC. Even the on-board RGB LED gets its power directly from the GPIO pins, so playing around with colors is simplified. Although the regular 2 Amp RBPi power supply delivers all this power without any issues, you may consider using an upgraded power supply rated at 2.5 Amps, if you are planning to plug in some more devices.

The HAT with the kit has its own power supply, which will comfortably power both the arm and the RBPi. As the HAT follows the reference design for all RBPi HAT designs, the accompanying open-source Node.js app performs a few key tasks that include controlling the servos in the arm via the GPIO pins. It also reads the state of the joysticks via the ADC.

This great kit is just right for any budding programmer stepping into the world of digital electronics. The kit contains everything needed (except the RBPi): all plastic parts, Allen key screws and Allen key, four metal-gear servos, RBPi HAT with two on-board joysticks.

To improve the quality, the kit comes with metal gear servos rather than the usual plastic ones. Moreover, small fingers of children aren’t well equipped to handle screwdrivers. That is the reason for including the Allen key parts—more reliable.

Depending on preference, you can go for either the blue color kit or the orange one. The programming languages are already available on the RBPi, so as soon as you have assembled the arm, it is ready to pick up things.

How to Host XBee Sensors with the Raspberry Pi

Hosting sensors on the Raspberry Pi (RBPi) is so simple because the GPIO pins are all available. As most sensors need very little supporting components, hosting multiple sensors on your RBPi is possible. For instance, RBPi can simultaneously host multiple sensors for temperature, pressure, humidity, and other parameters for sampling atmospheric conditions from a weather station.

However, the RBPi does not support digitals signals on its GPIO pins. This is one reason the RBPi is so inexpensive. For accessing digital signals, the RBPi would need a digital to analog converter, preferably a 12-bit device with 4 channels.

Websites such as SparkFun and Adafruit carry a host of sensors and provide a huge amount of information about the products. Google also provides examples of using analog sensors with the RBPi. The restrictions of using only analog sensors and the 3.3 V maximum supply voltage makes the RBPi less versatile than its competitors such as the Arduino. In addition, on the RBPi you must run Python scripts as root, which makes it somewhat more difficult to do than doing so with the Arduino.

Other than connecting sensors directly to your RBPi, you can also consider using the RBPi as an aggregator node by using an XBee to connect to XBee-hosted sensors or Arduino-hosted sensors.

More specifically, you connect the remote sensor with the RBPi using XBee modules. For this, you will need to create a node first. Start with connecting the serial interface, which is a part of the GPIO header on the RBPi, to the serial interface on the XBee. Do not power on your RBPi or the sensor node, until after you have completed and verified all the hardware connections.

You will need an XBee breadboard adaptor and a breadboard. Plug in the adaptor on the breadboard. Now wire the 3.3 V and GND from the RBPi GPIO to the pins on your XBee adaptor. In case you are using the XBee Explorer Regulator from SparkFun, you may connect to the 5 V power line, as the XBee Explorer has an onboard regulator. The serial interface pins on the SparkFun board has the pins arranged in a header on the side of the board. This board also has the onboard regulator to protect the XBee, and you can connect the Explorer to the 5 V pin instead of the 3.3 V pin.

It is much easier to use connectors instead of wires. Therefore, consider soldering breadboard headers to the XBee adaptor and connect to the serial I/O header.

Next, connect the TXD pin of the GPIO on the RBPi to the DIN pin on the XBee Explorer. The RXD pin of the GPIO on the RBPi goes to the DOUT pin on the XBee Explorer. If using the SparkFun adapter, make sure you are connecting to the right pins—check the documentation for the same. Now take the coordinator XBee module and insert it into the XBee.

Before writing your own scripts, you need to download the special library from XBee. This provides a special Python module that encapsulates the XBee protocols and frame-handling mechanisms.

Name Badge with the Raspberry Pi

For people who interact a lot with others, it helps to build relationships if there is a small gizmo available as a handout. Apart from being a conversation starter, this could also be an advertiser for that upcoming project or story. Most people relish being handed a freebie, and a programmable one-off gadget is one of the best.

These were the exact thoughts running through Rob Reilly’s mind when he got a tiny color LCD for Christmas. He conceived the idea of a programmable name badge, as that would certainly grab eyeballs. Being configurable, the message could change to a logo, or graphics as necessary, maybe even through sensor inputs. When you have an idea to sell, having a self-made project considerably adds to your credibility. What Rob Reilly did with an Arduino Pro Mini, Josh King has accomplished with a Raspberry Pi (RBPi) Zero. He calls it the PiE-Ink Name Badge.

For the necessary parts of the name badge project Josh starts with the RBPi Zero, the PaPiRus 2-inch e-ink HAT, an Arduino Powerboost 1000c, and a Li-Po battery. He puts the parts together using some magnets and adhesive putty.

After soldering the header pins to the RBPi Zero, Josh attached the Powerboost, which is a useful power supply. It has a built-in load-sharing battery charger that allows the project to run even when the batteries are charging. Any 3.7 V Li-Po battery can power this DC-DC converter board, which transforms the battery output to 5.2 VDC for powering the RBPi.

At this point, Josh attaches the PaPiRus HAT to the RBPi Zero, securing all the boards with putty, ensuring a snug fit. A mini slide switch in series with the power supply wires completes the assembly and allows on-off functionality.

Josh has Raspbian already pre-installed on the SD card, so he follows it up with the setup for the PaPiRus. He needs to download all the libraries in place for the RBPi Zero to recognize the 2-inch screen. To fit into the e-ink screen, Josh had to scale all images down to 200×96 pixels.

The PaPiRus is an RBPi HAT compliant design with an interchangeable screen size—you can use a 1.44”, a 2.0”, or a 2.7” e-ink display. It has 32 Mb Flash memory with a battery backed RTC, and the onboard EEPROM allows it to be plug and play with the RBPi. To facilitate projects, there is an onboard thermal watchdog, a temperature sensor, and a GPIO breakout connector with solder pads. There are four optional slim line switches on the top, and an optional reset pin header to allow the HAT wake on alarm from the RTC. PaPiRus is suitable for powering from 3.3 or 5 V power supplies, and compatible with RBPi, Arduino, Beaglebones, and many more boards that are similar.

PaPiRus uses the ePaper technology, mimicking the appearance of ink on paper. This technology is different from LCDs, as it reflects light just as ordinary paper does. Moreover, similar to ordinary paper, the ePaper display can hold text and images indefinitely, even without battery power being present.

As the display does not require any power to retain the image, the entire electronics could go to sleep for days together before the image starts to fade slowly.

A Raspberry Pi Computer in an Altoids Tin

Turning an Altoids Tin into a Raspberry Pi computer

Turning an Altoids Tin into a Raspberry Pi computer

Although Altoids, a brand of breath mints, has its origin in the UK, it is less widely available there than it is in the US. The mints come packaged within a distinctive tin case, which people commonly reuse for different purposes, mainly as a container for small household items such as sewing materials, coins, paper clips, among many other items.

DIY enthusiasts often find the tins eminently suitable to contain electronic projects. For instance, Texas Instruments makes the BeagleBones, a single board computer, with rounded corners deliberately shaped in, so it will fit within the tin box. You can easily use the Altoids tin for enclosing the CMoy pocket headphone amplifier. The design of some microcomputer kits allow them to fit perfectly in the Altoids tins.

All the above led M. Wagner to come up with an idea of housing a Raspberry Pi (RBPi) SBC within an Altoids tin box. With the release of the RBPi Zero, he firmed up the project, calling it the PiMiniMint. His first version of the PiMiniMint had a screen, Wi-Fi, Bluetooth, 32 GB storage, infrared camera, and a full-size USB port. However, he found no space for a battery—to add the battery, he needed to remove the camera. His latest version of the PiMiniMint has a battery that lasts about 6-8 hours, a 2-inch screen, 32 GB storage, Bluetooth, Wi-Fi, and an OTG cable serving as a full-sized USB port.

Wagner uses a 1200 mAh 3.7 V Li-Po battery for PiMiniMint. This thin, rechargeable battery fits easily under the RBPi inside the case. He has soldered the red and black wires from the battery to the ‘+’ and ‘—’ connection points on the charging circuit. Any 3.7 V Li-Po battery should work here, preferably thin ones that the tin can hold.

Although the RBPi runs at 5 V, the battery needs 3.7 V to charge. Li-Po batteries are notorious for exploding if overcharged for long or for not being charged properly. Adafruit has a circuit that both charges the Li-Po and steps up its voltage to 5 V for the RBPi. However, Wagner uses a cheaper option—a generic USB charger. He chose a USB charger with a 3.7 V battery and with an output of 5 V. Although these tiny chargers do require a bit of preparation and de-soldering to get them to work with the RBPi, they are much cheaper.

To fit into the Altoids tin case, Wagner chose to use the RBPi Zero. Usually, the RBPi models do not boot off a hard disk, but needs an SD card. Wagner used one that had a suitable OS on it. You can select the OS of your choice and load it into an SD card. As the RBPi Zero does not come with any header, it is necessary to solder a 2×40 male header on the RBPi to connect to the iotHAT.

The Redbear iotHAT is a little HAT for the RBPi Zero, sitting directly on top and interfacing with the RBPi. The HAT gives the RBPi Zero capabilities such as Bluetooth and Wi-Fi. Wagner chose the 2-inch Adafruit NTSC/PAL screen simply because it fits the tin case.

PiFM: A Pirate Radio with the Raspberry Pi

The popular single board computer, the Raspberry Pi (RBPi), can work as a radio transmitter as well. Using a simple hack, you can turn your RBPi into a powerful FM transmitter with adequate range to cover a bike parade, high school ball game, silent disco, DIY drive-in movie, or even your entire home. However, the broadcast frequency covered by the RBPi is rather large—one to 250 MHz, and there is a possibility this will interfere with government bands. Therefore, it is advisable to limit the transmissions to the standard FM band of 87.5 to 107.9 MHz.

You do not need much to make the RBPi start transmitting. The RBPi board itself, a power source, and the SD card with the OS is all that is necessary. The only accessory required is a piece of wire, which acts as the antenna. The entire project runs on the software PiFM.

Oscar Weigl and Oliver Matios developed PiFM originally, and Ryan Grassel revised it. This project uses the PirateRadio.py script, which enables playback without accessing the command line, while handling most common music file formats automatically. Wynter Woods, a MAKE labs engineering intern, wrote the script.

Oscar and Oliver had hacked the original PiFM code over a few hours. To output FM radio energy, their code used the hardware on the RBPi that actually generates spread-spectrum clock signals on the GPIO pins. Therefore, to turn the RBPi into a really powerful FM transmitter, all that was necessary was to add a wire length acting like an antenna to one of the GPIO pins. The original code used the GPIO pin 4 with a wire of length about 20 cm attached to it. For transmission, Oscar and Oliver had chosen the frequency of 100.0 MHz.

When Sam Freeman and Wynter Woods tested the present project, they found the FM signal only deteriorated once it had to pass through several conference rooms with heavy walls. The signal was able to cover 50 m easily, and objects such as heavy metal cabinets could stop it. They found the sound quality acceptable, although it has some clicks that came from the CPU switching to tasks other than playing music. For the technically minded, a kernel mode driver uses the DMA controller for preventing the RBPi CPU from being loaded, and thereby plays smooth music.

The Python script calls a C program that maps the peripheral bus of the physical memory into virtual address space. After this, it enables the clock generator module and sets points its output to GPIO4. Note that you will not be able to use any other GPIO pin at this time. It also sets the frequency of transmission to 100.0 MHz, which acts as the carrier. If you receive this on a radio, the radio will stop the background noise and become silent.

The carrier is modulated by the audio produced by adjusting the frequency using the fractional divider between 100.025 and 99.075 MHz. The fractional divider can produce audio with only 6-bit resolution. As the RBPi is very fast, it can use 128 subsamples on every real audio sample to produce 9.5-bit audio. The subsample algorithm now gives full 16-bit quality sound with FM pre-emphasis.