How to Build Your Own Portable Power Station

battery box sitting on a stone in a field
DIY portable power station

I love my portable power stations. I recently saw a 12V LiFePo4 battery on Amazon Vine, along with several other 12V accessories. That triggered an idea for making a brand new battery box myself. I wonder if I can make the power station out of parts I get entirely from Amazon Vine?

I’ll walk through the steps I took in making my own portable power station. Now I’ve got another option for reliable power wherever I go. You can make you own too.

What is a Portable Power Station?

A portable power station is a device that can provide electricity on the go. It is essentially a battery pack that can be charged using solar panels, wall outlets, or car chargers, and then used to power electronic devices like smartphones, laptops, cameras, and even small appliances like mini-fridges or electric grills.

The main advantage of a portable power station over traditional generators is its fuel source. It does not require any fuel or oil to operate and does not produce any harmful emissions. This makes it an ideal choice for outdoor activities like camping and hiking where you want quiet, clean power .

The most important decision when choosing a portable power station is how much power (wattage) is available. A laptop and a coffee pot take only a little power. A blanket or a kettle takes more. If you want to run a refrigerator or a space heater all day you need a much bigger system. Luckily UL listed electrical appliances list their wattage use.

Uses of a Power Station

Camping

I use my Jackery 500 every camping trip. It powers LED lights, charges my phone, my camera batteries, headlamp, and rechargeable flashlights.

On my first trip this summer, I used it to run a mini-fridge, which I got on Vine. The mini-fridge takes a lot of power; I ended up using the Jackery one day, my Bluetti EB3A the second day, and recharging both from the truck alternator. But it kept the meat and sodas cold!

battery box powering electric kettle
Boiling water with Joulle kettle and Jackery

Cooking at the campsite has never been easier. I have a 5 cup Mr Coffee coffee pot for coffee. It also makes good soup and heats hot dogs. I have a Joulle 500W kettle to boil water, make oatmeal, and pop corn. My favorite appliance is the Dash mini griddle. I’ve tried

  • mini quesadillas
  • ground sausage
  • hamburgers
  • pancakes
  • scrambled eggs

Having 120V electric appliances at camp means you don’t need a fire to cook.

My favorite use while camping has to be running a 12V electric blanket. I have a blanket with a 1 hour timer. I turn on the blanket, get warm and fall asleep, and the blanket shuts off automatically.

Around the house

I also take my power station all around the house and garage when I’m tinkering.

Nissan Xterra with the hood up, tools in the foreground
Jackery running a soldering iron
  • Plug in a lamp for more light
  • Vacuum the truck
  • Heat soldering iron for wiring
  • Run a pump sprayer to wash the truck
  • Trickle charge a battery

Power without an extension cord is very convenient.

Power outage

When the house power fails, having portable power stations really shines. Just like when camping, I can cook and have light and a warm blanket. More importantly, I can run my laptop all day if needed. For a remote IT worker, this is critical.

Components

components for battery box
switch, battery, inverter

Battery

I saw the FLLEEYPOWER 12V 6Ah LiFePO4 Battery on Vine. Its small capacity meant it wasn’t going to run big loads for hours. P=IV, so 144W would use 12 amps (12A) at 12 volts (12V). This battery could run that load for 1/2 hour at most. The dimensions are small though. I thought it would fit in an ammo can.

12V Output DC Power

You’ve seen them. The round 12V socket, a.k.a the cigarette lighter outlet. A common 12V fitting on all cars. My truck has 4, one of them I installed myself on the rear bumper.

You can plug in many car accessories. USB chargers, portable vacuums, tire inflaters to name a few. Most any automotive parts shop will carry a panel with a pair of USB ports, a 12V socket, and a couple of switches. I got the FXC Blue 3 switch panel from Vine.

120V Output AC Power

The big deal in portable power is AC power, or line power, or 110 power. It’s the power you get in your house when plugging a TV into a wall socket. It’s provided by the local electric utility company via the electric grid. In portable off-grid systems AC power comes from inverters.

Inverters transform 12V DC current into 120V AC current. Refer the Edison vs. Tesla cage match. For AC power on the battery box, I only had a few amp-hours of capacity, so I settled on a low power inverter. The Bapdas 200W car inverter fit the bill. Plus it has a voltage display.

Fuse Block

Current flows cause heat. Heat causes fires. Circuit protection stop fires. Fuses protect 12V circuits.

A fuse block combines separate circuits, easy fuse replacement, and common neutral bus bars. Separate circuits lets you add multiple switches and different sizes of fuse depending on load. I got a 6 fuse block from POWO Carlife.

Switch

