Keep up with some of the Laboratory B open source code by joining us on GitHub!
Last weekend Doug whipped together a toy steganography device called "Stegosaurus" [github] -- it will take a PNG image, and using a (very very basic) steganography [wikipedia] algorithm stores a payload in the least significant bits of the color definition of pixels in an image. It's a node.js module, and you can even install it with NPM.
It could use a little improvement if anyone is interested in forking it! It needs some testing with binary files. It needs a way to store the length of the message. And ideally, it'd use a pre-shared key (maybe?) to allow you both: A. define where the payload is hidden in the image, and B. actually encrypt the payload (which is, as of now, unencrypted). Which makes it so it doesn't follow Kerckhoff's Principle [wikipedia].
...Unfortunately every single message is decoded as "Drink more ovaltine" [youtube] (...just kidding. it'll do whatever payload you want)
When Laboratory B got started we were excited about the possibility of other hacker/maker/community workshop spaces starting up and sustaining in Vermont. That's why we created Vermont Hackerspaces Inc as non non-profit designed to help others do great things. The Foundry is a community workshop getting started in the Northeast Kingdom. Building on the grit, and hard work they are going to bring together a community of creators, tinkers, crafter, artist and entrepreneurs. This great community is going to build a great new space for creation and innovation!
On July 7th, Vermont Hackerspaces Inc, agreed to become the Foundry's fiscal sponsor while they get started. The Foundry is looking to develop it's own 501(c)3 but it's a long when from getting going to handling your own books. Check out the website or Foundry's facebook page and Foundry Info Pack for more info.
I made an upgrade to my Lego key ring. Now With USB! Basically, I put a 16G flash drive into some Legos and put them on the key ring.
Here are a couple shots, you can find the whole story here.
tldr? "Life giving bazooka" is an example of an Ethereum contract that represents a pyramid scheme. Check out the scheme @ github. It's called "life giving bazooka" as a knock on multi-level-marketing schemes.
We've been having a lot of fun having some nights where we're chatting up Crytpocurrency, and recently we got together and had a working session taking a look at Ethereum. We got the client up and running, and moments later gdot had a little "banking contract" running, from an LLL (lisp-like-language) tutorial.
Which is awesome... But, I really wanted to write in the "c-like-language" (CLL) -- that's what I tend to get. So, I found Vitalik's got a CLL compiler, but it's pretty alpha. Also, it's made progress to work with PoC4, which isn't released yet. All the main releases of the clients (which you can download), are PoC3 based. So, I went ahead and fixed a few things in his compiler, and I'm maintaining my own branch @ https://github.com/dougbtv/compiler/tree/poc3-compat.
But, to make it easier, I've been maintaining my own pre-processor (inspired by the C pre-processor) that makes a few things a little easier to work with. You can download my cll-preprocessor at github, and it includes submodules that fix the things that I needed to get Vitalik's compiler working properly, especially with PoC3.
So... Where's this pyramid scheme!?! It's also on github! There's quite a bit more information there for you to read about how it works, and instructions to run it if you so please.
I've been working on a Raspberry Pi project and got it running this weekend. This post is about the hardware and the installation. I will post later about how the code works.
I have been using microcontrollers for a long time now. I started in college as part of the program and have never stopped. Professionally, educationally, hobby, I've done projects of all types.
Recently I decided to try something with a Raspberry Pi. It is the next step up, basically being a little computer. This was so I could play with Linux again (it's been years) and do something with a web browser. These are things I don't have experience with and have been interested in learning for some time.
The project I settled on was a monitor for the furnace in my apartment. This monitor will measure temperature(s) and sense if the furnace is running, then log this data. There will be a web interface that will draw graphs of the data on a daily basis. There will also be an LCD screen on the pi so that I can see the current data without needing a web browser.
Part 1: Hardware
The first step was to make sure I could sense whether the furnace was running. My furnace is controlled by a thermostat. A thermostat is a temperature controlled mechanical switch. Mine looks like this (The wire hanging down was added later):
I needed to open this up to see how it worked. So, I pulled off the ring on the front and exposed 3 screws holding it to the wall. I took out the screws and pulled the switch off the wall. I was left with a mounting plate that included a set of screw terminals with a 2 conductor wire attached. This is the wire running to the furnace in the basement that controls the furnace.
The screw terminals were labeled as RH and W. I took out my mult-meter and started doing some measuring.
Open (Furnace off): RH -> W, 25.8 VAC
Closed (Furnace on): RH -> W, 0 VAC @ 95mA
This means that I need to monitor the voltage across terminals RH and W. If voltage is present, the furnace should be off. The 95mA is mostly unimportant because the thermostat is going to stay in place. I just need to make sure the pi doesn’t draw so much current that it turns on the furnace on it’s own. I drew up the below circuit to accomplish this using a rectifier circuit and an opto-isolator fed into GPIO24.
In this circuit, when the thermostat is open, the 10K resistor attached to the terminals limits the current feeding the 4 diodes, which function as a bridge-rectifier. This rectified AC then drives the LED of the opto-isolator. When the LED is lit, is turns on the transistor, shorting GPIO24 to GND with a 1uF cap for smoothing because its an AC signal. When the thermostat is closed, there is no current driving the opto-isolator and GPIO24 is pulled up to to 3.3V by a 100K resistor.
With the furnace monitoring designed, I had to decide on a temperature sensor. Unfortunately, the raspberry pi doesn’t have any built-in analog inputs. This was a little disappointing because it’s a standard feature on most microcontrollers I have used, however this is a computer. After a little research, I settled on a sensor that uses the Dallas 1-wire protocol. This is a serial bus that is similar to I2C. I liked it becuase there is pi support and since it is a bus, it is expandable (multiple sensors) without using more inputs. I found some DS18B20 1-wire Temperature Sensor ICs in a probe package with wire attached on Amazon, a bought a few.
Following the datasheet recommendations, I wired up the temp sensor like this:
The last piece for this was an LCD screen. I did some research and picked a product from Adafruit that has a 16X2 RGB LCD Screen and 5 buttons on a “shield” style board that plugs into the GPIO header on the pi. I ordered one and when it came in, I soldered it together.
After much programming (That will be a future post), I had all the parts working. So it was time to put the unit together. I plugged the LCD screen into the pi, then soldered some wires to the backside of the header-pins on the LCD shield. The other ends of the wires go to some proto-board where I built the schematics pictured above. I then added a 2-conductor wire in parallel to the thermostat and connected the other end to the pi’s “furnace” input. I wired up the Temperature sensor. I mounted it all to a bookshelf and fired it up.
Jesse unveiled the finished product in a previous post, and it does look awesome. Here are some photos and a simplified and incomplete account of how we got there. Disclosure, this took place off-campus of Laboratory B as we do not currently have the tools on-site.
This sign was created by etching a sheet of acrylic and then edge-lightning the result. The etching is basically a shallow cut that causes light in the material to reflect out. The cutting was accomplished using a computer numerical controlled (CNC) milling-machine.
First, we started with a high-res version of the Laboratory B Lightning Bolt (credit to Brenton). This was imported into a program called PartMaster and converted to a .dxf file. From this CAD file, we asked the computer (nicely) to generate G-code. G-code is what we needed to describe to the CNC machine how to move the cutting bit and etch the material. The CNC machine is controlled by a program called Mach3 CNC. This software reads text file containing the G-code and interfaces with the milling-machine to move the XY table and the drill head (Z) in order to accomplish the cut.
The milling-machine we used for this project was... a little too big. We wanted to use the whole 10" x 8" sheet so we used the big machine, but since it's not a router, it is normally used with R8 Collets.... the point is, the chuck we used to hold the etching bit was too short. You can see in this next photos that we couldn't reach the table and had to add some height to the mounting of the acrylic. Once this was done, we "zeroed" the machine. This is a process where we tell the Mach3 software what the location of the material to be cut is, so that it moves everything into the right place at the right time. Then we hit "START" and watched! Action shots follow, complete with my watching through my safety goggles.
I should have been grading lab reports, but instead I made this key holder with some Legos. I screwed some picture frame hooks into a few full-height blocks (2x4, 2x3, 1x4) and attached a large base to the wall. Put some key rings on the Legos, attach the Legos to the base, key holder. My favorite part is that I can add whatever creation I want to the base plate as long as it can sit vertical, which is always true because it's Legos. This is a simple spaceship I put together in a few seconds.
Nothing super awesome happen at Laboratory B last week, lot's of little things did.
- We got a DreamHost account! We haven't cut over to it yet but getting it is super cool!
- Aaron & Charlie completed this cool sign!
- Our hunt for a new space has started! And it's already paying off
- We got a Keurig!
- We can now take donations online --------> right over there!
Also we applied for a tech soup account so hopefully that will come through soon too!
It's a new month and that means new events with Laboratory B.
Laboratory B is currently working to organize a crypto party right in Burlington. This party will be your chance to learn about cryptography, information security and operational security. How to reduce some of the harmed caused by mass surveillance too. Learn about TOR, PGP/GPG, Pseudo-anonymity, TAILS and other super geeky privacy topics.
We are still organizing a location and time but stay tuned because it is coming soon!
2/7/2014: 2600 Meeting
Laboratory B is the primary supporter of the local 2600 meeting if you are interested in hacking and security related events in Vermont, check out the 2600 meeting held the first Friday of every month at 5 o'clock at the Food Court at Burlington Town Square Mall.
2/10/2014: What the Hack? How hackathons & makerspaces are sparking innovation in Vermont
In the past few years we've seen hackathons and makerspaces spread across the state as creative ways to solve community problems and catalyze collaborations across sectors. Join Burlington NetSquared and leaders of these hackathons and makerspaces for an evening of learning, idea generation and reflection on how we can foster lasting multi-sectoral collaborations--and innovations-- through these kinds of events.
If you've participated in one of these events, come share your experiences! And if you want to get involved in one of the upcoming hacks or new makerspaces, here's your chance to ask questions.
Bradley Holt, Code for BTV
Rebecca Roose, HackVT and My Web Grocer
Jesse Krembs, Laboratory B
Nate Herzog, StoryHack
2/12/2014, 7-9pm: Crypto-Currency Night.
A semi-regular gathering of Burlington crypto-currency enthusiasts (Bitcoin, Dogecoin, Litecoin, etc.). Feel free to brings thoughts, schemes, snacks and/or beverages to share... RSVP on Facebook
2/18/2014, 7-9 PM: Learn to solder with us at the Lab.
We'll teach you the basics of through hole soldering with kits from Sparkfun!. If you interested in learning to solder microelectronics please RSVP us at email@example.com
2/26/2014, 7-9 PM: Lock Sport Wednesday:
Generally speaking on the last Wednesday of the month we sponsor Lock Sport Wednesday from 6pm to 8pm. This event is a place for folks who are interested in physical security and locksports to get together. We adhere to the idea of better security through education, and we also follow the law in this matter. Learning how locks works and don't work is not a crime.
On Saturday, February 1st, Senator Sanders will be facilitating a public forum in Montpelier entitled "NSA: Out of Control." It will feature Professor David Cole from Georgetown Law School , and Heidi Boghosian, the Executive Director of the National Lawyers Guild, and, as of the time writing, almost 100 people have RSVPed to the Facebook event.
The event certainly seems like it will be a good opportunity to learn more about the NSA privacy abuses that have flooded the media in the wake of Edward Snowden's revelations, but, beyond that, it offers an ideal opportunity to widely distribute user-friendly privacy tools that allow people to opt-out of the NSA drag-net immediately while Congress figures out how to appropriately respond to the revelations of abuse. The best suite I've found which is easily usable by folks with limited computer literacy is TAILS Linux, a live OS based on Debian that, among numerous other features, is preconfigured to route all internet connections through TOR.
As such, in the next week I will be assembling a few hundred burned DVD copies of the latest TAILS release to hand out to the attendees of Saturday's event. If anyone would like to help defray the cost of DVDs and jewel cases, Bitcoin donations can be sent here: 13qaGsVRjoGHmYnV4RZcugnfxpTXxRkAsL
Additionally, I'll be working on burning and assembling copies at the Lab during public hours on Thursday from 7-9pm; if you want to help with production or with distribution at the event itself, stop in!