TROOPERS conference badge

  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.
  • warning: Creating default object from empty value in /home/jeffreygough/drupal4/sites/warrantyvoidifremoved.com/modules/spam/spam.module on line 488.

Electronic badges are all the rage at IT security conferences these days. I think DEFCON started it all with badges made by Joe Grand, but there have been many others, like the Sputnik RFID tags at 25C3, the expandable bunny badges at Easter Hegg, Munich, by lilafisch and friends, and Travis Goodspeed's badge for The Next Hope.

I created 210 interactive badges for the TROOPERS11 IT-sec conference in Heidelberg last month. They feature some ethereal vintage vacuum glassware - IN-16 nixie tubes made at the Reflector factory in Saratov in the former USSR in 1989. I purchased them new-old-stock from some handy guys in Lithuania.

A video of the badge in action:


 

Each conference attendee starts on zero. As they unlock achievements at the con - like sending postcards to their families, meeting the speakers, unlocking the secret in the badge, attending my SMT soldering workshop, etc, attendees level-up. Those who reached the highest levels were entered into a prize draw to win hacker goodies. I designed this levelling-up concept to connect with the central themes of the TROOPERS conference - personal progression, education, and becoming better IT security professionals. Florian did an amazing job of weaving the badge and the game concept into the very fabric of the conference. 

The badge hangs around the neck from a CAT5 cable, rocking the network security image. Red for the speakers, green for everyone else. Here I am wearing the bare, prototype PCB. Have you any idea how difficult it is to find 750mm CAT5 cables? It's quite difficult.

As well as being the LANyard (sorry) the cable functions as the power switch, levelling-up mechanism, programming interface and debug output (and attack vector for intrepid hardware hackers!). When an attendee unlocked an achievement, he took his badge to the information desk where one of the organising staff would plug in a special dongle to update his score. The dongle is simply a TI Launchpad (MSP430G2231) with a CAT5 cable soldered on, running some custom firmware to transmit a magic byte over SPI to the badge.

The batteries and electronics are on the back of the badge. 

Design materials

You can download the design materials here . The hardware is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. The firmware is licensed under the GPLv3 . If you just want a quick look at the schematic, it's available separately here .

Circuit design

The badge is powered from two AA batteries. The nixie tube uses most of the power, so I could basically trade nixie shininess for battery life. I chose a gentle fade-in-fade-out animation, with the duty cycle set for around 40 hours of use. The output voltage of an alkaline cell decreases nearly linearly as it is discharged. Even when it reaches 0.9V or less it still contains a decent amount of energy. To make full use of the energy in the battery the badge must work from a supply voltage of 1.8V or less. The nixie tube needs around 150-170V at 1.8mA. I use an MCP1640 DCDC to boost the battery voltage up to 5V to power the low voltage electronics, microcontroller, etc. Then I use a microcontroller-based DCDC to get from 5V up to an adjustable voltage between 0 and 200V. It's quite difficult to get from 5V to 150V efficiently and cheaply with a standard boost topology, so I use a flyback topology with a small transformer.

Whilst small, high performance, SMT inductors are completely ubiquitous, similar transformers are not. This is due to low industrial demand. Camera flash circuits (which, just like my nixie supply, must step from battery voltage to 150-300V) are about the only application for small transfomers. They are only made by a few large companies, and only leave the East inside cameras. I got mine from Tokyo Coil Engineering, and I really owe them a favour! They usually sell in enormous volume to people like Sony and Casio. 

I used an ATmega48 because it was the cheapest microcontroller around with enough timers, IO and ADC channels. I don't really like AVR's. Their fuse system is a real pain in the arse (fuses in general are a pain in the arse) and they have about 10 different proprietary programming and debugging interfaces. But hey, people seem to like them, and the price was right! The AVR produces a PWM signal that switches the FET on the primary side of the transformer, and the voltage is boosted on the secondary side both by the turns ratio and inductance of the transformer. The voltage is attenuated and buffered, and fed back to the AVR's ADC. The firmware measures the high voltage supply via this attenuation, and adjusts the PWM setting using a PID control scheme. The PWM output is capacitively coupled into the FET gate so that the FET doesn't blow up if the AVR crashes. The efficiency is pretty good; 75-80% depending on voltage setting, etc. 

