Tag Archives: Raspberry Pi 3B+

Build a SatNOGS ground station with a Raspberry Pi 3B+ | HackSpace magazine #18

via Raspberry Pi

The big feature on outer space in issue 18 of HackSpace magazine, available from today, shows you how to build your own satellite and launch it into orbit.

No, we’re not kidding, this is an actual thing you can do.

And to track the satellite you’ve launched, or another satellite you’re interested in, here’s how to build your own SatNOGS ground station with a Raspberry Pi 3B+.

Building a Raspberry Pi ground station

Once you’ve built and launched your small satellite, you’ll want to listen to all the glorious telemetry and data it‘s sending back as it hurtles around the Earth. Or perhaps you aspire to have a satellite up there, but in the meantime you want to listen to some other objects? What you need is a ground station, but a single ground station has one slight flaw. Most of the time a satellite will not be overhead of a single ground station; in fact, it may only pass over a ground station once every few days, massively reducing the amount of information or data we can receive. So we need a network of ground stations. The SatNOGS network solves this by creating a global network of stations that can work together to increase coverage.

SatNOGS is an open-source project that has numerous designs for satellite ground stations, but whichever design you pick, you can join the network that links them all via the web.

A station owner can use the website to browse for future passes of a satellite, and then click a button to schedule for their station to turn on, tune to frequency, and record the pass, sometimes even rotating the antenna on the station to track the satellite. Not only can a station owner schedule an observation on their own station, but they can schedule observations on any station on the global network.

As we can see from this map of data being collected of a recent SSTV broadcast from the ISS (sends single-frame images transmitted via audio from the ISS), the SatNOGS network has near-global coverage, rivalling most professional institutions in the world.

Simple setup

The simplest form of a SatNOGS station is one that doesn’t move or track and is made from a static antenna, a Raspberry Pi, and a cheap software-defined radio (SDR) dongle. The SDR dongle has become ubiquitous in maker circles as it is an affordable entry item into the world of receiving signals via SDR. Looking at our ingredients in the image below, let’s explore them a little more before we get started.

While a permanent station may do better connected by Ethernet cable, using the Raspberry Pi’s built-in wireless LAN functionality means we can run this simply with only a power cable. While many have used the cheapest Realtek SDR dongles with success, some people have found the slightly more refined versions can be more stable – a current recommendation is the RTL-SDR V3, which has a better casing for thermal dissipation, and slightly upgraded components. The RTL-SDR V3 is available here.

The classic antenna recommended for a static SatNOGS setup shown above is a ‘turnstile’ antenna; commercial models are available, such as the Wimo TA-1, but people have designed and built lots of different static antennas for different frequencies and with small budgets – check out the tutorial Make a Slim Jim antenna on page 112 (in HackSpace issue 18, links below).

In order to set up a ground station, one of the first tasks we need to do is set up an account on network.satnogs.org. Registering on the site then gives us a dashboard where we can begin to set up a station. Click to add a station — we then need to supply it with some basic details as per the image below: a name for the station, a location in latitude and longitude (Google is your friend here!), and the elevation of the station above sea-level.

You need to decide what frequency your station is going to cover; the most common ranges are UHF and VHF, which would require different antennas, but either range has a huge number of objects you can schedule to observe. Many people opt for VHF, as this includes the frequency range for a lot of the different transmissions from the ISS, so we are going to choose VHF as well. You also need to add a minimum elevation value — this is the minimum angle that a satellite must be in terms of height for your station to see it — if you aren’t sure, either ask for help on the forums, or leave it for now at the default 10 degrees.

Having filled in the boxes to create the station (leave the ‘this is in testing’ box ticked for now), you should now see a ground station entry has been made on your account, as above. You will see (even though it isn’t set up yet) a list populating underneath the entry with ‘Pass Predictions’, which are things you could schedule to observe once you are up and running. Before we leave the website, we need to make a note of the number assigned to the ground station, and also our own personal API key — which we can find in our dashboard by clicking the API key button. These two pieces of information are what will ultimately connect our ground station hardware to the website account.

The next task is to sort out the Raspberry Pi. You can find the current custom SatNOGS image here.

Flash this to your microSD card as you would for a regular Raspberry Pi setup — the free app Etcher, for example, is a simple tool that allows you to flash an image to a card.

