Ask HN: Share Your Raspberry Pi Project

166 points by samayshamdasani ↗ HN
I'm looking for some inspiration for what I can do with my $35 computer. I think we can all learn a lot from any cool hardware project.

159 comments

[ 5.8 ms ] story [ 252 ms ] thread
I will be using the EnviroPhat from Pimoroni to collect data about the solar eclipse on August 21. I was more motivated by the data than putting together my own hardware for this one.
I have one running PiAware: http://flightaware.com/adsb/piaware/

I built a "Kitchen Dashboard" last year: https://gavinr.com/2016/01/10/raspberry-pi-kitchen-dashboard...

And of course you have to build a RetroPie: https://retropie.org.uk/

+1 for PiAware. It's just about the easiest project and a good intro to the Pi.

Other things on Pi in my house: OpenVPN server (http://www.pivpn.io/) and Node-RED (https://nodered.org/) for collecting temperature data and pushing to Power BI.

I use my raspberry pi to run home assistant to control my IoT devices. I also have another pi mounted on my 3d printer running octoprint so I can remotely interact with the printer.
If you are using Home Assistant, you can now do your own on-device Voice AI for free using https://snips.ai, we have added an integration!
Nothing unique really but I have a handful of older ones laying around that used to be purposed as RaspBMC machines. I recently moved everything to Plex with different client devices so I repurposed one Pi to be a print server for my parent's older printer. Another one has been repurposed as an AirPlay client for my outdoor speaker setup using a cheap amp I bought on Prime day.

I also have a newer Pi 3 running Stratux for receiving ADS-B traffic and weather on my iPad while flying.

Aside from Stratux there are definitely cheaper/easier solutions for what I've set up but nothing beats the 'free' hardware collecting dust in the bin.

Not myself, but a friend:

Making an snes emulator in an HDMI dongle form factor with wireless controllers.

SNES on your main TV system, switch TV inputs, play Super Mario Kart. No hookups, no wires.

I used one to build a photobooth for my wedding. The raspberry pi controls a DSLR camera to take 4 photos, stitches them into a 4x6, prints the photo and uploads everything to a Google Photos album which was displayed live on a projector.
Very cool. What were you using for your Google Photos uploader on Linux?
The photobooth application was written in Python and I was able to get picasawebsync (https://github.com/leocrawford/picasawebsync) working. Even though the documentation says it's probably no longer working, I can verify that it was working for me as of September 2016 which is after the Picasa deprecation. I had to edit the source a little so that I could call it from my app instead of the command line.

Another challenge was that I couldn't find a good application to display the Google photos album. Nothing I found would display any new photos added to the album after the slideshow had begun while also displaying everything in a continuous loop. I ended up writing a second small Python app also using picasawebsync to periodically sync the photos to a second Raspberry Pi which was hooked up to a projector and display them looped in a random order.

I'm also in the process of building a photobooth. Using the standard Pi Camera module + a Pimoroni Unicorn Hat HD to give people a prompt when the photo is about to be taken. It'll then publish the photos on it's own internal webserver that'll be visible on another Pi for easy emailing / browsing and tweeting! Going to pack it all in an transparent enclosure that looks like the approximate shape of an oversized DSLR.
Nice, that sounds quite a bit more compact than mine. Having really good quality photos for us to keep was the biggest priority so we settled on a DSLR and dedicated flash. Along with the printer, I ended up installing it all into an old speaker cabinet which ended up fitting everything perfectly. I do wish I wasn't living in an apartment at the time and had access to some better tools to build a proper enclosure though.
I've been looking to do this myself, did you follow any guides online to help you with this? How did you connect your camera to the Pi?
I looked at some guides for ideas and was hoping to find a ready to go solution but nothing seemed perfect for our use case. Good quality photos for keepsakes was a primary goal so I used this as an excuse to buy a DSLR (which still ended up being cheaper than renting a photobooth for a few hours would have been). I chose to code it up in Python since it seemed like the best candidate with plenty of libraries that could handle what I wanted. I chose a camera based on what devices were supported in gphoto2. Specifically, I chose a camera that supported live preview which allowed our guests to frame their photo better. I answered the question about connecting the camera in another comment but the tl;dr is that it was connected via USB and all communications were through the python app I wrote using the gphoto2 library.
I would be insanely interested in a thorough write-up of this. My mother is getting married in a few months and it would be incredible to build for her and her fiance!
I'll try and get the process written down but in the meantime, feel free to shoot me an email with any questions. You can find my email in my profile.
How do you get the pictures transferred to the pi?
The camera is hooked up to the raspberry pi via USB. I'm using the gphoto2 library in python to communicate with the camera, show a live preview on the attached LCD screen, snap photos and copy the photos onto the raspberry pi after they're taken.

Here's a list of cameras that gphoto2 supports: http://gphoto.org/proj/libgphoto2/support.php

I made sure to buy a DSLR that supported live-preview so that our guests could frame themselves before the photos were taken.

I'm the co-founder of https://snips.ai, we are building a 100% on-device Voice AI platform to respect people privacy!

We would love to see what you can do with what we are building and to feature you on our website !

Very cool. I'd love to use it, but...

Any plans to release source code? I can't trust any privacy claims without seeing it.

We want to open-source the platform later this year, you don't need an internet connection to use the platform so you can trust us!
Will this have the ability to replace an Alexa in terms of smart home integration/automation?
This is what we want to build !
Perfect, keep up the great work.I'm glad to hear of your project.The Alexa and accompanying hardware/software is one of the few non FOSS things I rely on within my home. I can't wait for a viable alternative!
I've done a little reading into making something along these lines using a Pi, Snowboy hotword detection, and one of the cloud APIs.

Two things I'm curious about...

1) What are you using for hardware with the Pi? It seems a high quality microphone is important to this application and the only array microphone I've been able to find is the MATRIX creator which seems steep in price if I could just buy an Amazon Dot.

2) Your numbers indicate significantly better performance than Google. How are you able to achieve that? Where does your training data come from if nothing is supposedly leaving my device?

