Projects

  

Simple Bluetooth for Serial Comm

Click Here

BeagleBone Gadget USB : Ethernet over USB and Mass Storage

Click Here

Linux for BeagleBoard project - Part 2

Both BeagleBone Black & White have been coveredSome details on SysV & BusyBox Init in transfer control from kernel to user space
In the new version v2, I have NO LUCK with many pre-built root filesystems from many sources : TI, BeagleBone eLinux, ... They all ended up in failures : either not all the way to "bash prompt" or failure in login with many username/passwd found from WWW : (1) root (no psw) (2) username/password. So I had to build a bare minimum filesystem using BuildRoot with additional packages below.

   

Original
New
U-Boot
FAT
FAT
Kernel
Ext2 (Filesystem)
FAT
Update U-Boot & Kernel
On PC (Copy)
On Target (over network)
Root File-System
Debian (4- GB)
BuildRoot (120 MB)
  • Bash, Perl : script language
  • PHP : server-side script
  • Samba server
  • Web server
  • NTP :real-time clock



Click Here

Linux for FreeScale RIoTboard project

This is my personal project to keep up with eLinux for FreeScale ARM using RIoTboard. There're 2 packages used for evaluation Three system builds have been used for evaluation
The existing implementation uses Windows tool MfgTool for programming flash in UART boot mode at rate 115200 bps. A new implementation uses 1 GigaBit Ethernet for programming on Linux machine, its clear advantage is a lot faster at ratio 10,000 (10^9 / 10^5), in principle. The big plus is it's a lot more convenient for development in updating new u-boot, new kernel, ... via network port on Linux machine.

The limitation of the existing implementation is to use either on-board 4GB flash or external mini SD card for storage. The new implementation uses external micro SD card for storage, it appears better than using mini one where more than half of its size off the board!

The original package has been modified for the following features


I have used NFS boot to test kernel and filesystem on every eLinux systems I have worked with and found this board with 1000 BaseT is a lot worse than others with only 100 BaseT. It's the only 1000 BaseT low-cost board I've ever found,  very unfortunate! Its schematic reveals there’s no matching impedance between the network port and the PHY chip. This causes clock reflection, hence bad clock quality, resulting in data corruption, therefore so many re-transmission required : bad performance. It's almsot IMPOSSIBLE to have successful net boot, I had ONLY ONE, and none for 3 hours, and I gave up! All network product should pass "EYE TEST", I doubt this board ever had such test!

Finally this GBit Ethernet board with Debian Wheezy on 64GB uSD has been used with free dynamic IP from DYNDNS.com to provide, in replacement of the old BeagleBone due to its GigaBit Ethernet vs 100 BaseT
    Click Here

Linux Device Driver in Action

This is my personal project with some in-depth details in writing Linux Device Driver with both read/write to a kernel buffer as FPU, Fake Processor Unit, not Floating-Point;-)
All were compiled and tested successfully on Ubuntu-10 kernel 2.6.32.d
For a real device, the target FPU_BUF should be pointed to the device base address, say DEV_BASE, then do the followings


    Click Here


Linux for TI AM18xx SBC8018 project, part 2

This is my personal project with some in-depth details how Linux starts from power-up through bootloader to kernel till full operation

The original Linux ran from NAND flash with a lot of scary error similar to bad sector in hard-drive as it has only ONE FET for ONE storage bit, while regular NOR flash has many. That's why it has more density and cheaper than regular flash.

The board has empty foot-print for SPI flash, so it was populated for a SPI boot to replace NAND boot.

Click Here


Linux for ARM-8 Cortex BeagleBoard project

This is my personal project, so I was solely responsible for it

The best feature of this BeagleBone Board is to boot from SD card with 2 partition (1) FAT for bootloader u-boot & Linux kernel (2) Ext2 for filesystem

The existing implementation has

The new implementation has  4 files (1) MLO (2) uboot.img (3) kernel (4) device-tree all live in FAT. This approach supports to update all those 4 files over network to ease debuuging job during development.


In the end, a BeagleBone Black was set up and run with 128-GB USB drive as a SVN server accessible from outside using feature of port-forwarding in router and free dynamic IP address service from DYNDNS.com.

