Skip to main content


Showing posts from January, 2014

Inside a WorldSpace satellite radio receiver

WorldSpace is no longer operational. But I had a receiver lying around from when it was active. I opened it up and here is what I found in it:

STA001 – RF Frontend for Digital Radio
Single chip receiver for satellite digital transmissionSuperheterodyne receiver with IF outputHigh input intercept point, low Mixer noise54db IF VGA gain rangeAdjustable RF gainAdjustable IF gain Integrated RF VCOIntegrated IF VCOIntegrated synthesizerI2C bus compatible programming InterfaceUnregulated 2.7 volts to 3.3 volts voltage SupplyLow cost external componentsSTA002 – Starman Channel Decoder
Front end interfaceIF input carrier frequency: f = 1.84 MHzSingle internal 6 bit A/D converterQPSK demodulationInput symbol frequency: Fs = 1.84 Msymbols/sDigital Nyquist root filter:Roll-off value of 0.4Digital carrier loop:On-chip quadrature demodulator and tracking looplock detectorC/N indicatorDigital timing recovery:Internal timing error evaluation, filter and correctionDigital AGC:Internal signal power estima…

Automating web login using OpenWRT

If you are plagued by having to put up with an Internet Service Provider that insists that you login through their webpage everyday before you use the internet, then read on for an solution.

I use Reliance Broadband in Mumbai, India. Whenever you try to use the internet,you need to first login through their portal page - no matter what URL you type, you will be first redirected to their login webpage where you type in your username and password before you can begin surfing the internet. Even Windows will complain with a "Additional log on information may be required" popup. Also Reliance insists that you login again 24 hours later. To overcome this PITA, I flashed my Linksys router with DD-WRT and added a startup command to login automatically. That method wasn't as effective as I desired. Its described here.

I thought of writing a script and adding it as a cron job to DD-WRT. The script would ping a known good server like regularly and if the ping failed…

Using TL-MR3020 as an IoT Node instead of Arduino Yún

After putting up my home weather station (blog post here) using TL-MR3020, I spend some time thinking if I could continue using this pocket router for future projects, here are my thoughts:

In India an Arduino Yún (INR 5903 from rhydoLABZ). But if instead of that if you go for the combination:
TL-MR3020 Pocket Router (INR 1395 from flipkart)
+ Portronics Combo USB and Card Reader (INR 299 from Portronics)
+ SanDisk Cruzer Blade 8 GB Pen Drive (INR 304 from flipkart)
+ Arduino Micro (INR 1820 from rhydoLABZ)
Total come would come to INR 3818 which is 35% cheaper than the Yún.
The combination can do everything the Yún can do and much more:

Linux Processor: TL-MR3020 has the same CPU (Atheros AR9331) as Yún and runs the same OS OpenWRTMicrocontroller: Arduino Yún has ATmega32u4 on it, same as the one on Arduino MicroSD Card Reader: TL-MR3020 can use the one on the Portronics hubWiFi & Ethernet: Both have thatPower Supply: TL-MR3020 comes with a travel charger, Arduino Yún doesn't…

Your electronics project: Keeping it together!

Developers working embedded systems have a perpetual woe - they end up wasting a lot of time debugging avoidable hardware issues like loose connections, broken wire, ESD during dry winters, broken pins etc.
Much of the damage is caused because of the perpetual mess our desktop is in - in shuffle around to reach to one thing, you might end up messing something else. Even if you unclutter your table top, there is always a very real chance of your circuit board or power supply adapters or extension boards falling off of it thereby causing loss of multiple days of productivity. And no matter how careful you are, your colleagues might not be as careful as you or worse still, the house keeping staff might disturb your setup during the cleaning hours when you are away . The cleaning staff man handling your equipment (TWHS! hehe) is a very real problem in India. At one of my ex-workplaces, we were out weirded when an unusually high number of keyboards started turning up bad. It seems that th…

SHA256 on Texas Instrument's Tiva C Series of Cortex M4 Microcontrollers: Software vs. Hardware

So I wrote code to perform SHA256 hashing on a single block on data using the TM4C129DNCPDT running off a 16 MHz Crystal. I performed the hashing first using software C code and then using the Tivaware Library function which make use of TM4C129x's "Hardware Accelerated Hash (SHA/MD5) advanced hash engine that supports SHA-1, SHA-2 or MD5 Hash computation".

I assigned 2 GPIOs for measuring the time taken for each method (the software one and the hardware one).
I toggled the GPIO before and after hashing for each of the two methods.
The Oscilloscope shows the pulses observed on the two GPIOs.

The results are as below:
Software SHA256: 1.216 milliseconds or 1216 microseconds.
SHA256 using Hardware Acceleration: 28 microseconds (4200% faster)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 6…