Once done, boot the Raspberry Pi, and you can either SSH into the Pi, or connect a keyboard and monitor and interact with the setup that way. The first things we need to do are not SatNOGS-specific, but are the usual things we do when setting up a Raspberry Pi. We need to set up a different password by running the sudo raspi‐config command. Once you’ve set a password and expanded the file system, it’s also useful to set the time zone to UTC, as this is used throughout the SatNOGS network. If you want to run this test station wirelessly, then you need to configure your network connection at this point. If you are connecting via an Ethernet cable, then you don’t need to do anything else. Apply the changes and reboot (then see ‘Final setup’ box above in HackSpace issue 18, links below).

Now, if we go back to our dashboard on the SatNOGS website (perhaps wait a few minutes and click Refresh), we should see that the station is now online, as above. We should see an orange spot on the network map showing our proud station in testing. Being in testing means that only you can schedule observations on the station, but when you are ready, you can change settings to take it out of testing and then it is fully on the network.

On the hunt

Power down one last time and connect the RTL-SDR dongle and the antenna, then reboot — you are now ready to hunt satellites! Scheduling observations is as simple as selecting passes from the list and clicking Schedule. There may be drop-down choices for different transmitters to listen for on the same satellite, and other choices, but essentially you click Calculate to create the observation and then Schedule for the job to be created and sent to the queue for your station. There are hundreds of satellites to try to observe, so don’t worry if you don’t understand what any of them are — in the pass predictions list, if you click the name of a satellite you will get a pop-up with information about it. For a more detailed walkthrough of scheduling an observation on the SatNOGS network, check out this blog post.

After the time of the pass, return to the observation page and, hopefully, you should see some signals. Don’t worry if your first few observations aren’t successful: try at least a dozen observations before making any changes, as there are many possible reasons for a signal not getting picked up; indeed, the satellite may not even have been transmitting. If you have received a signal, you should ‘vet’ the observation as good; this is particularly important if you have scheduled on someone else’s station – etiquette says we should check and vet our own observations. Check out the Slim Jim antenna (see page 112 of HackSpace magazine issue 18, links below) for a link to a successful observation you can listen to.

Happy satellite hunting!

Finally, it’s a great idea to join the Libre Space Foundation community forum (or IRC), as it hosts the SatNOGS community channels, and there is a wealth of expertise and help available there from a very welcoming community. If you build a station, go and share your achievement on the forum — everyone will be pleased to see it.

Get HackSpace magazine issue 18 — out today

HackSpace magazine issue 18 is out today, and available online, or from many high-street retailers such as WHSmith and Sainsbury’s in the UK, and Barnes & Nobel in the US.

You can also download issue 18 for free, today as a PDF, so there really is no reason not to give HackSpace a spin.

The post Build a SatNOGS ground station with a Raspberry Pi 3B+ | HackSpace magazine #18 appeared first on Raspberry Pi.

Beowulf Clusters, node visualisation and more with Pi VizuWall

via Raspberry Pi

Pi VizuWall is a multi-Raspberry Pi MPI computing system with a difference. And the difference is servo motors!

Pi VizWall at Maker Faire Miami

We can thank Estefannie for this gem. While attending Maker Faire Miami earlier this month, she shared a video of Pi VizWall on her Instagram Stories. And it didn’t take long for me to ask for an introduction to the project’s owner, Matt Trask.

I sent Matt a series of questions in relation to the project so I could write a blog post, but Matt’s replies were so wonderfully detailed that it seems foolish to try and reword them.

So here are the contents of Matt’s email replies, in their entirety, for you all to enjoy.

Parallel computing system

The project is a parallel computing system built according to the Beowulf cluster architecture, the same as most of the world’s largest and fastest supercomputers. It runs a system called MPI (Message Passing Interface) that breaks a program up into smaller pieces that can be sent over the network to other nodes for execution.

A Beowulf cluster at Michigan Tech

Beowulf clusters and MPI were invented in 1994 by a pair of NASA contractors, and they totally disrupted the high-performance computer industry by driving the cost of parallel computing way down. By now, twenty-five years later, the Beowulf cluster architecture is found in approximately 88% of the world’s largest parallel computing systems.

Going back to university

I’m currently an undergraduate student at Florida Atlantic University, completing a neglected Bachelor’s Degree from 1983. In the interim, I have had a wonderful career as a Computer Engineer, working with every generation of Personal Computer technology. My main research that I do at the University is focused on a new architecture for parallel clusters that uses traditional Beowulf hardware (enterprise-class servers with InfiniBand as the interconnect fabric) but modifies the Linux operating system in order to combine the resources (RAM, processor cores) from all the nodes in the cluster and make them appear as a single system that is the sum of all the resources. This is also known as a ‘virtual mainframe’.

