Twitter: lvl1hackerspace

A SOPA you can get behind

Introducing a useful SOPA- The Stop Online Productivity Avoidance box.

After having an extremely productive day on January 18th, I had a thought: What if every day were January 18th? Well, at the push of a button, now it can!

The button, switch, and display are wired to an Arduino.  The Arduino communicates with a python script running on the router, which controls a Squid3 proxy blacklist.  In SOPA mode, the whole of the internet is my oyster.  In NOPA mode, however, distracting websites like reddit, hacker news, and hackaday are blocked.  This isn’t very useful without a great deal of self control, however.  In weaker instances, nuclear mode must be employed.  Turn the key switch and press the button and all distracting sites are blocked for one hour.  The only recourse is to restart the router, but the router requires 15 minutes to restart, blocking the entirety of the web for the duration.  Overriding nuclear mode is not appealing.

All code is posted online at https://github.com/Zuph/SOPA-Box

A video demonstration and more pictures of construction lie below the break.

Read the rest of this entry »

How to Build the World’s Lightest Quadrifilar Helix Antenna

Another day, another repost from another project I’m working on. This time, from White Star Balloons, the world’s lightest quad helix antenna.

After the scrub on the launch pad for flight attempt A, we went back to the books, to try and figure out what we could do to improve our odds the next time around. One of our biggest setbacks was the inability make an antenna suitable for our use: We needed an antenna tuned for 149 MHz, not needing a ground plane, weighing as little as possible.

After 4 tries, and some expensive test equipment, the end result was a Quadrifilar Helix antenna weighing only 80 grams!

Our ground test antenna was a 5/8ths wave whip antenna, which works well, but unfortunately needs a ground plane. Tests with both a quarter-wave dipole and a J-pole antenna were lackluster. Documentation from our satellite service provider implied that a quadrifilar helix antenna would provide the best coverage at all. While these antennas are pretty, their design and construction was voodoo magic at first.

Thanks to some design documentation here: http://jcoppens.com/ant/qfh/index.en.php and some help from the balloon community, we had some baselines for creating such an antenna. We still went through *quite* a few revisions.  We went through 3 revisions that didn’t work, and one which works pretty darn well!

Here are the antennas which didn’t work:

Read the rest of this entry »

MintiBoost workshops 12/6 and 12/18

Just in time for the holidays! Build a small & simple, but very powerful USB charger for your iPod, iPhone, mp3 player, camera, cell phone, and just about any other gadget you can plug into a USB port to charge! Perfect holiday gift! Only $35 – cheap!

Sign up for the class here: http://wiki.lvl1.org/MintiBoost

Surface Mount Soldering Workshop

Photo Licensed CC-BY-NC-SA, Flickr User atduskgreghttp://www.eventbrite.com/event/1000984973

The LVL1 Hackerspace will be hosting a Surface Mount Soldering

Workshop on Saturday, November 20th, 2010 from 1 to 5pm.  This
workshop will teach you the basics of soldering surface mount
components with a standard soldering iron, using a standard soldering
iron tip.   You’ll be given the tools required to build your own
surface mount projects, and during the workshop, you’ll work on
assembling your own Open Balloon CPU (A design of LVL1′s own White
Star Balloon Team).  You’ll solder 0805 Resistors and Capacitors, 1206
LEDs, and TQFP Microcontrollers, among others.  You’ll learn about the
packages  which can be hand soldered, and the packages which cannot,
along with the techniques required to assemble a working board.

At the end of the workshop, you’ll walk out with the knowledge and
skills required to build any reasonable surface mount project, along
with your own Open Balloon CPU.  These tools include small-gauge
solder, flux, non-magnetic tweezers, and a magnifying loupe.  The Open
Balloon CPU you’ll be assembling is a VERY general purpose sensor
platform, which can be used for a variety of projects which aren’t
related to Balloons or UAVs whatsoever.  Aside from the form factor of
the PCB, everything about the electronics design is generalized for
whatever development the user sees fit.  We will be outfitting the
Balloon CPU with a temperature sensor and Microcontroller, along with
all the passive components required to burn code onto the chip.  If
desired, workshop attendees may add additional sensors (a Real Time
Clock and/or a Barometer) for additional cost.

