I have Raspberry Pi and I mainly use it for VPN and piHole. I’m curious if you have one, have you found it useful? What do you do with your Raspberry Pi?
There's a bus station across from my studio / coworking space. I can see people waiting for the bus and doing either: 1) staring into the void 2) looking at their watches 3) desperately glancing in the direction where the bus is coming from.
I figured that it'd be nice to let people know when the bus is supposed to be there. So, I installed a 28" display on a monitor stand, installed the stand on my window frame, turned the monitor to face the bus station, and show the up-to-date arrival time in a very big font (the buses have GPS; the Pi gets the real time info from the local transit authority).
This is in Montreal. Some info here [0]. And a little video [1].
Big ups! I use this all the time in winter while waiting for the 55. I definitely assumed you worked at Ubisoft across the street!
Btw, from some experience spending cold winters looking at it, it flickers a lot by having so many screen changes, making it tiring to see the screen change so much. L'AUTOBUS - SERA - LA - DANS - 5... - MINUTES - GREG . - TECHNOLOGY. It would be easier on the eyes if it changed less often.
I think that makes sense, yeah. I would rather not flash other digits (55) as that could be confusing for someone who sees that number go by (was that the bus number or the number of minutes?)
I don't think that it's as common to write or read
I'll be there in 5'
Also, since this is a sign seen from about 10-15 meters away, using an apostrophe might lead to confusion (it might not be clear to read).
The aesthetics of the big flashing words are also intentional. Way, way back in my brain there was definitely [0] playing while I was creating this. :-)
As many other transit authorities, the STM [0] offers "GTFS" data (a standard feed format for transit info) [1].
Mucking around STM's public site, you'll also see the schedule information go by if you inspect the network requests. From what I've seen, their API endpoints are stable, reliable and fast. I've had to do ~2 updates in >1 year of service.
If you use MITMProxy or Charles you can easily intercept the traffic on 99% of all iPhone/Android apps (bit harder if pinned-sertificate). These API’s are often stable because a lot of users don’t update their apps that often.
For newer android apps this is no longer true. By default, apps only trust system CA's. User added System CA's are not trusted by apps. I believe only the browser uses the user added CA's.
It can be crazier than that. App makers who work with important APIs often pin to specific certificates (not signers) so we have an one final absolute emergency measure to kill a version and force an upgrade when we have to.
That is what I refer to as pinned-certificate. Not often used except from some of the biggest companies like Facebook and Snapchat. See my answer on how to go around this.
In S. Korea most bus station have a display showing the current position of the bus and the estimated waiting time. Recently they are changing the display to show the bus stop remaining and removed the estimated time of arrival.
Lots of people use app so when the bus is about to arrive the bus station will suddenly get busy and full of people.
I live nearby and often use this when catching the 55! Sort of surreal to start reading your post and immediately recognize it's something from just a block away!
In China, they can get these bus message on a smartphone at mostly main city. The app would show the bus location and predict the time bus would reach according to the traffic status graphically.
We get this in the US in most major cities as well. But sometimes you don’t want to deal with smartphones and apps with bad UI developed by Fortune 500 firms for regional transit authorities, you just wish there would be a simple sign next to the stop that gave you 2 pieces of information: “BUS X IN Y MINUTES”.
We have both in my city (Spain). The problem with displays is that sometimes they get too much light and you can't see that well. Also, the app has much more info than the display, and you don't need to be in the bus stop to know when the bus is going to be there.
Awesome! This has reminded me of an old Heroku app that has been sitting idle for years: https://wmata-status.herokuapp.com (before the Silver line, which is why the UI is all wonked now)
I wanted to do something similar to try and reinvent the old/ugly/hard-to-parse televisions scattered around the DC metro.
Lovely UI, congrats!! You should definitely consider doing a 'gonzo' TV install somewhere in the city where you have access to power, wifi and shelter.
really cool project man, props! bit strange they don't do this ,but i suppose Canada is A LOT larger than my country so perhaps it's harder to roll out decent services in all places :D very nice stuff though! the most annoying thing in the world to me is waiting on something without a clear indication of when the wait will end so you are doing a big big service to these poor people :D
Thanks! Some bus stations in Montreal do have small digital signs announcing the next departures. I’m sure those devices cost a bit of money and need to be serviced, so it makes sense that not all stations get them. (All stations do have a paper schedule which is neat, but isn’t real time info..!)
Canada's a big country :-) As far as I understand, local transit authorities in every city have the autonomy to decide how they spend their budgets. A digital sign is useful, but is it worth having one at every single stop, considering the cost to buy them, the necessary infrastructure (electricity, internet access), the support costs to repair/replace them, etc.?
Also, paper schedules have been part of all stops here for a long time. Considering that the buses are pretty reliable, the paper schedule typically does the job. And you can always use the transit authority's website or one of the many mobile apps to see if there's an unexpected delay.
>> but is it worth having one at every single stop, considering the cost to buy them, the necessary infrastructure (electricity, internet access), the support costs to repair/replace them, etc.?
Well, I just don't recall when I saw a public transport stop that does not have the digital sign here in the Netherlands. The paper version is always provided as well. But I suspect that it works like this in large cities only.
If the buses have GPS then Montreal should launch an app. They did that here where I live and now everyone can see where each bus is, live, on a map of the city. Best thing ever for us control freaks.
The transit authority did have an app, which they’ve pulled at some point (as far as I understand, they felt like they couldn’t compete with the level of transit info apps out there — which isn’t untrue). There’s also the Transit app [0] that is made in Montreal, so I guess that they (the transit authority) were happy to shine a light on that (pretty great) app.
In any case, one of the neat things about the Pi sign is that it works for everyone (whether you have a phone or not), and is part of the urban landscape. You can use your phone for more important things, or just leave it alone a few minutes while you wait. :)
I have it set up to run a project where a subreddit has control over the watering of a live plant in my apartment.
The pi runs a reddit bot that reads the votes, and can switch on a pump to water. It also collects data about sunlight, moisture, temp and humidity to help inform the decision about watering. Despite many people's preconceptions about the goodness of the internet, I must admit that they do a wonderful job caring for my plant!
> Despite many people's preconceptions about the goodness of the internet, I must admit that they do a wonderful job caring for my plant!
Maybe I should create a subreddit where people can control a bot that has access to my bank accounts so they can manage my finances, invest some, etc. ;-)
Didn't someone do this with Twitch Plays Stocks? Essentially gave them some capital and let the chat decide what trades to make. They nuked the portfolio within 24 hours.
On average (and very much more than just average) there is a negative correlation between trading frequency and portfolio performance (you are not an HFT firm, don't compare yourself to one).
Set up a system like that wrong, and it doesn't matter how smart the crowd is, you're going to lose all your money. It would be interesting to play with the parameters of the game and see how results changed. (how often trades are made, max portfolio % per trade, voting mechanics, etc.)
Sounds like the most optimal setup would be a single vote (1 vote = $1 spent on a stock of your choice) at the start and then just wait 1 year for the results.
You could put in a set amount per day (or week), choices weighted by the votes since last time, and get some of the benefits of dollar cost averaging, plus more reason for continued engagement.
Maybe introduce sales after it's been around for a year. (Though I'm not sure which mechanism, DCA doesn't work in reverse.)
That isn’t Boaty McBoatface, that’s Boaty McBoatface 2 (or Boaty McTwoFaced as it ought to be known). Boaty McBoatface was the name the public voted for the research vessel, not the submersible. That was given as an attempt to save face after rejecting the public vote.
Raspberry pi is automatically uploading video of each watering to YouTube (https://www.youtube.com/channel/UCtl442fLi6KAOowkw_w83rA/vid...) and informing me with summary (incl. watering duration, soil moisture level, temperature, humidity, light level etc.).
Not that I care that much about the plant but automating it has been fun. It's been on auto pilot now for a couple of months now and the plant from the looks of it seams to be happy.
I'm using a cheap submersible water pump controlled via relay by a python script running on raspberry pi.
Water pump is connected to a clear vinyl tube for water distribution to the plant.
Availability of water level at source is checked by a non-contact liquid level sensor.
Triggers for watering plant are defined as follows:
1. There is water in tank / source (checked by non-contact liquid level sensor)
2. Soil moisture level is below certain threshold (measured by 2 soil moisture capacity sensors embedded in the plant)
3. Watering duration is determined by current soil moisture level; Python script activates relay to run the pump for the right duration.
4. Same python script also:
- activates camera to record watering (+2s buffer to have all on the video) via usb cam connected to the pi (leveraging opencv lib)
- uploads recorded video automatically to youtube channel (if pi has internet connection)
- summarizes watering event and sends me notification with link to the recording and other helpful stats (temp, humidity, moisture level etc.)
- saves all metrics to sqllite db for future reference
That's what I'm talkin' about! You should definitely come check out the sub! I'm always happy to work with other people on new additions / functionality / ideas.
Trying to impress a girl with my plant-keeping abilities ;) --We had a collaborative message thread reminding everyone to water our plants based upon a set schedule which I was going hook up to a pump to automate, and at the time Twitch Plays Pokemon was a big thing, so I just kind of combined the two ideas.
If you have interest in doing something similar, come check out the subreddit and feel free to DM me on reddit or twitter. Always happy to talk about plants and automation
You're back! I remember joining to help take care of the original plant, but I left when there was a big gap in coverage. Did you get a new plant? It seems that the name has changed.
It would be interesting to create a live feed of plants taken care of by remote botanists at an industrial scale. Maybe to train an ML model. Of course I know next to nothing about botany so this probably wouldn't work for some reason.
The website letsrobot.tv lets you do this. Many people on there use raspbis to receive commands from the crowd, control the motors, and stream back a video feed to the site. If you write something into the chat, the robots say it.
I interfaced a toy excavator remote with an Arduino and also put a small Cozmo robot online from time to time. Some people took their robots outside even :)
You are a kindred spirit. I have: 2 pi NTP servers - one running a GPS hat + PPS wired up, one using a USB gps receiver. a "workhorse" pi - 2 wired ds18b20 temperature sensors, cron jobs, email generators, weather page generator, connectivity monitor. One pi running piubos + nextcloud. One pi running as a clock. One pi running as a wireless temperature receiver. a few floating pis running media center or retropie or other things... just swap in the right USB stick and run.
A vpn won’t help you with inbound, since any packets marked as destination port 123 are simply dropped. That time server is simply for my own purposes now and can’t contribute to the pools.
I just went to look at my crontab again. Some highlights (lowlights?):
- Turning lights on/off around the house, because I found cron to be a more reliable scheduling agent that the one built-into my Wave software when I first set it up.
- Testing network performance (ping times to various locations)
- Fetching a mail account and processing the messages for an automation I have setup for some things.
- Updating online weather services with data from my weather station.
>2 for weather monitoring (one directly attached to sensors, one that aggregates the data from a few sources and provides reporting)
So, I hear people doing this alot. However what exactly does this help with? Like, is the extra information really more useful than just the standard old TV weather forecast?
I do this primarily because I'm a weather geek. I don't _need_ this at all.
I do find it interesting to see the differences in temperature (and humidity, etc.) in the microclimate around my house compared to the city and greater metro area.
I also use the data to measure the performance of my home's HVAC system. Doing this _does_ require real-time local temperature and humidity data. But again, this is all for fun.
For temperature only I prefer the 18B20 sensor. They’re very easy to interface with and they can be at the end of very long wires.
Adafruit has a bunch of sensors that work over the i2c bus; they’ve included python code for accessing the data as well, which makes it easy to get started.
There are sensors out there for everything. Absolutely everything.
You can integrate just about any sensor into a Pi depending on your knowledge. (any sensor you find on sparkfun would work for someone with a little determination)
I'm really benchmarking the system against itself, year on year, by comparing the weather outside vs. performance (output temperature of the HVAC unit, average temperature inside the house).
I'm not trying to find an objective efficiency rating so much as monitor performance over time to see if it's changing.
Whats your success with this? I am not referring so much to the Raspberry Pi part - but the actual ZWave protocol and whatever mesh network it creates. Is it reliable? Or do your lights flicker on and off randomly?
I have used mostly light switches, dimmers, and a few isolated relays, plus home power monitoring.
My experience is that it has all been rock solid. I’m using most GE branded in-wall light switches and they’ve been very reliable for me. Misc other brands for the other modules.
Just temperature monitoring, really. I have sensors measuring temperature right at HVAC input, output, attic temperature, as well as home interior temp and outside temp and humidity.
I have a Pi connected to a BME280 breakout board that I got from Adafruit (https://www.adafruit.com/product/2652). It's also connected to a Dallas 18B20 temperature sensor. The sensors are outdoors in a small actively-ventilated enclosure I made. The Pi is indoors, and the wires run through the wall.
Why 2 temperature sensors? Turns out the BME280 runs about 2°F hot, and the 18B20 is right on, so I end up using the 18B20 as my primary temp sensor.
Every minute a cronjob runs and the Pi takes readings from the sensors and stores them locally.
Then, I have another Pi that, every minute, reads those values and stores them in a long-term database (I have about 5 years of weather data at this point). The long-term database is running a custom Rails app I wrote to report on the data and show graphs, compare weather over years, etc.
In theory this could all live in a single Pi, but for various legacy reasons I ended up with a dedicated Pi for data processing, and a dedicated Pi for data gathering.
Absolutely overkill for most of these things, but I've been managing linux servers for 20 years now and find it really easy and fast to get a Pi up and running to do what I want.
There's also some efficiencies from having everything on the same hardware platform.
I started a company that constructed booths which used 70 accurately sync'd Pis with custom PiCams (fitted with lenses) to take pictures of human subjects, for turning them into avatars like this:
At the beginning of the project, I'd barely powered up the Pis I had collecting dust in my drawer. By the end, I was a legitimate domain expert in several niches within niches of Pi dark arts. For example, since Pis do not have hardware clocks, you have to rely on NTP. However, you need to take pains to make sure that each Pi is getting the same amount of voltage or else they will run at different speeds. If you want to power 70 Pis in a constrained space, you need to devise a customized power distribution system with adequate heat venting.
Due to the thin effect, voltage drops over distance, so the distance a Pi was from the power would impact the voltage and therefore the speed. The major breakthrough came when I realized that I could start with a high end power supply outputting 14 volts and terminate each parallel line with a device known as a UBEC. They are used primarily by drone enthusiasts to make efficient use of battery packs.
A UBEC is designed to drop down a supply voltage to 5v without bleeding off the excess voltage as heat. Since this could also describe a fuse, we felt comfortable bypassing the Pi's MicroUSB power supply and attaching the UBEC's pins directly to the top pins on the Pi's GPIO breakout.
That's just a tiny example of the hijinx. The Pi is an incredible tool if you're patient and clever.
What you call UBEC is just a switch mode DC-DC buck converter. They are used everywhere in electronics, and you could probably save money buying general puprose 5V buck converter modules instead of modules made specifically for RC.
Anyway, that's very interesting info about supply voltage affecting Raspberry Pi speed and timekeeping, thanks!
As @Kadin suggested, the UBEC we purchased in bulk was, at the end of the day, a packaged product that had two things going for it. First, it had undergone some degree of QA and we found the results to be consistent, which was a huge deal for us. Second, it came with a 3-pin connector that could not have been more perfect for plugging directly onto the GPIO pins.
It's entirely possible that you could get a cheaper buck converter, possibly for pennies. However, this was not where the money was being spent in our project... and if we had to do literally anything to it to prepare it for use (such as soldering on a pin socket) it would have destroyed any cost advantage.
This is true, although UBECs are also packaged with some filtering caps, and are in a nice heatshrinked package usually -- so I look at it the other way around; packaged UBECs are so cheap, if you can make do with them, it's too easy to just grab them off the shelf and move on with life rather than DIYing it from components.
All depends how many of whatever you're building, I suppose.
However, I cannot state enough that the price of this small component was simply not where the costs accumulated on this project. We geeks have a nasty tendency to over-optimize things that just don't matter in the big picture. You totally nailed it when you mentioned that this device is a packaged (and QA'd) product. The fact that it just slips right onto a Pi's GPIO pins without requiring any further modification is what makes this such a win. If you have to do anything to [70 units of] a component to make it work, you're blowing up any miniscule price arbitrage anyhow.
I think the problem here is not that the clocks are out of sync, but rather that the actual clock frequencies are voltage-controlled.
With the firefly analogy, it's like having one firefly flashing at 1.73513x (random number) faster than it's neighbor - can't easily have them persistently synchronized.
It is visualisation of simple technique to synchronise many clocks without central authority, algorithm is explained on left side of website. You need to turn on 'Nudge thy neighbour" and then wait for fireflies to sync.
Cool idea, but not applicable to our scenario. People would step in and there would be a 3-2-1 count and then step out. There was no flash to sync against. And even if there was, if the devices are all running at different speeds, the sync is moot.
Second: I worked alongside a brilliant team with rare knowledge of geometry reconstruction. We took the 70 images of people, algorithmically removed the backgrounds and then used a proprietary process to create a mesh geometry from the intersection masks of those shapes in 3D space, which all had to be carefully calibrated on the regular. That geometry was smoothed to create a valid smooth human mesh. We then created a texture which would be mapped to the physical geometry of the mesh. All lighting and camera sensors had to be carefully measured and corrected, with ample algorithmic color smoothing along the seams of this texture. Then we ran our proprietary auto-rigging algorithm on the mesh, and exported both a 3JS compatible obj+jpg as well as a Unity bundle. The entire process was optimized to take under 60 seconds. This meant that you could step out of the booth, watch the magic happen, and then immediately put on a Vive and interact with yourself in a mirror using your fully articulated new avatar.
Third: VCs were unwilling to fund something with a hardware component
Sorry to hear that it didn't work out, but it's still an impressive achievement. 60s to produce something that lifelike is incredible. I'm surprised no game companies were interested.
Was any of the geometry reconstruction or texture mapping done on the Pis themselves? I can imagine with 70 of them you’d have a nice little cluster to work with. Cool project, either way!
We definitely tried to do on-board processing, as we were still bottlenecked by the blazing “gigabit over USB 2.0” NIC speed. However, while I have a hunch that the new Pi 4 might be more than up to some of the crunching, the real problem is that the spatial nature of the domain means that each Pi would need access to the sparse clouds and shape masks generated by the rest in order to proceed. We could do color correction and remove lens distortion on the Pi, but that’s it.
Reflecting on this conversation, it occurs to me that I should strongly consider publishing a string of #1 on HN deep dives on what I learned to pay it forward. ;)
I'd definitely read those if you wrote them. I build small machines that use Pi Zeros as motor controllers and I'm a sponge for domain knowledge about using them in practice.
Your point about voltage fluctuation affecting clock speed already has me re-evaluating my current solution. Also I'm really curious about your custom cameras. Thanks for sharing!
Happy to answer any specific questions about the tech that I'm able to answer. I was not responsible for the proprietary algorithms that generated the avatar.
Unfortunately, things didn't end well. I can't actually talk about it.
The business plan morphed significantly during our 4-year run, from 3D pet scanning to location-based branded marketing to what was going to be a big gaming focus (my vote) or glorified 3D emojis (their vote).
I wanted any game/experience that featured characters/avatars to be able to allow people to play as themselves. I didn't get a chance to see that concept through.
I live in an apartment with quite strict fire-protection standards. Due to the fact that I have a cat that absolutly loves to go outside, I needed to find a solution for him to get outside without a catdoor trough my door.
So I installed a fire-protecion-approved door drive that is hooked to a raspberry pi. Another raspberry pi then analyzes a video stream and detects my cat. If my cat is in the frame for n amount of time, a message is sent to the pi conntected to the door drive and the door opens up slightly for him to get in.
Wow. I literally just sat down to relax after building a cardboard prototype cat door fitting in my open window in winter. You just made me feel partly inferior, and partly like I'm in good company
As you might have guessed, that came to my mind too. Due to the fact that I have worked with a company in the fire damper business, I was contacting them and we were brainstorming about it. The thing is: The market is just non existent. Also fire-protection regulations can be very specific depending on the country you are in. For example, EU ratings are not always recognized here in Switzerland.
Since last week I'm in contact with the manufacturer of the door drive tough because they maybe want to create a product out of it. To be honest I think it would pure marketing and at the moment it is very unlikely to ever hit the market.
A fun dream I've had (context: I've always been confined to apartments) is some sort of cat/pet utopia in a block, so they wouldn't be stuck inside alone. But that wouldn't be feasible since they have to navigate the fire-proof doors between floors...
Unless your cat door goes to market. May luck be on your side :)
(really, don't underestimate niches, you can probably find plenty of places to sell this sort of product...)
I don't use this specific drive due to the fact that another company gave me a better deal for some marketing. But if I had to choose again, I would buy a dormakaba ED 100 or ED 250 (depending on the weight of your door). They support multiple opening angles depending on how you activate it.
The door stays open for n amount of time (normally around 1min but I changed it to 30sec). The drive has a laser sensor attached to it (it is required to have installed with automatic doors in Switzerland if you don't want any issue with insurance). As soon as the specified amount of time has passed, the door drive tries to close the door. It only works if the laser sensor detects no obstacles.
Maybe a bit off-topic but: The only thing that differs an "fire-protection approved" door drive from a non approved drive is that the drive is not allowed to have an option to keep the door open. Also in case of power outage (or fire) the door needs to close without power.
I'd imagine the processing power required to detect whether or not a video feed contains a cat doesn't jive well with sharing a CPU with something presumably-realtime-sensitive like driving a motor to open a door.
You are exactly right. Before I "optimised" the image recognition the whole detection part was running on a Mac Mini. I also like to "separate concerns". The Pi that is handling the door opening runs Alpine with a read-only file system so whenever there is a power outage or whatever it boots into a known good state. The image processing part is behind a big UPS and is running with a writable file system.
Seems like the door opening Pi would be a good candidate for an esp8266 or an esp32 (if you were looking to save costs and/or have fun playing with a more limited environment)
esp8266 means wifi, and also means you don't have the whole linux TLS ecosystem to play with. I'd be somewhat cautious about using an esp8266 (as much as I like them) to unlock my front door...
Why would you be cautious? Not saying there's no downsides, but if anything I consider it to be an "upside" that the device is simpler. Now I don't need to worry about linux, or making sure it's a read only filesystem with an image all setup, etc.
I look at it this way: If you want a remote device that measures or controls just one or two things, but does very little if any calculations - use a esp8366/32 (or anything with low power requirements). If you need to process data (video stream), or do other calculations, potentially while controlling many different sensors/things - you'll likely want a raspberrpi/similar
If you can come up with a reasonably secure way to get an ESP8862 to unlock your door that I can't sniff from across the street with a pringles can hooked up to a wifi dongle running in promiscuous mode (perhaps with a pile of off board AWS to crack your WPA key), I'd be interested in checking it out.
I'm not saying it can't be done. But for _me_, I'd prefer to piggy back on all the battle tested tools available in linux like OpenSSL rather that pretend I can write bulletproof crypto code for the constrained resources available on the esp. And I'd prefer to run my unlock signals over wires rather than over a radio. I'm cautious like that.
Preshared one time pad would be pretty simple. But just because it has wifi, doesn't mean you have to use it. The chip is bristling with io so running real wires is always an option (and hey, you probably have to power it by wires anyway).
There's definitely something to be said for not having the surface area of some hobbiest-grade linux distro on your door locks also. I'd like to perform a "security update" on my door locks just about never.
Anyway, the esp32 has a tls stack which is adequate if you want to go that way. Lately there are a handful of boards on the market that pair the esp32 with a PoE chip that are becoming my goto for little "iot" projects.
Unless you love soldering wires to tiny little smt pads I'd recommend looking for one of the "development boards" based on the 8266 (or as others have pointed out in this thread the bigger, faster, stronger, esp32). Not only will you get some through-hole connections to some subset of the pins, but you'll also get an onboard power supply and probably a usb port for programming so you can get right to cooking.
There are no end of ESP32 dev boards but if you're new to working with MCUs I'd always recommend starting with something from Adafruit or Sparkfun. They just have way more documentation and support.
So I'd go with something like an Adafruit ESP32 Feather [0]. Sure it's super impressive that one can pick up a perfectly functional anonymous board on eBay for almost nothing but, for getting started, $20 for something from Adafruit will save you a lot of initial hassle.
MicroPython on ESP32 [1].
MicroPython specifically on the Adafruit ESP32 Feather [2].
I can highly recommend the "Wemos D1 Mini" for starting with ESP8266 as it's tiny, cheap but can be plugged in to a PC to be programmed over USB and has pin headers and readily available shields for getting started quickly. I have one in each room of the house reporting back temperature\humidity to the pi that controls the central heating :-)
You're welcome! You might also be interested in MicroPython (if you write python) which runs pretty solid on esp32 and has a lot of batteries included. You can almost forget you're running on a micro.
Do you by chance have a link to a good development kit for the esp32? I checked and I'm a bit overwhelmed by the amount of different components one can get.
- it has an OLED screen on the board for debugging and status output
- it has a battery holder and charging circuitry for an 18650 on the back of the board for portable powering/"UPS"
- it breaks out all the GPIO lines onto pins
Why you might not like it:
- like many esp32 dev boards it's slightly too fat to go straight into a standard breadboard. You have to join two breadboards to get access to both rows of pins.
Lately I've been playing with the Olimex esp32-poe [0]. It supports being powered over ethernet or lipo battery (or micro usb) and includes an SD card slot. If your application uses the ethernet, though, be sure to develop using a non-poe switch (or else power from the ethernet interface can leak over the usb programming interface and damage your laptop.)
No sadly not. I'd love to write about it but my English is just not good enough to write a compelling story. Writing it in German and then having it translated is always a bit of a hassle. But I may consider it. At the moment I have an offer of the door drive manufacturer for doing a "home story" about the solution. If that will happen, it will definitely be released in English.
I will open source everything once I'm happy with the security and the ability to configure it.
I've been having pretty good luck with a friend who runs stuff through Google translate, and then I (a native English speaker) fix it up to make it more natural. Might be worth a try. I bet there's plenty of people on HN for example that would do that for you.
I have an old Raspberry Pi 1 that runs headless raspbian with a set of cheap speakers plugged into it and an old usb wifi adaptor. It has only one purpose: to play a wav file of a telephone ringing for one minute. My spouse does not ever have the ringer on her cell phone. So when I am out and I need her to look at her phone, I VPN in to my home network, ssh into the pi using Terminus on my iphone, and 'aplay' the wav file.
The real reason we ever wanted to get a landline was because of this issue, so instead of wasting money I just used spare parts to make an alert system I can activate remotely. I can also use the 'say' command for text-to-speech, but that's not really effective. The old school phone ringer wav is perfect.
> I VPN in to my home network, ssh into the pi using Terminus on my iphone, and 'aplay' the wav file
Once, when I was working away from home, someone unplugged the phone at home so I couldn't phone in. After becoming very frustrated, I SSH'd into my home server, and from there into the Mac Mini we used as a media station. Then:
- checked they were watching something using `ps`.
- killed that process so I had their attention.
- `say 'this is dad, I'm inside the computer.'`
- `say 'I want to phone you but you have unplugged the phone.'`
When I was younger I worked at a retail store and I remember being thrilled to discover I could telnet into a cash register and echo text directly to the attached receipt printer.[0] I became a small time hero at one point when I used this power to alert our sister store that their phones weren't accepting calls during the middle of the holiday season.
[0] Also interesting is the time I discovered that sending a special escape code to the printer caused the cash drawer to open, but that's a tale for another thread.
Haha this reminded me of the time I lost my phone. I suspected it was left at work so I ssh'd into my Mac at work, started recording audio, dialed up my phone and voilá. It was there and I had peace of mind until tomorrow.
Turning on FaceTime remotely to see what’s in front of the computer has saved me a few times, and made me wish that my screen was angled differently many more.
A few weeks ago I realized on my phone I can, from anywhere, say "Ok google, broadcast" and then say a message. That message gets played back on the Google Home devices.
My kids weren't replying to text messages about being ready to go to an appointment that we were pressed for time on, and I was on the way home, so I did that to tell them to get ready. A few seconds later I get a text from my wife: "How'd you do that?!?"
You could automate this even more with a Twilio number, ngrok running on the Pi and a small webserver to trigger the audio playback. Then instead of having to ssh in you can just send a text.
Expose your server endpoint to the public web however you like. There are lots of options and many have been discussed here recently. I just happen to be a fan of ngrok and use it daily for all sorts of cases, including on some of my Pi’s.
I have a tunnel that’s been running for over a month now with no issues. Basic free tunnels do have an expiration (24 hours IIRC) but the paid accounts will let you keep a tunnel open as long as you want.
If they have an iPhone, you can go into contacts and turn on emergency bypass just for you and that way their phone will ring when you call but not anyone else.
Or, if you have an aPhone, you can ssh directly into it (ssh server apps don't require root), or make it do an additional action (such as turning off silent mode, or playing something) when you call (I'm sure automation apps can do this without root), or a million other creative ideas as root user.
Similar issue, but I worked around it by setting up one of those find-your-phone apps and whitelisted my number. Now I can just text her the secret code and it makes her phone ring loudly even when it's on silent.
I have something similar set with Tasker to locate _my_ phone. That is, a particular word texted to my phone number will make the phone max out the volume, turn on the camera flashlight, and start making noises in the loop. I can also trigger this from my smartwatch[0].
I also have a "haptic test" function: press the button, the phone vibrates briefly. I originally created that check the delay on the Pebble-Tasker connection, but ended up using it almost every day to find my phone among the clutter in the house.
Tasker is amazing, if you have Android, I recommend checking it out.
--
[0] - misplacing a phone while having it still in Bluetooth range actually happened to me once long ago with a feature-phone. I looked and looked and couldn't find it. It was set on silent, so calling it didn't help. Then I noticed it's still connected via Bluetooth to my PC's phone management app, so I manually turned the ringer on, and discovered it deep within the mechanism of my bed. Finding it there without this trick would probably take me hours.
If you consider the situations that would lead to the husband needing the wife so badly so as to need to override the wife's choice to not have the ringer already on, the subset of such situations which are life-threatening for the husband are probably situations in which the wife either can't assist in time or isn't the only person who can assist, so overriding the silence isn't required for life.
In contrast (and yes, my intention was contrast), if the wife was hiding from a shooter then her ability to maintain silence is required for life. Airplane mode isn't great, because she should be texting/tweeting/etc.
Thus, best to not let your silence be overridden.
For non-life-safety reasons that the husband might be trying to reach the wife, that could be solved via agreement ("keep your ringer on except in emergencies") instead of brute force.
You must not have kids. They drastically increase the frequency with which one must contact a partner at random unexpected times. People mess up ringer settings all the time.
"the kid is vomiting and school needs us to come get them asap, which one of us is more available?" is not a life-threatening emergency, but it's a family emergency and needs attention. It also happens a lot. An awful lot more than your "unlikely to happen to most people in their lifetime" contrived scenario.
Oh yes. My wife is the worst offender. The amount of times I have had to cancel important things to get a taxi to our kindergarten because she had our car (and thus the agreed upon responsibility to pick up the phone) can't be counted on 2 hands, and he has only been 2 years in kindergarten.
iOS has a bypass list for “Do Not Disturb” mode, but sound is disabled via a hardware switch next to the volume buttons.
As a workaround, I’ll use the “Find my iPhone” chime which is the one way to bypass the hardware switch if I need to get my wife’s attention while the phone is set to silent.
Then it wouldn't be a hardware switch anymore, just a sensor.
Meaning software could mess something up and "embarrass" you in public, completely voiding the point of the mute switch.
But this is exactly how it works. On my 8, I have emergency bypass turned on for my wife. When the hardware switch is turned to the "silent" position, I still get a ring when she calls and a tone when she texts. Everyone else I hear nothing.
It seems likely that the side switch is anyway connected to software - on iPad its purpose is configurable and I think it was for a short period on iPhone. I always assumed the point of the switch was for quick and convenient access, not for certainty. Besides, the hardware button also fails embarrassingly when full of lint.
2 Pis for dealing with ADS-B (airplane data), one for 1090Mhz, the other for 978Mhz. I could run that on the same one, but seemed easier to just split them up given some of the software is a bit picky with device IDs. The 978Mhz is much quieter than the 1090Mhz, so I also run a private SpyServer (https://github.com/lloydpick/docker-spyserver) for listening to radio transmissions.
1 Raspberry Pi for a running a very stupid sitcom sound thing. Using a camera it tries to recognise who you are, then play a random sound assigned to you out of a little speaker. Think of like the cheering/clapping when a guest or celebrity enters the room in a sitcom tv show, and replace out the clapping with whatever sound you want.
This reminds me of this project I saw on twitter a while ago where a small arduino with a motion sensor would play the Seinfeld bass riff every time someone entered a room.
Me too. I've always though I and my friends should all have individual theme songs that play when they enter the room. Now I have another weekend project...
For the airplane data, I always liked browsing sites like flightradar24, planefinder etc, and wondered how they aggregated the data, and it sort of just went from there. I also now send the ADS-B data to open projects rather than commercial only entities.
In terms of the random radio transmissions, it was simply because I was already installing the two ADS-B antennas in my attic, and thought I might as well just put up the standard telescopic antenna that came with the USB receivers as well. I'm a newbie in terms of radio, so it's just been interesting scanning the bands to see what you can find and listen to.
A future project I have is to try and pick up the 443Mhz transmission from a really simple weather/temperature sensor I got from Walmart a while ago, since apparently that's what it uses to talk to the little base station it came with.
I'm Dr. Torq and have a Raspberry Pi in my Steampunk conference badge. Use it during my tech talks. I walk into the room, power down the badge, plug in the HDMI, power up the badge and run my slides with a nano-keyboard/mousepad and LibreOffice. Works great. When I'm walking around a show, the badge displays a little promotional video on it's 3.5" touch-screen. Runs on a big cell phone power pack, in my pocket. See my gadgets and hacker articles at https://thenewstack.io/author/rob-reilly/.
1x Raspberry Pi 3 installed in my car within the internal network as a bastion box and to run software that let's my interact with the entertainment system
1x Raspberry Pi 3 running Home Assistant with a Z-Wave USB Dongle (Home Automation)
1x Raspberry Pi 3 running OctoPrint (Host/remote-control for 3D Printer)
1x Raspberry Pi 3 running FullPageOS (Full-screen Chromium in kiosk mode) displaying a server statusboard in our home office
Next project: 1x Raspberry Pi Zero W to run Unifi Controller
I have a couple of original Model B+ sitting around unused right now - just not powerful enough for any of the above projects.
> 1x Raspberry Pi 3 installed in my car within the internal network as a bastion box and to run software that let's my interact with the entertainment system
Can you go in more depth about this? How did you integrate it with the entertainment system, and what do specifically do you do with it?
Comma ai has a bunch of car related repos that are open source, one of them interfaces with can via the odbc jack under the steering wheel. Might be able to glean some information there.
That "open stuff" generally speaking is either an ODB-II port (which as I understand it is generally limited in diagnostics and communication in modern cars) and the other is the C2 Radio harness (which plugs into the back of the infotainment system.) These systems exist on all modern cars.
The C2 radio port gets you direct access to the vehicle's CAN-Bus system, which itself is generally segmented into a high frequency (safety critical systems: drivetrain, drive-by-wire steering if applicable, braking, etc) and a low frequency system (door locks, sound system, windows, etc.) If you reverse engineer your vehicle's CAN protocol (each manufacturer uses their own codes on a standard CAN transport protocol), you can issue commands to it directly from your Pi.
> Next project: 1x Raspberry Pi Zero W to run Unifi Controller
Ugh, have fun with the dependency issues. An easy alternative is to run a Unifi docker image. Currently running it from a Debian VM when needed but looking to move it to an alpine vmm on my OpenBSD APU2. The Linux image is the same as the cloud key so you can roll your own cloud key and use the unifi app.
It is a nightmare! I just finished fighting with it this weekend.
The controller only officially supports ARM 32, and the mongoDB dependency only supports ARM 64.
In the end I I used a 64-bit Ubuntu, 64-bit mongoDB from the mongoDB repo, and downloaded the controller deb from the Unify site, which is apparently architect agnostic.
When I used my Pi 3b+ it was flakey for UniFi. I bought a bunch of their cameras and got a cloud key gen 2 plus. Haven’t looked back and now I have a Pi for a few other things in my new house.
Seconding this... it'll just barely run on the Zero W, but you need 64-bit Java to remotely access your controller through unifi.ubnt.com, and there'll be long delays whenever the database needs any maintenance.
(I set up a Zero with the Unifi Controller -- connecting to the LAN using a Chromecast Ethernet Adaptor -- about a year ago, and had this problem, so I switched to a 3B, and all is well now.)
Boo! Might have to reconsider then. I used the Pi Zero W for FullPageOS for a while but performance was absolutely terrible, recently switched it out with the Raspberry Pi 3.
The Pi Zero really has an awesome form factor, but many of the projects I come up with either require more performance (i.e. needing a Rasperry Pi 3) or are simply better suited for a microcontroller such an ESP32 or ESP8266.
I guess it depends, but having the unifi controller on wifi isn't always the best of idea. If you misconfigure the wifi or just change the ssid/password the controller looses access as the settings are applied. And now you can't even connect to the controller to fix it.
> 1x Raspberry Pi 3 installed in my car within the internal network as a bastion box and to run software that let's my interact with the entertainment system
Can you go in more depth about this? How did you integrate it with the entertainment system, and what do specifically do you do with it?
Unifi controller on a pi zero might be a bit painful on the memory front. It wants the controller (java app) and mongo, both of which like to eat up memory.
You’re clearly better at this than me, so this might be unneeded: Docking the UniFi Controller avoids the dependency hell and upgrade pain that sometimes occurs, and makes an afternoons pain into a 5 minute exercise.
I use a Raspberry Pi to stream PlayStation 2 backups over SMB by networking the onboard Ethernet port of the Pi to allow access to a Samba Share service running on the Pi. This allows for seamless playback of games with heavy Full Motion Video sequences as the Ethernet transmission is faster than the max throughput of the USB2.0 ports provided on the PlayStation 2. It -also supports auto mounting and sharing of external drives to allow for seamless drive swapping if you have a large library.
Using the same technique, games can also be streamed to PlayStation 3 and original Xbox.
I added some additional support for Xlink Kai so that you can play LAN enabled games over the Pi’s WiFi connection by plugging a compatible game console into the Ethernet port of the Pi or by connecting to an access point that is auto created when a secondary WiFi dongle is attached to the Pi.
I learned that there are usually a hundred or so people in South America who play Halo 2 using Xlink Kai and this makes it very easy to connect to them for lag free multiplayer on original hardware. This feature also works on Nintendo Switch and PSP with a bit of extra work.
Youtuber VersatileNinja recently published a detailed video on [how to get started with the project](https://youtu.be/Ilx5NYoUkNA) if anyone is interested in taking it for a spin.
How fast is streaming cut-scene heavy games like MGS4 to the PS3 using this setup?
Also, for the PS2, how does it compare with HDDLoader and an internal HDD. Relevant for games like Fatal Frame, where you have to open doors a lot, and on the DVD, it takes like 5-10 seconds, but on the HDD, it takes <1 second.
I didn't know we could steam to the Xbox OG, sounds pretty useful compared with the 1hr process to open it up and upgrade the HDD...
In my tests using iftop, speed on PS3 seems to top out around 60 MB/s which is slower than HDD but should be sufficient for most games.
On PS2, the speed to access SMB is also slower than HDD at around 6 MB/s, however, this is nearly 6x the speed of the USB. Although it is slower than HDD access, it allows for playback of most games without stuttering.
Good point on calling attention to the OG Xbox, as I should have been more specific there. OG Xbox games can only be played back via HDD or Disc due to a limitation in the system itself, however, a number of emulators support SMB paths for playing backups.
I'd probably do the same if my PS2 was a slim model, but I have the fat, and used an older hard drive for it.
I'd love it if modern consoles like the Xbox One and PS4 supported any sort of network share hosting for games. They do support USB drives and I thought about using Linux Gadget USB to emulate a USB drive and store the backing file on the network share. Previously that wouldn't have really worked with the Raspberry Pis as the full sized models did not support USB OTG. It does look like the new Pi4 supports USB OTG over the USB-C power port.
* Pie-hole and runs Nagios to collect information about things going on inside the network.
* One running a PiDP-11 (pdp 11/70 emulator) as well as providing MOP service to boot my DEC terminal multiplexor (it provides the boot image when the mux comes up)
* One is a stratum-1 time server using an Adafruit GPS module with PPS output. This because I got tired of both the reflection attacks and trying to manage ntp access from inside the house to outside.
* One runs RasPBX and talks to the VOIP phone that is my home "business" line.
* One sits on my electronics workbench and runs OpenOCD and allows BlackMagic Probes to export GDB as a service over the network. That lets me debug from anywhere without burning a USB port or adding additional software.
* One runs a very simple time series database and is the collector for IOT type devices that are sending various bits of information (energy use, temp, humidity, particulate levels, etc)
* One drives a display which has a dashboard of various things that the others are doing (like Nagios alerts, data trends etc) This one is a candidate for replacement as the 4K monitor would be nice here.
* One runs the waveforms live software from Digilent and hooks to an Analog Discovery 2 on my workbench. (scope, logic analyzer, etc)
EDIT: And its important to know that I boot them using the network and run them off NFS from a NAS box, the idea being that when they break I can easily swap the CPU part with a new one.
The Pi is memory bandwidth limited as it is, that would probably kill it completely. Even the RPi2 was really only responsive enough with a 720p display.
> * One sits on my electronics workbench and runs OpenOCD and allows BlackMagic Probes to export GDB as a service over the network. That lets me debug from anywhere without burning a USB port or adding additional software.
This sounds cool and interesting. Can you elaborate on the setup and some of the ways you've used it?
Its pretty simple really, I built OpenOCD from source on the RPi (that is just download the github repo[1] and add some libraries like libusb), when you run OpenOCD, by default it opens a gdb server on port 3333 and a telnet server on 4444.
From anywhere on the network when you start arm-none-eabi-gdb, you can type
target extended-remote debug:3333
And poof you're connected to what ever dev board OpenOCD
id debugging. Then just load your .elf file (which flashes it) and start it and you are off to the races.
Since the Black Magic Probe has its own gdb server you wrap it with nc(1) so on the Pi you run
nc -kl 1234 < /dev/ttyACM0 > /dev/ttyACM0
and now you can connect to port 1234 on the debug server. At which point you're talking to the BMP. The ports are selectable so I typically set up as many ports as I need (depends on how many sessions I might be running) and write them on a boogie board[2].
Of course I've got that particular RasPi mapped to the host name 'debug' for that reason, the one that runs the waveforms software is named 'instruments' :-)
The lowest power "x86" server I have found runs at about 30W, that is equivalent to about 8 RasPis (typically about 4W each, the PiDP-11 is an outlier at 8W) in the current configuration, and the RasPis are fairly distributed around my lab which would have to be done with wiring otherwise.
I have a (basically non-existent) side business selling LED strips and RPi lighting controllers for surfboards! If you've seem some viral videos with guys surfing around at night, they were probably using my gear :-)
Briefly put, I use the Glediator and Jinx! control software on an RPi, which communicates with an Arduino, which drives the LEDs. I put them in a permanently sealed box, water proof it as much as I possibly can, then cut some IP68 RGB LED strips to size and strap them to the rails of the board. I can remotely access the RPi via Wi-Fi to change lighting schemes, and there's a wireless charging coil inside the box which I can use to charge the batteries, so I never have to open it up after waterproofing. It's basically bomb-proof, and simple enough that I can teach a surf bum how to use it in about half and hour.
Start thinking of the RPi as more of a powerful microcontroller and suddenly a world of opportunities open up. I did my dissertation on it! Titled 'Home Automation and Monitoring using a Raspberry Pi', I basically used an RPi as a master node to control a bunch of Arduino slave nodes, using I2C protocol. With just two wires and an Pi, I run about 20 Arduino's all over my house, doing everything from feeding my fish, to monitoring air quality, to starting my coffee maker. I can access it remotely via Wi-Fi too, so I can do things like water my plants while I'm away. Aiming for a full Wallace and Grommet home in the near future.
This is so cool! It's an amazing idea and it's probably more than a non-existent business market.
I am a complete surf noob (went only thrice for a week or so to a surfing site in the north of Spain), but this sounds like it's probably an important need for some and otherwise it looks so rad you could probably sell them for good money.
Props to you, really impressed and from the video it looks like you've done them very robust too
No, but very similar! I made mine as a product you could attach to any board, as opposed to the strips being embedded and shaped into the board like the one in this video (which normally cost thousands to buy...) A few of my friends rode them at a contest in France though [1]
Alas, at the moment it's just a kick-starter pipe dream I'll never have the time to put into production.
Sure! You can buy electric water pumps fairly cheap online. They normally come as 12V devices so you'll have to use a relay and a 12V supply, and some sort of circuit to drive the relay using the 3.3V GPIO from the Pi. You can control the pins using Python and the RPI.GPIO library. I personally use a Zerodis DC 12V Homebrew Beer Pump (although there are about 50 other types on Amazon) and a length of hose pipe which goes to a rain water bucket that I've put beneath my drain pipe. The other end goes to a sprinkler. Super simple system that took only a day to set up, so I highly recommend something similar for all you absent gardeners.
If you're looking for some serious power, that system I described will still work. The Raspberry Pi is just there to control a relay to complete whatever circuit you're powering. You could get something like a Draper 56225, which manages ten's of litres of water a minute; something I've been considering getting for a hydroponic setup I'm looking to build. Then you can pick up something like an Energenie Raspberry Pi-mote, which is basically a mains power controller you can address with your Pi. Plug your pump into that, and then power the pump with the Pi whenever you want to water your plants!
The coffee machine in our office is controlled by blockchain NFTs and a Raspberry Pi:
Once authenticated, an owner of the NFT can select their coffee type on their phone which then signals the Raspberry Pi to make whatever coffee type was selected by jumping the contacts that used to be pressed by the machine's buttons (which have been removed).
It's a cool gimmick, fun to show off to visitors, gives us a nice record of who is making coffee (since each NFT's owner is unique and trackable), limits users to those with the NFT without us having to build usernames/passwords, and is also how I make my coffee each afternoon.
It doesn't write individual orders to the chain. It could if we funded a wallet to pay the gas to write those records but right now it just does authentication of NFT ownership to grant access, which is conveniently free. The history logs are stored locally.
If an EU user tries to make coffee we redirect them to a "this content is unavailable in your region" page so I think we're 100% good to go with GDPR compliance.
It's a Nespresso Lattissima-- the old version where the buttons were physical push-to-press. We pulled the buttons off and soldered wires to the board inside via a 4-channel relay.
I discovered that my 17-month old son loves to mess with stereo controls. So I bought a few rotary encoders and neo-pixel rings - build a wooden enclosure with a plastic faceplate, and wrote some code to generate fancy light and audio effects when he turns/clicks the knobs. He loves it.
Currently it's still running my test code, which just lets him mess with volume/pan/pitch. I need to get around to writing something a bit fancier.
Tech deets: It's just a RPi3 with most of the stuff written in Python. I tried to get a bunch of Python audio libs working, but gave up and wrote my own C++ module for sample mixing. The NeoPixel rings are driven via the SPI output, and the rotary encoders/switches are just hooked up to random GPIOs.
A security camera NVR. (Help wanted! I'm developing it here: https://github.com/scottlamb/moonfire-nvr I'm proud of the design but it's still far from a polished system that does everything a reasonable person would expect. Lots of opportunities to extend it if you're looking for a fun Rust + Javascript project.) A Raspberry Pi 2 will run a working setup; the new Raspberry Pi 4 should be a lot more pleasant in terms of being able to recompile it in a reasonable time, transfer video segments quickly, etc. I think the biggest missing piece is a real-time clock. Faster flash, builtin SATA, and a builtin NPU would also be great of course but not realistic for $35.
A home theater control system. The Pi uses HDMI-CEC, my Samsung TV's EXLINK (their protocol over RS-232), Roku's HTTP interface, etc. and an Android app is the frontend. I wanted to make this into a nice polished thing other people could use but have given up on the idea for now. The thing is that media components are super finicky, many things need special support written just for them, and you really have to extensively tweak them to see how they function as a whole. (eg does your TV turn off your stereo receiver when it turns off itself. The answer varies based on the model and settings of both components.) HDMI-CEC doesn't live up to its potential in this regard.
Moonfire NVR looks like an amazing project that I can learn a lot from for an entirely different project with streams and stuff that I’m interested in and have zero experience with!
Also great that it’s written in rust
Is there any way to test it without rpi/camera?
If I understand the readme correctly, you store frames individually (as jpegs?) on disk and construct flexible mp4 streams on the fly. Naturally I would have assumed that this would be inefficient so I’m wondering if I got this right, not very familiar with stream/video/codec tech
Without a Raspberry Pi, yes. It should run on any Unix-like OS. I've tested Linux/arm32, Linux/x86-64, and macOS/x86-64. (For the last, install ffmpeg via homebrew first.)
Without an IP camera...hmm, there are probably some public RTSP live streams somewhere. Not sure offhand.
> If I understand the readme correctly, you store frames individually (as jpegs?) on disk and construct flexible mp4 streams on the fly. Naturally I would have assumed that this would be inefficient so I’m wondering if I got this right, not very familiar with stream/video/codec tech
No, I store the video stream in the compressed form the camera gave it to me. Currently that's H.264; it wouldn't be hard to add H.265 support as well. I break it apart into roughly one-minute segments at convenient locations. The schema design doc talks about that here: https://github.com/scottlamb/moonfire-nvr/blob/master/design...
.mp4 serving will aggregate those together (maybe clipping the start and end segment) to give you a .mp4 segment for any time range of interest. It comes up with a mp4::File struct which knows what video segments to serve and maps byte locations to parts of the .mp4 container format. I don't have a good doc about how this works other than the source code right now. https://github.com/scottlamb/moonfire-nvr/blob/master/src/mp... [edit: and you probably won't be successful in understanding it without having a pdf of the ISO/IEC 14496-12 specification open next to it.] Here's some debug output for generating a five-minute video segment: https://pastebin.com/Wzfz7BF7
Storing individual frames as jpegs would be inefficient I agree in all sorts of ways: recording CPU (you have to decode the H.264 and re-encode it as JPEGs), disk space, disk seeks, playback bandwidth, browser CPU, etc. My understanding is this is how Zoneminder currently works. I imagine it worked better with the cameras Zoneminder was originally designed for: low-resolution, low-qps webcams that didn't do their own H.264 encoding.
I've wanted some security cam software to run on a Pi for ages because the stuff shipped on my IP cameras is awful. Do you have any plans to offer a callback system, e.g. so when some customisable event happens (change detection, perhaps between certain hours of the day/night) it could then callback to a custom script for further processing?
My plan is to extend the HTTP API [1] with an event stream [2] that can be accessed via https-with-a-session-cookie or http-over-Unix-domain-socket. It could be used by browser-based Javascript, mobile clients, and automated event subscribers. One could write a subscriber that launches a subprocess or runs scripts in-process. I think there are a few advantages over doing this directly from the main process:
* it keeps the main process logic minimal. This API is needed anyway to make a good web interface.
* it's the easiest way to have nothing else run as the same Unix user as the main process. My design is similar to a DBMS in that that you should only ever be accessing Moonfire NVR's data through its interfaces (except for development or emergency maintenance purposes). Having a dedicated user helps enforce that.
* your script can run on a separate machine if desired
Also a couple disadvantages:
* two services to set up (main process + subscriber) instead of one.
* there's the possibility that an event happens while the main process is running but your subscriber is disconnected, so the event gets committed to the database but you never see it. The easiest thing to do is to accept skipping these (as would happen anyway if the main process is down). Or the main process could buffer events for a while. Or the watcher could have logic to "catch up" (which unfortunately means not only more complex logic but also keeping state somehow).
If you'd prefer another approach or want it sooner than I'm likely to implement it, please contribute! I have my priorities & design ideas, but if you chip in, you get a say in both. And I go pretty slowly on my own anyway, so if you're able, it's worth chipping in even if you agree with me about everything.
I've been looking for something like Moonfire! Do you have any recommendations for an outdoor camera, I was looking at Lorex but don't have much experience? Thanks!
I have a Dahua IPC-HDW5231R-Z that's worked quite well for me. But I haven't tried a lot of cameras, and your needs and budget may vary, so look at the ipcamtalk cliff notes: https://ipcamtalk.com/wiki/ip-cam-talk-cliff-notes/
It doesn't do enough work today to require that, given that it's meant for home use and doesn't decode/re-encode the video. One Raspberry Pi 4 with a couple 6 TB drives in an external USB3 SATA enclosure should be sufficient for 16+ cameras in terms of CPU, USB3 bandwidth, Ethernet bandwidth, spindle time, storage capacity, etc. If for some reason you need more security cameras than that in your home, you can probably afford a single machine beefy enough to handle it.
The only thing I anticipate being a significant performance challenge is on-NVR motion detection. Most likely that will end up being separate processes that download the video and annotate it via the HTTP API. Those workers could then run on separate machines if needed. The primary machine would have sufficient bandwidth to support this.
I run a plex media server on my 3b+. The server is on the wall below my router (attached via ethernet), a 2TB HDD sits next to the server. I put movies & TV for my kids on the server, then they can watch on one of two TVs in the house via Roku. It's good for getting them off trashy Netflix movies & making classics (or what I consider classics at least) available to them.
I chose this configuration rather than running plex in the cloud because a) don't want to pay monthly forever for something I use a few times a week; b) less wasting power and c) this at least theoretically can work during an internet outage (though plex authentication may make this difficult). I configured the HDD to spin down after 20 seconds of no r/w, so the whole thing draws very little power while idling (or so I assume).
The major limitation of this setup is that the pi cannot handle video transcoding. As long as I transcode to something the Roku supports natively this isn't an issue: transcode once (on my laptop), put it on the Pi, play whenever. I have yet to script this process but that's my next step in the project.
It will probably be a year before I realize any cost savings (a friend pays CAD20/mo for a hosted setup which also handles on-the-fly transcoding), but, well, it's a simple server and I just wanted to do it myself, gosh darn it!
Have you thought about trying this with a RPI 4B? Thinking about replacing my 3b+ providing two SMB shares with such a setup, once 4b has matured a little.
Well I don't have any reason to replace the 3b+ now (I just set it up earlier this year), besides faster file transfer on the 4, and I'm disinclined to upgrade something I just built.
Unless the 4 can handle video transcoding I don't see what the benefit of it would be. If it has increased energy use it might even be a worse choice!
College student here with a part-time data entry job. I have automated nearly all of it using Python, Selenium, and a few nasty bash scripts called by periodic cronjobs. Recently purchased a 3b+ for the task so that I can travel without worrying about AirBnB wifi speeds. If I need anything I can just SSH or VNC into it from a coffee shop. It just sits next to my router and blinks all day doing my job for me! Best $35 I have ever spent.
That's great! The business world is chock full of these situations where non-technical people create a process that could be automated but isn't, eventually leading to an entry level person (or several) who's entire job is to do things like copy-paste, clicky-click or OCR. I think the key step to automating these tasks is to have the ability to both recognize the opportunity for automation and code a solution. There could be a fantastic amount of money in building things like this on the regular.
1. Media player connected to projector running RasPlex - this software is outdated enough and buffers on some high bitrate content that I should buy a replacement device, but it still works well enough. I tried upgrading to a newer raspi and wasted an hour trying to get it to run, then gave up. So, I still use my old one. It still gets used daily and works well enough (only issue is the buffering on occasion).
2. RetroPie - I rarely game, but it's cool to be able to turn this on and have a library of all the games I played (and those I never had) from childhood.
The other 2 I just have sitting on my desk and occasionally use for small dev projects or to test out some new project I read about on here, hackaday, etc.
An ongoing project that I haven't made much progress with is an automated turret that squirts squirrels with water. I made something similar in college (a "paintball gun" turret with openCV blob detection/tracking) that had decent performance. Now that openCV on rpi can outperform my old college laptop, I want to setup the pi to detect squirrels, track them, and keep them away from a bird feeder/plants in my backyard.
Would that turret will work for pigeons landing on my balcony? Or better yet, to protect my air space by squirting them on a fly by? That'd be some sweet fun. :-)
Pigeons get a bad time, but they're lovely birds of you spend some time observing and maybe even interacting with them. We had an obviously-paired couple visit our balcony most days for a couple of years.
I like Pigeons and don't mind them except when they visit my balcony at 7am in the morning and wake me up (we only have single pane windows and no way to change it since we're renting).
Don't be sad on my account. I actually like them very much. They are funny and persistent. I watched one yesterday try to outsmart a crow for a piece of cheese. That she even tried was pretty courageous. We have an obviously-paired couple living on the roof of the building next door. They are very sweet and would be welcome to visit if they would promise not to nest. But they won't.
And the first pair of baby pigeons we sheltered was the last pair of baby pigeons we will be sheltering. The mess was indescribable and everyone was so comfortable they all wanted to raise families here. Horrified, I chased pigeons from our balcony during mating season (circa any time it's warm outside) multiple times a day for three years before I regained control of my tiny kingdom.
Pigeons have the whole outdoors to nest in, the city even maintains a pigeon house on top of a building just across the way. I have my balcony...
I was bullish when I got my first Pi to run Home Assistant (before hass.io), but got discouraged when the sd card failures were gas-lighting me by silently reverting my code changes. That and the lack of hardware clock hampering some of the diagnostic tools I usually use, kept me sticking with VMs on a NUC and a fanless Celeron for Kodi for my main compute uses.
oh jeez the SD card story just gave me flashbacks.
I changed networks (uni to home) and the RPi running pihole would constantly keep my uni DNS settings after a restart.
Took me a good few hours to figure it out given that I thought the DNS settings were getting copied in from elsewhere on startup. I think i finally figured it out after i re-installed rapsbian from scratch and to my horror was booted in to the old system.
I had an SD card once that would not fail to write (i.e. kernel does not show write errors) but when you read back it gets the old data. Tried it on multiple operating systems with the same behavior.
It was a more expensive SD card because I see more issues with cheap ones.
But it seems to me that SD cards suck at all price brackets. Maybe even some of the expensive ones are counterfeit?
In my experience, Sandisk have a much better warranty policy than the other cards that have failed on me. RMAs get approved, UPS prepaid sticker for return, and replacement sent by UPS (in Europe, at least). The failure rate of their cards doesn't seem different than others I've used.
Yes in my case the pi would crash, and the SD card changes would revert. I don't know if its changed or not, but at the time you couldn't check uptime because the lack of a hardware clock meant it didn't know the time when it booted.
It took a while to figure out it was crashing everyday, probably due to the bad card, and the writes weren't taking. After more recent problems with other SD cards I'm trying the new SanDisk 8GB MSDHC Class 10 UHS-I U1 Industrial MLC micro cards after seeing them mentioned here.
I had a Neo Freerunner (2008ish time frame). So many SD card vendors ship (or shipped, then) bad/broken/out of spec SD cards whose controllers just barely work on Windows, Linux distros' drivers didn't work around the quirks, and probably the Freerunner SD port wasn't that great electrically. End result 8 out of 10 SD cards wouldn't work at all and one of the remaining two would fail silently later. I have still have a little box full of microSD cards.
I've done digital signage, controlled servos, used them as cameras, the works.
Right now I have:
- A 5-node Pi 2 cluster running k3s.io (https://github.com/rcarmo/raspi-cluster), and a separate Pi 2 I use as a Docker build box and local Docker registry.
- A Pi 3B+ as a "lab" desktop computer with an USB oscilloscope and FTDI cables to flash ESP8266 and Arduinos
- A Lakka.tv arcade/MAME box for the kids with a PS3 controller (no room for a proper PiCade, we just use the TV(
- A Pi 3A+ with a mic array for playing around with Google Assistant
- A Pi Zero W taped to the inside of my electricity meter trying to estimate power consumption (we have a spinning disk mechanical meter)
- Another Pi Zero W that I use to demo Azure IoT solutions
- An ODROID U2 (Could be a Pi) running HomeKit and Node-Red for home automation, as well as a bastion container (all dockerized).
Edit: forgot about the 3B hooked up to my 3D printer running OctoPi
And the list goes on. I have many older Series Bs lying around, and once used one to revive a dead synth whose MIDI keyboard still worked (I set up timidity and a sound font on it and it became the kids' piano). I also ran a Plex server on one until it became obvious that I needed to think about transcoding (but it worked fine for music).
You can do a _lot_ with Raspberry Pis, and I fully expect to get a beefy Pi 4 to use as a lab computer.
I just hope they also beef up the Zero at some point (power envelope will be a problem, but a Zero with Pi 2 specs would be great).
My most recent use has been teaching game development. I have kids and their friends are often around the house. A couple of them asked if I knew how to program games and I've been teaching them using Pico-8.
Many of these kids don't have computers at home so as a reward for finishing their first project I'm making them a home console with some RPi's I have laying about and Pico8.
A client that I'm consulting was being ripped off by a local IT provider with pricing for on-premises servers & MS software.
I proceeded to rent cheaper equivalent machines off-site.
The IT provider claimed the hardware firewall (Fortigate) was not configurable for site-to-site to the new machines directly (could be, not an expert on those).
Therefore, I ended up purchasing several Raspberries and configuring them as OpenVPN routers that opened up the office LAN to said machines.
Quite satisfying, as it allowed to break the client out of the proprietry software/hardware/vendor chain at a rather small expense.
IPSec is pretty much the standard interop still - pretty much everything talks it Cisco, Juniper, pfSense, Fortinet, etc. You name it I’d be surprised if it didn’t have support.
I’d love to see wireguard implemented in the networking world, but I think it may take some time to get there :/
Using several Raspberry Pis to monitor CO2 levels in my house. Each Raspberry Pi has a CO2 sensor - wrote a little Python script to retrieve data from sensor and upload it to a server Which is also a Raspberry Pi.
You can get cheap NDIR based sensors from aliexpress (around $20) such as MH-Z14A, which I've used with a Pi, via the UART interface. I just hooked it up to the 5V line on the Pi pin header and then used the Pis UART lines for the data, as that runs at 3.3V.
I had a suspicion that winter-time headaches we were having might be triggered by high CO2 levels so I simply wanted to record the CO2 levels in different rooms. Thanks to the sensors, I did, in fact, find that CO2 levels were very high in our bedroom. Once I improved ventilation, things seem to have gotten better.
This would be a good application for a Pi Zero W (with WiFi) - if you want to collect the data in a central location. I've linked the CO2 sensor I used in another comment.
Someone had posted on HackerNews that they had good experience with this sensor. Furthermore, it appeared to be easy to use the USB interface to get the data
CH4 is also dangerous. It's a different problem. CH4 blows up your house and is very rare. CO kills you and is very rare. CO2 buildup causes mild issues (like headaches, sleepiness) but is very common.
At one point I stuffed 40 of them into a rack mount and built a cluster to use for teaching at my university. Never gotten any publication out because it‘s fairly uninteresting from an academic point of view, but as a teaching tool to learn ARM assembler or parallel programming / how to execute stuff on supercomputers / OpenMPI it’s an invaluable tool.
Recently there have been some odroid c2 added to the cluster, so it‘s not only RPis anymore.
I've made some interesting projects over the years - only a writeup on a few of these, and some are in pieces and in various states of disrepair after moving so much.
Some write ups on larger projects:
1. I used a raspberry pi to coordinate the firing of multiple cameras, and then had the pi upload to a cloud service that would stitch them together to an "infinite zoom" super selfie. https://medium.com/@thekeithchester/gigasnap-
a-prototyping-story-efed72099d32
3. Raspberry Pi's controlled the heartbeat detection (controlled lights and music of your booth) and conductive paint controller (I built it and still don't understand the meaning) for this art piece. https://vimeo.com/207047769
6. This never got off the ground, but when Pokemon Go had first launched and was super popular, I wrote a slackbot that would alert everyone in the office when pokemon (outside of the super common Rattatas and Pidgeots) was nearby. I was repurposing that code to make a portable Pokemon radar that would jump a false account around the area around you, thus hunting down pokemon for you. https://github.com/hlfshell/pokemon-tracker It never got far as the game got super stale quick.
Nice! Thanks for the link. Our goal was to hit a cool shot a mile away on a target in the middle of a giant concert for a "I was there!" memento shot. Good to see it in practice somewhere.
Unfortunately the sales team didn't understand it, and what sales team doesn't understand sales team doesn't sell.
...I'm very happily in another company that gets tech - but man I wish we could have sold that project. The effect was really cool when we had it working fine.
The infinite zoom project is really interesting. I'm shocked that it never got picked up! The use cases you describe sound incredibly obvious for big events.
1x Raspberry Pi model B (from 2012!) - runs a reverse proxy to things in my local network, and runs a dynamic DNS service. It's showing its age as its ARMv6 and I guess at some point updates won't be as frequent so will eventually have to retire it, but it works fine for now.
1x Pi model 3 - runs various services, inc. GOGS a private git server, ZNC, a service to control my TV, a service to control my 'smart plug' lamp through a private API, a private docker registry, a voicemail system connected to Twilio
1x Pi model 3 - running Pi-Hole and wireguard
I love all of them very dearly and looking forward to reading this thread!
No write up unfortunately, I actually made it a few years ago as I was getting a lot of recruiter spam calls, but ever since the GDPR came in that has stopped. I don't receive that many calls these days.
I have my (cell) phones voicemail set to my Twilio number. When a voicemail request hits Twilio, it calls an endpoint hosted on my Pi, which then just calls the Twilio APIs to
1. tell the caller to leave a message after the beep
2. record the message
3. use the speech-to-text API to transcribe the message
4. send me an SMS message with the transcription
It's really just an ersatz visual/text voicemail service that I think iPhone users get. Also the Twilio speech-to-text transcriptions are hilariously bad, I don't think it copes well with UK accents :)
If you are interested in a 100% offline and private-by-design Voice AI, you should take a look at what we are building at https://snips.ai, it is 100% free for Makers
This allows you to do a 100% private Home Assistant, or add voice control to any of your projects :)
It works for english, french, german, japanese, spanish, italian, and more coming, and runs on a Raspberry Pi 3 (and iOS, Android, Linux)
I have a few Raspberry Pi boards and since I've seen folks doing stuff similar to what mostly do I thought I comment on something I hadn't seen yet.
I struggle with tinnitus distress and Ménière's. One of my coping strategies is to continuously play some sort of background sound in the areas I occupy.
I have a first gen RPi with a set of USB powered speakers in my bedroom that plays long form background soundscapes I get from YouTube on loop. This is the lowest tech I could muster. YouTube-DL is a command line tool that fetches content from places like YouTube and recodes it. I use mpg123 to play the resulting audio file on loop... and because I'm already using ssh for all sorts of other things as go about my day this workflow is basically completely integrated into my normal day-to-day activities.
When I first started doing this I changed the audio track on a fairly regular basis. Sometime to suit my mood, other times for the weather. These days it's more of a seasonal thing.
It works great. It's proven to be really reliable and it was really, really cheap.
As someone newly with tinnitus, and with fading hope that it will go away at some point, I've been playing around with ideas of doing something like this. I was thinking of using frequencies to cancel each other out, but I think this might work much better.
I don't think that it's possible to use certain frequencies to 'cancel out' the perception of tinnitus because for the over whelming majority of folks dealing tinnitus the noise isn't a real sound.
Even an imagined sound has a frequency (and probably?) a phase.
It might be possible to generate a tone at the same frequency and shift the phase until it's 180 degrees out of phase with the imagined sound. Perhaps the brain would do the math and cancel the imagined sound?
This can't really be automated since there's no way to measure the imagined sound, but it might be possible to make a little box with knobs - pitch, phase, and volume - that would all one to tune a cancellation frequency.
I am very active in a lot of online tinnitus forums. If that worked it would have been shown to years ago because it gets tried over and over and over and over and over.
Seems like it's a common idea that gets stuck in technically oriented folks heads and they're compelled to some how force it to work.
Tinnitus is usually a psychosomatic symptom, especially if you haven't suffered any kind of ear trauma recently. Medicine only begrudgingly accepts the role of stress despite it being obvious to sufferers, however stress is only part of a much more interesting story. Look up John Sarno's work if you're interested.
I briefly perused the wiki article for meniere's and it fits all the hallmark signs of a psychosomatic symptom, right down to medieval, I mean mainstream medicine not knowing the cause. I recommend reading Divided Mind - good luck!
I've built a mobile airpollution sensor together with a few other parents and their kids at my 8-year old son's primary school in London. Air pollution is a big topic as the school is right next to a busy road, a lot of children are suffering from asthma and Islington has been pretty useless in collecting/publishing data. So we've started taking things in our own hands and built a handful of raspberry pi based monitors in class rooms, the playground and children take it with them on their school run. geo-tagged data is automatically uploaded to little influxdb/grafana based web service wheneve the pi has a wifi connection. Makes it an interesting project for kids to look and interpret charts and stuff as well. Currently we're measuring PM2.5/PM10, temp and humidity only, haven't had the time yet to look into NOx sensors yet...
I'm building a CarPi. I'm using a bluetooth OBD-II adapter and Python-OBD to monitor my car's diagnostics and record them. I'm planning on adding a GPS adapter and probably a gyroscope/accelerometer so I can track location and motion at the same time.
It's mostly just for fun.
Maybe one day I'll add some kind of analysis to it. It might be interesting to track location, motion, and car status in order to predict mileage or if the engine light will turn on.
2. Custom Weather conditions dashboard, using Dark Sky's API
I'd love to replace the weather dashboard with one of my integrated work / personal calendars so I could see what meetings I have each day but work won't expose that data, claims it's a security risk.
3. Custom NYC subway dashboard, showing me estimated train arrivals for trains at the 2 closest stations.
The MTA has free apps which also show estimated train arrivals but only for one station at a time. Also, the MTA's train estimation methodology isn't as accurate as it could be.
Have you experienced any issues using PiHole? I would imagine some apps etc would go to lengths to prevent their use. But if it works I'll set one up for my partner who plays way too many spammy games.
I have two Raspberry Pi with PiHole (for redundancy) and it works very well.
But still find something a bit annoying and there is little we can do about it.
1. YouTube Ads are still showing up (you need to maintain a list quite often to avoid those ads)
2. To maintain the software (update is simple), but you better update and then back up the SD card and replicate it to the second Raspberry Pi.
In terms of performance, I have not seen anything blocker, no malfunctioning app or the network getting slower. Time-to-time, I got angry wife that cannot click on ad links. :-)
One, sometimes I want to browse/buy things via Google Shopping (or some other shopping interface) but the Pi-Hole blocks it.
Two, sometimes for work I will run a docker-compose script that say, downloads a copy of Puppeteer. For whatever reason the domain seems to be on Pi-Hole's blacklist.
Granted I could probably whitelist the domains but that seems like a hassle. It has the ability to disable blocking for periods (like 5 minutes or an hour) but that doesn't seem to solve the above problems.
Other than that, it works great. It probably won't affect a regular internet user. But occasionally you can run into problems.
> 3. Custom NYC subway dashboard, showing me estimated train arrivals for trains at the 2 closest stations.
A friend of mine is a big Mets fan with a home bar; I helped him build a sign that showed the countdown clock for the Willets Point subway stop for that room, which went nicely with the beer signs and other sports memorabilia he & his dad had been collecting for decades.
I also built a FE that scrapes bus/train/light rail arrival data from NJTransit's website (they don't have an API, but they provide some JSON in their web app responses).
I use them as controllers/monitors for remotely managing a 3d printer farm. At about $40 total extra per printer for the pi and associated hardware, and an open source utility called "octoprint", i'm able to remotely upload, monitor, cancel/pause, and have a camera feed to each printer. They also give some additional nice-to-haves by allowing me to upgrade the printer firmware remotely, and get very accurate print completion estimation times.
The controller has 156 pressure sensitive keys. The raspberry Pi runs a program that reads from a bank of 20 8-channel ADCs all wired up to a SPI bus (it runs at 2mhz, and I'm able to get about 90 samples per second), and then generates MIDI commands that are sent over a USB-MIDI adapter.
I could use a microcontroller for this, but it's kind of convenient to be able to plug other USB-MIDI devices into it and have it work, and to be able to run a Linux-based synthesizer locally if I want. (I've been planning on using a Teensy for the next version.)
Thanks for sharing this, it's great to see your process.
I'm working on something vaguely related, a grid-based synth-controller/sequencer with a bunch of i2c shift registers and laser cut hardware.
I've been thinking about building a pressure-sensitive hex-layout keyboard next, you've given me a bunch of ideas and inspiration.
Thanks. Pressure sensing is actually pretty simple and cheap, unless you have a really large number of inputs (like I have). I was planning to switch to a matrix layout in the next version to reduce the number of ADC chips I need, but then I'll have to figure out how to mitigate ghosting.
I haven't used any of Sensitronic's producs, but they do have a lot of good information on their site about the various ways to use force-sensitive resistors.
My work has a really old phone system which I became the admin of. I discovered it had an audio input for Music-On-Hold, so I set up a spare RPi Zero that I had as a music player so that we'd have hold music. Low effort but wonderful improvement for work. Every now and then I go back and tinker with it to improve it a bit. (Next step is to make it controllable via a web interface.)
I have a RPi 3B+ that I use for some emulation, though I hardly ever play with it. Setting it up was plenty interesting, though.
And I have a Zero and a Zero W that I use for random tinkering/testing, both semi-permanently attached to a breadboard for ease of use.
(I've got a big list of projects I'd like to try or develop, but the above are the only things I've done so far.)
Did you also acquire an ASCAP/BMI license for the music-on-hold? A lot of people are unaware that is classified as a public performance of the music and requires a license. Unless you are playing royalty-free music, in which case you are fine.
I purposefully sought out royalty-free music. As the person who set it up, I did not want to risk being culpable for anything. (When it was first set up, my boss kept requesting that I add various catchy songs he heard on the radio to it, and I kept having to explain it's not legal.)
I have a pair of Pi Zero Ws set up as timelapse cameras that I keep in the garden - Cucumber vines and flowers opening is pretty interesting at 1 frame per minute
I recently did a project with a pair of RPi 3b+ and cellular modems as construction cameras.
I set up RetroPie on a 3b+, but it wasn't enough for the N64 games my wife and I wanted to play the 4 could change that
Currently my security cameras are recorded using Orchid VMS on an Odroid XU4 ( Cloudshell with 2x 4T SATA)
Its a great little tool for learning Bash, and groking your systems - testing portability? - without invoking AWS resources.
one is the latest Pi camera, I also got one of the m12 mount cameras that use the same interface. I have a wide angle lens that has some distortion, but its a nice look for some things. I use a little box that I glued a tripod mount to, keeps the rain out.
Its a great little box. I have 2 or three cameras recording 24x7, a large chuck of the spinners is a Samba share, and Webmin tells me that I'm usually at 10-20% cpu and 25% memory.
I've got an SSD connected to USB also, and it really makes the spinners feel slow ( WD Red Pros ) but that's mostly because they spend a lot of time idle and the first access is delayed.
Of course it isn't perfect. It holds on to dust a bit too well, and it isn't super easy to connect another USB device once you get it all dressed in place. I don't use the screen. I did at first, but I'm not black-belt level at managing HDMI devices and it doesn't present as much value as the light pollution it causes.
The RockPro64 would probably best it in most tests, but I already had the Cloudshell.
I have dreams of incorporating it into an all-ARM Linux domain classroom.
I'm in a college club that uses Pis to run football playing robots. The Pi basically translates instructions from a Bluetooth PS4 controller into commands for a motor driver.
We currently 4 college clubs in the league and we play a couple of scrimmages and a championship every year. The robots take big hits in the games(these bots can go faster than we can run) and we've found the Arduino to be the most durable and reliable platform as well as being the most customizable.
Here is our club Website: https://www3.nd.edu/~rfc/
Here is a little video about the club: https://www.greatbigstory.com/stories/nbc-sports-intramural-...
I use it to automate my weed garden in my closet. It turns on and off the LED lights everyday and waters my plants with a pump based on the moisture level of the soil. I measure the moisture level through a moisture sensor. Weed is fun.
And I use one as a race car telemetry system using a 9-dof sensor and a GPS module (with brake, throttle, and steering inputs to come).
For most of these projects, they're complete overkill in terms of hardware, but with integrated wifi and bluetooth, and a host of GPIO pins, they make developing projects like this dead simple. And at $35, the amount of time they save is well worth it over bare metal hardware.
I love and hate this question! I've always been curious what others do with them, but I just convinced myself not to buy a 4 and I'm sure this thread will give me reason to reconsider.
-1x Raspberry Pi Zero W in my garage running my drip irrigation (a relay board connects it to standard 24V irrigation solenoids)
-1x Raspberry Pi 3 B+ in my office running a dynamic dns script and sitting behind a forwarded port for easy sshing. I have also used this to play with pihole and Apache Guacamole, plus whatever other networking stuff sounds interesting
-1x Raspberry Pi Zero W hopping between my garage and car running a program that collects and displays OBDII and GPS data
-Nx of most other Pi revisions collecting dust in my closets and storage areas. They're cheap enough that I've compulsively over-purchased them over the years...
>>1x Raspberry Pi Zero W hopping between my garage and car running a program that collects and displays OBDII and GPS data
This is what I also want for my car. I am planning to collect the GPS and car data and answer the eternal question I have .. Which road to work is more efficient in time and gas. :)
I tried something similar and was astonished at the amount of variance caused by stoplights and weather. Because of that, it's hard to get a good dataset for comparison.
In the end, because of the variance caused by external factors, there was no clear winner in my case, so I now use an app from random.org to flip a coin and follow the results accordingly. That's not because either way is better, but this way if I have a long delay for some reason, I can blame it on a bad coin flip.
This is specifically for Route53 since that's where I handle my DNS records. I think it would probably be trivial to modify it to work with another DNS provider with an API, though.
It's quite old and probably ugly, but it's been working flawlessly for several years so I haven't really mucked with it much since I created it.
I got this relay board [0], then took the power supply from an old sprinkler control system and spliced its leads in. From there, it's dead simple to control using the GPIO python library. I eventually want to monitor things like temperature, soil moisture, and forecast to determine the watering schedule, but right now I just have a cron job that switches the valves on and off a few times a week.
This uses a simple script using picamera, to detect motion and record video, which I then just rsync to my laptop. I tried to use a PIR sensor, but alas the casing seemed to block IR. I'm planning on using a doppler radar sensor instead at some point.
1) I ran a browser in kiosk mode with a mouse that was used with some custom software on a computer in the room.
2) We had it connected to a remote keypad that opened a magnetic lock, popping a drawer open, when the sequence was correctly entered.
3) We had one connected to a magnetic sensor that would open another cabinet when items were placed correctly.
4) I ran the clocks and hint systems in the rooms from RPi's as well, which allowed me to run mini web servers on them that I would access from the control room to mess with the time if the game called for it, or to send hints in to the rooms, or to trigger sounds or videos.
5) Finally, we ran our lobby slideshow system with one, and also played our orientation videos on them.
Yes, we could have used Arduino for some of these, but I always liked RPi's because I could SSH into them to do the resets or to trigger the doors remotely if needed from my computer at the control center.
I'm currently working on developing an escape room environment using RPis as well.
I would love to hear details about how you set yours up.
Any way to get in touch?
A security camera outdoors (connected to another webcam outdoor), when there is motion it will send a request to another indoor raspberry (node server) connected to a speaker and will play the sound of an angry dog. The system is working fine for more than a year without breaks. Raspberry is robust.
Interesting. Would you recommend some brand of security cameras that work well for this kind of projects. Where I live the more popular brands are Dahua and Hikvision. Maybe I have to look for a certain communication protocol, rather than for a special brand.
In my case the security camera is also a raspberry pi with the camera module (it could have night vision), connected with a webcam logitech c170 (really cheap) and the motion software to detect movement (https://github.com/Motion-Project).
I made the exact same thing with a Raspberry Pi in 2013. For the outdoors part I used a motion detector attached to an Electric Imp that uploads the message to the Raspberry Pi indoors, which is connected to speakers.
In the past, I've played around with them, making:
- A touch-screen enabled stand-alone SunVox synth
- A home audio server attached to my stereo
- An experiment to read MIDI files from floppy disks, also attached to the stereo
I have a couple spares laying around waiting for use cases... but I'm not really antsy to get to them. I'd love to build an OTTO (https://github.com/topisani/OTTO) when it's ready for prime time. I'm also considering building some sort of portable RetroPie.
The dispenser is a "dry food/cereal dispenser" like the kind you would see at a hotel breakfast bar. They can be found on amazon in various configurations. (e.g. https://www.amazon.com/s?k=dry+food+dispenser&ref=nb_sb_noss...). A continuous-rotation servo is attached to the crank, allowing the Raspberry Pi to turn the crank to dispense food.
The scale is a cheap kitchen scale (also amazon, I think mine cost $9.) These scales contain a device called a Load Cell. I cut the four wires to the load cell (bypassing all the other electronics in the scale) and ran them to an HX711 chip, which can be had for a few dollars. If you google "raspbery pi hx711" you can see the people's instructions on how to make a Pi scale for various reasons (weighing people, luggage, etc.)
So the scale, the dispenser, the servo, and Pi Zero are put together with a few pieces of wood. Most of the work has been getting the software side working.
I'm totally naive with Raspberry Pi..can someone comment on the following project: Is it possible to put a glass eye behind a portrait of a one-eyed pirate and make its eye move around/follow whoever enters the room? A friend has a glass eye but nothing to do with it.
Lemme think. A camera that observes the room from the portrait, anyone that walks in is a dot on a plane, and it points the eye at the point on the plane. Should be doable. Yes, the Pi should handle that fairly easily.
The part that you'll have to figure out is making the eye ball rotate. There are GPIO pins on the Pi, so you can get the commands out, but you'll need to build the eyeball component yourself.
As a one-eyed individual, I love this idea. I have my old one sitting in a drawer doing nothing and I will be replacing my current this year. Two glass eyes.
I run a grid of about 250 Pi 2 and 3s across several offices and datacenters. They are the backbone of our graphics playback system (i.e. slates) and low latent IPTV system. Users can subscribe to any channel necessary without expensive re-encoding or RF antenna systems. I absolutely love them and 4k60 HEVC is a huge upgrade for the 4!
Nice. I'm looking at a streaming media system of some sort which repurposes existing audio hardware where possible.
This turns out to be ... somewhat frustratingly difficult.
There are numerous Bluetooth-based systems, some WiFi-based ones. The hard part is sorting out the interface to control the system -- there's nothing quite so frictionless as either on-device controls or a remote, though going with an iPad or cheap tablet seems the best option.
Use a small software defined radio to listen to ADS-B messages (real time airplane telemetry— even with a crappy $10 USB SDR dongle I can sometimes see planes that are 100+ miles away)
Host my website (if I ever got any actual traffic it might be a problem, but since 99% of the traffic is me it's ok)
I have been working on my own hosting as well and I wonder where the tipping point is, and if it's in regard to multiple users at once, or just consistent website hits?
For my use case (almost entirely static content), I think the bottleneck is SD card IO. I can handle at least a dozen hits per second no problem though
I started a company that constructed booths which used 70 accurately sync'd Pis with custom PiCams (fitted with lenses) to take pictures of human subjects, for turning them into avatars like this:
https://maintenancearistonalex.blogspot.com/2019/06/blog-pos...
At the beginning of the project, I'd barely powered up the Pis I had collecting dust in my drawer. By the end, I was a legitimate domain expert in several niches within niches of Pi dark arts. For example, since Pis do not have hardware clocks, you have to rely on NTP. However, you need to take pains to make sure that each Pi is getting the same amount of voltage or else they will run at different speeds. If you want to power 70 Pis in a constrained space, you need to devise a customized power distribution system with adequate heat venting.
Due to the thin effect, voltage drops over distance, so the distance a Pi was from the power would impact the voltage and therefore the speed. The major breakthrough came when I realized that I could start with a high end power supply outputting 14 volts and terminate each parallel line with a device known as a UBEC. They are used primarily by drone enthusiasts to make efficient use of battery packs.
A UBEC is designed to drop down a supply voltage to 5v without bleeding off the excess voltage as heat. Since this could also describe a fuse, we felt comfortable bypassing the Pi's MicroUSB power supply and attaching the UBEC's pins directly to the top pins on the Pi's GPIO breakout.
That's just a tiny example of the hijinx. The Pi is an incredible tool if you're patient and clever.
I used it to monitor ADSL device status[0], also created a DIY timecapsule for MacOS[1] — these were all in the past, though.
Currently the Pi is on my roof, connected to an SDR. I sometimes run rtl_server on it, and listen around. Although it's been a hassle, since I have to run upstairs and disconnect it everytime there's a storm. Also, listening to the device over WiFi means I get really laggy control over my SDR. I'm planning on replacing the Pi with something better powered.
You could probably automate cutting the power with a relay switch also connected to the pi. Just scrape weather data, and if you expect the storm, trigger the switch.
I'm actually more concerned about lightning strikes hitting the antenna, frying the Pi, traveling down the Ethernet cable and frying my router. I'm still a ham in training but I've been told that it's best practice to disconnect the antenna and isolate it from your setup. Some hams as far as placing their connectors in glass jars.
I don't want to use a relay on the antenna cable because 1) it'll pick up RF interference, and 2) if a direct strike hits it, there'll be enough energy to jump the gap in the relay anyways.
I might figure out a more permanent solid-state solution in the future though. Like I said, still learning :)
I don't have a project yet -- but one I'm really interested in is having a Raspberry Pi run and store historical data from an air quality (particle) measurement sensor. I'm hoping to measure how the air quality outside my home (near a freeway) changes during the day and night with traffic, and also how the indoor air quality is impacted.
Uart is just serial, you’d connect it to your serial pins on the pi and read serial from Linux like normal. Data is whatever the protocol Honeywell is using. Could be any range of things sent in a predictable pattern. Could be timestamp,temp,air quality,status, and then some kind of delimiter like newline or eor. Note the pi devices use 3.3 volts instead of 5 so you have to make sure Honeywell is not sending too much voltage as a logical high. There’s probably an easy way to convert it though using a voltage devider.
Minor clarification: UART is “just serial” but when people say “serial” they usually mean RS-232 or RS-422, and these don’t use 0V / 5V like you would for 5V logic. They use anywhere from 3-25V signals, with positive voltages for zeroes and negative voltages for ones. Your PC, if it has a serial port on it, probably sends around +/- 13V (this is typical, IIRC).
So don’t hook up 5V logic parts to a serial interface. If you look at RS-232 interface chips they have integrated charge pumps and external capacitors to generate the Tx voltages from Vcc.
I have one set up with the RetroPi distribution, that I carry around with me, along with two USB game-pad controllers, so I can engage in retro-gaming wherever I'm at (assuming there's an HDMI display available).
I'm also dabbling with embedding one in the gutted out shell of an old boom-box, and making it a portable Alexa-like "smart speaker" of sorts. Looking at using something like Mycroft[1] or something of that ilk.
But outside of running Mycroft or whatever, I want to load this thing down with sensors (microphone, webcam, GPS, SDR, accelerometer, temperature, humidity, ultrasonic, infrared, whatever I can) and stream the data to a server where I can do more intensive AI related work. The idea is that this thing is the front-end to experimenting with "embodied AI" and having an AI "thing" that can really sense and experience it's environment.
This whole thing is very incipient, but I'm looking at seeing what I can do with something like OpenCOG, or SOAR or ACT-R, coupled with various ML techniques, to give this thing some level of smarts.
It's been a while so the details are not fresh in my mind, but it wasn't the easiest thing in the world. I think most of my trouble came from the general lack of polish on Kubernetes (from a cluster operator's perspective) than from the specifics of the Raspberry Pi. One thing I remember clearly is that kubeadm has completely failed to upgrade k8s from one minor version to the next every time I've tried it. I always end up just saving my k8s resources, blowing away the cluster, creating a new one, and resubmitting the resources to the new cluster.
I built a guitar stomp box using a Raspberry Pi Zero to trigger samples with a foot switch. Runs on 9 volts and has a very bright OLED display so I can still see what it's doing when I'm playing in a dark venue.
It's basically a Pi, a buck regulator, a tiny COB USB audio interface and an SSD1306-based 128x32 display. Removed all connectors and replaced them with soldered wires so it packs neatly into a tiny box.
The software is all custom and written in C, using Jack for low latency audio and my own driver for the display (Adafruit makes a Python driver but it eats half of your CPU and is not optimized for i2c bandwidth or high framerates).
Most of the services (FlightAware, Flight Radar 24, ADSB Exchange) get much of their data from volunteer-operated receivers. If you feed your own data to these networks, you get several benefits including multilateration capability (computed location for planes that don't send their own GPS location data) and free business accounts on FlightAware and Flight Radar 24.
FlightAware in particular gives you access to a greater level of data and services on their site if you're an active contributor via a PiAware.
Also, honestly, it's just fun fooling around with the antenna and software setup to maximize the number of flights I can see :)
15 - zerow-cam with infrared usb adapter displaying cameras on tv - change cameras with remote control
16 - zerow-cam1 - camera back yard
17 - zerow-cam2 - camera back yard
18 - Pi4 4GB is backordered but I found a Pi4 2GB which I hope will serve well as a file/backup server. Hoping to utilize the USB3 to get better I/O to a couple external disks.
Running Bitwarden on a VM right now but will probably move this to a Pi4 in the near future
I have all of these connected to a custom command-and-control web interface (socket.io) where I can send commands, perform updates, monitor load average, version, uptime - and can reboot if needed
I used an ESP8266 and not the Pi for this, but a really really great m/c project is a wireless fan controller for a smoker or kamado (big green egg-style) grill.
We use it to make, for example, this recipe (with some modifications of our own) on a regular basis with a minimum of effort, and it is one of the most breathtakingly delicious things I’ve ever tasted, let alone cooked myself. We follow his instructions but hold to 180-190 deg until the meat reaches about 138, basting a few times with a honey+whiskey+thyme glaze; also be sure to use a fatty salmon, like (in my experience) farmed atlantic, not sockeye.
- an OctoPi server, which allows me to manage my 3d printer remotely.
- a VPN
- a Plex Server, serving media to my TVs and phone. I just ordered the new 4GB Pi4 to replace this one. I’l probably re-purpose it as an OctoPi-like box for managing a CNC.
- a seldom-used retro gaming box, that’s actually been mostly by a hacked Playstation Classic
Would you mind going into your Plex server setup a bit? I tried using a Pi before but could barely get it to trasncode anything, and playback was miserable. Now I'm using a Kimsufi server, but I'd prefer to have a locally running server (that isn't my main PC) as my Plex media server
If you have total control of the media files and the clients, you can avoid transcoding altogether.
Everything on my server plays on all of my clients without transcoding. From what I understand, an “Atomic Pi” is inexpensive and can handle a few transcodes at once, if that’s a requirement of yours.
I'm using a NUC rather than a Pi for Plex, but I avoid transcoding on the server by just transcoding everything up front. Nearly every client these days can play H.264 natively.
Media player connected to tv. (Kodi or Elec, I can't recall which)
What I found really neat about this is that if you use the HDMI connection, there is some automated setup/control that allows my tv remote to control the PI. (through the HDMI connection)
But also, the smart phone app for Kodi remote control added a new layer of interaction with the media player that is just sort of unique and unexpected. (everything worked so easily)
I installed the Pi-hole ad blocker (https://pi-hole.net/) on a Raspberry Pi Zero, and have it as my DNS server on my home network. It has improved general browsing speed tremendously.
A few years ago some of my coworkers used a Raspberry Pi to instrument our work foosball table. They had badge readers so all the players could badge in, and IR sensors for autoscoring. They found some open-source foosball leaderboard software that they ran on the Raspberry Pi as well, so we had an auto-scoring, auto-ranking foosball table. Best Raspberry Pi project I've ever seen :)
I have several, I use them for multiroom audio with snapcast (mostly with USB DACs although one has a DAC hat.
Some have temp and humidity sensors, one has the rpi cam.
One has a always on vpn connection and transmission running.
For a while I used one with a Parsec client and cloud gaming.
However, I use a Odroid XU4 for all the big stuff (home assistant, NAS, nodered, mopidy, etc.)
At the moment I am using a few pi to control my garden systems. I just built an open source system (https://mudpi.app) to help manage the sensors and relays. Actually gearing up for a launch soon.
Being able to regulate my watering and control it from my phone as been awesome. The whole thing emits events with sensors on redis so its open for systems to hook on top of it. Pi was the ideal choice to keep inital costs low. The amount of power you get for the price is pretty sweet.
The other pi is running the same code moderating lights on a basement shelf of plants too.
The last pi I am using retro pi to play some old school roms.
My wife and I went to Paris, and in our AirBnB there was a fantastic little radio. We'd turn it on and listen to Radio FIP and just leave it going. I had forgotten the pleasure of listening to what was on, rather than picking, or worse, skipping songs.
I hooked up my raspberry Pi to a small LED header with directional buttons on it. Each button was a different french radio station's m3u stream, output to speakers. It perfectly simulated the radio.
I want to put in a delay where it would be time synched with California so the theme is more aligned (slow night time music at lunch is noticeable).
It was originally part of a confessional booth taken to Burning Man in 2015. Since then it has evolved and become part of my smart home stuff.
I was intimidated when I started as it was my first "hardware" project, but the rotary phone part was pretty easy! Just a little switch that turns on and off the number of times of the number dialed basically.
It actually has a (new) microphone wired into the mouthpiece and it uses the receiver original speaker ired to the pi sound output.
(At the time I knew nothing about Linux so I think getting pulseaudio working correctly took as long as everything else!)
Those aren't working currently, but eventually I plan to integrate both the rotary dials and voice recognition and "scenes"
So like, dial "721" for light control. Voice: "And what are we doing with the lights today..." Me: "Make the outside light purple" and it is done.
I have custom voice recongition for things like that working with Mycroft, so it will just be a matter of joining the two projects!
As a bonus, since it was originally designed to work in the desert without a screen, it can do things via a weird analog interface. For example, if I press the hangup button 10 times in a row and then dial a number, I can get a report of how much memory is left on the device, etc.
Some use them to get into NASA, so, pretty useful.
> The U.S. National Aeronautics and Space Administration (NASA) this week confirmed that its Jet Propulsion Laboratory (JPL) has been hacked. An audit document from the U.S. Office of the Inspector General was published by NASA this week. It reveals that an unauthorized Raspberry Pi computer connected to the JPL servers was targeted by hackers, who then moved laterally further into the NASA network.
2. OctoPrint for my printer (with a touchscreen because I hate using the knob-based interface on the printer when I'm leveling the bed or doing maintenance)
3. Sitting on my desk because my Terraria server was freezing when saving the world file. Might set it up for emulation in the living room
There's a thousand or so of them scattered around Europe which were the foundation of the company I work at, acting as IoT hubs to communicate with devices designed to alert insurance customers of floods, intrusion, and fire in their homes. We hadn't ever really planned to get into building our own hubs, but the RPi ecosystem meant that when we were forced into that corner on short notice (thanks Smartthings for shutting down app approvals at the last minute) we were able to go from zero to working product in a matter of weeks!
I use a RPi Zero W to run DakBoard: https://dakboard.com/site which my family uses to organize our life.
I'm planning on adding another Pi as a Pi Hole device as an experiment in parental controls via low TTL values to provide scheduled access to specific DNS names. For example, my kid gets distracted beyond all that is reasonable by Discord and I'd like to let him use Discord, but only at specific times. Anyone with an interest in this, please let me know!
In the process of moving our Hardware Test infrastructure(Think Selenium for testing hardware)over from Windows SBC based solutions to a R-Pi-Zero based solutions. Applications range from driving stepper motors, sensors and generating pass/fail results. The inital investment is in porting all the code written for Windows to embedded linux but the investment pays off in the long run in cost minimized by moving away from a Windows desktop. Will do a write up of how i achieved it once i have some concrete results.
I'm using mine as a kitchen computer to lookup stuff online. Not exactly a Pi, but I used a adafruit feather to detect vibrations. I used it for landscape photography with a super telephoto lens where I wanted to be able to detect vibrations before firing off a bracketed shot.
I created a toilet bot for our office. We only have one toilet, which caused a lot of people to walk to the toilet to check if it's free.
I connected the Raspi with GPIO door controller and created a python script which makes use of the UCWA library from skype for business and hooked it to a blynclight (status indicator).
Now ever coworker can add a specific contact to his Skype for Business favorites and will immediately see if the toilet is free or occupied.
Turned a Pi 1 into a DHCP server at work to replace failed windows server.
Got a Pi Zero at home, but only used it to play with GPIO and i2c, i like to poke around in drivers to get more insight into how different hardware interfaces and protocols work over these interfaces.
I'm using a Raspberry Pi (Gen 1, Model B I think) to run a smart mirror. It pulls up my daily commute, news headlines, weather, and calendar. I take no credit for the software (https://github.com/MichMich/MagicMirror)
I also had one connected to my Motorola LapDock back in 2012 to run a portable raspbian laptop. It worked surprisingly well.
I've got a 3b+ and a 1b, and whilst only the 3b is in use currently, I have plans for the other.
The 3b runs libreelec for a tv in my bedroom. I found my 1b to be too slow for this, but the 3b+ does admirably.
The 1b, I hope to repurpose into a couple of services:
1) a pihole for my home network
2) a Wireguard VPN for connecting my phone back to my home network.
This is all sort of waiting on me getting usable internet, because my 700kbps upload currently sort of makes it pointless. However, I'd like to do this once I have better internet so I can use my phone as if I'm on my home network. This will provide me with several benefits:
1) I will be able to stream media when travelling for work
2) My phone will benefit from the pihole even when out and about
3) I will be able to control my home network as if at home
4) It will provide another endpoint for hurdling the GFW when I work in China
I hope to start all of this next year, once I move house or when I finally receive a proper internet connection rolled out to my place. If the 1b is too weak for those services, then I will probably repurpose it into some sort of automation system for watering plants, since once again due to work travel I routinely have to lug them over to relatives' houses whenever I'm away for a week or more.
I'm a ham radio operator and I run a WSPR beacon using a RPi, a TAPR-QRPi shield, the WsprryPi software and a random wire antenna. The RPi generates an HF signal on GPIO_4 at around 14 MHz (20 meter short wave band), the TAPR-QRPi shield filters out the harmonics and amplifies the carrier to around 200 milliwatts. Using a 12 feet wire on my balcony I get automated reception reports from 300 to 2800 miles away.
1) barcode scanner to put products in my online supermarket’s shopping cart
2) security cam to do facial recognition and drop me an email
3) general purpose remote control website/api for turning things on/off such as tv, amp, dac (typical things that need hw integration: ir blaster, 433mhz sockets, 12v trigger voltage etc). Recently discovered APIs integrate quite nicely with Apple’s iOS ‘Shortcuts’ app for poor man’s voice control!
I use Raspberry Pi 2 to synchronize files across my ubuntu/macos/windows machines, backup them into the encrypted backup and then upload that backup offsite.
I use syncthing to synchronize files. It's fast, stable, cost me nothing and the only limit I have is the size of my disks.
Syncthing is decentralized, that means that two machines have to be powered on at the same time to be able to perform sync. Raspberry Pi allows me to have that always-on machine at home which is small, quiet and unnoticeable in my electricity bill. Syncthing works across internet bypassing NAT thanks to the community-ran relays (I also run one of them). I could take my laptop everywhere and file changes will still reach my Raspberry Pi.
I hook up an external Seagate USB HDD and it runs just fine without an extra power source. Syncthing keeps up-to-date copy of all my files on that external HDD.
I use borg-backup to take hourly snapshots of my files. Those snapshots are encrypted and I upload them offsite without any worries that some cloud provider could possibly read them. I use rclone for that, it can interface with a number of cloud providers out there. It just take your files and one-way sync them into the cloud.
The setup of rclone and borg-backup is not particularly complicated but still requires some time. Directories, encryption keys, periodic jobs have to be configured. I abstracted all that into one script which is a bit opinionated but works for me. That script can be run on Linux on on MacOS. I used my Mac for that before Raspberry Pi. It uses system or launchd to run periodic jobs https://github.com/senotrusov/backup-script
I installed Ubuntu server on that Raspberry Pi to have familiar environment.
Sadly Raspberry Pi lacks secure boot and have no internal TPM functionality. My external HDD is encrypted but I can't trust Raspberry Pi to hold the encryption key. In rare event of reboot I have to ssh in and manually enter the LUKS key.
This setup is still prone to an evil maid attack as someone could replace or modify the SD card to log that key. That scenario is highly unlikely as I am no particular interest to anyone. What is slightly more realistic is that someone could brake into my house to steal stuff. For that my data is secure as the key is lost the moment you power off the Raspberry Pi.
Overall I'm pretty happy with that setup. My Raspberry Pi slowly blinks with it onboard red LED to indicate that all that services run well and alarms me with fast blinks if something is not right.
I have a RPi2 running as an NFS server.
I have a RPi0W with a camera streaming video to said NFS server.
I have a RPi1(256MB) in the bathroom streaming music from the aforementioned NFS server.
I have a RPi0 attached to the USB port of my router running PiHole.
And then I have a shelf of other Pis doing nothing, but you know, one day I will finish all those projects...
Our Raspberry Pi 3 B is the core processing unit for our humanoid robotics platform [1]. This is in the context of the RoboCup competition [2]. With it we run:
* Vision - A custom CNN using YOLO [3], where we are able to process a 256x256 (input is scaled) at 10fps to detect bounding boxes for balls and goal posts
* Localization - Kalman filter (mainly currently used for tracking rotation)
* Networking - Game controller (referee) [4], team communication [5] and a debug interface [6]
* Behaviour - A hybrid state machine
* Walking - Inverse kinematic walk with a balance system [7]
Feel free to ask questions. We plan to open source everything (everything) in a month to two months.
I used my Raspberry Pi 3 B+ to control all Fish tank equipments remotely. We live in a city (Chennai, India) and my family usually goes to our native for 2 months every year during summer vacation. During these times, it find it very difficult to manage the equipments.
The Raspberry Pi controls 2 Lights, 2 Filter pumps, Cooler, Fish feeder, and CO2 cylinder. Am planning to attach a camera and some sensors to the system as well.
Right now, all these components are controlled by simple scheduling, but am planning to extend the control through a server in future.
The Pi is connected to a 8-Relay board and is attached to a extension power board. So this setup can control just any equipment.
The config file in GitHub already has the schedule for each component.
Equipements:
1. Lights 2 (One for plants and another colour LED light that came by default with the tank)
2. Filters 2 (One Canister filter and another top filter)
3. Cooler
4. CO2 cylinder
5. Fish feeder (Built myself)
Currently, some equipment are always ON but planning to allowing to control remotely in future for triggering automated maintenance routine.
The Pi is controlling an power extension box using a 8 relay module.
I just set up pi-hole on one this weekend. It was my first time trying a Raspberry Pi, and I loved it. With the news about the latest version and the improved specs, I'm considering setting up a couple to replace my kids' computers, which are all old and under-powered.
I do embedded, real-time and distributed product development for clients in the commercial, enterprise, aviation, defense, and big science domains. I probably own two dozen Pis of various vintages (and just ordered one of the new Pi 4 models). It's my go-to platform for prototyping, especially for ARM-based systems. I keep one on my LAN just to regression and unit test software that I otherwise developed on an Intel platform. I've also used Pis in devices that are more-or-less permanently deployed, like an NTP server that uses a GPS-disciplined chip-scale cesium atomic clock as its oscillator, and a home-built WWVB clock. I'm currently using three Pis in a Differential GNSS system I'm prototyping.
I use one with an extra wifi card as a wireless router. I'm living in hotels a lot and sometimes I find their wifi too restrictive. The built-in wifi card connects to the hotel wifi and the external wifi card acts as an access point to which all my other devices connect to. This way I only need to pass the captive portal once (and only pay for one device ...) and I can enable a VPN to my home router in case I want to use Netflix or Amazon Prime in a foreign country.
I use it do Anki on my bike ride to/from work. Wrote some scripts in Python. They take my deck, convert it to speech using IBM Watson’s TTS. Then i made a small PCB with 4 buttons that is fixed to the handle bar. That way I can interact with the program.
Mine is running in my attic, hooked up to three antennas on my roof:
1. A GPS antenna which provides an accurate “stratum 0” time source. The pi runs ntpd and provides time for all devices on my network.
2. A home built ADS-B antenna for receiving position reports from local aircraft and airliners. Interfaces to the pi with a USB SDR. Pi runs dump1090 to provide a web visualization of local air traffic. I also feed FlightAware with this info.
3. A home built VHF antenna for listening to airband transmissions. Second SDR. Pi runs scanner software and an IceCast server for clients on my network to connect and listen.
The pi also has a temperature sensor that logs once a minute so I can plot my attic’s temperature and I can have it alert me if it gets too hot.
At one point, I figured I wanted some lighting for my bar, which consists of about 70 bottles on shelves (about 1.2m wide and 2m height).
But a simple on/off is not good enough. Instead, I went with individually addressable LEDs (NeoPixels strips to be exact), and developped my own back-end to manage those LEDs, with a simple front-end.
So far, it supports lighting bottles individually, by category (rum, vodka etc...) and some simple animations across the whole bar.
It's a nice ambient lighting, and it serves as a show-off for guests.
Plus the whole thing runs on a second-hand computer power-supply. The Pi runs on the power-supply power-on line so that when no LED is on, the main power-supply is shutdown to reduce electricity consumption.
I use one as a hub/gateway for untrusted IoT devices.
It hosts a separate, isolated wifi network via hostaod/dnsmasq. Clients aren't given routes to the primary network or the broader internet - they should only see the Pi and other clients (I'd eventually like to restrict access to other clients as well, but haven't played with that yet).
Access to the devices is via a web server running on the Pi that relays commands and responses. Right now it's a page full of hard-coded buttons and indicators, but I eventually want to turn it into a flexible firewall-like system to make it easier to add/configure/remove clients and rules.
I got an AdaFruit servo hat and I use it to drive my hexapod. I used to use a Propeller and then an Arduino. My next project is to integration some vision recognition into my robot. I am planning on using a Jetson Nano for the vision part, but I believe switching to a Pi for the robot was a helpful precondition. I haven't decided if I will just use the Nano to control the robot or use it as a visual co-processor with the Pi.
Old video of my hexapod below. Still works great though, because it is really sturdy.
I have a pi3 setup as a garage door opener. It's wired to two, 4 channel relays (only use two relays), one for each garage door. A simple php page that can be accessed and a big icon 'lressed', triggers the gpio to switch the relay. This opens or closes the door. I set this up because I got tired of replacing batteries in a garage door opener. This way,I just open the web page on my phone and open the door. I also setup a few android Tasker jobs to register when my phone connects to home wifi, and is also connected to my vehicle Bluetooth. When that registers, it automatically opens the garage door.
We use it as a front end to our Church's AV system. It runs a GUI written in Python with PySide that controls our cameras, hyperdeck recorder and vision mixer.
It also controls the power switches for the system, and the blinds.
Two things, working on more. VPN router and a doorbell to desktop-notifications box. I like listening to music on noise cancelling headphones sometimes when I work. I wouldn't hear the doorbell in that case, so I have a pi with a mic that sits close to the doorbell. If the noise level goes past a certain threshold for a few samples, it sends a command to my workstation where a script sits and triggers a desktop notification. Works pretty well with very few false positives and all "I might miss the package delivery guy" anxiety is gone while I enjoy music.
I use one running OpenWRT as a router. Its an old 3B, so it barely keeps up now that our internet has been updated to 100Mbps. It will soon be replaced, possibly with a pi 4. Of course, it also runs some other things.
I have OpenVPN running on it as well as a little nginx instance that I can use for reverse proxying if need be.
And the wifi turned out to be surprisingly solid as a (slow) access point, so I have sometimes used it as a Internet of Things Access Point with routing rules to keep all of those devices off the internet.
Its a surprisingly powerful little network box even with its significant limitations.
Yes, you do need two and it does significantly limit throughput since both the internal and external Ethernet adapters are routed through the same USB bus. The 3B seems to top out at about 90Mbps. I'm not sure what the throughput on a 3B+ would have been, but I'm sure it would have been much lower than its maximum of ~270Mbps.
Having said that, much of the US is restricted to <100Mbps internet and there are some nice advantages to having a relatively powerful little computer running right at the edge.
Any two interfaces. Ethernet+wifi is enough. (Technically, RPi's integrated ethernet port is also connected over USB) I have once seen a single interface both for external and internal network, but that was an abomination.
1x Raspberry Pi 3B+ running OctoPrint, velcro-attached to my printer.
2x Raspberry Pi 2B running OSMC (with Kodi) for streaming from NAS to office TV and living room TV.
1x Raspberry Pi Zero W running OSMC (with Kodi) for streaming from NAS to bedroom TV.
Provided HEVC H265 decoding works as it should, I suspect I will eventually upgrade all 3 of these to Model 4. They're great for a media center -- low power, small, and provide a local-only player for TVs I don't want to connect to any network.
Also have 2 OG B+ models that sit in a drawer unused, since they don't have enough power for the above tasks.
I used a Raspberry Pi to solve the problem that the trash can in front of the building where I lived was often overflowing when I tried to take out the trash:
I connected a 20x4 character LCD to the Pi and put it next to the bathroom mirror. The display displays some useful info:
- Estimated garbage can levels (interpolated based on the trash calendar)
- weather forecast
- cryptocurrency prices
So when I notice that the trash can level is low I can take out the trash without troubles.
(These days I use my Pis for more simple things like RetroPie+Kodi and PiHole)
I use an older Pi with a USB DAC to bring in audio and data from my radio scanners, for a slow-moving side project. Goal is to mux the audio with time sensitive radio metadata, like talk group and location (surprisingly difficult given messy state of formats, containers and playback options) and deliver this to clients on the network for easy listening and other processing (e.g. speech-to-text, mapping, etc.). Learned a bunch of gstreamer in the past half year, hoping to pick this all back up with the Pi4.
Many hospitals in S.Korea adopted my rpi based system. It is a network organized, synchronized, distributed video signage with weather/news web feeds and touch screen based vision acuity tester integrations.
The major key factor in it is a framebuffer driver by pure python which is open sourced by myself through Github.
https://github.com/chidea/FBpyGIF
Recent haul-over includes ESP8266 based remote power management.
I used mine as a NAS for a while with an external USB HDD and a samba share. It was also set up to be a VPN and pi-hole. I have a pi zero that I use to flash coreboot on laptops.
My PS3 isn't doing so hot as a media server client for my NAS's movie library - the network connection is poor, the interface is fiddly, and it can't load subtitles embedded in files. I was going to buy a pi3 to replace it as a media server client and hook up an external DVD player, but now I'll be getting a pi 4!
Check out ROckPro64, I just set mine up. Running plex with an internal HDD on a PCIex4, 6 core processor and 4gb ram. Using Dietpi, I am interested in checking out the Pi 4 as well, but looks like it might be a few months until its available
3. retropie (I had fun with this for about a week but haven't used it lately)
4. pihole for blocking ads and time-wasting sites
5. various small projects: security camera, motorized window shade, etc.
I run Home Assistant on my desktop to communicate with a few of the other devices in the house but I might move that over to a Pi so I don't have to worry about restarts and performance. I'm thinking about consolidating this setup somewhat but I'm waiting for my next move.
One Pi3B+ connected to anemometer and single solar cell, uploads up to 60 secs of analog data reading every minute by CRON, then has other CROn stuff for emailing
One Pi Zero for home security camera attached to motion sensor/rapid shutter mode, uploads to S3 bucket
One Pi zero for reading HN news out loud in the morning by Amazon Polly, tracking solar cells on window, and then more scheduling stuff
I have another one powered by USB, I intend to use it as "swappable dev stacks by sd card" through USB SSH
I'm working on turning it into a IR emitter to control some stuff that I have that lack remotes. I have another I've loaded snips onto an will be experimenting with soon - I'm currently using a PlayStation eye for the experimentation, but will have to get a better microphone/speaker. I wish I could hack a dot/echo/etc. and use their microphone/speaker, but meh, I'll take what I can get.
Also, the IR pi will probably drive some ambient light as well.
I hooked up the raspberry pi to an old monitor I hung over the kitchen table. It boots up shortly before dinner time for an hour and then displays "Find my Friends" on Chromium in kiosk mode. (Inspired bij the Weasly family clock from Harry Potter).
It's a fixture I couldn't live without anymore. When family members travel you still feel connected. It has a tiny ruby script to rotate through pages, during breakfast it displays the kids' upcoming class schedule.
I've got a RPi 2 running PiHole and a SAMBA server for a bit of in-home file-swapping convenience. ("Just throw it on the server and I'll pull it from there!")
Currently my problem is that samba will fail to write files greater than around 100+ MB uploaded to the server. (Writing to a USB drive). It still handles multi-gigabyte downloads ok.
I've been able to work around it with SFTP uploading, so it's just a minor annoyance, but I wish I knew what was going on.
I have mentioned this is a few comments, check out the RockPro64, its got 6 core processor 4gb ram, and runs Dietpi. It has a PCIe port, you can install 2 sata drives. I just installed an SSD and it's awesome so far.
We hacked together an automatic door opening system controllable via smartphone that notifies you on ringing and sends a video, then opens the doors on button press with a Lego contraption [1].
We used a few to power kiosk touch screens and other commercial display applications using network broadcast video.
Made a seven screen display each with their own pi that sync’d individual videos running on each to create some video art pieces.
Also made a bullet time rig with 15 pi’s and each with their own webcam. There was a guy who did this already with lots of documentation but using his own pi-interface hardware he created. We did it without the pi controllers.
I use it to take up space in my drawer of useless electronic stuff because I can never find a combination of power supply and SD card that doesn't eventually end up corrupt and unbootable.
I built a very simple circuit to listen to 5V pin of HDMI and I hid RPi and the circuit under the desk of a colleague after work and turned off video output of RPi.
Colleague's laptop -HDMI> RPi -HDMI> external display.
when the colleague comes to work and turn on the laptop, my RPi turned on its video output and external display showed the website I made for the occasion.
I will use my first one to power a hard drive that I leave with family or friends. They'll have a small box (mind the inclusion of an external hard drive, still a relatively small box) with my off site back up, and I could host the same for them.
This is after a failed plan to use it for Android TV (my girlfriend made the mistake of picking a WebOS TV and I made the mistake of thinking it wouldn't be so bad). The old one was just a little too slow and only did full HD (honestly, it's fine, but if you have a 4k TV it feels kinda silly). Now that the pi4 has a bunch more power and can do 4K at 60Hz, there is another chance for this!
I'm also toying with the idea of using it for sensors. Battery powered air quality sensor to see along my walking route (there is a narrow, busy car passage that I'm curious about), or maybe measuring things like electricity or heater usage in realtime. Having a graph showing you when it gets used a lot might help identify some easy wins, since walking to the basement to check the meter is a little cumbersome. But those are just ideas.
Regarding your mutual backup idea, I love this and I've wondered why this hasn't taken off as a Thing in response to how many of us are untrusting and DIYers in this era of cheap storage and bandwidth.
Indeed! I'm not sure why I don't already have three hard drives from friends, it's 10x cheaper than S3 or Backblaze B2 or any such thing. I've had this idea for years, but seeing that someone else built exactly this[1] while also having time for it soon gave the idea another push.
I've bought every board that comes out since the 2B. Most of them get gifted to relatives as Kodi boxes. The three I currently use are a 3B that runs the [0] LivPi CO2 and environment monitor, a zero W that has a noIR camera pointing at my plants under lights, and a 2B+ that runs piHole.
I recommend the odroid [1] XU4 (desktop) or [2] HC1 (nas) if you have anything that requires constant read writes. Pi SD cards do go bad over time unless you set it to run the OS from memory. Odroid made a smarter choice going with eMMC early on. The con of odroid is you have to hack everything that was already done on a pi to work.
My Raspberry Pi 3 works as a CUPS print server connected to a laser printer, as a pi-hole DNS server to filter ads, and as a ssh entry point (with dynamic DNS). I would use a Pi zero, but Ghostscript is not too happy when printing large documents on a single-core processor with 512 MB of ram. I still have to find the time to set-up a backup server on it (and decide which software to use).
Any good guide on how to do this? I tried this a couple of years ago but got stuck in that I always had to pair my handset every time I wanted to use it.
I have 5 or more in my house, some bought, some inherited. One of them runs pi-hole. I'm in the middle of setting up octopi for a new 3d printer on another one. Two of the others are pi zeros (no wireless), no plan for those any time soon. I also have one of the older models, RCA video output instead of HDMI. I'm not sure I'll ever find a use for that one.
I build an RC (with the goal of making it autonomous) car. I got as far as giving it edge detection: https://www.youtube.com/watch?v=r-o8Uzi5o1k but haven't continued the project. It's a great platform for exploring controlling hardware and prototyping ideas!
A bunch:
- Ubiquiti network controller, Pi Hole
- Temperature controller to knit an ancient hydronic in floor heater and a new-ish mini split together to act in unison. Pings local national weather stations to get more accurate data than I care to replicate at my home.
- Octoprint for my 3d printer
- 4x for a hobby project stitching together video from multiple cameras
I have several RPI... I have one that controls the roof of my remote astro observatory, using some level converters drives relays to control two whinchs... When I have to open the roof I launch a python script. I have also another controlling the supplies of the mount, telescope, camera, focuser... These pi's are really realiable (I use Raspian, no X)
I'm using an RPi as the main compute module for an Autonomous Radio Controlled Car. It's similar to a Donkey Car, but not using ROS (at the moment). Project is documented here: https://medium.com/@mikkelwilson/autonomous-rc-car-part-0-6e... (This is not a commercial project; just for fun)
I'm very interested to see how OpenCV 4 and YOLOv3 object detection will run on the new RPi. At the current trajectory I will have to upgrade to a Jetson Nano to get hardware acceleration (CUDA), but resorting to specialty hardware seems like cheating.
They also make a great prototyping platform for IoT projects. I've built 802.11.4 (Zigbee) mesh radio networks for passing small messages across neighborhood distances.
Previously I used an RPi to run an Airplay Bridge to my Sonos speakers. This has since been supplanted by AirPlay 2, which Sonos supports.
I'm still using an old 1B (512MB version) for Kodi, almost on a daily basis. Playing back stuff from an NFS share. I'm limited to 1080p but that's still fine with me, I'd need a TV upgrade first anyways.
It's showing its age though, and I had to hack up some stuff to use it properly:
I'm controlling Kodi via Yatse (Android app), and mostly just use the file mode to browse Movies and TV shows. I have them sorted and named properly anyways so that's not that much of an inconvenience to me. Using the fancy views that show artwork and IMDB metadata is still working but a little to slow.
But even in plain "file mode" Yatse was a little to slow and sometimes timing out when listing directories with 200+ items. This is where the hacky stuff comes to play: I built a simple proxy that intercepts the requests from Yatse and modifies them, namely, when Yatse is listing a directory it sets some field in the JSON that says "media type video" for example, when browsing for videos (forgot what the key is called exactly; currently at work). So I simply strip that key entirely from the request, and now listings take 1-2 seconds for large directories.
While I was at it I also started to intercept links to youtube videos and instead call youtube-dl to download them first and then have Kodi play them back via NFS. This way I get 1080p instead of just 720p and also have a history of everything I watched on YouTube, in case I can't find it anymore, or it gets deleted etc. It's pretty brittle since it doesn't properly track state or prevent you from triggering a second download while the first one is still active, also if you request a 50min video it will take a while until playback actually starts, since it needs to download it fully first. But at least it recognizes if a video has already been downloaded and just starts playback instantly. Turning this into a proper project is on my TODO list, but that list is mighty long.
I have it set up to run a project where a subreddit has control over the watering of a live plant in my apartment.
The pi runs a reddit bot that reads the votes, and can switch on a pump to water. It also collects data about sunlight, moisture, temp and humidity to help inform the decision about watering. Despite many people's preconceptions about the goodness of the internet, I must admit that they do a wonderful job caring for my plant!
Truth be told I have 5 or 6 raspberries. In all seriousness I think I'm actively using 3:
* A rpi zero running several scripts(hooked to slack, telegram and a private mattermost server) to monitor the health of some production services at work from home(in case the network at work goes down and all the services there fail to notify the right people). Has never happened but having it makes sleep at night a tad better.
* Rpi 3 b for some throwaway code/testing/place to store stuff at home and using it as an access server to access my home network.
* Rpi 2 b pretty much glued to my parents' router so I can access the network at their place every time there's one of those "My computer is telling me something, what do I do?". I'm sure most of you are aware that those messages are surely gonna cause the end of the universe and need to be resolved as soon as possible and could not possibly wait 2 hours.
I'm using a raspberry pi as a low latency server to organize and provide a bridge between esp8266's that are running LP flame effects for Capn Nemos Flaming Carnival. You know, for the kids! I've open sourced various aspects, and though it's all a bit disorganized as it is primarily me that uses it, you can find codey bits at https://github.com/burntech, and cool pictures and links at http://capnnemosflamingcarnival.org. Yeah, it's kind of a Burning Man thing. But long term, I hope the tech can serve as a small fast network that controls potentially timing critical things (eg shutting off fire reliably, music-controlled effects, and etc.).
I have two. The main reason I love them is I can leave them on all the time using very little power. Our would be surprised how much u can supercharge your home network by having always-on Linux boxes on it.
One runs nextcloud and serves as a nas. I use freeddns to give my nextcloud instance a legit URL for free. I use letsencrypt to host my cloud over https, again for free.
The other runs emulationstation, deluge (torrent) which only runs when the box is connected to a VPN running on a vps, and serves up my movies and shows via minidlna.
I've also got some cool chron jobs that backup important stuff ((encrypted of course) to Google cloud and do some other things. I also serve up a keepass password database via webdav and do some neat stuff regarding keeping my keyfile separate fr my internet facing box but I won't get into exactly how that works.
It used to run kplex to bridge NMEA data (wind speed, depth soundings, boat speed, etc.) from our SeaTalk network to TCP/IP. Now a GL-AR300M does the job though, along with all the Wifi/GSM routing, saving one computer and power (when running strictly off solar and batteries, this matters).
Have you by any chance documented how you did this, or could you link me to where you learned how to set this up? This is actually one of the projects I puttered on for a long time with one of my RPis (NMEA-2000 to SignalK) but abandoned because I had too many moving parts.
Been meaning to blog about it, but not got around to it yet. Essentially it's just a (bunch of) USB-serial converters and the Seatalk data is converted by a Raymarine E85001. If you have N2k, you need a different converter, e.g. Actisense or better yet, a translator to NMEA0183, which is the de-facto standard for NMEA over TCP/IP.
Media center & TV PC. I have a 4 TB external hard drive connected to it (and swap on it). Using a custom compiled kernel with zswap support, browsing the web isn't that bad with the 1GB of RAM on the 3B.
I've also hooked up an RTL-SDR to it and ran rtl-tcp instead of needing to run a long USB cord.
The best use I have so far is for a local TV station have the Pi using a LAMP stack to:
a) a Pubic Service Announcement slideshow it autoboots into chrome and hooks in composite NTSC. Can be remotely managed, etc.
b) It also serves the station's website which previews the slideshow in a frame, or has a page showing all the slides.
Experience: very resilient just cycle power when problems... but learned the SD card is way too sensitive for power cycling - so now has an external HDD for better recovery.
Plan to work on one for data collection/receipt for a local recycler, that one will likely use Python with a touchscreen to collect signatures.
This is a big disruption to the POS/terminal market as it gives a very powerful/flexible platform that can be developed/deployed inexpensively, and parts can be sourced easily when HW problems occur.
My favorite use is in a photo booth I set up. It controls two cameras (webcam for preview, DSLR for the actual photo -- hopefully the RPi 4 will be me enough bandwidth to drop to just the DSLR), outputs to a printer, and drives a monitor. And the whole thing fits in a nice little suitcase.
I love being able to tinker with software/hardware easily... The Arduino and FPGA's require a deeper investment, and I like how I can do everything I want in Python on a Pi, for more hobbyist projects that don't have more power/processing constraints.
We have over 2000 deployed over Europe in locksmiths, providing a form of key service to the public.
Challenges include not DDoSIng our APIs, getting a correct configuration to not nuke SD cards, and ensure that a bad firmware push doesn't knock the network offline.
I figured that it'd be nice to let people know when the bus is supposed to be there. So, I installed a 28" display on a monitor stand, installed the stand on my window frame, turned the monitor to face the bus station, and show the up-to-date arrival time in a very big font (the buses have GPS; the Pi gets the real time info from the local transit authority).
This is in Montreal. Some info here [0]. And a little video [1].
[0] https://greg.technology/#bus [1] https://youtu.be/pc16oPb5zW0