I really strongly desire a system that wouldn't require relying on the cloud but I just don't know how you can get enough training data to be anywhere near as accurate as a cloud provider. That led me to thinking the next best thing would be a setup with Snowboy hotword detection where I know nothing is leaving my device until my own programmed hotword is spoken.

Hi Bronco, a blog post on microphone will come soon on our blog, subscribe!
I have been searching for something like this and this looks amazing! Looking forward to trying this out.

As others said, I'd feel more comfortable with an open codebase.

Thanks, this is coming soon!
i used raspberry pi 2 in order to build 2d mapping robot(i installed ROS on top of ubuntu on pi2). i also tried to make it autonomus but lack of some hardware such as motor encoder made it quite hard to accomplish so i did not go for it. See snippets of video diary at https://robot.birkankolcu.com
That looks really cool. Have you got any documentation for implementing it?
I have one running a few home automation type tasks (an IP->serial gateway for my whole-house audio, SDR radio to monitor 4 utility meters [only 2 meters are currently reporting data as my 2 water meters are not reporting usage via radio to me or to the utility], and controlling relays for the sprinkler system). Next steps are I plan to create an Alexa skill that will control the whole-house audio and let me "pause" the sprinklers as needed and integrate with weather forecasting to predict near-future rainfall so I can save water/increase plant health if rain is expected.

I'll be honest: it's a lot of fun, but if I lived 100 lifetimes, it would never save me time on balance. ;)

I also use one to run stratux as another poster mentions. That one saved ~$650 vs buying the COTS solution.