Who doesn’t like a chunky switch? When I saw the tall 100A shutoff switch from Autoxbert I knew I was going to drill a hole and mount that switch inside the box. Most of the fancy electronic power station have a push button on/off switch.

Case

I thought an ammo box, a tackle box, or some other type of lidded box a handle would work well. Plastic would be cheaper and easier to modify. I couldn’t find what I was looking for on Vine, so I ordered the Sheffield ammo can from Amazon.

I made sure I had the measurements for the battery, fuse block, and inverter before ordering the box. Everything needed to fit inside or outside, on the sides or top. Round divots in the lid, the same side as the chunky switch, solidified the selection.

Solar panel

The ultimate off-grid power source is a solar panel. But solar panels are tricky in this case. For a 12V system, most “portable” panels are the size of 2 pizza boxes. Most of the panels showing up in Vine are 5V 3W-5W. Way too small to power even this modest system.

Charge controller

Bigger solar panels usually run at higher wattages with more variability. For example, a typical residential panel generates current from 12V on cloudy days to 18V in full sun. A charge controller regulates this voltage fluctuation and provides the correct voltage to the panel. I did find a 10A controller from Enovolt on Vine.

Light

Ever wanted a flashlight that will run for days? Every power station comes with a light. I had a 12V LED light in my electronics grab bag.

Construction

Measure once, cut twice. I think that’s how it goes.

The construction process began once all the materials had come in. First I stuck the battery, fuse block, and 12V sockets in the ammo can to make sure it all fit. I try to take into account routing and bending wires.

I broke the three switches that came with the 12V sockets at this point. The set was fully wired from the factory. But not how I wanted it wired. The wire lugs were firm. So I ordered some small but fine metal switches.

Next comes drilling holes. You don’t want to run a drill bit into the battery once it’s mounted. The cutoff switch was an 1/8″ larger than the divot. Nothing that a step drill bit and steady hand won’t handle. The light switch went in on top too.

The base plate for the 12V sockets was just wide enough to require cutting the lid bracing. Because I had already tossed the switches, I tossed the plate and mounted the sockets directly to the ammo can. I already knew how far into the can the sockets and wire projected.

I prefer to solder and shrink wrap connections. This gives a stronger joint. But ring terminals make it easy to wire a fuse block. So I solder the wire to the ring.

wires with crimped ring terminals showing soldered connections
For crimped terminals, solder the wires for extra strength

The inverter is mounted on the outside of the can. I settled on one side instead of the top. So I removed the 12V plug and drilled a hole for its cable. I put a hole opposite this for the solar panel cable. I planned to mount the charge controller inside.

The last hole was for the LED light. I found a vertical orientation worked best because the leads were centered and lay behind the lens. And the battery was directly behind the light, I moved the light to one edge so the hole would clear the battery.

After all the holes were drilled, it was time to lay out the wiring. Wires run from the battery to switch and fuse block. Wires lead to the sockets and light and switches and inverter. Wire to crimp, wires to solder, terminals to screw down.

wires and fuses in the fuse block
The fuse block sits between the battery and 12V sockets

Final mounting used some bolts, some flanges and nuts, and some feet of double sides tape. Overall it feels sturdy, but I wouldn’t want to drop it.

inverter with double sided tape on back
Double sided tape on inverter

Testing

I did a test of the wiring one leg at a time. Everything worked!

The LED light is not very bright but draws very little power.

The inverter displays the battery voltage, and loads over 100W run on it for a short time.

Both 1A and 2.5A USB chargers work. I ran the mini-fridge on the 12V outlet for about 15 mins and was satisfied.

The cut off switch is sturdy with a chunky feel. It works exactly as advertised. I’d like to add a custom cover to the terminals.

Neither a 5W nor an 8W solar panel I bought from Amazon were enough to run the charge controller. I’m considering buying a much bigger panel that’s capable of making 15V+ in direct sunlight. For now I’ve got a LiFePo charger to directly charge the battery.

Cost Breakdown

  • 120V Inverter $25
  • Case $10
  • Switch $7
  • Small switches $12
  • Battery $25
  • Solar panel $18
  • Charge controller $40
  • Fuse block $11
  • 12V sockets and switches $24
  • Total $172

This project ended up costing the same as a similar power station with a bigger battery and without the solar charging. If I did it again, I’d leave off the solar and get a LiFePo charger and larger battery.

A portable power station is a convenient and reliable source of power for anyone. I made one using inexpensive parts, the most expensive being the optional solar charge controller. Whether camping, working around the house or during a power cut, a portable power station shouldn’t be out of reach.

