So, I’ve been trying to stream audio off of a USB microphone connected to an Arduino Yun.
Looking into it online I found some examples using ffserver & ffmpeg, which sounded like they could do the trick.
However right from the start I’ve had many problems with playing the streams on Android and iOS devices.
Seems Android likes a certain list of codecs (http://developer.android.com/guide/appendix/media-formats.html) and iOS like a different set of codecs (Link here), but they do have on codec in common – good ol’ MP3.
Unfortunately, the OpenWRT on the Arduino Yun has an ffmpeg build which does not provide MP3 encoding… it does have the MP3 muxer/container format, but streaming anything other then MP3 in it (for example MP2, which the Yun-ffmpeg does have) simply doesn’t work on the Android/iOS.
From experiments streaming from my PC a ffmpeg/libmp3lame MP3 stream, it looks like the mobile devices are quite happy with it – so I will need to recompile ffmpeg with Lame MP3 support to be able to stream it.
Just a bit of online research on a small footprint Bluetooth-enabled Arduino clone for prototyping:
- RFDiuno – http://www.rfduino.com/
- Galago’s BlueBlock – http://logiblock.com/products/blueblock/
- TinyDuino’s Bluetooth shield – https://tiny-circuits.com/index.php/tiny-duino/tiny-duino-communication-products/tiny-shield-bluetooth.html
- RedBearLab’s BLEMini – http://redbearlab.com/blemini/
- Coin’s BLE board – https://github.com/CoinApps/arduino-ble-dev-kit/wiki
- BLEduino – http://bleduino.cc/about/
This is a quick tip. If you need to push a notification to your smartphone, or even send a file, I recently stumbled upon “Pushbullet“.
I was looking for a solution to send a file (with automatic download) to my phone, via bash script on my raspberry pi. I’ve been using pushover for a while, but as far as I know, it doesn’t support files
I have read the Pushbullet API, and came to realise that sending a file have 3 steps
1. Getting credentials to send the file
2. Upload the file to a remote server
3. Send a notification of “file” type with the download url
Of course, you can do 1 and 2 youself if you have access to a place which stores the file (I also managed to send a dropbox download link)
You need to sign up for Pushbullet via web, to get the api key, and also install the app on your smartphone (obviously)
So here is the bash script (It’s not elegant – but it works)
Simple ATTiny85 USB board
I needed to create a small, cheap USB-enabled circuit to serve as a key logger, and I’ve found some nice projects online that explain how to do this.
I found out you could use an ATTiny85 to run the V-USB software USB stack, and I only needed the one input pin to gather data (it’s going to be a USB “That was easy” button).
Since this was done so many times before, I will be brief, and try to point out problems I had instead of a regular tutorial.
SO I’ve been trying to create a bootable live USB of some linux distro on the Mac and failed consistently. That is – until I found a magical solution!
¡Hola mis amigos!
I’m learning spanish, but I’m also annoyed with collaborating on LaTeX papers. That’s why I’ve created the GDoc-LaTeXifier so the syntax will be clear when I collaborate on a paper with a remote friend.
But now we both want to compile a PDF on our machines. So I’ve created the tiny shell script that downloads the paper and runs PDFLaTeX.
The problem is that this opens a new terminal window and runs the script. I’ve been able to sort it out so that it closes the terminal window when it’s done, by on my friend’s mac it doesn’t, so he ends up with a ton of open windows.
Enter – the GDoc/LaTeX compiler GUI.
Share NFS from Windows
I recently bought a second raspberry pi, for the purpose of making it a “dumb” media center running XBMC (Raspbmc to be exact). I already have a media center PC running XBMC on Windows 7, and I wanted to connect my raspberry pi to the downloaded media, stored remotely on the Win7.
First, of course, I tried SMB (windows share). It worked… ok. But after installing a new HP Wireless printer, it seemed to disconnect a lot. I don’t fully understand why, but it appears that the printer publishes itself as SMB master thus disconnecting my other SMB connections (or maybe only Linux ones)
Anyways, I have spent almost two days, understanding how to connect the Raspberry pi to Windows 7 using NFS. It was not easy, because it seems Microsoft has dropped support for it on home OS (even Win7 ultimate) since Windows XP.
I ended up doing it with Cygwin (which gives powerful Linux capabilities to windows machines).
I want to outline what I have done in order for this to work. This process could be very easy and it could be frustrating. I really hope it will help you do it yourself.
So it might do the trick as step-by-step, and you might come some obstacles on the way
The original guide I used can be found in this link, however it did not work at once and I had to tweak a bit. Also, it is referring to Windows XP.
As this is not step-by-step in full, with screenshots, it might help you on your journey. This can also help you with any windows share to be exported to linux
Here it is:
Trying out my mashup skills
This is not proper technical thingy, but I took some time to try out some audio skills by doing somewhat obvious mashup
Came out pretty good, in my opinion
Sara Baraeilles’s “Brave” and Katy Perry’s “Roar” sound very similar. So I took two acapellas and instrumental and mixed them together.
Enjoy (or.. not)
[soundcloud url=”https://api.soundcloud.com/tracks/127472720″ params=”color=ff6600&auto_play=false&show_artwork=true” width=”100%” height=”166″ iframe=”true” /]
Speak friend and enter
Simple NURBS renderer [w/ code]
Don’t you just love scouring the web for a piece of simple code, come up short and then just write it yourself? Well that was the case with NURBS for me. These simple curvy lines, why doesn’t anyone just dish out a straightforward implementation of them? Well, now you have it. I wrote a simple renderer that reads a DXF file with NURBS (from Rhino3D) using DXFLIB, although the DXF file format is super easy to parse, and renders them to an image with OpenCV.