Curious about your SDR meter monitoring. Any links or description of how that works? Would love to monitor my electric and water without using the energy company's devices.
I recently used a Pi to replace the game controller on an arcade style basketball game we have in our office (like this: http://imgur.com/a/B7YBq). It's running Android Things and has a couple of fun new game modes, better sound effects, and a whole bunch of LEDs for added awesomeness.
I use it as a GopiGo, Timelapse camera which i mount on my car dashboard to record my road trips.
I use it as a GopiGo, Timelapse camera which i mount on my car dashboard to record my road trips.
Just yesterday I used an old raspberry pi to make a bluetooth audio receiver that could be integrated with my vintage stereo equipment. You can buy something off the shelf for around $25 but they use cheap digital-to-analog converters and I wanted to use the high quality USB DAC I already had. Total hardware needed was the Pi, powered USB hub, USB DAC, and USB bluetooth adapter.

Potato quality photo of the very advanced system I came up with for keeping all the components together: https://tootcatapril2017.s3-us-west-2.amazonaws.com/media_at...

Did you have to use the USB bluetooth adapter with a Pi 3? I know the 3 has bluetooth but I don't know enough about it to know if I can just connect my phone to it to play music. I want to do something very similar to what you've done so I'm excited to see that somebody else succeeded.
I did the same thing using a HifiBerry-Hat (used the Pi as a Mopidy server before, but I like the Bluetooth setup better for UI reasons).

If you're using BlueZ and Pulseaudio, it comes down to a couple of simple config entries (google for Linux Bluetooth A2DP Sink).

I used a RPi 2 with a USB Dongle for the Bluetooth though, so I can't vouch for the internal Bluetooth of the RPi 3.

I used the very first version of the Raspberry Pi model B. I bought one when they became available years ago and then never did anything with it. If the Pi 3 comes with a bluetooth chip built-in then you will just need to do some software configuration. There are three servers to configure: bluez, udev, and pulseaudio. I used the following gist as a guide, but didn't follow every step exactly:

https://gist.github.com/oleq/24e09112b07464acbda1

Hope this helps!

Recreating the Sony Aibo robot dog using a pile of cheap servos, 3 axis gyro, the camera, wireless, neopixel lights, LiIon power, etc. Shoulder joints, body shell and chassis 3d printed. Total cost is around $150.

Locomotion is largely based upon the designs documented by Cynthia Brezeal Ferrell (MIT mobile robots lab, under Prof. Rod Brooks) in her PhD thesis for the hexapod robot, Atilla/Hannibal.

The first attempt was using Python which presented two insurmountable problems : 1) raspian OS boot time of 1.5 minutes which is unacceptable for an embedded device and 2) python threading is not sufficient for realtime. I was attempting to make series elastic actuators but the imprecision of the threading (jitter) was leading to wild oscillations... I finally had to accept it was a dead end.

I have started over in Elixir + Nerves which is designed at its core for embedded work. I will admit it is very slow going. Not because of any deficiencies in the language or environment. Quite the contrary -- I get a 10-second cold boot time and superb stability! But rather my mind is the limiting factor here. After three decades of imperative programming, the shift to functional programming is a challenge!

Any pictures, write up, Github? This sounds awesome!

I also remember reading awhile back about the huge market for upkeeping these things once Sony abandoned it. Perhaps you're onto a business!

No, this is the first I've spoken of it, really. I've a few notebooks filled with sketches, thoughts, designs, etc. and a pile of prototype joins and brackets littering my workbench. It's actually a very challenging project from an electrical engineering and mechanical engineering standpoint. The Sony team were superstars. I still like the "mutant" prototype the best as it had the most character: https://www.youtube.com/watch?v=gfHape9Y31Q

In the mid 2000s, I had written some code for the Aibo to let it read books aloud.