Thanks for reading. I had a lot of fun building this battery box: 4 full evenings after work to get it ready for a Friday camping trip. If you want to build one of your own, I’ve included Amazon affiliate links to the specific products I used. If you buy one, I get a commission but it doesn’t cost you any extra.

Building the X Desk

supplies for staining wood
wooden desk with dark wood grain
Finished X desk

When my wife and I changed spaces in the house, I gave her my desk. That left me without a place for my computer. I decided I could make one.

I’ve got a compound miter saw, a drill with a Kreg jig, and a tape measure. Lowes provided the lumber.

drill, saw and screwdriver

The X Desk design comes from Ana White’s website. I modified it to make the top shorter. I wanted a lighter desk that was easy to move. Except for the top, the entire desk is made from 2×4 lumber. I chose some 1×12 pine boards for the top.

The biggest feature of the desk is the dramatic cross braces used on the single leg of the desk. Because I have a miter saw, I knew I could cut these pieces easily. I even made a modification to the design to support a narrower support. The back braces now angle 22.5 degrees.

Craftsman miter saw
I cut both 22.5 and 45 degree ends

I made a decision on the top; instead of screwing in from the bottom, or countersinking screws in the top, I would use bolts. I thought flat bronze crowns for the bolts would make nice accents. Bolts would make taking the desk apart possible too.

Clamping wood
A clamp holds the wood in place before drilling a hole

The challenge with bolts was the top layer of the legs. Two 2×4 and two more 1 inch boards meant about 4 1/2 inches to drill through and run a bolt through. I chose a trick. I embedded a T nut in the bottom side of the top leg 2×4. The nut is buried in the leg and won’t get lost. The bronze bolts run through holes in the top and holes in the leg and into the nut. Perfect.

I gave the desk a light sanding before applying stain and wax. I should have bought an electric sander and given the whole thing a finer finish. About two weeks later the wax finish has just about dried. I could clear it off and give it a good polishing. I’ve been enjoying it for more than a week now.

pieces of wood and a drill
The first set of cut pieces are ready to join

Want Better Results? Use the Right Tools

Laser spinner

Scientists are measuring the effectiveness of face mask materials. Most are using lab-quality expensive equipment designed to get absolute measurements and prove a very narrow hypothesis. But not all studies follow this pattern. A group of scientists and engineers from Duke University have released the results of their experiment using a low-cost method of analysis. They did it on the cheap.

The experiment uses common tools. The researchers used a laser, and cell phone, some custom software, and a guy wearing a face mask. The study follows standard practice for analysis and presentation, but the materials list seems one step above buying some materials at a hardware store. I found this intriguing. I’m going to recreate the experiment with stuff from the Dollar Tree.

My Build

I collected supplies from Dollar Tree. Three black foam boards, a plastic Fresnel lens, and a LED flashlight were the main items. I also got a laser pointer and a hand-held fan. To these I added a mobile phone from my current set.

I built the box based on several measurements. The first is the field of view of the camera used. I wanted the camera to capture as much of the spread of droplets as possible while minimizing extraneous elements like the walls. Spit floats a lot.

a plastic Fresnel lens
A plastic Fresnel lens

The Fresnel lens was measured next. The box needed to be wide enough to hold the entire lens, and deep enough to allow focusing of the light to occur in the center of the box. This would illuminate droplets in the narrowest horizontal and vertical slice. I wanted the spread of light from the flashlight to be the most concentrated halfway between the speaker and the camera. The Fresnel was 6.5” wide by 9.5” long and focused about 9” away. It’s strong enough to light a fire with sunlight.

The last dimension was the minimum focal distance of the camera. The box needed to be large enough that the center was within the focusing range of the camera. The minimum focal distance for the first phone I tried was 2.5”. Because the distance was so short, I felt fine making the box larger than 5” square. I didn’t need to make the box huge either.

I made full use of the 20”x30” boards. The box measures 14.5” on each side. This made it easy to center the light channel, but just kept the side walls within the field of view of the camera.

black box with open panel
Labeled box for experiment

I mounted a mobile phone to the rear panel of the box. I cut a small hole and aligned the camera lens. Low tech painter’s tape sufficed to secure the phone while still allowing access to the buttons and screen. I could even see what’s in the box.

mobile phone taped down
Mobile phone affixed to box

I used water in a spray bottle to test the setup. This produced a consistent heavy spray of large and small droplets. With light passing through the lens in a beam, the droplets become visible within a horizontal bar across the middle of the box.

