March 25, 2017

When amazon echo first released at 2014, i impressed with it's shape and unique reflex port design at first sight. The other features such as voice recognition & cloud services looks like chef's special sauce of the meal. useless, tastes bad but increases the price anyway.

The motivation to develop an alexa replica started with release of the orange pi zero at november 2016, it's in a matchbox dimensions, powerful enough to process 4k video and ridiculously cheap ($10 was on first release, even $7 today)

I purchased the board, installed armbian and conducted few tests with shairport and got acceptable results. Sound quality is exactly what i hear at pc, got 5-10 ms delay however it's still faster than speed of sound when considered we're going to use this thing at 20 meters away. By the way shairport is reverse engineered port of apple's airplay protocol to stream audio between iphone and mac. original git repository seems dead but it's fork shairport-sync still active today.

Case design I was considering a shiny chrome pipe at same dimensions of amazon echo then decided to go with aluminium in case if i need to cut & drill with household tools. Processing the metal is whole another story, an instructable and a video available if interested.

Audio Output Used 3W PAM8403 module as audio amplifier, luckily found two speakers on my scrap box with in exact power. Glued the woofer into a sink pipe to the imitate alexa's sound system and attached tweeter to bottom. There is a lot of teardown videos on the web, This article most clear one that described how original product works.

Software Apple's devices still supporting airplay today, I'm using tuneblade for windows and using Allconnect for the android. Also another app called AirReceiverLite allows to stream from pc to android.

Challenges + First problem was the power supply, i had to use two separate 5v-2a cellphone charger for audio amplifier and orange pi. eliminated the emf based resets and audio noise problem by dedicated power sources.

+ Wifi connectivity was another issue, orange pi's embedded chip XR819 nothing but a placebo. Easily affected by interference and got high latency. I used my pc's wifi dongle TL-WN727 which is dramatically changed the visual look. Armbian has limited support on third party devices, you have to find driver's source code and compile from scratch.

Todo Currently attached a microphone array for a possible voice recognition feature, but that's shifts things to a fulltime job from a hobby. A pir and adc module on the shipment for the playing audio only when someone exists on room, takes couple minutes to implement when it's arrived.

Wifi dongle and speakers was household items but let's give $10 to them, so total cost to me $36 plus 5~8 business days to work on. Alternatively, working on a freelance job about two weeks and purchasing an airplay compatible speaker also an option.

November 06, 2016

Speaking as the 80's generation, we're getting old. more than two cups of coffee causes hand tremors on our semi-deprecated body and that's makes you useless if you're coding for live. Found few solutions to fix that issue and they're definitely deserves a blog entry.

Backstory Before the touch screen and optical pointers, each computer was controlling by Mechanical mice which is driven by a giant ball at the bottom and connected to serial or PS/2 port. You have to clean them at every month but they were completely stable. I used these things until 2006, then switched to optical mouse and torture has began.

You don't have to do a periodic maintenance on optical mouse but they're only works on super clean surfaces with no reflectance. Even must be darker as possible. I was using my black shirt as mousepad while using them.

Few years ago switched to three-monitor setup and purchased A4Tech XL-750BH laser mouse due to necessity of high resolution. Everything was okay on win7 and mouse cursor get sensitive again after upgraded to win8.1

Somehow survived to today by messing with a shaking cursor and finally dedicated my last three days to fix it. My first idea was implementation of a kernel driver with kalman filter which is widely using in smartphones and quadcopters. Then found few similar solutions after a quick web search.

SteadyMouse (Win32) It's almost 10 year old software, specifically designed for elderly users. tried it before but wasn't effective as i assumed. Does the job but you have to forfeit from mouse acceleration feature of operating system. First version is still freeware, 2016 release is more promising and it's asking for $97 for an updated version. download from here

Povohat's mouse driver (Win32) This guy probably a gamer, there is a lot of reference in gaming forums and reddit. He's developed him own usb filter driver for FPS games and it's also works system wide. There is no actual repositioning filter implemented but it allows to customize in-depth sensitivity and acceleration settings. Works like a charm since one week.