Instead of using a resistor to limit the current through the nixie tube, I used a 1.8mA active current source. I designed it this way with the intention of using a high voltage to strike the neon then reducing the voltage to minimise power dissipated in the current source. Quite an elegant idea, I thought, but I ended up manipulating the DCDC voltage to fade the nixie in and out, rather than dimming it with another PWM channel. So if anything, the current source was probably a slight hindrance because it made the nixie brightness much less sensitive to supply voltage. Never mind, it all turned out nicely in the end!

The 12 individual nixie cathodes (0-9, left and right decimal points) are switched by high voltage NPN transistors..

The speakers' badges have sound-activated LED's. An electret microphone captures the sound, and it's amplified and fed to the AVR's ADC. Foolishly I biased the mic directly from the 5V rail, which turns out to be pretty noisy when the nixie is at full brightness. I ended up writing a horriffic firmware workaround to dynamically adjust the microphone gain based on the nixie voltage. It worked fairly well, but the sensitivity is still low when the nixie is bright. 

The CAT5 connectors expose the ISP programming interface for flashing the AVR, the SPI port, which is used to increment the score, and a 5V UART which can be used for live debug, etc.There's also a capacitive touch button hidden in the ERNW logo. 

Some lovely graphs

I was, as usual, working right up to the deadline for this project, and ended up writing a lot of the firmware in Heidelberg. I wanted to work around the microphone noise problem, and suspected that I could reduce the noise by improving the high voltage control scheme. Initially I was using a very rough control scheme that either incremented or decremented the DCDC PWM value depending on whether the voltage was below or above the desired setpoint). Since one PWM step makes a significant impact on the output voltage, the whole thing was pretty nasty - too much oscillation when the setpoint was low, and failure to actually reach the setpoint when it was high for only a short period. I decided to hunker down in my hotel room, get the badge to stream live data out over the UART, and plot some graphs in python to see what was really going on.


My original, crappy, control scheme. The green trace is the DCDC output voltage. The red trace is a moving average of this voltage to take out a bit of noise. The setpoint (desired voltage) is in blue, and the value of the PWM signal delivered to the FET is shown in turquoise. The output voltage roughly follows the setpoint, but it is very wobbly when the setpoint is low, and can't quite keep up when it is high.

Note I am ramping the setpoint up and down to get the nixie to fade in and out.The change in gradient near the top of the peak is deliberate - it makes the fading look more consistent to the human eye.

Please ignore the x axis label. It isn't actually graduated in seconds. This whole graph probably shows about 5 seconds of data, not several hours!

  The PID control scheme is a dramatic improvement. The output voltage (green) tracks the setpoint (blue) perfectly. To achieve this, the PWM value (turquoise) is being adjusted in a much more subtle way than before. The red trace shows the error (difference between the true output voltage and the setpoint).
  Next I worked on the microphone noise cancellation. The blue trace is the microphone voltage (recorded in silence). Note the "blob" of noise when the nixie voltage (red) is high. The green trace is a very long moving average used to establish the DC level of the microphone reading. The turquoise trace shows the PWM values being delivered to the FET. I used this signal as the basis of the cancellation function because its shape is very similar to the noise "blob" in the microphone data..
  Here are the results. The blue trace is the input, as before.The yellow trace is the processed signal. On the left I was silent. The DCDC-induced noise "blob" is successfully filtered out, but speech (right half) is largely passed through. Sensitivity is pretty crap when the DCDC voltage is high, but it's the best I can do without a hardware fix!
   

Firmware design

