What is Freeside?

Freeside is a Georgia nonprofit corporation, organized to develop a community of coders, makers, artists, and researchers in order to promote collaboration and community outreach. Learn more »

Craftycoder's 8 channel automotive PDU

I have been working a Bluetooth 4 automotive power distribution unit for a couple months now. Here are some videos showing the capabilities. 

The goal is to have a device about the size of a deck of cards that can distribute up to 100A @ 13.8V for automotive applications. 8 individual circuits can be controlled. Control will include constant current, circuit breaker at specific currents, and PWM duty cycle. You will be able to program dedicated functions to external buttons. Lastly, you will be able to get real time feedback from the system on a Bluetooth 4 device. This data will include total current, current by channel, and system voltage among other things. There are a lot of features on the drawing board still.

This is going to have application in show cars, jeeps, motorcycles, and boats I believe. It's been a really fun project so far. I'm going to need about $120,000 to bring it to market so I want it to be pretty perfect before I write that check. I do hope I get that far.







3D Printing & Design workshop February 9th, 2013 @ Freeside Atlanta


Come one; come all!

Freeside Atlanta and My Inventor Club will be teaming up on Saturday, February 9th to bring you
a daylong hackathon in 3D Modeling, Design, Marketing, Theory and
more.  This is a free, educational meet and greet event which will be hosted
in Freeside Atlanta and My inventor Club's space.

What to Expect:
-Several Machine Technologies on display with instructional demonstrations
-Show and Tell examples of select prints and design prototypes
-Lectures ranging from Design Theory, Modeling Techniques, Printing Strategies, Troubleshooting & Community Experiences
-3D printing workshops and Hands on immersion
-Special Guest Speakers

Cost: Free
Location: 675 Metropolitan Parkway Suite 6066, Atlanta, GA 30310
Date: February 9th, 2013
Time: 1200-1700
Contact: pr@freesideatlanta.org or info@myinventorclub.com


-Nick

3D Printer Meetup recap

We've had two really great 3D printing meetups lately, one to talk about and demo 3D printers, and another to help people build and debug them. Here's some of the stuff we saw -


  Jorge brought in his Rostock Prisma to show it off and debug a few extruder issues. It's a really cool and fairly robust design. Plus, it's a lot of fun to watch! You can also check out the Thingyverse page that Jorge has put together for it.





 We also had Ant's 3D printer and the Thing-o-Matic going, so people could benchmark or run off a few parts. James Stephens also brought in his RepRap Mendel to debug some extruder issues.





Randy did some work on his CNC, building a cabinet with removable side-walls for it, while Van continued working on his 3D Printer, the same variant as Ant's and the one that I am building for the space. I made slow progress on that, too, and it "only needs to be wired up" now.

That's all for now! Watch our Meetup page for more great events like these!




Precision Low Current A/C Measurement


I got an interesting question on my YouTube channel yesterday asking if my transimpendance ammeter can measure A/C in addition to D/C and if the output of the instrument is A/C. The answer is yes to all of the above. Good question and a fun little thing to test on the bench on a Saturday morning.

Full power tests of motorcycle PDU


I pushed 185 watts through my custom DC relays last night. They ate up that power like a champ. Likewise, I've also been testing it in the off condition to measure its steady off power consumption. The cards burn 150 nano amps or 1.8uW when off. That's means it's about 80 mega ohms which is OUTSTANDING. This project is really moving along nicely. I have some serious burn in testing to do and then it's time to get the main board encapsulated and do some real life testing. That's going to be fun!




Reflow Oven Demonstration




Arduino Compatible Mini USB Host Board


Well, its time to finally get this project "out there". I've been sitting on it for months putting together a bunch of cool little projects for this board and the video above shows off some of the cooler ones. Check out the Kickstarter page for more details as well.

Ever since I saw Kickstarter the first time I've been wanting to give this a shot so I could learn the ins and outs of doing small scale manufacturing from home. Because this is not a product, but a platform or hacker tool I am not super confident there is a substantial enough market for it but I cannot know if I don't try.

The plan if this succeeds is to give all the boards a final value engineering assessment and put the project out to bid. I've already done this with a Florida shop called Tropical Assemblies as well as with Seeedstudio. I'm not super excited with Seeeds PCB quality so I think I'll skip them but the good news is that the local fab shop had similar prices so at least I'll know that I can call and complain if anything goes wrong.

An issue has already cropped up with the Joystick shield. A part I used in the BOM is no longer available anywhere. I'll contact the vendor and verify its availability or lack thereof and reevaluate. I've already got a backup plan but it will require a two sided board which is going to kill the bottom line. No matter, this is more about learning this home manufacturing process then about any profit motivation so we are just going to drive it hard and fix what breaks.