Tips for higher mouse performance + Use an usb hub with external power supply for a seamless mouse movement + Find a mousepad which made from fabric material. + Purchase a laser mouse if you can afford them, it worths to the investment. + Tie the extra mouse cable and shield this portion with aluminium foil. That's prevents the movement interruptions on EMI spikes.

October 14, 2016

My wife called various pest control services first and requested a quote. Approx number for a full-fumigation around $200 and requires minimum three days of temporary relocation which is impossible while i'm a part of a major software project, also in my opinion, usage of heavy chemicals can affect human health more than just few parasites.

Differential diagnosis Problem was we're didn't noticed any insect or bug, just connected the symptoms to moving dustballs around the house. So i did a quick research and reduced the window of the possibilities. Itch already indicates a mite infestation, size and pattern of sores also fits to a bedbug presence. Both are tough enemies, bedbugs can live up to 300 days and mites are microbial creatures which capable to quickly reproduce themselves.

Few years ago was watched a documentary which mentioning about use of robots in medical industry. A company called xenex developed a remotely operated robot that uses ultraviolet pulses to kill germs. Given a night to research about industrial ultraviolet light sources and decided to use them in our situation.

Fight begins UV lights separated into three categories by their wavelength, UV-A and UV-B already coming from sun. Mostly harmless, causes sunburn when we're stay too much at beach. UV-C is blocking by ozone layer of earth's atmosphere but it can artificially created by passing electricity from mercury vapor. It's extremely dangerous, can cause skin cancer and permanently damage to the eyes.

UV-C lamps are commercially available as replacement part of sterilization ovens used by dentists, barber shops etc. I found one at a local online store from $15, total cost was $25 to me including housing and electronic ballast.

I received the package in one day, temporarily attached it to desk lamp and turned on at the bedroom. also was monitoring the room by using previously mentioned air quality sensor after 30 minutes of process, noticed increase on MQ9 (methane & co2) levels. also there was a slight smell in room like dead rat. picked the one of laying around black dots and analyzed on webcam, wtf that's an insect that living the it's last moments. the bed was full of them, also few mosquito species was sitting on ground.

Was having doubts but completely convinced that it works after the seen corpses by my eye and proceeded to next room. After the disinfection process, cleaned the floors, washed the clothes at high temperature and finally washed ourselves with Permethrin shampoo. repeated the same process at next day.

Conclusion There is no itch since two weeks and sores are healing day by day. Probably my immune system was dealing with something, feeling more strong in these days. Also happy to saved $160 by handling infestation by ourselves.

raw footage of catched pest is available in here it seems flea to me but doesn't matter, they're all dead anyway.

September 18, 2016

I realized something in this year, marketing is more precious than development. so kinda quit the freelancing and tried to reach people in numerous ways. look at the homeless people, they're living in crap but got access to people, not selling anything but even they can make money just by asking. Engineering & development can be done in shallow waters, when time comes to marketing you have to dive inside oceans with full of sharks. And you have to make sure you got proper weapons before sailing.

First Attempt Few weeks ago, spared my dentist money and used them to advertise one of our ongoing products. first address was twitter. Designed a banner, launched a campaign and started to getting results in next couple hours. three days later their dashboard shows over 15k impressions and 1k interactions. Thing is i didn't see these interactions in server side, even a single click!

Stopped the campaign to prevent any more damage and switched to facebook. was thinking at least they're strictly disallows the bot accounts by verifying people with phone number & national identity etc. This time got 500~ impressions and around 100 clicks but all of them bounced back without any sign up's.

I think problem was fb's audience management. Around 30 people "liked" the advertising post, i checked each of them, their business titles was completely unrelated with mine.

a similar story happened at adwords, i stopped all campaigns at the total $420~ damage and decided to go oldschool. like 2000's develop an application, send bulk mails, post entries to forums.

Google's limitations I wasn't know where i start, just typed what i want to search engine. then written few lines of php snippet by using previously posted spider class to automate it but google started to block my requests by asking captcha created a solution to solve captcha's myself by taking 10 seconds of break on script execution but still results stalled on 150~ entries.