The Ninja Gap

In the world of parallel supercomputers (branded ‘high-performance computing, or HPC), system manufacturers are motivated to sell their HPC products to industry, but industry has pushed back due to what they call the “Ninja Gap”. MPI programming is hard. It is usually not learned until the programmer is in grad school at the earliest, and given that it takes a couple of years to achieve mastery of any particular discipline, most of the proficient MPI programmers are PhDs. And this, is the Ninja Gap — industry understands that the academic system cannot and will not be able to generate enough ‘ninjas’ to meet the needs of industry if industry were to adopt HPC technology.

Studying Message Passing Interface

As part of my research into parallel computing systems, I have studied the process of learning to program with MPI and have found that almost all current practitioners are self-taught, coming from disciplines other than computer science. Actual undergraduate CS programs rarely offer MPI programming. Thus my motivation for building a low-cost cluster system with Raspberry Pis, in order to drive down the entry-level costs.

This parallel computing system, with a cost of under $1000, could be deployed at any college or community college rather than just at elite research institutions, as is done [for parallel computing systems] today.

Moving parts

The system is entirely open source, using only standard Raspberry Pi 3B+ boards and Raspbian Linux. The version of MPI that is used is called MPICH, another open-source technology that is readily available.

Perhaps one of the more interesting features of the cluster is that each of the Pi boards is mounted on a clear acrylic plate that is attached to a hinging mechanism. Each node is capable of moving through about 90 degrees under software control because a small electric servo motor is embedded in the hinging mechanism. The acrylic parts are laser-cut, and the hinge parts have been 3D printed for this prototype.

Raspbian Linux, like every other Linux version, contains information about CPU utilization as part of the kernel’s internal data. This performance data is available through the /proc filesystem at runtime, allowing a relatively simple program to maintain percent-busy averages over time. This data is used to position the node via its servo, with a fully idle node laying down against the backboard and a full busy node rotating up to ninety degrees.

Visualizing node activity

The purpose of this motion-related activity is to permit the user to visualize the operation of the cluster while executing a parallel program, showing the level of activity at each node via proportional motion. Thus the name Pi VizuWall.

Other than the twelve Pi 3s, I used 12 Tower Pro micro servos (SG90 Digital) and assorted laser-cut acrylic and 3D-printed parts (AI and STL files available on request), as well as a 14-port Ethernet switch for interconnects and two 12A 6-port USB power supplies along with Ethernet cable and USB cables for power.

The future of Pi VizuWall

The original plan for this project was to make a 4ft × 8ft cluster with 300 Raspberry Pis wired as a Beowulf cluster running MPICH. When I proposed this project to my Lab Directors at the university, they balked at the estimated cost of $20–25K and suggested a scaled-down prototype first. We have learned a number of lessons while building this prototype that should serve us well when we move on to building the bigger one. The first lesson is to use CNC’d aluminum for the motor housings instead of 3D-printed plastic — we’ve seen some minor distortion of the printed plastic from the heat generated in the servos. But mainy, this will permit us to have finer resolution when creating the splines that engage with the shaft of the servo motor, solving the problem of occasional slippage under load that we have seen with this version.

The other major challenge was power distribution. We look forward to using the Pi’s PoE capabilities in the next version to simplify power distribution. We also anticipate evaluating whether the Pi’s wireless LAN capability is suitable for carrying the MPI message traffic, given that the wired Ethernet has greater bandwidth. If the wireless bandwidth is sufficient, we will potentially use Pi Zero W computers instead of Pi 3s, doubling the number of nodes we can install on a 4×8’ backboard.

The post Beowulf Clusters, node visualisation and more with Pi VizuWall appeared first on Raspberry Pi.

Raspberry Pi-controlled brass bell for ultimate the wake-up call

via Raspberry Pi

Not one for rising with the sun, and getting more and more skilled at throwing their watch across the room to snooze their alarm, Reddit user ravenspired decided to hook up a physical bell to a Raspberry Pi and servo motor to create the ultimate morning wake-up call.

DIY RASPBERRY PI BELL RINGING ALARM CLOCK!

This has to be the harshest thing to wake up to EVER!

Wake up, Boo

“I have difficulty waking up in the morning” admits ravenspired, who goes by the name Darks Pi on YouTube. “My watch isn’t doing its job.”

Therefore, ravenspired attached a bell to a servo motor, and the servo motor to a Raspberry Pi. Then they wrote Python code in Raspbian’s free IDE software Thonny that rings the bell when it’s time to get up.

