Wednesday, July 25, 2007

My Next-gen Phone Feature Wish List

Here I list features should be added to next generation phone:
  • Very good quality voice (it is still a phone, right?)
  • Very high speed data access (1 Mbps or more)
  • Very low latency data transmission. The low latency is supposedly to be used for VoIP (Skype-like thing wirelessly) and also for video streaming.
  • A web browser software with full support of flash, javascripts etc.
  • Software to read e-book/documents.
  • Able to play high quality music and support for OGG/Vorbis, besides MP3 (and get rid of the DRM. I super hate it!)
  • Video conference. with 25 fps rate (resolution is not important, but I don't want to see sluggish pictures or to many dropped frames either)
  • Power efficient.

Active Collision Avoidance System

Avionics is not something new today, but autonics (automotive electronics) is still an emerging technology. Although most cars made today use some kind of electronics/microcontroller, either for fuel injection, climate control system or others, the use of microcontroller still more to 'behind the scene' kind of application.

Some newer cars have limited passive collision-warning system. For example, Toyota Sienna XLE Limited. It has 8 infrared sensors, 4 are on the bumper at the front and another 4 at the back. Alarm will sound and warn the driver when distance is too close to the car (like this feature). Some others even add back up camera to see what is in the back through a LCD screen on the dashboard.

Passive collision-warning safety systems seek to reduce the risk of a collision by warning the driver of an impending risk so that he or she can take action to avoid the hazard.

There are many systems which provide warnings to the driver. The first warning systems available on production vehicles were typically "parking assist" type systems, which provide an audible tone when parallel parking and approaching a stationary object such as another vehicle or wall. Such systems have also been implemented in school buses, to detect crossing children who may be out of the driver's view. Today there are much more sophisticated systems which use radar and warn occupants of potential impending collisions under normal driving conditions. A passive collision-warning system is shown. As this diagram illustrates, a visual and/or audible warning is signaled to the driver, but there is no active intervention by the system to avoid a collision.

Image from book

Active safety systems take the collision-avoidance philosophy a stage further by interacting with the powertrain, braking, and even the steering systems. Every manufacturer appears to have a slightly different approach, but the common goal is to sense objects which present a collision risk with the host vehicle, then take preventive measures to avoid an accident. An active collision-avoidance system is shown below. The active system diagram shows that action without the immediate control of the driver is taken in order to avoid a potential collision.

Image from book

Advanced active collision systems use many clever techniques, over and above object detection, to ensure that a collision-avoidance event is facilitated safely and efficiently. For example, a sensor on the windshield can be used to detect the presence of rain and thus a potentially slippery road surface. In this case, the braking distance would probably be increased, so the hazardous object would have to be detected sooner. Likewise, tire-pressure sensors may be used to report the inflation level of tires, which could also have an effect on stopping distance.

It should be noted that although both the passive (collision-warning) and active (collision-avoidance) systems require object detection, there are differences in how the object detection system is implemented. The object detection performance of a collision-avoidance system must be higher and more robust than object detection for a passive system. It is unacceptable to execute an emergency braking maneuver under false-alarm circumstances. False alarms, while irritating for the driver, are generally considered more acceptable in collision-warning systems. Although the passive systems may allow false alarms more often, a more timely response by the sensor is required, as the reaction time of the driver must be taken into account in the event of an avoidance maneuver.


Sunday, July 15, 2007

Most Common and Generic PIC uC

The following is the best choice of PIC microcontroller for general purpose applications.
First, my criteria is a uC that is flash-based, cost-efficient, enough program space (>= 3 kB), has EEPROM, has I2C and SPI interface, programmable thru my PicKit2 programmer, has enough I/O pin (>= 8 I/O), has WDT, TTL-level voltage, low power usage, and able to communicate via asynchrononous serial port to PC. One of the most important thing is the PDIP availability, so I can develop it on my breadboard.

The intention of my future project is to develop home automation. The uC should be able to interface to sensors (thermal, humidity) as well as on-off microswitches (open-close sensors). It shall be able to communicate to my Linux PC via serial port, able to display status via 4x16 LCD display (Hitachi compatible) and still have some extra pins to do extra stuff (probably reading keypad, interfacing to darlington chip or LEDs).

Searched on MicroChip website (www.microchipdirect.com), I got this:


Chip: PIC16F690
Status = In Production
Volume Pricing = $1.20
Architecture = 8-bit (Harvard Architecture)
Program Memory = Standard
Type = Flash
KBytes = 7
KWords = 4
Self-write = NO
Data EEPROM = 256 bytes
RAM = 256 bytes
I/O = 18
ADC Channels = 12
ADC Bit = 10-Bit
ADC Sample Rate (ksps) = N/A
Comparators = 2
Timers/WDT = 2-8bit 1-16bit Yes
HW RTCC = No
Interface = EUSART, I²C Compatible/SPI
Max. Speed MHz = 20
Int Oscillator (MHz) = 8
ICSP™ = Yes
BOR = BOR
LVD = NONE
ICD - # of Breakpoints = 1
CCP / ECCP = 0/1
PWM Channels = 4
PWM bits = 10
Parallel Port = No
Nanowatt = Yes
Vdd Min. = 2.2 V
Vdd Max. = 5.5 V
Pin Count = 20
Packages = 20/SSOP 208mil, 20/PDIP, 20/QFN, 20/SOIC 300mil

The unit price (PDIP only):

Part Number: PIC16F690-E/P
Lead Count: 20
Package Type: PDIP
Temp Range: -40C to +125C
Packing Media: Tube

Pricing:(USD)
1-25
2.00
26-99
1.95
100-999
1.90
1000-4999
1.75 *
5000-9999
1.67 *
10000+
1.59 *


Availability:
200
Order Quantity:







Part Number: PIC16F690-I/P PIC16F690 view datasheet

Lead Count: 20
Package Type: PDIP
Temp Range: -40C to +85C
Packing Media: Tube

Pricing:(USD)
1-25
1.85
26-99
1.80
100-999
1.76
1000-4999
1.62 *
5000-9999
1.54 *
10000+
1.47 *


Note:
The "E/P" in part-number is to tell it is "Extended operational themperature" (Industrial standard). This might fit to auto-mobile applications, where operational voltage is more extreme than home application.

Saturday, June 9, 2007

Broadband Tester

Just found a very cool webtool to check our broadband speed.
Go to this website: http://www.speedtest.net

And here is a test on my broadband connection to a San Francisco server:


And this is a test to San Jose Server:

Sunday, June 3, 2007

VPN with Dell Wireless 1390 WLAN Mini-Card

My Dell work laptop recently failed to connect to establish VPN connection to my office on TCP port 10000. via WLAN The problem was that it always says "failed", although I was 100% sure the VPN gateway was up and running (I tested with wired connection, it worked).

Googling around did not help much either, except one email on a discussion site. The guy said he had the similar problem and fixed it by disabling VPN priority or something like that. But when I checked the property of the broadcom WLAN, there was no such thing. The only option with word "priority" is "VLAN priority" which was set "auto". After disabling this, my VPN worked!

Oh, forgot to mention that I also reset the MTU to default. It could help too. I dunno.

Wednesday, March 21, 2007

Bad Conotation can hurt your job!

Sometime ago I was going to apply for an interesting job position at some hi-tech company. I was too lazy to rethink about what I put long time ago in my resume. I just updated for the latest/ position I was working on only.

After I submitted my resume, a friend of mine working at that company were complaining with a word (that I put long time ago and stayed there for such long time): Hacking. One manager was even so allergic with the word and caused I never got called for even interview.

According to Wikipedia, a 'hacker' word is defined as a person who is dedicated to software programming and who builds elegant, beautiful programs and systems. From google, I found mostly positive meaning about this word. In general, "Hacking" means to break a code (as part of testing its stabilitiy, reliability and security), as well as to fix software in a quick way. The word itself originates from the top university in the world, especially in computer science, MIT. At the time, these experts popularized the word among themself and then through BBS (no web or email at that time). According to PcMagazina, the word has been interwined and mistakenly equalized with word "Cracker" (usually bad persons who try to get a free software or other illegal activities) mostly by computer illiterate persons (media). These "true" hackers then answered back with a new terminology "White-hat hackers". So a true hacker usually is a white-hat hacker.

Regardless of wrong interpretation of this word by these ignorant people (sadly, some of them even software managers!), I learned my lesson. Never make your resume more than 3-4 pages (eventhough you have such a long and various experience). Be careful with our resume, otherwise you will have to pay the consequences.