Then realized google says "Wohoho i got billions of results" but only returning 50 pages of them. try it right now, search something and go straight to latest result page. it's mostly same in all search engines.

Final Solution Next day developed a basic browser by using webkit based CEF library It's sending page source to crawler script while i'm browsing pages and injecting a portion of javascript to automate clicks. If we can define php based robots as the "terminator" this one is definitely the robocop. you can decide who to kill, who to save. even solve captcha's yourself.

after 2 hours, collected 7500k entries just by solving captchas on each 15 minutes, removed duplicates by using MSP utility and got link of 6900 unique digital agency websites in total. another script which i created years ago, connected to all links one by one and collected names and phone numbers from these websites. If interested, compiled binary of the project available on end of the entry.

E-mail marketing is kinda dead with new global spam policies, waste of time. Calling each of them manually and sparing few minutes can give more reliable results.

At least hearing few "no, not interested, be gone, fck you" from various voices sharpens the people's own ego.

August 08, 2016

After the spending months to commercial projects, taken few days of break and created a new sensor node for home network. it's supposed to be a weekend project but i have to put rest of the new week to make it completely functional.

One month ago i mentioned about purchased 2x pair of raspberry pi from an used goods store. still using first one as headless torrent client and repurposed second one as a sensor station at these days. sounds like overkill for such a simple task but reliability is the key while developing a security gadget. consistent readers possibly know, i was created it's arduino+ethernet version at past year but didn't mention about ruined nights which caused by false alarms.

Preparing parts There is not too much thing to highlight, it's exactly same setup which mentioned in this entry got raspi with wifi dongle in this setup instead arduino. implemented mq5 gas sensor to both of them as an extra. my though was reading analog inputs by using MCP3008 adc converter but that caused a file descriptor leak which is very common in popular linux distributions. so i got laying around multiwii flight controller from a crashed quadcopter, i attached sensors to it and fetched data by using serial port. that took my 30 minutes instead spending hours maybe days to research what caused the memory leak in previous attempt.

Software setup It's powered by node.js like other pair of pi and uses same libraries which i developed for torrent client project. raspberry's primary functionality is video transmission in that case. it's own video capturing tool raspivid can record high quality videos by utilizing the onboard h264 hardware. that's why ffmpeg and similar solutions stuck in 320x240.

After more research found a guy's blog who forked the raspivid's source and implemented a live streaming feature which is exactly what i need. installed it for future use but recording is okay for now, i created a quick script to record 24hrs of video separated by hours and delete them everyday. another script creates a web daemon in a spesific port and captures photos and handles basic commands such as shutdown & restart etc. third script fetches data from arduino (multiwii) and pushes them to home automation server. sources are available in rest of entry.

Functionality I planted it to living room which sees the balcony directly, now it's non-stop recording hd video, measuring temperature, light level and lpg & co2 gas levels and detects the human movements. as mentioned in first lines on entry, previous arduino based sensor was waking me up with false alarms. now using this device's data as cross-validator for incoming data. for example, if gas levels higher than 500 and other device's level is close to 500, my automation software (judith) launching the gas alarm.

Same method applies to pir sensor, if you need to go living room, you have to pass from hallway first and hallway also got a pir sensor, machine records this activity and does nothing if movement detected in this order. if suddenly an activity detected in living room, that means someone break in from window or balcony, that's a reason to launch a fully audible alarm. as mentioned before, nobody going to break into my house and steal something but increasing the security perimeter increases the safety feeling and you don't have to worry tick or noises on middle of the night. commercial pir sensor sets provides same functionality but you have to arm them before goto bed, disarm before wake up for pee, arm again before sleep. almost no logic in there and completely depends on human commands.

by the way temperature was approx 35 C while i recording the video, noticed the pir sensors cannot detect humans with higher temperatures, i was literally sweating and both of sensors didn't see me. validated that by approching to building's automated hallway lights. same condition applies while wearing raincoat. so we can say pir sensors not too reliable in that case. alternative hardware might be a doppler radar (the sensors which installed on automated glass doors on the public malls) but they're expensive and view distance is very limited.