“A while loop searches for what time it is and checks it against my alarm time. When the alarm is active, it sends commands to the servo to move.”

Ouch!

While I’d be concerned about how securely attached the heavy brass bell above my head is, this is still a fun project, and an inventive way to address a common problem.

And it’s a lot less painful than this…

The Wake-up Machine TAKE #2

I built an alarm clock that slapped me in the face with a rubber arm to wake me up.I built an alarm clock that wakes me up in the morning by slapping me in the face with a rubber arm.

Have you created a completely over-engineered solution for a common problem? Then we want to see it!

The post Raspberry Pi-controlled brass bell for ultimate the wake-up call appeared first on Raspberry Pi.

Bind MIDI inputs to LED lights using a Raspberry Pi

via Raspberry Pi

Blinky lights and music created using a Raspberry Pi? Count us in! When Aaron Chambers shared his latest project, Py-Lights, on Reddit, we were quick to ask for more information. And here it is:

Controlling lights with MIDI commands

Tentatively titled Py-Lights, Aaron’s project allows users to assign light patterns to MIDI actions, creating a rather lovely blinky light display.

For his example, Aaron connected a MIDI keyboard to a strip of RGB LEDs via a Raspberry Pi that ran his custom Python code.

Aaron explains on Reddit:

The program I made lets me bind “actions” (strobe white, flash blue, disable all colors, etc.) to any input and any input type (hold, knob, trigger, etc.). And each action type has a set of parameters that I bind to the input. For example, I have a knob that changes a strobe’s intensity, and another knob that changes its speed.

The program updates each action, pulls its resulting color, and adds them together, then sends that to the LEDs. I’m using rtmidi for reading the midi device and pigpio for handling the LED output.

Aaron has updated the Py-Lights GitHub repo for the project to include a handy readme file and a more stable build.

The post Bind MIDI inputs to LED lights using a Raspberry Pi appeared first on Raspberry Pi.

Can’t Drive This, the 4D arcade machine

via Raspberry Pi

A Raspberry Pi–powered arcade display with hidden interactive controls won over the crowds at Gamescom. Rosie Hattersley and Rob Zwetsloot got the inside scoop.

Pixel Maniacs is a Nuremberg-based games maker that started out making mobile apps. These days it specialises in games for PC, Xbox One, PlayStation, and Nintendo Switch. You Can’t Drive is its first foray into gaming with a Raspberry Pi.

If you’re going to add a little something extra to wow the crowd at the Gamescom video games trade fair, a Raspberry Pi is a surefire way of getting you noticed. And that’s the way Pixel Maniacs went about it.

The Nuremberg-based games developer retrofitted an arcade machine with a Raspberry Pi to showcase its intentionally silly Can’t Drive This precarious driving game at Gamescom.

This two-player co-operative game involves one player building the track while the other drives along it.

Complete with wrecking balls, explosions, an inconvenient number of walls, and the jeopardy of having to construct your road as you negotiate your way, at speed, across an ocean to the relative safety of the next lump of land, Can’t Drive This is a fast‑paced racing game.

Splash action

Pixel Maniacs then took things up a notch by providing interactive elements, building a mock 4D arcade game (so-named because they feature interactive elements such as motion cabinets). The fourth dimension, in this case, saw the inclusion of a water spray, fan, and console lights. For its Gamescom debut, Pixel Maniacs presented Can’t Drive This in a retro arcade cabinet, where hordes of gaming fans gathered round its four-way split screen to enjoy the action.

Getting to the heart of the matter and replacing the original 1980s kit with modern-day processors and Pi-powered additions

Adding Raspberry Pi gaming to the mix was about aiding the game development process as much as anything. Andy Holtz, Pixel Maniacs’ software engineer, told The MagPi that the team wanted an LED matrix with 256 RGB LEDs to render sprite-sheet animations. “We knew we needed a powerful machine with enough RAM, and a huge community, to get the scripts running.”

Pixel Maniacs’ offices have several Raspberry Pi–controlled monitors and a soundboard, so the team knew the Pi’s potential.

The schematic for the 4D arcade machine, showing the importance of the Raspberry Pi as a controller.

The arcade version of the game runs off a gaming laptop cunningly hidden within the walls of the cabinet, while the Raspberry Pi delivers the game’s surprise elements such as an unexpected blast from a water spray. A fan can be triggered to simulate stormy weather, and lights start flashing crazily when the cars crash. Holtz explains that the laptop “constantly sends information about the game’s state to the Raspberry Pi, via a USB UART controller. The Pi reads these state messages, converts them, and sends according commands to the fans, water nozzle, camera, and the LED light matrix. So when players drive through water, the PC sends the info to the Pi, and [the latter] turns on the nozzle, spraying them.”

