Browsed by
Category: Microcontroller Projects

My projects involving microcontrollers

FT4232H-Based Eee 701 Internals Controller

FT4232H-Based Eee 701 Internals Controller

This controller will be designed for installation into an Eee 700-series netbook to serve the following purposes:

  1. Provide a communications interface to I2C, SPI and UART devices over USB
  2. Control power switching to various internally-mounted low-current (~0-25mA) and high-current (~25-125mA) devices.
  3. Provide non-USB-Host 5V power to the high-current USB devices through high-current SPST switches so as not to overload the USB Bus (Update: This will be done by off-board MOSFETs. There just wasn’t enough room on the board to allow it to still fit in the space allocated for the MDC1.5.


  • The finished PCB should fit comfortably inside an Eee 700-series netbook, in the MDC1.5 spot (A modem was planned for the Eee 700-series, but never released. There is an empty space in the Eee 700-series case to fit a Mobile Data Card (Modem), but one was never included, and the option was removed from later BIOSes. In later netbooks the connector was no longer soldered in.)
  • The finished PCB will have through-hole connectors for attaching external devices, USB, external power, etc. for ease of soldering and to help prevent solder-pad lifting.
  • Surface-mount parts will be used to save space (I know, they’re a pain to solder. I don’t look forward to it, but there just isn’t a whole lot of room inside the Eee)
  • It would be nice to have all pins aligned at 0.1″ so it could be put on a breadboard for prototyping.


This came about in its current form through discussions on #sparkfun as I was looking for a controller to go along with devices such as GPS that I would (hopefully) purchase on SparkFun’s Free Day. I was stuck between the Arduino Pro Mini and the Mini Bully to allow for SPI communication; however, I would still have had to include a USB-TTL FT232R-based converter. It was suggested that I use the FT2232 since I could do SPI and UART on the same chip.

Unfortunately, or fortunately (depending on how you look at it), I looked again at the size of the USB-capable GPS I wanted (GS407), and found that there was no way it was going to fit, despite my previous measurements. I instead chose the Venus GPS with SMA for its size; however, it has a UART interface, and I was stuck now with SPI and UART devices (And maybe some I2C). This is why I’m looking now at the FT2232H and the FT4232H (Which is pin-identical to the FT2232H, just with 4 ports instead of 2).

FTDI Chips:


The FT2232D has 2 channels and is slightly smaller and takes less than half the power of the newer FT2232H, but the FT2232D only allows for one MPSSE (Multi-Protocol Synchronous Serial Engine: the encoder that allows you to use I2C, SPI, etc.) channel. This means you can have one JTAG, I2C or SPI channel. Channel 2 (Also called B) doesn’t support the MPSSE engine; it is only for RS232 UART, RS245 or other serial modes.


The FT2232H is larger than the FT2232D, and consumes more than double the current. However, the FT2232H supports MPSSE on both of its 2 channels: You can now have SPI, I2C, RS232 UART, etc in any configuration. It has a direct upgrade path to the FT4232H thanks to a shared size, footprint and power requirements.


The FT4232H is a direct replacement for the FT2232H, and allows for 4 channels instead of 2. The MPSSE can be used on channels A and B simultaneously. Though the number of channels goes up for the FT4232H, the number of supported protocols goes down; however, this chip supports all of the protocols this project would ever require: UART, SPI, I2C and maybe bit-banging. This project has no plausible requirement for RS245, FIFO, Host Bus Emulation or the like.

FT4232H Channels:

  1. RS232 UART, JTAG, SPI, I2C or bit-banging
  2. RS232 UART, JTAG, SPI, I2C or bit-banging
  3. RS232 UART or bit-banging
  4. RS232 UART or bit-banging

Ports: Here’s what I personally plan to attach on each of the ports of my copy of the project board.

Channel A: SPI #1

  • 3-Axis Accelerometer (Has an optional interrupt for motion detection. Has buffer room for 64 samples per axis. Supports reading of its 9-bit temperature sensor over the serial bus.)
  • Cable Select for each SPI device on GPIOs.
  • Interrupt from 3-Axis Accelerometer, if needed

Channel B: I2C or SPI #2

  • Sensors: Temperature, …?
  • FM Radio Receiver AR1010

Channel C: UART #1

  • Venus 634FLPx GPS (I’ll have to see what this GPS supports in regards to buffering to see if it could handle being on the SPI bus along with the accelerometer.)

Channel D: UART #2

  • Kenwood D7A APRS In or GPS Location Out

GPIOs: (Spare pins on Channels A or B)

  • Triggers for high-current SPST Switches or MOSFETs for switching power to internal devices
  • LED(s)?

Voltages: Voltage requirements of each device I intend to connect

  • FM Receiver AR1010: 3.3V
  • 3-Axis Accelerometer SCA3000: 3.35V-10V
  • Venus 634FLPx GPS: 2.7V-3.3V
  • FT4232H or FT2232H: 3.3V

Amperages Required and Equivalent Current Draw at 5V: 5V Current Equivalents for determining if all devices specified can be safely run on USB power or if they would require power from another source. (These are based on rough figures, and are always subject to the device’s operating conditions. I just want to see if it’s in the ballpark)
(Max current 16mA at 3.3V, as per module datasheet.)

  • 3.3 Volts * 0.016 Amps = 0.0528 Watts
  • 0.0528 Watts / 5 Volts = 0.01056 Amps
  • 0.01056 Amps = 10.56 milliamps at 5V

SCA3000: (Typical current during motion capture of 650uA at 3.3V, as per chip datasheet)

  • 3.3 Volts * 0.00065 Amps = 0.002145 Watts
  • 0.002145 Watts / 5 Volts = 0.000429 Amps
  • 0.000429 Amps = 0.429 milliamps at 5V (== 429uA at 5V)

Venus 634FLPx GPS: (Typically 28mA at 2.7-3.3V in tracking and navigation mode, per chip datasheet. A commenter on the Sparkfun product page notes that the added LED will add an extra 10mA (when the LED is turned on), so I’m going to go with 38mA for now. I’m going to assume their rated current is at the higher of the range: 3.3V)

  • 3.3 Volts * 0.038 Amps = 0.1254 Watts
  • 0.1254 Watts / 5 Volts = 0.02508 Amps
  • 0.02508 Amps = 25.08 milliamps at 5V

FT4232H/FT2232H: Icc1 (Vcore) is typically 70mA @1.8V, as per chip datasheet (pg 26)

  • 1.8 Volts * 0.070 Amps = 0.126 Watts
  • 0.126 Watts / 5 Volts = 0.0252 Amps
  • 0.0252 Amps = 25.2 milliamps at 5V

FT4232H/FT2232H: IPHY (VPHY) (For the USB Interface) is typically 30mA @3.3V, as per chip datasheet (pg 28)

  • 3.3 Volts * 0.030 Amps = 0.099 Watts
  • 0.099 Watts / 5 Volts = 0.0198 Amps
  • 0.0198 Amps = 19.8 milliamps at 5V

FT4232H/FT2232H: IReg (VReg) (For the 3.3V to 1.8V internal regulator) is maximum 150mA @3.3V, as per chip datasheet (pg 26)

  • 3.3 Volts * 0.15 Amps = 0.495 Watts
  • 0.495 Watts / 5 Volts = 0.099 Amps
  • 0.099 Amps = 99 milliamps at 5V

Therefore, total expected current required at 5V is (10.56 + 0.429 + 25.08 + 25.2 + 19.8) = 81.069 mA., and at the very worst case scenario, the VReg will draw 99mA at 5V. Power requirements will be tested again later with an ammeter. Anything under 100mA is easily provided by the USB Bus. Anything over 100mA should be specifically noted in the EEPROM of the device so it knows to request a higher power allocation from the computer.

Parts List (And Digikey Part#): [Might need updating for v1.1?]

  • C1, C2: CAP TANTALUM 4.7UF 10V 20% SMD (511-1491-1-ND)
  • C3, C7: CAP CER 1UF 25V X5R 0603 (490-3897-1-ND)
  • C4-6,C8-13: CAP CER .1UF 25V 10% X7R 0603 (490-1524-1-ND)
  • C14, C15: CAP CER 18PF 50V C0G 5% 0603 (445-1272-1-ND)
  • C16: CAP CER 3.3UF 10V X5R 0603 (445-5168-1-ND)
  • U1: IC REG LDO 3.3V 250MA SOT-23A (MCP1702T-3302E/CBCT-ND)
  • U3: IC USB UART/MPSSE QUAD HS 64LQFP (768-1026-1-ND)
  • U4: CRYSTAL 12.0000 MHZ 18PF SMD (535-9836-1-ND)
  • R1, R3, R4: RES 10K OHM 1/10W 1% 0603 SMD (RMCF1/1610KFRCT-ND)
  • R2: RES 2.2K OHM 1/10W 1% 0603 SMD (RMCF1/162.2KFRCT-ND)
  • R5: RES 1K OHM 1/10W 1% 0603 SMD (RMCF1/161KFRCT-ND)
  • R6: RES 12.0K OHM 1/10W 1% 0603 SMD (311-12.0KHRCT-ND)
  • L1, L2: FERRITE 1A 60 OHM 0603 SMD (240-2370-1-ND)


v1.1 as attached. NB, it was made with gEDA, not Eagle.

PCB Layout:

v1.1 as attached. NB, it was made with gEDA / PCB, not Eagle.


All suggestions are welcome. Please leave a comment below to let me know what you think, or if you have any feature requests.


This project is released under the CC BY-NC-SA 3.0 license. If you wish to use this project for commercial purposes, please contact me.


I have a number of v1.1 boards available. I will be able to put one together for testing/debugging once I get parts for it. Unfortunately, the high-accuracy, small-form-factor crystal is backordered until something like November (2010).


This is for educational purposes only. I’m not liable for damages caused to you or your property (including but not limited to netbooks).

Microchip 16-bit Embedded Design Contest Kit

Microchip 16-bit Embedded Design Contest Kit

Woo! I got my contest kit for the Microchip 16-bit Embedded Design Contest.

According to their website, each contest kit contains:

  • Four 28-pin 16-bit processors with a wide range of features:
Product Pins Flash RAM ADC PWM UART/SPI/I2CTM CodeguardTM Security
PIC24FJ64A002 28 64KB 8KB 10-bit STD 2 ea
dsPIC30F2010 28 12KB 512B 10-bit Motor/Power 1 ea
dsPIC30F2012 28 12KB 512B 12-bit STD 1 ea
dsPIC30F2020 28 12KB 512B 10-bit Motor/Power 1 ea Yes
  • Seventeen Bonus Parts to boost your overall score and permit you to
    compete for the optional “Bonus Part” category prize:
Device Description Package
MCP9700 Voltage Output Temp Sensor 5-ld SC-70
MCP9800 Serial Output Temp Sensor 5-ld SOT-23
TC4427A Low-Side MOSFET Driver 8-ld SOIC
MCP608 Precision, Dual Op Amp 8-ld SOIC
MCP6022 10MHz, Dual Op Amp 8-ld SOIC
MCP6S26 6-Channel PGA 14-ld SOIC
MCP3421 18-bit Del-Sig ADC 6-ld SOT-23
MCP4011 6-bit, Volatile Digipot 8-ld SOIC
Communications Peripherals
ENC28J60 10BASE-T SPI Ethernet Controller 28-pin SPDIP
MRF24J40 IEEE 802.15.4TM RF Transceiver 40 pin QFN
24LC01BT-I/OT 1Kbit I2C serial EEPROM 5-ld SOT-23
24LC16BT-I/OT 16Kbit I2C Serial EEPROM 5-ld SOT-23
24LC512-I/SM 512Kbit I2C Serial EEPROM 8-ld SOIC(207 mil)
93LC46BT-I/OT 1Kbit Microwire Serial EEPROM 6-ld SOT-23
93LC66B-I/SN 4Kbit Microwire Serial EEPROM 8-ld SOIC
25LC010A-I/SN 1Kbit SPI Serial EEPROM 8-ld SOIC
25LC256-I/SN 256Kbit SPI Serial EEPROM 8-ld SOIC
  • Contestant Resource CD: This CD contains a wealth of tools, libraries and educational resources to
    create an outstanding submission in minimal time.  This CD is a must even
    if your intention is only to evaluate Microchip’s 16-bit product lines. 
    It contains:
    • A fully enabled C compiler. Full features are retained for the duration of
      the Contest (through October).  This beats buying one for $895!
    • Microchip’s complete MPLAB Integrated Development
    • Communication and File Management Stacks
    • Math and DSP Libraries
    • Links to downloadable advanced libraries (Software Modems, Speech
      Compression, much more – all free for you to use in the contest)
    • Application Notes and code examples
    • FilterLab and DSP visualization tools
    • Self-education to ramp your learning on Microchip’s 16-bit products
    • Data sheets and reference manuals for all the 16-bit parts
    • Much more
  • Coupons for Steep discounts on development tools: Now you can be set
    up with a full development environment including programmer, debugger,
    development board, C compiler, full access to libraries for under 100