I went through a similar experience when rigging up my own little "child sleep improver" project. We play the same album of world music lullabies when our kids go to bed. I wanted to be able to trigger playback remotely, so if I heard my child stirring I could play the lullabies again and help them settle again.
I'm also a R-Pi fan, so I rigged one up which allows me to have mplayer start playing the album via a simple webpage which I access from my mobile phone. That is excellent for the middle of the night times, but when we put the child into bed at night I wanted a simple button to press to do the same thing.
I hunted around and just could not bring myself to pay $50 to $100 for a damn button! Especially if I had to rely on some web service... It just seemed ridiculous.
In the end I realised that I could just use a cheap wireless mouse. It is stuck onto the change table; we left click to trigger playback, right click to stop, mouse wheel to volume up or down.
Along that vein I stuck an R-Pi into a radio and rigged it to autoplay all MP3s on an inserted USB stick. Then I gave my small kids (2 and 3) small cheap colored USB sticks with different albums on them (Frozen, dancing, kid songs, etc.). It kind of replicates the "insert disc" experience for them and they love it.
Mine is based on an R-Pi that I've got an RFID card reader hanging off, which triggers playback of music in Kodi (aka XBMC)
Here's a video demo I made ages ago of a very early version (before I learned how to capture the RFID reader prior to Kodi/XBMC grabbing it, which allowed me to eliminate the MK802 device): https://www.youtube.com/watch?v=kwyq2xqjHW0
My toddler loves it and thinks that the standard interface for playing music is to select a card from the magnetic board and swipe it against the reader.
As a special bit of fun, I've also cut open some cards and bit the RFID loop into a few of her toys. When she swipes them the appropriate theme tune plays.
I worked on the system recently to add a web interface to manage the playlists and cards, but I haven't made the code available on github yet. Though I do have a repo with the old version here: https://github.com/Fuzzwah/xbmc-rfid-music
Unfortunately no, I believe ‘forum software that doesn't suck’ is a oxymoron. Most big forums that I follow have lately jumped to xenforo, which is commercial.
Another option would be a Wordpress, with lax rules on posting, akin to how ludumdare.com is setup.
Could potentially do something with github pages? Use jekyll to generate the site and then accept pull requests for new articles then something (HN?) for comments?
OK, I have a mailchimp signup form and a neat hot-air balloon from github! Sign up, and tell your Dads (and M{u,o}ms!).
The plan will be to use gh-pages to allow people to submit articles (write-ups of neat dad-hacks) and then something like disqus for comments. Help welcome!
> We play the same album of world music lullabies when our kids go to bed. I wanted to be able to trigger playback remotely, so if I heard my child stirring I could play the lullabies again and help them settle again.
FWIW that's super creepy and dystopian. In fact, now that I think of it, more and more posts and comments on HN are really dystopianically unsettling lately.
If he really wanted to "learn to solder", one of the esp8266 devkits from the likes of sparkfun or adafruit would have served him better and been cheaper and less power hungry as well. Running an entire Linux server nonstop just to watch for a button press seems excessive.
Otoh, we've reached the point where you can reasonably run an entire Linux server just to watch a button! Awesome.
Yeah, I believe we're at some kind of inflection point here.
I'm old-school embedded. So yeah, get off my lawn you kids that need an RPi, 700Mhz of clock, and a multitasking O/S to read a GPIO pin and send 10 bytes to a server.
But man, you can pretty much run Linux on a single chip now[1], so why mess with anything else? You can tangle with some other the other embedded O/Ses out there for months, or spin up something in Linux in an afternoon.
[1] almost. I've run Linux from an RZ/A1 but with a little bit of external QSPI NOR. I'm guessing the next generation of A9/A15 SoCs will stack more DRAM and NAND flash on top to make this a no-brainer.
It's so amazing how electronics have progressed. a startup called Octavio Systemsn is now selling a single package that can run a Linux system. I wouldn't count it as running Linux on a single chip, (power system, microprocessor, RAM) because I believe there are multiple dies within the package, but still, super impressive.
Any time I see someone messing with a Raspberry Pi I try to steer them towards the TI Sitara/AM335x line.
The schematics for all of their reference boards (aka Beaglebone Black/Green) are freely available, the chip has solid documentation, TI has a good Github+Linux repository, and you can make a really nice system out of it.
The Octavio part is nice, I'm also really interested in what NXP (cough cough Freescale) is doing with turning the iMX into a module. These are both pretty rare birds though. When I can get trays from DigiKey, we'll be cooking.
> Any time I see someone messing with a Raspberry Pi I try to steer them towards the TI Sitara/AM335x line.
I don't think I will ever forgive TI for abandoning the Galaxy Nexus when they decided to abruptly exit the Android business. Since they chose not to update the drivers, Google couldn't update the GNex later Android versions despite being a Nexus phone. Google Glass had a TI chipset and Google managed to deploy a new Android version to it (I guess via some driver-compat work-around) but I hear the setup wasn't stable. I now avoid TI wherever possible.
I was sad to see OMAP go as well. I had been working with it since OMAP1 and it did have some nice features. Sitara is pretty much an OMAP without the video DSP so I'm guessing TI just couldn't find a road into the handset market since Apple and Samsung were locking it all up.
I've since switched to the NXP/Freescale iMX family and it's pretty similar in a lot of ways.
That's really where I burnt the first 4 weeks of this exercise. I would go on those sites, read blogs/posts/product pages over and over, and get overwhelmed and just shut down based on the number of options.
Probably a personal character fault. You're right that it is overkill. And I'll probably be tossing some more money towards SparkFun soon too - but the just from being a pure-software guy to buying/assembling the raw parts just shut me down :-(
> I would go on those sites, read blogs/posts/product pages over and over, and get overwhelmed and just shut down based on the number of options.
Welcome to engineering. Pick one and finish the project. Then look back.
Yes, running an RPi Zero to watch a button press is overkill. So what? It optimizes delivery time over efficiency. You can optimize for cost or power later if you feel like it.
You know what? That's totally ok. When I first heard of the raspi platform that was what I found most exciting. It was going to take a whole world of people with common web dev skills and kick the door open for them to get into hardware. I'm glad to see that's it's completely living up to that promise.
He used a Pi Zero -- cost is $5, the cheapest ESP8266 module on Sparkfun is $6.95.
While the ESP8266 would save some power, the Pi reportedly uses around 0.7W with a USB Wifi adapter, or around 6KWh/year -- so would cost less than a dollar a year to operate. So he wouldn't save huge amounts of power.
Please, please tell me where I can get five Pi Zeros for $5 each, including shipping. Because I've been hearing the "Pi0 is $5" trope for ages, yet I still haven't been able to find one, let alone at quantity, let alone at that price, let alone with free shipping.
Oh huge bump for recommending the Wemos D1. Built in USB to serial. Easy integration with arduino platform. Not magic button presses to enter flash/upload mode. A very easy way to get started with ESP8266. Worth the extra dollar or 2 per unit.
Also check out this one. A wemos made in the shape of a Uno so you can use shields and everything for only $6.
Ah yes, the big WeMos is also good, but the Uno form factor is just too monstrously large these days.
I also designed a tiny breakout board that's pretty much the size of the ESP8266 12E plus some pins (https://github.com/skorokithakis/tiny-ESP8266-breakout), but it's just that, a breakout. I definitely prefer the WeMos for most things, nowadays.
Non-starter. Doesn't even matter if its free if I can only get one. If its "the" pi zero on my bench it means it gets used much differently than if its "a" pi zero.
You're moving the goalposts. Information proving that a Raspberry Pi Zero is available at $5 was provided.
The point is, the Raspberry Pi Zero is $5 and stores sell them for that amount. There is more than one vendor out there. There's also a large demand and shortage of them.
Your original post said "Because I've been hearing the "Pi0 is $5" trope for ages, yet I still haven't been able to find one, let alone at quantity..."
So I was pointing out that you can find one for that price, even if not at quantity.
I don't think anyone ever marketed the Zero as being $5 after shipping, or even said it'd be $5 in every country.
I can buy a nearly endless supply of $5 Zeros at my local Microcenter, so it's not all marketing. They are manufactured in-house and for various reasons haven't kept up with demand.
Many major US cities have a Microcenter. They're the most recent, name-brand Pi zero. The one with the camera ribbon attachment.
Not everyone is near a Microcenter, but there's an entire subreddit dedicated to people buying and shipping them out for people. Supposedly they don't make much if any money off it, mostly just covers gas+shipping+$5.
Pimoroni doesn't ship to my country. What does it matter if the shipping is the computer or not? I'll sell you a brand-new MacBook for $5 ($2000 shipping). The only thing that matters is the total that comes out of your wallet, and there is currently no way to get a Pi Zero for anything close to $5, at any quantity or from any provider.
I am somewhat confused by your statement. I am sorry Pimorni isn't available in your country however that just means that you can't get one for $5 as opposed to not being able to get them anywhere. Regards to shipping, my point was that the Pi and the shipping charges are two seperate things. I don't see why a Pi should be sold with free shipping just so the total amount spend is $5.
I agree that they should be ramping up production to meet the demand there is. I also find given the educational angle that 1 per order is a quite fair way to go about distribuing them given the lack of supply.
Because I can't even buy 10 and have shipping remain the same. The limit of 1 per customer means that I effectively have to pay $25 per Zero, which is completely the opposite if it costing $5.
When I'm hacking around on things, I hate to have only one. OK, it's not booting now and I don't understand. How do I quickly tell whether I fried it, the SD card is bad, or whether my code is bad? Use another one is the answer.
The point on the delivered cost being the key is that many of the boards that would also be suitable for simple tasks like this are either free/very cheap shipping, or at the worst case you can amortize the $5-10 shipping charge across 10 units instead of 1.
I guess given this endevour was started with an educational focus the philosophy is on spreading the platform to the largest number of people, as opposed to letting a few people purchase many.
Have you made contact with the RPi foundation? If you registered an interest for a larger number and state your educational goals they may well be able to help you out.
What are you looking to do with them out of interest?
But that's the thing, I don't need hundreds, I just need five or ten, so it's just amateur usage but one doesn't work (one could easily fry while experimenting).
I just make weird things out of them. My latest one is an RC car that I was hoping could get some mapping software onto, and turn fully autonomous, although an ESP8266 talking to a laptop is acceptable (and what I'm currently doing).
Add that to the fact that I've never been able to get a Zero into my hands for less than about $15 after shipping and all that when I can find one at all. (Sparkfun's shipping is only $5 for the ESP)
Its worth learning how to use the ESP8266. Once you've mastered it, you can get them for about $2 each with free shipping on ebay and aliexpress.
Get a WeMos D1 and use their examples and read the WeMos/ESP2866 forums. If you want to save $2 per project you can get a USB/TTL adapter and use plain ESPs.
For working with esp8266 is it necessary to learn Python?
For example, to flash the firmware do I need to have Python installed? Or is there a way to do this in Lua, or in C?
This is a pretty good way to go. I wrote the software for a 40ish node lighting control network built with NodeMCU boards. The software was C++ via the Arduino IDE, it all worked out pretty well.
Checkout NodeMCU. You can program in lua. There are some downsides, but overall my experience with NodeMCU is fairly good. Just like everyone else, I've been using them to upload sensor data (humidity, temperature, strain).
Tips: The cpu is responsible for everything, so if you crash it or get it into a loop the serial output will stop. Be careful with what you put in the init.lua, since it will run on startup. If you do get stuck in a boot loop simply hold down the button while pressing reset, and it will get into a recovery mode. Then use the nodemcu-flasher to reflash the chip.
Is there something like esp8266 for IR diode and receiver? I am wondering if usage of IR would be better for home IoT projects. WiFi frequencies are quite crowded nowadays and I would think that it is not the case with IR. Also it probably would use less energy.
If LiFi can work, surely IR should be good enough for simple signaling? Maybe there could be also a repeater in every room connected to mains for power and WiFi to signal each other?
It maybe interesting to have IR signals somehow encrypted.
There are endless modules to attach. There is both an IR one and a 400MHz radio tx/Rx one. IR is like 50 cents, radio is like $1.50 I think on AliExpress. The radio is probably better than IR since it works pretty damn far and without LoS.
Note that Amazon rolled out a second revision of the Dash button that is 4x more energy efficient: "I measured the new Dash Button’s energy usage to be 4.3±2.2 J per activation and the original Button’s energy usage to be 16.4±0.1 J per activation." Source: https://mpetroff.net/2016/07/new-amazon-dash-button-teardown...
Although the Dash is still much over-engineered: for every activation it has to establish (I believe) an HTTPS session and exchange a few requests with Amazon servers. A much dumber wifi button sending a single packet should be able to use 1/10th of this energy.
I suppose in the article I should have mentioned that I expected the button to be able to fire whatever HTTP payload that I wanted. Probably an odd expectation of mine, but that's the price I pay for my day job seeping into my night life.
(Reposting my comment from your other thread): FWIW, if you don't need hardware, you can turn your phone into such a "button". Apps allow you to add a widget to your home screen and can be configured to make arbitrary HTTP requests.
https://play.google.com/store/apps/details?id=ch.rmy.android...
I like the dash buttons because for the price you actually get decent value. Compared to an ESP8266 board, you also get the button, the case, and the battery. The interface for it is not th best, but this actually lets you monitor for many button presses from a single Linux node, so I think this is the cheapest solution.
That is not to discourage anyone from learning how to solder, or make their own electronics, but in case you have a bunch of these Dash buttons around already.
I too am a "pure software" guy. A few years ago I was really into hardware but started to go with buying finished solutions instead of building things on my own to save time and concentrate on the software.
I had no idea it's this simple to solder something together and speak to it.
Now I'd love to know how to do the same with a arduino or similar "less heavy" build. Does anyone have links to resources in how to do that and how to get started?
> Does anyone have links to resources in how to do that and how to get started?
If you don't mind spending a little money (less than $100), get one of those "starter kits" for electronics that come with an Arduino (or similar) and a bunch of leds, resistors, caps and chips to tinker with.
From there on, it's really easy. There should be tutorials that work with the kit you get or find a set of tutorials and get a kit to match.
If you want to build things that talk to the Internet, a Raspberry might be a better starting point than an Arduino (for which you need an Ethernet or Wifi shield, but they should be easy to use too).
I can wield a soldering iron but I've only dealed with analog audio electronics before, but I was able to whip up a custom gaming controller for flight simulator use using shift registers, multiplexers and LEDs (and 64 buttons) in just a few nights of tinkering.
> I can wield a soldering iron but I've only dealed with analog audio electronics before, but I was able to whip up a custom gaming controller for flight simulator use using shift registers, multiplexers and LEDs (and 64 buttons) in just a few nights of tinkering.
I'm sorry I don't have anything written down and seems like I don't have the images of it around either.
Basically it was just a big ass 8x8 switch matrix made with multiplexers and shift registers and cobbled together with some diode logic. This gives 64 "buttons", some of which are wired to rotary encoders and the rest are buttons and switches.
It's got enough knobs and buttons to deal with all the navigation and communication instruments in a small civilian aircraft. Alternatively, I've thought of using it as a MIDI or similar controller for my software synth projects.
The coolest feature was that there is a row of backlit buttons that have two colored, two wire LEDs. Current goes one way -> LED is red, current goes opposite, LED is green. Alternate the current direction quickly and you get yellow. This is used for autopilot status indicator, e.g. when running in heading hold (HDG) mode and going to intercept a VOR or ILS beam, the HDG led is green and VOR led is yellow. When you intercept and autopilot changes mode, the HDG goes off and VOR goes green.
Right now it's gathering dust, which is a shame but I haven't had time for flight simming in ages. Building this thing cost me a lot of money since I bought all the hardware new, and big beefy switches are damn expensive.
I learned a lot when doing it. Like that electrical current flows both ways in a copper wire. I felt really stupid when I realized that I must use some diodes to get my switches working.
They're the best part about projects like this, though :) Right now I'm working on the most overbuilt egg-timer known to man with big chunky rotary switches to input the time.
Care to elaborate? Most of my issues were with designing and constructing the hardware. The micro controller and the software wasn't too difficult to deal with.
The only issues I had were getting the LUFA firmware built to make the device work as a USB HID game controller.
Both sparkfun and adafruit have tons of tutorials for both arduino and traditional microcontroller development. Both companies also sell all kinds of development boards, breakout boards, and prototyping tools and supplies.
I keep meaning to write a post about how to get started, but I don't remember what "getting started" means any more. If you want, email me with a few questions and I'll try to incorporate them in my post.
We've taught our son that when the light turns red, it is time for bed. When the light is blue, it is time to get up. It has been amazingly beneficial for times of the year like Daylight Saving ending/starting because he's not yet able to read a clock and know "Oh, its 4am - I should try and go back to sleep".
For the Dash, surely it can't be that hard to replace the soldered-in battery with a couple of spring terminals so it can be easily replaced in the future..
The outer case is fused together and the battery inside is smothered in cement. From the photo, it looks like trying to remove it also destroys a bit of the plastic cradle. And at $4.99 a piece there are better, cheaper ways to do things.
— the program effectively is saying “Once every .2 seconds, send some power over this one pin on the board, and let me know if the circuit is complete.”
No, that's not how this works at all. You're just querying some bit in memory. Nobody is "sending power".
Well, someone is sending power and the bit does flip when the circuit completes. Its just not happening quite on the schedule he imagines.
BUT, notice how even this slightly incorrect theory of how its working still gives him 100% predictive power on how his system is going to work in this case... so meh? Plenty of time to be less wrong later.
The Raspberry Pi Zero is nice, but he should decider using a Arduino device instead. Both are very different devices. Using a Raspberry Pi for this kind of task is like using a big truck to get a sixpack beer.
In this case the big truck costs as much to both purchase and drive as an economy car. As much as I love my Arduinos I think this argument is flawed. For a one-off project like this you should use whatever works for you. Also, you could argue arduino is the big truck if you consider the software side Nodejs vs C.
The end result is an AI telling your child 'Shhhh, it's ok. Go back to sleep' and humming a lullaby. I'm OK with this too as long as we ignore the dystopian possibilities.
I was also tempted to use new IOT amazon buttons with the IOT AWS offering ( https://aws.amazon.com/iot/ ), but after looking a bit deeper, the free limit is not that high.
Instead, I bought ESP8266 Wemos D1 mini for $4 each. Instead of AWS IOT I used Google Firebase and I have to admit, it works pretty sweet for me. IFTTT, Siri integration and all.
I also am constantly looking for better easier solutions for things like this. right now I think the wemos d1 mini is the sweet spot for ease of use/versatility.
Jebus, running a raspberry pi off a battery to turn a light on and off, and it's dependent on an internet connection to function as well? Get a zwave remote control and lights and have something that won't need rebuilding every three months...
Yes it'll be more expensive than 15$ or whatever, but he claims he 'just wanted someone to take my money' in the post.
man, I love the RPI. I will love the CHIP, especially the CHIP Pocket, if it's any good, because it's a mobile device with PHYSICAL BUTTONS. That I can kinda TYPE ON. And it RUNS LINUX, so I can code on it. This is truly a brave new world.
>If you think tech that was in the PPC in '05 was revolutionary, that is...
pulls out Sony Clie PEG-UX50 with wifi, Bluetooth, IR, color screen from 13 years agowhistlespulls out Palm Tungsten C from the same year, also with wifi, SD slot, and VPN supportremoves 1988 Cambridge Z88 from backpack, begins calculating in the spreadsheet app how far we've come
Interesting! My house is full of multi-way switches that I want to replace with "on" and "off" buttons. Whenever I look at fancy electronic switches, they are expensive and the reviews indicate that they are very unreliable.
Perhaps I should just find some time to make my own on and off buttons?
(Disclaimer, I work for a sister company of Fibaro's UK reseller)
Depending on your definition of expensive you might like to look at Fibaro's z-wave switches. They're small wireless modules that go inside the switch box, sitting between the switch itself and the light circuit, allowing wireless control and monitoring of the switch. They effectively decouple the physical switch from the act of turning a light on and off.
You'll need a z-wave controller as well, and a bit of time to learn how it all fits together, but the flexibility it gives you is pretty impressive.
From what I've seen of them, no - they effectively turn the single loop between switch and powered device into two distinct things, the switch(es), and a relay that can turn the device on and off. Even if they could be it would involve opening up the switch/socket box and removing it to get at the actual device, which you'd presumably want to kill the entire circuit for anyway.
Learning something new is great, but if you just want to turn the light on or off with a remote, you don't need a computer or the Internet:
https://www.amazon.com/dp/B0087EIDRS
This is more than that, though. This attaches to a web site where I can see when the button was pushed, control the color based on time of day, and turn it on/off remotely (plus define the length of time for the auto off).
There are a lot of things we don't need. That's not a good reason not to try something. The author learned a new skill and built something with his hands, which is the reward, forgetting that his kid also had a stable light switch now. Seems pretty fine to me.
I'm currently building a cat feeder using a Raspberry Pi and a servo. Is it way overkill? Well, yeah, probably. It's not that difficult to pour a cup of cat food into the dish.
But I'm learning a whole lot of neat stuff in the process. I've spent my entire professional career in software, dealing with hardware only at a high level. So this kind of low level stuff - wiring, soldering, etc - is new to me and something I've wanted to really dive into for awhile.
The point of the exercise is not because the cats need feeding, or that I couldn't buy a programmable feeder already on the market. It's a pretext to learn a new skill and actually create something physical that I can interact with. So much of what I do every day is ephemeral - it exists and bits stored on various computers. This will be something that I can touch and see and interact with. I can look at it and say, "I made that, hardware and software."
How are you handling dosing/delivery method? I've been (over)thinking this for a while now and my prototype "lego hopper with RC servo controlled bottom flap" didn't work particularly well, and would get jammed with kibbles, and wasn't particularly consistent in delivering a fixed portion of food.
I'd like to find a nice big & cheap auger that could pull or push to dispense, and have a lot more control.
The other suggestion someone made was a hopper with a close-toleranced vibratory table/spout to bounce the appropriate amount out.
All this assumes you want arbitrary duration/portion dispensing, otherwise you just need N bowls, and a rotary cover that opens each at a set time (which is most commercial ones I've seen).
> All this assumes you want arbitrary duration/portion dispensing, otherwise you just need N bowls, and a rotary cover that opens each at a set time (which is most commercial ones I've seen).
Mine current design will allow some level of arbitrary feeds and duration.
My current plans call for a sealed rotating drum with an opening that contains ~1/2 cup of kibbles, so each spin of the drum will dispense that much. Using door brush to seal around the bottom of the hopper and the drum to keep kibbles from escaping. The servo will rotate it from 0 to 180 and back, allowing the kibbles to fall down a small ramp and into the bowl. My concern with this design is that I may not be able to rotate the drum fast enough, but I'll see if that's an issue when I get there.
Just spin it X times for X/2 cups of kibbles. I figure 1/2 a cup is good resolution for a home project.
I'm also a R-Pi fan, so I rigged one up which allows me to have mplayer start playing the album via a simple webpage which I access from my mobile phone. That is excellent for the middle of the night times, but when we put the child into bed at night I wanted a simple button to press to do the same thing.
I hunted around and just could not bring myself to pay $50 to $100 for a damn button! Especially if I had to rely on some web service... It just seemed ridiculous.
In the end I realised that I could just use a cheap wireless mouse. It is stuck onto the change table; we left click to trigger playback, right click to stop, mouse wheel to volume up or down.