Having played your heart out, you get a photo-booth-style shot of you in full-on gaming action.

The arcade idea came about when Pixel Maniacs visited the offices of German gaming magazine M! Games and spied an abandoned, out-of-order 1980s arcade machine lurking unloved in a corner. Pixel Maniacs set about rejuvenating it, Da Doo Ron Ron soundtrack and all.

Sustained action

Ideas are one thing; standing up to the rigours of a full weekend’s uninterrupted gameplay at the world’s biggest games meet is something else. Holtz tells us, “The Raspberry Pi performed like a beast throughout the entire time. Gamescom was open from 9am till 8pm, so it had to run for eleven hours straight, without overheating or crashing. Fortunately, it did. None of the peripherals connected to the Pi had any problems, and we did not have a single crash.”

A Raspberry Pi 3B+ was used to trigger the water spray, lights, and fans, bringing an extra element to the gameplay, as well as rendering the arcade machine’s graphics.

Fans were enthusiastic too, with uniformly positive feedback, and one Gamescom attendee attempting to buy the arcade version there and then. As Andy Holtz says, though, you don’t sell your baby. Instead, Pixel Maniacs is demoing it at games conventions in Germany this autumn, before launching Can’t Drive This across gaming platforms at the end of the year.

This article was printed in The MagPi issue 75. Get your copy of The MagPi in stores now, or download it as a free PDF here.

The post Can’t Drive This, the 4D arcade machine appeared first on Raspberry Pi.

Build your own robotic cat: Petoi returns

via Raspberry Pi

Who wouldn’t want a robot kitten? Exactly — we knew you’d understand! And so does the Petoi team, hence their new crowdfunding campaign for Petoi Nybble.

Petoi Nybble

Main campaign video. Back our Indiegogo campaign to adopt Nybble the robo kitten! Share with your friends who may love it! Indiegogo: https://igg.me/at/nybble A more technical post: https://www.hackster.io/RzLi/petoi-nybble-944867 Don’t forget to follow Twitter @PetoiCamp and subscribe to Petoi.com for our newsletters! Most importantly, enjoy our new kitten!

Petoi mark 2

Earlier this year, we shared the robotic cat project Petoi by Rongzhong Li. You all loved it as much as we did, and eagerly requested more information on making one.

Petoi Raspberry Pi Robot Cat

Rongzhong’s goal always was for Petoi to be open-source, so that it can be a teaching aid as much as it is a pet. And with his team’s crowdfunding campaign, he has made building your own robot cat even easier.

Petoi the laser-cut robotic cat

Laser kitty

In the new Nybble version of Petoi, the team replaced 3D-printed parts with laser-cut wood, and cut down the parts list to be more manageable: a Raspberry Pi 3B+, a Sparkfun Arduino Pro Mini, and the Nybble kit, available in the Nybble IndieGoGo campaign.

Petoi the laser-cut robotic cat

The Nybble kit! “The wooden frame is a retro design in honor of its popstick-framed ancestor. I also borrowed the wisdom from traditional Chinese woodwork (in honor of my ancestors), to make the major frame screw-free.”

But Nybble is more than just wooden parts and servo motors! The robotic cat’s artificial intelligence lets users teach it as well as control it,  so every kitty will be unique.

Nybble’s motion is driven by an Arduino-compatible micro-controller. It stores instinctive “muscle memory” to move around. An optional AI chip, such as a Raspberry Pi, can be mounted on top of Nybble’s back, to help Nybble with perception and decision. You can program in your favorite language, and direct Nybble to walk around simply by sending short commands, such as “walk” or “turn left”!

The NyBoard

For this version, the Petoi team has created he NyBoard, an all-in-one controller board for the Raspberry Pi. It’s available to back for $45 if you don’t want to pledge $200 for the entire cat kit.

Petoi the laser-cut robotic cat

Learn more

If you’d like to learn more about Nybble, visit its IndieGoGo campaign page, find more technical details on its Hackster.io project page, or check out the OpenCat GitHub repo.

Petoi the laser-cut robotic cat

And if you’ve built your own robotic pet, such as a K-9–inspired dog, or Raspberry Pi–connected android sheep, let us know!

The post Build your own robotic cat: Petoi returns appeared first on Raspberry Pi.