The firmware is written in C, compiled under linux with avr-gcc, and flashed to the badge with avr-dude. I use the AVR Dragon programmer, but there are other options available. At the con, Kevin Redon dumped the firmware binary out using a Bus Pirate, made some modifications, and pumped it back in. He also scored himself an instant 9 by editing the EEPROM image. Respect. Several other guys performed some simple hardware hacks too, shorting segments on, etc., but Kevin's work was the most impressive I saw.

If you're a masochist, you can also  debug the AVR over Debugwire using avarice and gdb. It's unbelievably flaky, though.

The firmware is highly modular and fairly self-explanatory. It is largely interrupt based, making extensive use of the timer peripherals.

Hacking area

Lots of people asked me about this. It's just an empty bit of board with some 0.1" spaced through hole pads and 0.05" spaced SMT pads where you can solder on your own components. The conference attendees are mostly software guys. I wanted to give them a platform that is really easy to hack so that those with budding hardware hacking interests have a low barrier to entry. For maximum flexibility, no electrical connectivity is provided. You can just use wire. I also broke out every pin of the AVR to a pair of through-hole solder points for maximum hackability. So say you want to make your badge into a clock, you could solder a crystal onto the AVR's clock pins. Or if you want to add some radio functionality you could solder your radio chip onto the hacking area, and wire it up to the AVR. Go nuts - totally freeform hacking space.

Shock hazard

The high voltage section is insulated with heatshrink sleeving and self-levelling silicone encapsulant (great stuff, by the way). If you dig your way through it is possible to get a mildly painful shock, but there isn't enough energy stored in the DCDC to do you any harm. Don't take my word for it, though. If you're ancient / part cyborg / whatever, I wouldn't push your luck!

Manufacturing the badge

That was quite some undertaking! I outsourced the manufacture and assembly of the PCB's, of course, but I placed the nixies myself. All 210. This entailed trimming the nixie legs to the right length, soldering all 13 of them to the PCB (6 on the front, 7 on the back), adding heatshrink sleeving and insulating the finished item with silicone. I made some lovely jigs to process the nixie tubes, cut precise lengths of heatshrink and hold everything in place during soldering. Check out these videos:

 


 


 


 

 A closeup of the assembly jig. The perspex assembly (rear) holds the nixie perfectly centred within the cutout in the PCB. The spring steel, aluminium and FR4 assembly (front) clamps the legs down onto the PCB, leaving both of my hands free to solder.

It turns out that 210 is quite a lot of things.

So if you're the lucky owner of a TROOPERS badge, I hope this information inspires you to hack it to do something new! At the very least, please take care of your nixie tube! They are a scarce resource. They haven't been manufactured since the early nineties.

I held a little SMT soldering workshop at the con, where attendees could upgrade their badge to speaker status by soldering on the extra LED's, resistors and microphone. Someone remarked that it was probably the most romantic soldering workshop ever! (Thanks to Insinuator for the photo).

Once again, many thanks to Florian, Enno, Daniel and all at ERNW - thoroughly enjoyed it!

Please ask questions in the comments / by email / twitter, and I'll help you out. If you're running your own con, and would like some similarly insane badges, give me a shout.

Have a look at my flickr account / youtube channel for more media.

categories [ ]

Warranty Void if Removed | Collected technological projects

Hey very interesting blog!

Warranty Void if Removed | Collected technological projects

I think the admin of this site is in fact working hard in support of his web page, as here every stuff is quality based material. Feel free to surf to my weblog ... gafas de sol Ray Ban outlet

Warranty Void if Removed | Collected technological projects

I really like your blog.. very nice colors & theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I'm looking to design my own blog and would like to know where u got this from. thank you Also visit my web page :: Streamlight Flashlight Reviews

Warranty Void if Removed | Collected technological projects

Hey there, I think your site might be having browser compatibility issues. When I look at your website in Ie, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, superb blog! My site - PS4 Bundle Reviews

Warranty Void if Removed | Collected technological projects

Hi there, I log on to your blog daily. Your writing style is witty, keep up the good work! Also visit my web page - design T shirts

Warranty Void if Removed | Collected technological projects