I tried two mobile phones to record video. Each frame can be analyzed. Video should allow identifying the start of droplet production too. Because the box has depth the droplets must travel some distance to the light beam. Using the audio track I could count the travel time in frames. The first phone, a Nokia Lumia 920, was not sensitive enough to capture droplets. The second phone, a Google Pixel 2, captured the test spray but no unmasked control droplets were visible. It’s time to try something else.

I tried a second light source. The original experiment used a laser with a beam spreader to project a horizontal plane of light across the box. I didn’t have access to a beam spreader, but I recalled another device that uses a plane of laser light: LIDAR. A LIDAR sensor uses a spinning mirror to reflect a laser beam in a circle. I could use the same principle of high-speed rotation to make a relatively continuous plane of laser light. Enter the laser fan.

I picked a red laser pointer out as a light source. These lasers are low power and relatively safe even with direct exposure. I also picked a battery operated hand-held fan to rotate the light source. It seemed easy enough to just mount the laser on the rotating axle of the fan. With that, a bit of tape depressed the ON button to engage the laser.

a laser pointer mounted on a small fan
Spinning laser of geometry

With the laser engaged, I needed to take care that I didn’t get a harmful exposure to my eyes. I crafted a set of laser safety glasses from a pair of clear safety glasses and six layers of blue cellophane. This attenuated the bright red laser to a faint dot when shown through the glasses. With these glasses covering my eyes, I started the laser spinning, the video recording, and produced a test spray. The following GIF shows what was captured from one of the tests.

droplets illuminated by laser
Frame capture of laser droplet illumination

But I could get enough exhalation droplets to count. Even with a promising result with the test spray, no speaker droplets were recorded on the video. So I increased the quality of the equipment. I moved to using a 60W LED bulb in a lamp for the lighting, and a DSLR for the camera. I cut a big hole for the new camera and started testing again.

Even with the DSLR, video capture did not produce usable images. Test sprays emitted sufficient droplets, but regular speech did not. I eventually set the camera to burst mode for JPGs, at f/2.8 and 1/60th of a second. I also started blowing raspberries.

These changes made it possible to reliably capture droplets for comparison. I counted droplets from three sets of four images: a control without mask, a neck gaiter, and a two layer cotton mask. I used a blunt discernment for categorizing the droplet size. Droplets were either small and looked like dots or large and looked like strings. Droplets out of focus were ignored.

exhaled droplets captured in beam of light
Exhaled droplets captured in beam of light

I’ve tabulated the results in a table. This makes the tabular data more rectangular. I also threw in some statistics because math makes everything more credible. Actually, the margin of error calculations reveal a lot of variability in the cotton mask test.

Image 1Image 2Image 3Image 4Averages @ 95%
Control31L, 3S20L, 8S32L, 9S28L, 4S28L±4, 6S±3
Gaiter17L, 7S27L, 3S31L, 6S33L, 0S27L±6, 4S±3
Cotton mask34L, 33S18L, 30S4L, 25S10L, 10S17L±11, 25S±9
Large and small droplet counts for three masks

The results of this test are surprising. The gaiter seems to make little difference in overall spray. The cotton mask does seem effective at reducing large droplet spray, but at the cost of greatly increased small droplet spray. Small droplets are expected to float in the air longer, and therefore pose an increased risk of airborne contamination over large droplets. This differs from a finding of the original study, which showed small droplet count higher for the gaiter than any of the other masks. The cotton mask also has a much higher margin of error than the other samples. Maybe spitting in a mask doesn’t work reliably.

This was an interesting build for me. I wanted to see if I could validate a scientific paper. I wanted to see what I could learn about the masks I had. I wanted to go to the Dollar Tree, because everything’s one dollar. The process reinforced my belief in the scientific method, and the cause of science in general.

  • Many things can go wrong.
  • You need to be diligent in your testing process.
  • Sample sizes matter.
  • Keep an open mind, because your preconceived notions may be wrong.

I also found that I could not replicate the experiment using only low-cost materials. Science experiments often require precision equipment that hobbyists don’t need. Determining an analogue for a squishy human action increases consistency. This was very evident in exhalation droplet production. But I was very pleased to capture images both with a laser beam and a focused light source. Yeah science!

What I Learned From Documenting How to Make Coffee

brown liquid pouring on black and white ceramic mug selective color photography

I was sitting on the patio of Yoolks On Us, having just ordered breakfast. I tasted my cup of coffee and exclaimed “Hey, this is good!” I don’t have high expectations of coffee at most places, but I hold out hope.

I’ve tried coffee at gas stations. I’ve tried coffee at big coffee shops. I rarely had coffee I liked until I started making my own.