If you can read newsprint, and have a reasonably steady hand, you can
solder surface mount components!  We will also be doing demonstrations
of hot-air soldering and hotplate reflow soldering, to provide a small
taste of even more advanced soldering techniques.  We can provide
soldering irons, but if you would prefer to bring your own, feel free.
We also recommend you bring a laptop.  If you’ve got an FTDI cable
and AVR programmer, you can start hacking at your balloon CPU
immediately!

For a preview of the skills we’ll be teaching, watch this Youtube
video: http://www.youtube.com/watch?v=3NN7UGWYmBY

Note:  If we do not fill at least 12 seats by November 10th, 2010, the
workshop will be cancelled, and all tickets will be refunded.  Sign up
early, and sign up often!  Any questions, feel free to send them to
bradluyster (at) gmail.com

Sign up early, and sign up often!  Seating is limited.  Buy tickets at eventbrite: http://www.eventbrite.com/event/1000984973

IEEE Soldering Workshop

LVL1 and the IEEE Louisville Student Section are happy to announce that LVL1 will be hosting the University of Louisville IEEE and their soldering workshop.

This soldering workshop will take place at 1PM on October, 16th, at LVL1 (814 E. Broadway).  This workshop will bring in 15 Electrical Engineering students from the University, with 5 walk-in seats held for the LVL1 community.  These seats are first-come, first-serve, and the cost will be $10.

Students in this workshop will be soldering together a small variable frequency sound generator based on a 555 timer IC.  Students will learn basic thru-hole soldering skills, wiring components to perfboard.

The IEEE Louisville Student Section is a University Student Organization which serves as a professional and social network for Electrical Engineering students at the University of Louisville.

Fabbing PCBs in China for Fun and Profit

For the White Star Balloon project, one immediate need was for an extensible Main Flight Computer platform.  In order to facilitate development, a completely modular design was needed.

In three weeks, we went from this

To This

 
 
 
 
 
 
 
 
 
In brief, this board uses the I2C bus to communicate with multiple slave modules and sensors in order to accomplish the task of managing our balloon’s flight.  More information can be found at our wiki.

To fabricate these PCBs, we chose Gold Phoenix, located in Hubei, China.  They offer some really incredible deals on PCB manufacturing, including $100 for a 2-layer board, 155 Square Inches, 5 day turnaround + 3 days shipping.  We chose this fabrication house since Sparkfun uses them for their own products, as well as BatchPCB services.

Much more below the break.

Read the rest of this entry »

Fun with the LOLShield

We had a fantastic weekend at LVL1. Not only was LVL1 at an awesome Actors Theater event, we also had some important visitors at the space on Saturday! On Saturday, Mitch Altman (of TV-B-Gone fame) and Jimmy Rodgers (of LOLshield fame) presented a soldering workshop. There must have been 50 people around! Also Matt Mets and Dale Dougherty were here from Make Magazine. Big thanks to Mitch, Jimmy, Matt and Dale for being part of the LVL1 experience. Our doors are always open to you!

During the soldering workshop, I built at LOLShield. Nice kit – lots of LEDs to solder. Jimmy was really good at making his LEDs come out in neat little rows – mine, not so much. Here is my video

I came upon this post and decided to make an animated LOLShield LVL1 logo. I had to download python 2.6 and the PIL library and the script ran perfectly. I created an animated gif using Gimp. Set up an image to be 9X14 in grayscale. Then draw your picture (zoomed in) and animate it using multiple layers. When you save as a gif, Gimp will make the layers into a animated gif. It is not hard. Here is my gif…

It is tiny! Next run the script in the command line and then cut and paste the code. Here is the Arduino program I am using.