Hi there! This post couldn't be written any better! Reading this post reminds me of my previous room mate! He always kept talking about this. I will forward this page to him. Pretty sure he will have a good read. Thank you for sharing! My web page ... pen drive 8gb lowest price

Warranty Void if Removed | Collected technological projects

Vous cherchez acheter des comptes Twitter qui disposent déjà de l’ancienneté mais egalement des followers ? Ca tombe fortement bien www.ghstools.fr bénéficie dorénavant d’une page qui offre la possibilité d’acheter des comptes parmi le stock de compte Twitter disponible. chaque comptes peuvent être construit avec des IP diverses qui peuvent être utilisable si vous gérez vos comptes avec ghs tool. Ils possèdent pour la plupart un avatar, un background, une présentation, une ville et/ou un lieux. Il peuvent être en outre validé par courriel et aussi parfois même par téléphone. Also visit my web blog ... content spinning checker

Warranty Void if Removed | Collected technological projects

Have you ever thougtht about including a littloe bit more than just your articles? I mean, what you say is valuable and all. But think of iff you added slme great graphics or viceo clips to give your posts more, "pop"! Your content is excellent but with images and clips, this website could undeniably be one of the greatest in its field. Goood blog! Here iss my webpage - Gia

Warranty Void if Removed | Collected technological projects

Howdy! I could have sworn I've been to this blog before but after going through many of the articles I realized it's new to me. Anyhow, I'm certainly delighted I discovered it andd I'll be book-marking it and checking back frequently! Have a look at my page; Long distance movers San Diego (Nadine)

Warranty Void if Removed | Collected technological projects

This a?ticl? is truly a pleasant one it helps new net use??, who are wishing for blogging. my web-site: wordpress premium

Warranty Void if Removed | Collected technological projects

For anyone looking to build a home in such a community, it is important that they feel that the larger picture, including the overall the goals and intentions so you may live in a community that is in alignment with their personal goals and values. If something is broken then the landlord has to pay for it. There are different types of carpets based on the stuff which it is made from. Also visit my web page ... aerolitedurban.blogspot.co.za

Warranty Void if Removed | Collected technological projects

Thanks , I have just been looking for info approximately this topic for a while and yours is the best I have came upon so far. But, what in regards to the bottom line? Are you certain concerning the supply? my website ... cheap Steven Jackson jersey

Warranty Void if Removed | Collected technological projects

Good info. Lucky me I ran across your site by accident (stumbleupon). I've book-marked it for later! My weblog ... Sex web cam

Warranty Void if Removed | Collected technological projects

Hi there! I simply would like to give you a big thumbs up for the great information you have got right here on this post. I am coming back to your web site for more soon. My weblog :: cheap 12 Fan jersey

Warranty Void if Removed | Collected technological projects

Heya are using Wordpress for your blog platform? I'm new to the blog world but I'm trying to get started and create my own. Do you need any coding knowledge to make your own blog? Any help would be greatly appreciated! Feel free to visit my website: great site

Warranty Void if Removed | Collected technological projects

R?ally no matter iif someone do?sn't understand afterward ?ts u? to ot?er viewers t?at t?ey ?ill assist, so here it ha?pens. Also visit my website droni professionali usati ? buon rezzo (Barney)

Warranty Void if Removed | Collected technological projects

We will provide a short list of handmade decor and gift ideas as we continue to approach the holidays. If something is broken then the landlord has to pay for it. Plan it with a goal in mind and design this space with ample cabinetry, cubbies, benches,hooks and nooks - to maintain a sense of order within the space. Here is my website; Aerolite Insulation

Warranty Void if Removed | Collected technological projects

Hello! Someone in my Myspace group shared this website with us so I came to give it a look. I'm definitely loving the information. I'm bookmarking and will be tweeting this to my followers! Outstanding blog and wonderful design. Feel free to visit my blog post :: google mobile settings for google apps account

Warranty Void if Removed | Collected technological projects

