Entries Tagged 'Useful Links' ↓

Adventures with a boost converter

Breadboard with electronic components and wires, lighting up a lightbulb
A boost converter is a dynamic electronic circuit that can “boost” a lower voltage up to a higher voltage. Current is of course reduced in the process, but if you design it right you only lose 5-25% of the overall power. I am in the process of building one that will convert the approximately 70 volt nominal output provided by my solar panels into 125-140 volts that will charge my trucks batteries. I also plan on adding a bit of maximum power point tracking and battery charge regulation to the control logic, making it a MPPT solar boost converting charge controller. Why do I have all of these wires and parts scattered across the dining room table? Because the market does not sell what I need. (Believe me, I’ve looked.) So I have decided to build what I need.

Not being an electrical engineer, I probably won’t be able to get 95% efficiency out of my system, but so far I’ve measured 85-90% efficiency when doubling voltage. [Test 1: 23 volts in at 0.28A for 6.44 watts, 46 volts out at 0.12A for 5.52 watts means 0.92 watts loss = 0.92/6.44 = 0.142 or 14.2% losses. Test 2: 34.8 volts in at 0.35A for 12.18 watts, 72.3 volts out at 0.15A for 10.84 watts, or -1.335 watts loss, which is 10.9% losses.]

I’m still running things off of a (relatively) low voltage and current supply (two/three 12V 5AH batteries) while getting everything working, and only boosting up to 50-72 volts when testing.

I had the circuit up to 95 volts (max of 16 watts) on the output side, but I really want to optimize it for a voltage doubling, and you lose a good amount of efficiency when going higher than a 50% duty cycle.

I have also not been able to find a commercially available boost regulating control IC that works with 100 volt inputs and produces up to 200 volt outputs. One probably exists, but digikey doesn’t appear to have it. I’m solving this problem by programming my own using a PIC micro-controller. At least the programmable nature of my controller should also allow me to add the battery charging maximum voltage/current and solar panel MPPT logic into the system. I am currently working on a single phase boost converter, but the plan is for the final system to be two phase (which basically means that I use two of them in parallel). This means that I need my single phase system to be able to support 100-175 watts maximum. Soon I’ll be moving from my 25 watt resistive load (25 watt lightbulb) to a 100 watt resistive load. Eventually, I may even borrow a 75 volt power supply and test it up to 140 volts.

While working on my boost controller, I’ve found the following reference links very useful:

I have also made a few mistakes that people making their own boost converter may want to avoid:

  1. Within reason, the higher the switching frequency the better. I started off using a PIC12F683 chip which only has a single PWM output. Because I was planning on building a two phase system, I decided to code my own PWM loop that would support two phases with a 180 degrees difference. (A fancy way of saying that they would each be ON for the same amount of time, but that while channel A’s ON time would start at the beginning of the period, channel B’s on time would END at the end of the period. If the duty cycle went above 50% they would overlap for a bit in the middle.) After spending an hour on my fancy 2 phase PWM system and testing it with some visible LED’s, I took all of the delays out of it only to find that my 8Mhz internal oscillator could only support a period of 1.5-3 kHz. Sure, it sort of worked, but you could HEAR it switch. It also required a much larger inductor for the same power. So, I switched over to using the built in PWM subsystem, which can easily hit 73 kHz while still having 5-6 bits of precision. I now plan on switching over to a PIC 16F chip which has a dual channel PWM that I THINK can do an 180 degree 2 phase signal in hardware (if I’m reading the specs correctly…)
  2. Most MOSFETs require at least a 10 volt gate signal. If you switch them with a 5volt logic signal directly from the PIC they will switch (at least mine did), but they will not carry current without burning a lot of it up as heat. I was wasting 80% of my power as heat in the MOSFET until I wired up a transistor off of a 12V rail to amplify the signal to 12 volts. I plan on using a IXDN604PI gate driver chip for my final design.

Using the Microchip PIC Kit 1 with Linux

Microchip PICKit 1

The PICKit 1 is a combination programmer and development board for midrange PIC micro-controllers. In addition to being able to program FLASH pic devices, it also allows them to run and access 8 (charlieplexed) LED’s, a pushbutton switch, and a potentiometer. It’s a great little board for learning the basic of micrcontroller programing, but unfortunately it is not supported by Microchip’s new MPLAB X software (that is written in Java, and supports Linux/Mac in addition to Windows).

You CAN however use the PICKit 1 under linux. The piclab software is supposed to support it (I have not tested this). I use version 1.6 of the PicKit1 flash usb programmer for unix. Even the newest 1.6 version reports checksum errors after writing the hex file, but it does work correctly.

To make it work as an external program in MPLABX I had to select the “format HEX file for download” option under the Linker so that it would not fill all 2048 flash bytes when the program was smaller than that. I am able to manually run the usb_pickit command after building to flash the code, but it’s kind of annoying, as that program has a problem verifying the checksum and reports an error every time (which is interpreted as a build failure) plus, I have to run mplab X with root permissions to be able to access my USB port.