My story starts small. A friend gave me a bag of coffee to consume. They were leaving on a trip and would not be back before it lost its luster. I found an unused name-brand drip brewer in a cabinet at work. After a thorough cleaning, I made my first cup. It was okay.

I thought the problem with coffee was that I didn’t like it. Surely places that sell coffee by the cup take the time to make it properly? This is a testable hypothesis. So I decided to sample a variety of beans, made in a consistent manner, according to best practices for the drip brewer, and document my experience. This began four years ago.

Assuming the coffee brewer was working correctly, I formulated my method. 

  • Brewing: I read the manufacturer’s directions for using the brewer.
  • Precise measurements: I made a measuring cup marked for 4, 6 and 8 tablespoons so I could quickly measure the coffee grounds. I also got a graduated cylinder, a baby bottle, to measure water in 2 oz increments.
  • Quality water: I sourced water from the office water cooler. It tasted much better than the tap.
  • Testing ratios: I first tested the coffee to water ratio specified on each bag. Then I tested double and half ratios. The standard is 1 tablespoon to 4 oz. of water.
  • Timing: I set a timer of 18 minutes to get the first cup of coffee. This allowed the brew to finish while not sitting in the carafe too long.

“The difference between screwing around and science is writing it down.” 

Adam Savage

Each time I bought a new bag of coffee, I would add it to my chart. The chart included the name of the coffee, each ratio, and my judgement on taste on a scale of -2 to +2. I tried approximately 20 brands of coffee over the next year. Here’s what I concluded.

Most coffee is hot and bitter

I can’t drink hot coffee. Why would I want to burn my mouth? I always let the coffee cool. When it’s too hot I can’t taste it. Sometimes this means waiting 30 minutes or more after buying a cup.

Most coffee I’ve tried is too strong for my taste. On top of that, it’s usually too bitter. The rare exception is coffee sold as a “Breakfast Blend.” This blend is usually light or medium roasted. I assume these three observations are connected. 

I found an objective explanation while trying Maxwell House Boost coffee. I had tried light, medium, and dark roasts before. Dark roasts present the most bitter cups, but sometimes the coffee is still good. Maxwell House Boost is a medium roast which claims to have 25% more caffeine. The coffee tasted fine at all ratios, but with more bitterness than expected. I think most coffee sold by the cup is chasing more caffeine and flavor by making it strong and dark. More caffeine and darker roasts make the coffee bitter.

Coffee is different around the world

I found three distinct types of coffee beans during my testing: Columbian, Ethiopian, and Sumatran. There’s also the generic Arabica, which is just coffee grown anywhere. Most coffee I’ve tried in America that’s trying to elevate itself is labelled “100% Columbian.” The differences seem to come down to flavors that come out from the soil and the harvesting in these places.

I found Colombian coffee to have a robust and traditional coffee flavor. Ethiopian coffee has a fruity character. Sumatran coffee has some different flavors that I find off-putting. Most of my testing was done with generic Arabica coffee, and most of it was generic tasting.

Consistency matters

Because I made the same coffee over multiple days for comparison, I wanted to make consistent measurements. I learned that “heaping tablespoons” could vary greatly from one scoop to the next, so I settled on 2 tablespoon increments.

I realize now that I could have gotten a scale and done everything by weight instead of volume. This would have provided the highest level of consistency. But my test equipment worked well enough.

I found that the best ratio for brewing varied with the brand of coffee. In most cases, I found 1 tablespoon to 8 oz. of water yielded the best tasting coffee. Usually the 1 to 4 ratio would also be fine, if the coffee itself was good. Using 1 tablespoon for every 2 oz. of water would make a good tasting cup worse, and would not make a weak coffee bean taste good. If the coffee is bad nothing will save it.

I found I can drink properly prepared coffee. When the beans are good, and the roast is mild, and the strength is moderate, I enjoy the experience. I just needed to figure out what good coffee meant to me.

Cooling Garment version 2

yellow safety vest with Nalgene bottle

I wore the first cooling garment on a walk during a Fourth of July parade in a park. It was a hot day. After wearing version 1 for a few hours I learned some lessons.

  • Water leaks.
  • Vinyl tubing becomes stiff when cold.
  • Flexible bladders are hard to seal with glue.
  • Submerged pumps are harder to access.
  • Cold water in humid air collects moisture.
  • It was hard to route the hose.

I wanted to put some of the lessons into practice when designing my next cooling garment prototype. So the next version was quite different from the first.

The first thing to go was the backpack. It was too difficult to route the host through cloth layers. I didn’t like picking out seams to make holes. I wanted a frame I could sew the hose on to. I went looking for a mesh vest.