Click Here

Touch-Screen with Barebone Programming project

This is my personal project, so I was solely responsible for it

This project is to investigate if a low-cost capacitive-touch LCD as a user interface @ $ 50

The reference source code was for 8051 with limitation too serious to develop & maintain. So I ported to Atmel AVR with ATMega2560 using WinARM compiler. It has SPI interface to color TFT LCD and I2C to capacitive-touch panel.

Click Here


Touch-Screen with Android Programming project

This is my personal project, so I was solely responsible for it

This project is to investigate if a low-cost tablet could be used as a touch-screen user interface. A 8-in tablet Coby Kyros @ $57 has been used in this project.
http://www.amazon.com/gp/product/B0093XTHJK/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

A 64bit Android Dev-Kit "adt-bundle-windows-x86_64-20140702.zip" and 64bit Java Dev-Kit-8 have been used in this project.

Click Here


Linux for ARM-11 project

This is my personal project to keep my e-Linux up to date with new Linux for ARM-11 after working with Linux for x86 and PowerPC on commercial product Time Server, and my personal project for ARM-9

The main limitation of the current Tiny6410 FriendlyARM Linux is its usage of proprietary boot loader called ?superboot? to boot from SD

Click Here


Linux for ARM-9 project, part 1

This is my personal project to keep my e-Linux up to date with new Linux for ARM-9 after working with Linux for x86 and PowerPC on commercial product Time Server, so I was solely responsible for it

Click Here


Pilsner Receiver project

Pilsner Receiver using TI OMAP-L138 with dual-core ARM9 AM1808 and DSP C6748 with TI Code-Composer Studio v.5

My jobs were


Blue-Moon Receiver project

Blue-Moon Receiver using 2 of TI OMAP-L138 with dual-core ARM9 AM1808 and DSP C6748 with TI Code-Composer Studio v.5

My jobs were


Blue-Moon RF Front-End project

Blue-Moon RF as Front-End for Blue-Moon Receiver

My jobs were


Blue-Moon Controller project

Blue-Moon Controller using Atmel ARM7 AT91SAM3S with Code-Sourcery compiler

My jobs were


FPGA with DSP project

FPGA with DSP using Xilinx Virtex 4 xc4vsx35

My jobs were

Design Summary
--------------
Number of errors: 0
Number of warnings: 14
Logic Utilization:
Number of Slice Flip Flops: 5,814 out of 30,720 18%
Number of 4 input LUTs: 5,754 out of 30,720 18%
Logic Distribution:
Number of occupied Slices: 5,063 out of 15,360 32%
Number of Slices containing only related logic: 5,063 out of 5,063 100%
Number of Slices containing unrelated logic: 0 out of 5,063 0%
*See NOTES below for an explanation of the effects of unrelated logic.
Total Number of 4 input LUTs: 6,080 out of 30,720 19%
Number used as logic: 3,496
Number used as a route-thru: 326
Number used for Dual Port RAMs: 170
(Two LUTs used per Dual Port RAM)
Number used for 32x1 RAMs: 16
(Two LUTs used per 32x1 RAM)
Number used as Shift registers: 2,072
Number of bonded IOBs: 111 out of 448 24%
IOB Flip Flops: 47
IOB Master Pads: 5
IOB Slave Pads: 5
Number of BUFG/BUFGCTRLs: 7 out of 32 21%
Number used as BUFGs: 7
Number of FIFO16/RAMB16s: 17 out of 192 8%
Number used as FIFO16s: 2
Number used as RAMB16s: 15
Number of DSP48s: 64 out of 192 33%
Number of DCM_ADVs: 2 out of 8 25%
Number of PMCDs: 1 out of 4 25%
Number of BUFRs: 2 out of 24 8%
Number of OSERDESs: 10 out of 448 2%
Number of ICAP_VIRTEX4s: 1 out of 2 50%
Number of STARTUP_VIRTEX4s: 1 out of 1 100%
Number of BUFIOs: 2 out of 32 6%

BlackBriar project

Single Board Compter with Comm Express connector to be used in high-end option for Hydra project