Monthly Archives: October 2013

Booooo CSR

I inquired a company (not CSR, but their product uses chips from CSR) about some WiFi Direct modules, this was their reply:

Please note that we just stop any new WiFi CSR solution. Based on previous experience with CSR, we could not get driver source code from CSR and CSR couldn’t support themselves. So we give up CSR WiFi

If you didn’t know, CSR makes a lot of Bluetooth and WiFi chips, but they absolutely do not ever EVER give you access to any documentation or any software. Usually to get access, you have to pay them big $$$. In this case, even if you pay them, apparently “CSR couldn’t support themselves”, how embarrassing. This was from a friend who have used CSR before:

It took 3 months to get access to the BC4 firmware and that has been deprecated for years.

CSR is on my list of companies to avoid.

Weekly Report Oct 26 2013

Still using a Mac Mini for iOS stuff, and still hating it. I don’t like their troubleshooting ideology. I tried to add Synergy to pre-login startup tasks but I got an error upon logging in saying that the task can’t start because of a security concern. When I tried to find a solution to this error, I was told to simply delete it, not helpful at all.

Synergy is pretty awesome, except for a few bugs.

Learning Objective C syntax from a C/C++/C#/Java background is NOT easy… I’ve done Windows Phone (I won a Xbox 360 in a MS sponsored hackathon, it was my first and only WP7 app) and Android development before, but iOS is still taking time to get used to.

Got my hands on a DualShock 4 controller early, I tore it down and I’m keeping notes on it.

The USB mouse/keyboard-to-PS4 adapter project is going great. I added so many features to the USB stack code, including dynamic host-channel allocation, so more devices can be supported. I got the emulated DualShock 3 enumerated perfectly thanks to Matlo from I also sent out a revision of the PCB to be made, this revision has no built-in hub, which means it’s cheaper and more flexible, just a bit less convenient.

I finished “Beyond: Two Souls” in three sittings, it’s that good. It’s really hard to say if it is better or worse than Heavy Rain. I’ll be waiting for the DLCs for it. Quantic Dream has made it onto my “buy at release” and “never resell” game companies list.

I moved a few more pages from my old website to this new website. WordPress updated and I had to fix a few things.

theWAVE from iDOC360

Please watch the full video (8 minutes), which explains the project in full.

I designed, built, and programmed almost every bit and piece of this project. I did not design light tube and lens assembly. This project involved a broad range of my skills: electronics, wireless communication, mechanical 3D CAD, thermal design, design for manufacturing, etc. I did this project while still studying in university.

Dentists often use head-mounted lamps, but to operate these lamps, they need to remove their gloves first because their gloves is usually covered with saliva and blood. iDOC360 hired me to make a system that is controlled using hand gestures, so the dentists do not need to remove their gloves to operate it.

Continue reading

Weekly Report Oct 13 2013

New smartphone, I gave it a short review in this blog, also an even shorter review for the old phone. I spent a lot of time doing carrier unlocking, rooting, installing CWM recovery, and personalizing it.

I got a BLE custom service to be recognized on my PC, iPad Mini, and new Android 4.3 phone. A good milestone to reach. I had a bad experience with Apple along the way…

I got my USB host code to successfully enumerate a device that is behind a hub. This is another good milestone to reach. Now I can work on the USB slave code for a bit.

I managed to patch avrdude to fix some problems that Trinket was having in the field. Slowing things down helps a lot.

I finished playing Red Dead Redemption. A very good game, but it can be a time sink depending on your play style. The Undead Nightmare DLC for it turns up the comedy to 11, highly recommended!

I also finished playing Brothers: A Tale of Two Sons. It only took two nights of playing. It is kind short in the sense that the first Portal game was too short. It’s a decent game if you like the style, but it’s not without flaws. It sort of highlights the flaws of the Dualshock 3 controller as well, there is heavy usage of the R2 and L2 triggers and your finger tends to slip off. The Dualshock 4’s design seems to have taken these flaws into account.

Next up is probably Beyond: Two Souls. GTA V is on my radar but at a lower priority.

Const. Current Dummy Load, Digital + USB

A simple adjustable constant current dummy load, with digital readout and USB data logging.

Inspired by the dummy load made by Dave from the EEVBlog. I decided I wanted one because I work with a lot of battery powered designs and it’d be nice to have a simple way of testing a battery or power supply in terms of capability, capacity, and heat. It features a 2 line voltage and current reading, a rotary encoder as the user input to adjust the current setting, and USB data logging (plus bootloading). There are more neat features, please watch the video.

Here are some pretty pictures: (Imgur Album)

Continue reading

Wiimote Extension Code

C Library to Make DIY Wiimote Extensions with AVR Microcontrollers

This is a library that gives an AVR microcontroller the ability to act as a Wiimote extension controller (Nunchuk, Classic Controller, Guitar Hero 3 controller, Guitar Hero World Tour guitar controller, Guitar Hero World Tour drum controller, etc). The library has two parts: the I2C slave device and Wiimote protocol handling. It can be used with AVR-GCC, and it is possible to adapt it to work with Arduino if you know how to include the files into your sketch properly.

Continue reading

Frank’s Open Source Code Snippets and Libraries Collection

I have many projects, but some of them are just short code libraries and snippets that I don’t want to allocate an entire blog post for. For more information on each, visit the link and read the “readme” provided.

LufaUsbAspLoader, a USB bootloader that combines LUFA and USBaspLoader, so it can be used in low-speed USB devices

Arduino-UsiSerial-Library, written mostly for Trinket, works for all ATtiny microcontrollers with a USI

Adafruit-Trinket-USB, a small collection of libraries that enable USB capabilities for Trinket, and other ATtiny V-USB projects

Bootloader for Adafruit’s Trinket and Gemma