The mesh vest had several advantages. First, air flows through it. This could help with cooling and evaporation. Second, the holes in the mesh would allow easy sewing. Third, a fitted vest would hold the hose close to my body. I found a thin monofilament fishing line worked well for securing the hose to the vest.

I decided a rigid vessel to hold ice and water would be easier to seal. I purchased a Nalgene bottle with a wide mouth. I also purchased 10 feet of silicone tubing and right angle couplings. I drilled holes in the top and bottom of the bottle and glued in the couplings. Water flowed out the bottom and in through the top. The wide screw top lid allowed ice to be added.

I knew I wanted the pump to be outside the bottle. This would leave more room for ice. The addition of the couplers meant that I could add and remove the hose and replace the pump too. The downside of an external pump is the need to prime the pump with liquid before running. The liquid cools and lubricates the pump. The easiest way to do this would be to mount the pump lower than the bottle.

detail of mesh vest and silicone tubing
A tube from the bottom of the bottle leads to a pocket holding the pump.

I wanted to balance the weight across both side of the vest, as much as I could. So I ran hose from the left pocket and the bottle to the right pocket and into the pump. The pump runs on 5v from a USB connection. For this application, I used a USB power bank to run the pump. I ran the cable from the bottom pocket to the top pocket where the bank fits.

Choosing how to route the hose around the vest could have gone better. I needed a mannequin, or another large human model. I wanted the fit of the vest and the weight of the components to hold the hose against my body. I found three places that would work: pectorals, shoulder blades, and lower back. I asked my assistant to draw on the back while I wore it. I wound the 10′ of silicone hose around the back, securing it with fishing line. More hose would allow more coverage.

detail of mesh vest and silicone tubing
Serpentine tubes carrying water around

There’s not too much I can do about condensation. Move to the desert would be one solution. My t-shirt gets lines of dampness from the condensation on the cold hose. It does feel good anyway. I’m already planning version 3. It will be based on forced air ventilation. The moving air should help with evaporation and cooling.

Mesh safety vest
Me wearing the cool suit

Cooling Garment version 1

I’ve wanted to make a self regulating cooling garment for a long time. I read an article, essentially the case study from NASA, around the thermal regulation suit designed for the Apollo astronauts. Ventilation and cooling underwear, this garment contained both cooling elements and channels for increasing airflow. The cooling liquid would lower the astronaut’s temperature when needed. Initially the design called for the astronaut to manually modify the temperature regulation of the suit. The later designs allowed for an automatic temperature feedback loop to be added to the mechanism. Cooling would then automatically apply to the garment as the astronauts worked during his mission duties and exerting himself.

The original designs for NASA Liquid Cooling and Ventilation Garment LCVG utilized close fitting garment in a single coverall. A long line of tubing was sown into the garment. The material of the garment also included channels to increase airflow to the extremities. This would increase evaporation and drying in a humid and enclosed space. For my own version of a personal cooling garment, I intend to use a close fitting garment which would be worn beneath any clothing. I have procured long underwear of a spandex and silk blend, which fits close to the body. I will use this in a later iteration of the suits. I want to test out various liquid circulation patterns and heat exchangers.

I’m starting with several different technology demonstrators to make sure that I have a reliable system for doing the cooling and ventilation. I plan on making several variations to test water cooling systems, using pumps and various means of cool in the liquid. The first design uses a typical water carrying backpack with removable bladder. Browsing Amazon, I found an inexpensive version which has a mesh fabric over the back with a padded channel for back ventilation. That space made it the perfect carrying unit for the cooling system. By cutting access holes intothe mesh fabric covering the padded back area, I was able to route a length of vinyl tube between the mesh and the padding of the backpack. The weight of the pack in this area would hold the tubing close to my body. The comfort padding on the backpack back would provide some space to prevent crushing the tubing. I procured a 10 foot length of vinyl tubing and routed the tubing through the back mesh part of the backpack. I routed the tubing into the main space of the backpack. I added two attachments on the reservoir in the back to complete the liquid circuit.

water bladder cooling unit
Water bladder and tubing

At this point I had roughly 5 feet of extra vinyl tubing in a loop. This tubing was handy for sticking down the front of my shirt. During the initial trial, and during the routing of the tube, I found that the vinyl tubing kinked when it bends too sharply. So I designed a minimum radius guide using Tinkercad, and printed this guide on my 3D printer. The design of the minimum radius guide was a flattened torus with a circular channel, hemispheric in nature, inset in the device. The channel was slightly larger than the diameter of the tube. When routed through the guide, the vinyl tube could not kink because the channel was too narrow.