/*
Basic LoL Shield Test

Writen for the LoL Shield, designed by Jimmie Rodgers:

http://jimmieprodgers.com/kits/lolshield/

This needs the Charliplexing library, which you can get at the
LoL Shield project page: http://code.google.com/p/lolshield/

Created by Jimmie Rodgers on 12/30/2009.
Adapted from: http://www.arduino.cc/playground/Code/BitMath

History:
December 30, 2009 - V1.0 first version written at 26C3/Berlin

This is free software; you can redistribute it and/or
modify it under the terms of the GNU Version 3 General Public
License as published by the Free Software Foundation;
or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include //AVR library for writing to ROM
#include //Imports the library, which needs to be
//Initialized in setup.

int blinkdelay = 100; //Sets the time each frame is shown

/*
The BitMap array is what contains the frame data. Each line is one full frame.
Since each number is 16 bits, we can easily fit all 14 LEDs per row into it.
The number is calculated by adding up all the bits, starting with lowest on
the left of each row. 18000 was chosen as the kill number, so make sure that
is at the end of the matrix, or the program will continue to read into memory.

Here PROGMEM is called, which stores the array into ROM, which leaves us
with our RAM. You cannot change the array during run-time, only when you
upload to the Arduino. You will need to pull it out of ROM, which is covered
below. If you want it to stay in RAM, just delete PROGMEM
*/

uint16_t BitMap[][9] PROGMEM = {
{ 16382 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 8191 , },
{ 16381 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 12287 , },
{ 16379 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 14335 , },
{ 16379 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 15359 , },
{ 16375 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 15359 , },
{ 16367 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 15871 , },
{ 16351 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16127 , },
{ 16319 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16255 , },
{ 16255 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16319 , },
{ 16127 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16351 , },
{ 15871 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16367 , },
{ 15359 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16375 , },
{ 14335 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16379 , },
{ 12287 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16381 , },
{ 8191 , 8193 , 10501 , 11525 , 10581 , 10581 , 11053 , 8193 , 16382 , },
{ 16383 , 1 , 10501 , 11525 , 10581 , 10581 , 11053 , 8192 , 16383 , },
{ 16383 , 8193 , 2309 , 11525 , 10581 , 10581 , 11052 , 8193 , 16383 , },
{ 16383 , 8193 , 10501 , 3333 , 10581 , 10580 , 11053 , 8193 , 16383 , },
{ 16383 , 8193 , 10501 , 11525 , 2388 , 10581 , 11053 , 8193 , 16383 , },
{ 16383 , 8193 , 10501 , 11524 , 10581 , 2389 , 11053 , 8193 , 16383 , },
{ 16383 , 8193 , 10500 , 11525 , 10581 , 10581 , 2861 , 8193 , 16383 , },
{ 16383 , 8192 , 10501 , 11525 , 10581 , 10581 , 11053 , 1 , 16383 , },
{18000}
};

void setup() {
LedSign::Init(); //Initializes the screen
}
void loop() {
DisplayBitMap(); //Displays the bitmap

}

void DisplayBitMap()
{
boolean run=true; //While this is true, the screen updates
byte frame = 0; //Frame counter
byte line = 0; //Row counter
unsigned long data; //Temporary storage of the row data

while(run == true) {
for(line = 0; line < 9; line++) {

//Here we fetch data from program memory with a pointer.
data = pgm_read_word_near (&BitMap[frame][line]);

//Kills the loop if the kill number is found
if (data==18000){
frame = 0;
data = pgm_read_word_near (&BitMap[frame][line]);
//run=false;
}

//This is where the bit-shifting happens to pull out
//each LED from a row. If the bit is 1, then the LED
//is turned on, otherwise it is turned off.
else for (byte led=0; led<14; ++led) {
if (data & (1< LedSign::Set(led, line, 1);
}
else {
LedSign::Set(led, line, 0);
}

}

}

//Delays the next update
delay(blinkdelay);
frame++;
}
}

I had to adjust the code to keep it from blinking at the end of the animation.

Upcoming Events

Loading...

814 East Broadway

Photos