Many thanks to Freeside for all the support and camaraderie.

Offroad Wheelchair Update 1 - To Retrofit or Reinvent?

Recently, we at Freeside Atlanta teamed up with the Alchemical Arts Alliance and My Inventor Club to design and build an Offroad Wheelchair so that our friend Robin can get around their events. Together, we've raised about $2,000 for the project.

The design phase is usually the most difficult part of the projects, and it is often the most expensive place to make a mistake. Committing the resources to a poorly-designed project can cause the entire thing to be wasted, so we designed the Offroad Wheelchair project very carefully.

We started with the constraints – We need ease of maneuverability, an ability to overcome obstacles and take fairly steep inclines, longevity to make it through events up to a week long, and recoverability in case it gets stuck. Also, biggest two constraints – Budget (~$2000) and time to prototype (2 months)

From that, we landed on 3 design options –
1 – Electric motors with onboard generator for periodic battery charge
2 – Modifying an existing lawnmower or outdoor vehicle with hydraulic controls and automation
3 – Modifying a zero-turn lawnmower to suit our purpose

After weighing the options, we chose option one for its low noise and high efficiency. Next step - simulate the design. I used the website Study Physics to figure out the torque requirement to pull a simulated wheelchair + passenger up a given slope. Then I simulated it in a spreadsheet starting with the worst-case scenario so I could play with the numbers. The inputs are in orange and the rest are calculations.

In other words, the force required to take a vehicle up a 15 degree slope is a bit more than half of the force required to lift it all the way off the ground. To find the torque requirement, the force needs to be distributed around the wheel, since the wheel radius affects the leverage exerted by the motor.

Therefore, the minimum torque of the motors is about 200 pound feet. Is that feasible for an electric motor? Let’s look at the best motor example I could find - 

This means that the system required two very powerful electric motors, running near peak torque continuously, and geared down 60x. They exist, but they are about $600 each and don’t usually match each other’s output exactly. Plus, the motor controllers are $200-$400 each! That means that this project is neither feasible nor practical, as the entire budget could be spent on 2 motors with their respective transmissions and controllers. It won’t work. But, this is why we simulate. It’s time to drop back and try again.

The hydraulic modification of an existing vehicle seems interesting, but also time-consuming. Plus, it wouldn’t be able to pivot in place like the other two design options, which is important to delivering the rider to exactly their target. Not to mention that the drive of the wheels will probably be locked together, so there is nothing stopping the thing from sliding down a slope. It also requires the modification of a ~$1000 platform with up to $800 in hydraulics and most options aren’t configured for somebody to easily get into from a wheelchair.

Then, Shane from My Inventor Club sent me an email about a zero-turn mower that was available in our price range. Zero-turn mowers use hydrostatic transmissions to convert the high-rpm, low-torque energy from an engine into low-speed, high-torque power with hydraulics. The mower we chose is a Grasshopper 725k. The actual torque isn’t listed in any of the data sheets, but the horsepower (25) and wheel diameter (22in) are. So now we just need to find the torque and update our simulation to see if it will work.
If we know how to find torque then we just need to find the rpm at the wheels at the top speed, discount it by about 30% for conversion losses, and that will be near our actual torque.
First, get the top speed to feet per minute – 

Then, turn that to rpm using (the diameter of the tire) * (pi) to get the ground it covers per revolution.

Finally, you can do the torque conversion – 
 The zero-turn mower is 800lbs, so it is much heavier. The torque required to haul it up a 15 degree slope is 530 pound-feet, so it might be able to crawl along if it can keep traction. However, rolling over would be a concern at that angle anyway. Therefore, the zero-turn is feasible and reasonably meets the requirements of the project.

We can look into supplementing the power of the motors with a winch if the vehicle gets stuck somewhere that the torque/traction can’t overcome and reduce engine noise, but we're in the ballpark now. So, we’ve settled on a design – a retrofit of a zero-turn mower with a winch. It will be faster and more cost-effective to retrofit a used device that has been engineered to a similar task than to design and build something new from scratch. However, this platform could serve as a prototype for some future design, so we can work out the issues through iterative prototyping.

Until then, we’ll do the most effective and cost-effective Offroad Wheelchair that our constraints allow and document it so others can duplicate and improve the idea.

Check in on the Offroad Wheelchair page for links and info, including the simulation spreadsheet that I used (you get to point out my mistakes!) and the first video of the mower that we selected.

Precision Low Current Measurement w / Feedback Ammeter