Controlling the Cricut Personal (desktop cutter) via Linux

Cricut personal cutter
I caught a deal on cricut.com where they were selling their original “Cricuit Personal Cutter” (refurbished) for $49.99 ($65 with shipping). This seemed like a very good deal to me, so I bought one. By itself, the Cricuit can cut specific shapes and letters from paper (it includes a free set of shapes/letters, and you can purchase cartridges to add more). I plan on using it to cut metal foil (one of the few things you can’t cut with a laser cutter, because it is reflective) and potentially make stencils. I may also be able to use it as a plotter using special attachments for pens. (Circuit board resist markers anyone?)

To make full use of it, I wanted to be able to cut arbitrary paths from my material, which means controlling the Cricut from my computer. Continue reading →

PBS Wishing – Android App to find out if a book is popular!

Main application screen, showing the book "Postmistress" having 610 people wishing for it. I have developed an application for Android Phones (OS version 1.5 or higher) that allows you to enter an ISBN from a book (or scan the barcode if your phone has a camera) and find out how many people are wishing for the book on PaperbackSwap.com. If a lot of people are wishing for a book, it’s a good indication that the book is popular, which may mean it is worth reading. (Or at least, if you decide you don’t like it, it will be easy to get a book credit for it on paperbackswap.com.)
Continue reading →

Jay’s list of the Best Android apps

I’ve had my Motorola Backflip for a month and have settled on a set of applications to keep on my phone. All of these applications work with Android version 1.5. My Backflip has a Camera / GPS / Compass and Accelerometers. Where an application makes use any of these hardware components I’ve mentioned it in the description. If you think I’m missing a great one, let me know!
Continue reading →

Hidden Roomba Diagnostic checks – Stuck Bumper Sensor


Roomba with stuck bumper sensor
The above video shows a roomba with a stuck front bumper sensor. As you can see, the robot keeps backing up and trying to turn away from
the phantom obstacle it thinks is in front of it. This particular sensor was triggering because lint had gotten into the optical beam path and was blocking light to the photodiode detector even when the bumper was not being hit. I was able to repair it by removing the bumper cover (unscrewing 4 screws) and vacuuming out the hole where the plastic pole from the bumper goes between the IR diode and photo-transistor.
Continue reading →

Running Ventrilo under Wine in Ubuntu Linux

Wine will install and run the ventrilo VOIP client very well. To get this working, follow these steps:

apt-get install wine wine-dev msttcorefonts

download ventrilo-3.0.5-Windows-i386.exe

run “wincfg” to prepare things

run “wine ventrilo-3.0.5-Windows-i386.exe”
(go through the install, using all the defaults)

Now, everything works with one quirk.
Push to talk works only when the ventrilo window “has focus”
This is somewhat understandable, but annoying, in that you have
to focus the ventrilo window before you can talk.
The other option is to use voice-detection, but that takes up a bit more cpu-time, and you may accidentally broadcast something you don’t want to.

A program that listens for keypreses and directs them to the ventrilo window fixes this problem:

http://np1.pp.fi/ventriloctrl/

http://np1.pp.fi/ventriloctrl/ventriloctrl-0.3.tar.gz

To compile it, you’ll need xorg headers:
sudo apt-get install xorg-dev

Aiptek HyperPen T-6000U tablet with Ubuntu 9.04

Getting the Aiptek T-6000U tablet working with Ubuntu 9.04 was relatively easy, following the directions here.

Summary:
Install the xserver-xorg-input-aiptek package.
Add a file called 10-aiptek.fdi to the /etc/hal/fdi/policy directory containing:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.product" contains="Aiptek">

      <merge key="input.x11_driver" type="string">aiptek</merge>
      <merge key="input.x11_options.SendCoreEvents" type="string">true </merge>
      <merge key="input.x11_options.USB" type="string">On</merge>
      <merge key="input.x11_options.Type" type="string">stylus</merge>

      <merge key="input.x11_options.Mode" type="string">absolute</merge>
    </match>
  </device>
</deviceinfo>

Moving NTFS paritions using Ubuntu (Vista, XP)

This guide gives a good step by step procedure for moving a windows partition from one drive to another:
http://ubuntuforums.org/showthread.php?p=7742172

If you get an “autochk.exe not found” error message just after windows XP boots, it probably means that you have the partition type set incorrectly. Using fdisk under linux just use the “T” option to change the partition type to NTFS (hex 0×07 or number 7 in fdisk).

Encrypted home partition for Ubuntu 9.04

Following the directions on Lars’ blog, I set up an encrypted home directory on Ubuntu 9.04 using LUKS.

The following commands were all executed with root permissions. Add “sudo” to the front of the commands if you are not running with root permissions. Continue reading →