A USB battery charger holds a large store of energy and provide a 5V output USB port. Mostly used for charging phones, the battery changer can power many other devices which run on 5 volts and use USB cables. I purchased a submersible 5 volt water pump, with integrated USB cable. This allowed me to power the pump and the entire water circulating system from a portable rechargable battery source.

The most difficult part of constructing the Cool Pac was securing the new tubing in a continuous loop to the reservoir. I was able to reuse the existing quick disconnect for one end of the tube. In order to attach the other end of the vinyl tube to the reservoir, I cut a hole in the vinyl reservoir and aligned the outlet port of pump with the hole. I then secured the top to the reservoir with CA glue and silicon sealant. The reservoir is by nature a sealed container. But in order to power the pump I needed to have the USB Power lead exit the reservoir. So I cut another role in the reservoir, and routed the USB cable out this. I secured the hole with duct tape and CA glue. I found this to be the weakest part of the circulation system.

My first field tests of the Cool Pac was at a July 4th parade in Stanton, VA. The parade took place in a park. My friend and I took our Astromech droids for a roll around the park. The temperature exceeded 90°. I filled the reservoir with ice and water and started the pump. The vinyl tubing did an excellent job of transferring heat from my body to the water. One downside of having a cold liquid in the humid air of summer is condensation. Condensation did affect the clothing worn under the Cool Pac. The exit hole for the pump power line was also a weak point, a point of failure. When bending at the waist, water in the reservoir would be leak out of this hole and run down my back. Overall the system worked reasonably well. The battery supply lasted the entire 2 hours. The ice completey melted after an hour, and the water circulating was no longer cool after 90 minutes.

C2-B5
C2-B5 and Andy

Using Canvas in HTML5

multi-color circles overlapping

For my Art History class on Modern Art, I created a work of Conceptual Art. This work of post-modernist theory explores a non-determinist approach to building a unique creation. The method abstracts the input of the artist, who creates a framework for the piece and then sets in motion the process which completes it. This particular work, called “Orbs”, uses the new HTML5 canvas to create a random number of randomly sized and colored circles in the webpage on each page load. Due to the large number of random elements no two views of the art work should repeat.

http://www.rnuckolls.com/concept.html
Continue reading “Using Canvas in HTML5”

Column Display of Multiple IDs in RTML

A common method for displaying a long list of products shows thumbnails arranged in rows and columns. It’s pretty easy to do if you hand code each item in each row and column. But what if you want to use a variable number of columns and products, like using the Yahoo! store Columns variable and the Specials homepage variable? This example demonstrates a Yahoo! store template which outputs the thumbnail, name and sale-price of a sequence of IDs in rows and columns using <DIV> tags. The sequence and number of columns are passed to the template. It will also check for the presence of and icon or image in the product and render a global “blank-image” image with name if there are none. Continue reading “Column Display of Multiple IDs in RTML”

Populating Excel from Dataset

Exporting a set of data to an Excel spreadsheet is a very common task. Here is an easy method for outputting any dataset with any number of tables to Excel.


Private Sub ExportGenericExcel(ByVal Title As String, ByVal Source As DataSet)
‘Should add reference in Visual Studio to Microsoft Excel
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim r, s, t As Integer
‘Start a new workbook in Excel.
oExcel = CreateObject(“Excel.Application”)
oBook = oExcel.Workbooks.Add
Dim sar As DataSet
sar = Source
For s = 0 To sar.Tables.Count – 1
If s > 2 Then oBook.Worksheets.Add()
oSheet = oBook.Worksheets(s + 1)
oSheet.Name = Title & s.ToString
oSheet.Select()
‘Add Column Names as first row in bold
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(1, t + 1) = sar.Tables(s).Columns.Item(t).ColumnName
oSheet.cells(1, t + 1).font.bold = True
Next
For r = 0 To sar.Tables(s).Rows.Count – 1
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(r + 2, t + 1) = sar.Tables(s).Rows(r).Item(t)
If r = 0 And t = 1 Then
oSheet.cells(r + 2, t + 1).Select()
oExcel.ActiveWindow.FreezePanes = True
End If
Next
Next
Next
‘ Make sure Excel is visible and give the user control of Excel’s lifetime.
oExcel.Visible = True
oExcel.UserControl = True
‘ Make sure that you release object references.
oSheet = Nothing
oBook = Nothing
‘oExcel.Quit() Without this the Excel process will remain open as long as the calling program is running
oExcel = Nothing
End Sub

Privatetheehgjgjfdhj