If you've been following along on my journey to learn electronics design, you'll know I've been working on a motorcycle power supply. It's getting pretty close to finished and its time to do testing. The last series of blogs were about a constant current load testing device. I needed that to test the power supply under different load conditions. This installment is about the opposite end of that spectrum, what happens when the circuit is "off". Because lots of motorcycles tend to be parked for months without being ridden I need to verify that my device does not contribute to early battery failure. To do that I need to measure the current consumed when it is plugged in but off. We are talking about very small currents though so very high precision measurements are required.


Normally, you can use a digital multimeter for this purpose but for measuring small currents this not as straightforward as it seems. Ammeters are connected in series with a circuit and while a perfect ammeter would neither add or subtract anything to the circuit, it would just observe, in the real world ammeters are not perfect. Standard multimeters use a current shunt, or a resistor in series, and measure the voltage drop across that resistor. These designs unfortunately introduce something called burden voltage. This is the voltage dropped across the resistor used for measurement. This can be kept at a minimum by using small resistors but it cannot be avoided with a shunt ammeter. When you try to measure small currents with a DMM you can sometimes get grossly under reported currents caused by the burden voltage of the measurement circuit. 1

An alternate method is to use a feedback ammeter which measures the voltage dropped across the shunt and adds that much voltage back into the circuit. This sounds fancy but in fact is not that complicated once explained. That is my intention today.

Feedback Ammeter
The basic schematic above is the text book model of a feedback ammeter. A current goes into the inverting input (the current is represented here as a voltage in series with a resister which is the text book definition of a current) of an op amp and a voltage whose size is proportional to the input current comes out of the op amp's output as Vout. The burden voltage in this circuit would be the voltage difference between the inverting and non-inverting op amp inputs. Because of how op amps work though, this is almost zero.

This schematic makes it look so easy and I despite my best efforts to build it true to this diagram I failed to find success. The secret sauce is how you power the op amp. In order for me to make it work, I needed a floating power supply and I needed it referenced such that half of the floating power supply's potential was above GND and half was below GND. The wikipedia page 2 offered the tidbit about the floating power supply. With that I was able to get a voltage measurement that was proportional to the current input but there was a DC offset that changed with the voltage applied to the op amps. Dave Jones' uCurrent device's schematic 3 offered the final missing piece which was the referencing the power supply to half the potential. Once I got that figure the circuit was a winner!

Useful resources:
www.keithley.com/data?asset=6169
http://www.ni.com/white-paper/5448/en


My schematic
Circuit on breadboad





Constant Current Dummy Load - Complete


The project is finished. The units have been built and sent off for use. Much was learned. Here are some insights.
First, don't design a PCB for the lowest cost. That just increases your costs later. I made the the board narrower than was convenient to save $20 and I ended up wanting to put the entire thing a case so I could mount the banana adapters off the PCB where they could be farther apart. Not necessary but preferred for me.
Second, putting artwork in copper on your PCB not only works but looks great when you are finished. Take a look at the second photo below. That Freeside logo looks awesome!
Third, assembly of through hole components is NOT easier than surface mount parts. It was a bit of a pain to build them all. TH components don't stay in place when you flip it over to solder. 
Final PCB I used.
Artwork in copper.


Queued up for soldering.
Delivered and installed.

My lab's version with voltmeter and case.

It includes a cooling fan.


Eagle Files
Code uploaded to the ATTINY85. It includes the RotaryEncoder lib I posted earlier.
#include <RotaryEncoder.h>;
int del=0; 
word outputValue = 0;
byte data = 0;
int val = 0;

int csPin = 0;
int sckPin = 1;
int siPin = 2;
int ENC_A = 3;
int ENC_B = 4;
RotaryEncoder encoder(ENC_A,ENC_B,5,6,1000);
void setup()
{
  pinMode(csPin, OUTPUT);
  pinMode(sckPin, OUTPUT);
  pinMode(siPin, OUTPUT);
  setDAC(val);
}
void loop()
{
  int enc = encoder.readEncoder();
  if(enc != 0) {
    val = val + (enc);   
    val = min(val,4095);
    val = max(val,0);
    setDAC(val);
  }
  delayMicroseconds(5);
}
void setDAC(int value) {
    outputValue = value;
    digitalWrite(csPin, LOW);
    data = highByte(outputValue);
    data = 0b00001111 & data;
    data = 0b00110000 | data;
    shiftOut(siPin, sckPin, MSBFIRST, data);
    data = lowByte(outputValue);
    shiftOut(siPin, sckPin, MSBFIRST, data); 
    digitalWrite(csPin, HIGH);
    delay(del);
}
void sinewave()
{
  for (int a=0; a<=4095; a++)
  {
    setDAC(a);
  }
  delay(del+25);
  for (int a=4095; a>=0; --a)
  {
    setDAC(a);
  }
  delay(del+25);
}