Flash forward toa couple years ago. My kids saw some video of me with the Aibo Reader project and wanted an Aibo of their own. Unfortunately, the Aibo as a product is dead. The batteries are now dying and irreplaceable (thanks to Sony and their idiotic insistence upon DRM - it's not enough to merely provide electrons, the battery must also know the secret handshake in order for the Aibo to accept it. Maddening!!!) And those few used Aibos that do have working batteries are dying from other issues related to mechanical failure (mostly clutches in the head/neck assy.) yet command a premium price.

So now, my kids still want an Aibo. I got to thinking about how far technology had come in the past 20 years, and started wondering to myself if I could build a facsimile with the RPi. Thus the birth of this little side-project.

Could you share more about your experience with elastic actuators? What did your hardware look like? I'm working on something similar, and would love your input.
Sure. It's an evolution of the idea I saw here: http://hackaday.com/2015/12/15/feeling-force-through-a-servo...

Using a flexible servo horn, this allows some degree of deformation when torque is applied. Embed a 1/32" neodymium magnet in the horn, and a magnetic rotary position sensor in the driven part. As resistance to movement ("torque") increases, the flexible servo horn twists/deflects, angle of difference between the two parts changes and this can be detected by the magnetic sensor.

Picture a torque strain gauge, the way the needle deflects from the centerline of the gauge. This is similar but we're doing so in an radial (edit:removed axial) and not linear sense.

I went on to 3d print a flexible servo horn somewhat similar to this: http://mechanismsrobotics.asmedigitalcollection.asme.org/dat... but with the magnet embedded in the outer rim of the wheel and the sensor in the inner section.

Different amounts of sensitivity are obtained by printing different spoke stiffness on the horn.

Result is a compact, modular torque sensor for about $2 in parts. Feed the results to a PID look and you have a nice controller that can tell me when a robot leg is bearing a load, or is jammed, etc. This is essential to proper gait. Otherwise your robot is simply an electronic marionette.

One of the big challenges was getting 16 additional 16bit voltage reads back to my Rpi over i2c bus. (one value for each servo) https://www.adafruit.com/product/1085

Soln: used one of these multiplexer boards: https://www.adafruit.com/product/2717

and I used AdaFruit's excellent servo controller board: https://www.adafruit.com/product/815

and some neopixel rings for eyes: https://www.adafruit.com/product/3047

(wonderful for expressing mood)

This is great, thank you!
Just finished setting up openVPN on a RPi3b so my salesperson and I can access the CRM from outside my network.
Although not strictly a Raspberry Pi project, I have a couple C.H.I.P. boards[1] scattered throughout my apartment collecting temperature and humidity readings (using a HIH8120 sensor[2]) and feeding it to my Raspberry Pi which runs InfluxDB and Chronograf[3] to store and display a simple dashboard. The end result looks like this: http://i.imgur.com/cIrhSUq.png

[1]: https://getchip.com/

[2]: https://sensing.honeywell.com/HIH8120-021-001S-humidity-sens...

[3]: https://www.influxdata.com/time-series-platform/chronograf/

Interesting... But what do you do with this data?
Nothing in particular. I just wanted a way to view the temperature and humidity in my apartment when I'm out. Also I wanted to know what affects the humidity in my apartment and by how much (for example, you can see when I take my morning shower). In the future I may use the data to control a humidifier to turn it on whenever the humidity drops below a certain level.
I'm the same, I use some cheap ESP8266 devices which have a temperature/humidity sensor attached. They submit their measurements every minute to a central MQ installation:

https://steve.fi/Hardware/d1-temperature-humidity/

While I don't have any particular reason for collecting the data it can be fun to look at. For example you can easily spot when somebody has a shower because the humidity spikes in the bathroom:

https://twitter.com/Stolen_Souls/status/848444075296641025

Naively I expected to track the weather, because I figure on a hot day the temperature of my living-room/etc would spike. Turns out this house is pretty well insulated so the internal temperature has essentially no relationship to the external one. I guess that makes sense in a country where you might have -25'C in the winters.

This is really cool! I've been thinking about a similar idea lately and this seems like a great way of doing it. Do you by chance have any material on how you got the honeywell sensor working with the C.H.I.P. board? (This would be my first electronics project)
This was my first electronics project as well and I chose the Honeywell sensor because it has decent humidity accuracy (which is what I was mostly interested in) and a bonus temperature sensor built in. It uses the I2C protocol for communication which I found pleasant to work with although it would probably be simpler to just use am analog voltage sensor.

Here's the program I wrote to read the sensor over I2C: https://gist.github.com/tsyd/f48e933a21fb40b9f9eea28118f54e0...

I'll most certainly be checking this out in the near future. Thanks!
I'm currently prototyping an alternate approach - using an nrf52 to send readings beacons, and then gathering those beacons with a raspberry pi

This has the added benefits of being able to be powered with a solar panel.

What language did you end up using to access the sensors?

I've been ~hoping~ to use Go to access the GPIO pins, but haven't had much success - any suggestions?

I'm planning on doing pretty much the same thing. A couple of questions:

1. Why not just run InfluxDB and Chronograf on one of the CHIPs?

2. How are you sending data to the Pi?

> Why not just run InfluxDB and Chronograf on one of the CHIPs?

I started off with a single C.H.I.P. and ran everything on it but then when I added a second C.H.I.P. I wanted to have all the data in a central location. I also found Chronograf lag a lot when trying to browse more than a couple day's worth of data. The Raspberry Pi has much faster storage and CPU.

> How are you sending data to the Pi?

The C.H.I.P. has a Python script that runs on a cron that calls a C program to read the sensor and then sends it to the Pi using InfluxDB's HTTP API.

I love the C.H.I.P board, seems like they'd have better market penetration if their name wasn't "CHIP" though. I feel like the Particle IOT line has suffered a similarly hindrence?
Me and My brother made a strobe light based on a Nature paper to attempt to treat my Uncle for Alzheimers.

See http://www.nature.com/nature/journal/v540/n7632/full/nature2...

Do you have any more information about your project?
Yes, I think I prodded my brother to write a blog post but I will write it myself and try to get to it this weekend.

But basically the steps you would have

1. Get a Raspberry pi (obviously) and load linux with python support.

2. Use this shield https://www.amazon.com/Pimoroni-Unicorn-Hat-Shield-Raspberry...

3. Create a python script that blinks with the HZ that was in the Nature paper.

I think I saw someone else try a similar thing with an oculus rift or vive. How do you think it went with your relative.?
I have no idea. We never did any controlled experiments. Also, I didn't notice a difference anecdotally.
Did you notice any improvements?
Use Home Assistant to integrate anything in your house. Make voice assistants respond to your commands. Write advanced automations to help make your life easier.

Use our Hass.io OS build to setup Google Assistant easily on your Pi. Need a USB microphone and speakers connected to the Pi and you'll get the full Google Assistant experience.

https://home-assistant.io

(disclaimer: I'm the founder)

Just discovered Home Assistant yesterday and I'm really looking forward to diving into it.
I've been really digging home-assistant. Just got it set up a few weeks ago. Ended up buying $300 of zwave switches soon after
Currently I am building a mobile GPS beacon which a drone can follow. The goal is to create a small follow-me box without the need for a smartphone.
We've built a whole business on top of the Raspberry Pi. The company/project is called Screenly[1], which is a digital signage solution for the Raspberry Pi and we have over 10,000 devices running it. We really gained a lot of momentum early on with our open source version[2].

[1] https://www.screenly.io

[2] https://github.com/Screenly/screenly-ose

Interesting product. Are there any screenshots / videos of it in action?
Emulation (RetroPie), VPN (PiVPN), DNS (PiHole) and IP Camera (MotionEye OS)
Emulation (RetroPie), VPN (PiVPN), DNS (PiHole) and IP Camera (MotionEye OS)
Built a working prototype of a LAN based discovery and routing device for Evercam.io. Not very sophisticated but it worked and it was deployed to several locations successfully in a pilot program, allowing them to route to Cameras that were otherwise inaccessible.

Actual code didn't rely on rPi (Elixir/OTP on Linux). But we shipped them on Pis. Other options considered had been Galileo and also an SoC called (I think) Quark (also from Intel).

https://gitlab.com/evercam/evercam-gateway