Private Sub ExportGenericExcel(ByVal Title As String, ByVal Source As DataSet)
‘Should add reference in Visual Studio to Microsoft Excel
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim r, s, t As Integer
‘Start a new workbook in Excel.
oExcel = CreateObject(“Excel.Application”)
oBook = oExcel.Workbooks.Add
Dim sar As DataSet
sar = Source
For s = 0 To sar.Tables.Count – 1
‘oBook.Worksheets.Add()
oSheet = oBook.Worksheets(s + 1)
oSheet.Name = Title & s.ToString
oSheet.Select()
‘MsgBox(oSheet.name)
‘Transfer the array to the worksheet starting at cell A2.
‘oSheet.Range(“A2”).Resize(100, 3).Value = DataArray
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(1, t + 1) = sar.Tables(s).Columns.Item(t).ColumnName
oSheet.cells(1, t + 1).font.bold = True
Next
For r = 0 To sar.Tables(s).Rows.Count – 1
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(r + 2, t + 1) = sar.Tables(s).Rows(r).Item(t)
If r = 0 And t = 1 Then
oSheet.cells(r + 2, t + 1).Select()
oExcel.ActiveWindow.FreezePanes = True
End If
Next
Next
‘oSheet.Cells(2, 2).Select()
‘oExcel.ActiveWindow.FreezePanes = True
Next
‘ Make sure Excel is visible and give the user control
‘ of Excel’s lifetime.
oExcel.Visible = True
oExcel.UserControl = True
‘ Make sure that you release object references.
oSheet = Nothing
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
End Sub

Sub ExportGenericExcel(ByVal Title As String, ByVal Source As DataSet)

‘Should add reference in Visual Studio to Microsoft Excel
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim r, s, t As Integer
‘Start a new workbook in Excel.
oExcel = CreateObject(“Excel.Application”)
oBook = oExcel.Workbooks.Add
Dim sar As DataSet
sar = Source
For s = 0 To sar.Tables.Count – 1
‘oBook.Worksheets.Add()
oSheet = oBook.Worksheets(s + 1)
oSheet.Name = Title & s.ToString
oSheet.Select()
‘MsgBox(oSheet.name)
‘Transfer the array to the worksheet starting at cell A2.
‘oSheet.Range(“A2”).Resize(100, 3).Value = DataArray
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(1, t + 1) = sar.Tables(s).Columns.Item(t).ColumnName
oSheet.cells(1, t + 1).font.bold = True
Next
For r = 0 To sar.Tables(s).Rows.Count – 1
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(r + 2, t + 1) = sar.Tables(s).Rows(r).Item(t)
If r = 0 And t = 1 Then
oSheet.cells(r + 2, t + 1).Select()
oExcel.ActiveWindow.FreezePanes = True
End If
Next
Next
‘oSheet.Cells(2, 2).Select()
‘oExcel.ActiveWindow.FreezePanes = True
Next
‘ Make sure Excel is visible and give the user control
‘ of Excel’s lifetime.
oExcel.Visible = True
oExcel.UserControl = True
‘ Make sure that you release object references.
oSheet = Nothing
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
End Private Sub ExportGenericExcel(ByVal Title As String, ByVal Source As DataSet)
‘Should add reference in Visual Studio to Microsoft Excel
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim r, s, t As Integer
‘Start a new workbook in Excel.
oExcel = CreateObject(“Excel.Application”)
oBook = oExcel.Workbooks.Add
Dim sar As DataSet
sar = Source
For s = 0 To sar.Tables.Count – 1
‘oBook.Worksheets.Add()
oSheet = oBook.Worksheets(s + 1)
oSheet.Name = Title & s.ToString
oSheet.Select()
‘MsgBox(oSheet.name)
‘Transfer the array to the worksheet starting at cell A2.
‘oSheet.Range(“A2”).Resize(100, 3).Value = DataArray
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(1, t + 1) = sar.Tables(s).Columns.Item(t).ColumnName
oSheet.cells(1, t + 1).font.bold = True
Next
For r = 0 To sar.Tables(s).Rows.Count – 1
For t = 0 To sar.Tables(s).Columns.Count – 1
oSheet.Cells(r + 2, t + 1) = sar.Tables(s).Rows(r).Item(t)
If r = 0 And t = 1 Then
oSheet.cells(r + 2, t + 1).Select()
oExcel.ActiveWindow.FreezePanes = True
End If
Next
Next
‘oSheet.Cells(2, 2).Select()
‘oExcel.ActiveWindow.FreezePanes = True
Next
‘ Make sure Excel is visible and give the user control
‘ of Excel’s lifetime.
oExcel.Visible = True
oExcel.UserControl = True
‘ Make sure that you release object references.
oSheet = Nothing
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
End Sub