Hello would you mind stating which blog platform you're using? I'm planning to start my own blog in the near future but I'm having a tough time choosing between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then most blogs and I'm looking for something completely unique. P.S Sorry for getting off-topic but I had to ask! my web-site; rdty

Warranty Void if Removed | Collected technological projects

En el momento en que hayas llenado el cuenco que has escogido con el agua y el vinagre blanco, introduce en su interior una hoja de papel de periódico y escúrrela para que no gotee. Visit my weblog - Carmon

Warranty Void if Removed | Collected technological projects

Real clear internet site, regards for this post. Here is my blog power washing ct

Warranty Void if Removed | Collected technological projects

hey there and thank you for your info - I’ve certainly picked up something new from right here. I did however expertise a few technical issues using this site, since I experienced to reload the website a lot of times previous to I could get it to load properly. I had been wondering if your hosting is OK? Not that I'm complaining, but sluggish loading instances times will sometimes affect your placement in google and can damage your high-quality score if advertising and marketing with Adwords. Anyway I’m adding this RSS to my email and can look out for a lot more of your respective fascinating content. Make sure you update this again soon.. my page ... power washing ct (earlspowerwashing.com)

Warranty Void if Removed | Collected technological projects

??llo to ??ery , for the reason t?at I am really keen of reading t?is webpage'? post to be updated daily. It consists ?f good material. ?lso visit m? ?omepage :: growtopia hack Apk" Alt="growtopia hack no survey 2015

Warranty Void if Removed | Collected technological projects

Visit my blog post; clash of clans hack

Warranty Void if Removed | Collected technological projects

Po?yczka bez za?wiadcze? zarobkach to szybka i bezpieczna propozycja dla wszystkich osób spodziewaj?cych si? w szybkim tempie ?rodków pieni??nych. my homepage :: kredytynakonto.pl

Warranty Void if Removed | Collected technological projects

Please let me know if you're looking for a writer for your site. You have some really good posts and I think I would be a good asset. If you ever want to take some of the load off, I'd really like to write some material for your blog in exchange for a link back to mine. Please shoot me an e-mail if interested. Thanks! Also visit my web-site; duplicated jerseys

Warranty Void if Removed | Collected technological projects

For anyone looking to build a home in such a community, it is important that they feel that the larger picture, including the overall the goals and intentions so you may live in a community that is in alignment with their personal goals and values. If something is broken then the landlord has to pay for it. They will feel relaxed in your office, if the quality of the indoor air in your office is awesome. Have a look at my webpage :: Ethel

Warranty Void if Removed | Collected technological projects

In a nutshell, Garcinia cambogia drugs are a secure and natural method to shed extra pounds without harming your body. Here is my webpage :: Grancerina

Warranty Void if Removed | Collected technological projects

This website was... how do you say it? Relevant!! Finally I've found something which helped me. Thanks! my weblog Jamea Al Kauthar

Warranty Void if Removed | Collected technological projects

Definitely believe that which you stated. Your favorite justification appeared to be on the web the simplest thing to be aware of. I say to you, I definitely get annoyed while people consider worries that they just don't know about. You managed to hit the nail upon the top and defined out the whole thing without having side effect , people could take a signal. Will likely be back to get more. Thanks Review my blog post ... deal (adayroigiamgia.com)

Warranty Void if Removed | Collected technological projects

Excellent way of explaining, and good post to take information about my presentation topic, which i am going to convey in university. my site - lords mobile hacked, Veola,

Warranty Void if Removed | Collected technological projects

Porno cerb - stricat aditiv Motor Ultra Pro Shop Engine Extremely imaginea si prin care apa putea sa fie simplu.

Warranty Void if Removed | Collected technological projects

Paciente deve pesar bem se quer operar. Também visite meu blog postam João Leonardo

Warranty Void if Removed | Collected technological projects

Thank you for every other informative blog. Where else may just I am getting that type of info written in such an ideal method? I've a venture that I am simply now working on, and I have been at the glance out for such information. Feel free to visit my web site ... GC Trim Fast Garcinia

Warranty Void if Removed | Collected technological projects

Great info. Lucky me I came across your blog by accident (stumbleupon). I've book-marked it for later! Take a look at my webpage Nike Air Max Baratas

Warranty Void if Removed | Collected technological projects

Greetings! I know this is kinda off topic but I was wondering if you knew where I could find a captcha plugin for my comment form? I'm using the same blog platform as yours and I'm having trouble finding one? Thanks a lot! Review my web-site - Forskolin Rapid Diet weight loss system

Warranty Void if Removed | Collected technological projects

Merely a smiling visitant here to share the love (:, btw outstanding design and style. Here is my web page; Pandora Charms Sale Clearance

Warranty Void if Removed | Collected technological projects

Yes! Finally something about Jamea Al Kauthar.

Warranty Void if Removed | Collected technological projects

I go to see every day some web pages and websites to read articles, however this web site offers quality based articles. Feel free to surf to my webpage Jamea Al Kauthar

Warranty Void if Removed | Collected technological projects

There are several options being applied that features chest glitch and also a model that requires no verifications or survey to complete. Here is my site: clashroyalehack

Warranty Void if Removed | Collected technological projects

Hi there! This post could not be written any better! Reading this post reminds me of my good old room mate! He always kept talking about this. I will forward this article to him. Fairly certain he will have a good read. Many thanks for sharing! Also visit my web page: Click here

Warranty Void if Removed | Collected technological projects

Bozzo, Danke für diesen informativen Beitrag! Habe ich mit sehr großem Interesse gelesen und konnte durchaus ein paar neue Eindrücke daraus gewinnen. Ist grundsätzlich ein sehr interessantes Thema, zu dem ich mit Freude noch mehr lesen würde. Planst du zusätzliche Ausarbeitungen zu diesem Themenkreis zu schreiben? boxspringbett mit verstellbarem kopfteil schönen Grüßen aus Heinsberg - Dylan!

Warranty Void if Removed | Collected technological projects

Besten Dank für deinen tollen Beitrag. Ich habe deinen Weblog schon seit einiger Zeit im Newsfeed abonniert. Und heute musste mich mal zu Wort melden bzw. mich mal bedanken. Mache genauso weiter, freue mich schon auf die nächsten Beiträge

Warranty Void if Removed | Collected technological projects

I pay a quick visit everyday a few sites and blogs to read content, but this webpage provides feature based posts. Feel free to surf to my weblog: https://www.spreaker.com/user/choicesstoriesyouplay

Warranty Void if Removed | Collected technological projects

Tremendous things here. I'm very happy to peer your article. Thanks so much and I'm having a look ahead to contact you. Will you kindly drop me a mail? Feel free to visit my page; khóa h?c làm d?u x? handmade

Warranty Void if Removed | Collected technological projects

I go to see every day a few websites and blogs to read articles, however this web site presents quality based articles. Feel free to surf to my weblog :: continue reading this..

Warranty Void if Removed | Collected technological projects

Hi to every single one, it's genuinely a pleasant for me to pay a visit this web page, it includes important Information. Feel free to surf to my homepage: blog create process

Warranty Void if Removed | Collected technological projects

Qual?ty content is thhe secret to invite the viewers to pay a visit the web s?te, that's what this web page is providing. Feel free to visit my website ... mua tra day tui loc

Warranty Void if Removed | Collected technological projects

This site was... how do you say it? Relevant!! Finally I have found something which helped me. Thank you! Also visit my site Yoga Blocks Gaiam

Warranty Void if Removed | Collected technological projects

So there is really a large opportunity of developing money together with the online business. You can go for your latest Nokia X6 contract deals through internet on various internet shopping websites. The Vivaz Red carries a built in video wireless ip camera review boasting a really impressive 8 mega pixels. Explore mode does just what we would expect; Tread Based Roborover navigates throughout the room autonomously although it avoids running into objects. Men and ladies are needy and so they're now prepared to go to intense measures despite the fact that that indicates robbing from a manager or company staff, robbing a house, and in many cases more.