Shrapnelly – 1 lb Antweight Combat Robot

This is my first ever combat robot! 454 grams (1 lb American Antweight class). It has a spinning drum weapon.Body is made of Garolite, with titanium skirts mounted on hinges (parts are cut on my Nomad 883 Pro, and some 3D printing). The drum weapon is CNC lathed aluminum with a brushless motor inside. The electronics is all custom built, utilizing the 802.15.4 radio integrated in the ATmega256RFR2.

frontleftforward

3d

Want more details? Continue reading

Voltage Divider Resistor Chooser

This is a special resistor voltage divider calculator. You tell it what is the maximum expected input voltage and the maximum desired output voltage, and a list of all the resistors you already own, and it automatically picks the two resistors you should use. This is useful because it means you don't have to buy a specific resistor for a project, and you don't have to calculate for every single resistor you own. Continue below to use Continue reading

Boycott Samsung

Samsung TVs analyzes what you watch and serves you ads based on it. They actually put image and sound recognition software in the TV, use it to match what you are viewing against a database, and serve you ads based on what you are watching. We are talking about showing you ads on $1000+ TVs that you paid for, and that revenue goes to Samsung, not the content creator.

Please do NOT support Samsung, stop buying their shit

If you do have one of these TVs, they might not even start showing ads until AFTER THE RETURN PERIOD HAS EXPIRED, so you can’t even refund it. Next thing you know, Samsung cameras and phones will start serving ads based on your location or the picture you took. Maybe that McDonalds logo in the background of a picture you took will become automatically replaced by KFC someday.

ces2016_sign_720

CES 2016

I went to CES 2016 in Las Vegas. This is my second time visiting CES, last year I made this post (CES 2015) about it too.

This year is a little underwhelming than last year, perhaps its because last year was my first time, and this year is my second time. There are many things that simply remained unchanged, or just slightly improved. Here’s a list of what I found interesting: (continue reading)

Continue reading

3D Printed Cord Wrap Tool for Microsoft Surface Pro 4

If you owned any good laptops, you might have a charger that had a curved shape, and/or a strap to help you wrap the cord. Well… The Microsoft Surface Pro 4 is an amazing computer but it’s charger doesn’t even have a strap. So I’ve decided to solve this problem with 3D printing.

3dmodelchargetinbutnotwrapped (Large)printed (Large)wrapped (Large)

The filament I used is actually black 3mm polyurethane filament, which is both strong and flexible. Printed using my Ultimaker2, upgraded with a Flex3Drive, at 250 degrees C, layer height of 0.2mm, and 200% extrusion.

Funny that the strap would’ve been too long to be printed straight, that’s why I made it squiggly.

The model file is shared as a public model on Onshape here. Go ahead and download it, or even copy it to your own account to make modifications.

3D Printed Dust Skirt for Nomad 883 Pro

I got a new Nomad 883 Pro and it generates a lot of dust. This is going to be a big problem as I need to cut material that have hazardous fibers. I decided to make a dust skirt (aka vacuum skirt or vacuum shoe or vacuum head) so that a vacuum can suck up dust as the machine cuts. I 3D printed this thing, which is partly PLA plastic, and the skirt is 3D printed TPU (polyurethane) filament. The skirt is two layered and the cuts are made in a interleaved pattern so there’s a better seal. 3D printing makes this project really easy, just clean up the print, superglue, and tap the hole for the screw. The vacuum hose is 1.25 inch diameter and it just shoves right in with a perfect fit.

screenshotoverviewsideviewfrontviewbottomview

The CAD files can be downloaded here

Nomad 883 Pro, my first CNC mill

20151111_181603

After getting comfortable with 3D printing, I decided I want to dabble with in-home CNC machines. I decided that I need something powerful enough to cut aluminum, but also precise enough to handle PCBs, and is enclosed so I can keep it in a home environment. I absolutely did not want a machine that’s designed to fit an ordinary router or Dremel. The Nomad 883 by Carbide 3D fit these requirements (link to specs).

I also really wanted to see the machine before I buy. I saw Othermill at RoboGames 2015, and while it seemed nice, it was geared more towards PCB milling. Another choice would’ve been Carvey but it is a Kickstarter that hasn’t started shipping yet. I saw Nomad 883 at the SF Maker Faire 2015, and it really impressed me, perhaps because it was built with all metal structure. The guy at the Nomad booth also hinted that I can cut steel on the next revision of the Nomad 883 (sorry I forgot his name). I picked Nomad 883 because it was more powerful and bigger than Othermill, while smaller than Carvey, and I would get it in around late August.

Long story, but I ended up getting the Nomad 883 Pro version around early November. Keep reading to see more pictures and my first impressions.

Continue reading

3D Printed Micro Match Connector Crimp Tool

I have a project that involves Micro Match connectors. They are similar to IDC connectors, but with a lower profile and a zig-zag pattern.

8_way_Micro_match_IDC_male_on_wire_connector_assembly[1]

I had to crimp one connector onto a ribbon cable, my first attempt using a vice failed miserably, instead of the conductors being forced into the teeth properly, the forces instead crushed the connector. Unlike a IDC connector, which is mostly solid plastic, the Micro Match connectors are pretty hollow, thus weaker.

20151108_123433_norm

Continue reading to see how I solved this problem.

Continue reading

3D Printed Peristaltic Pump

I 3D printed a very durable peristaltic pump. It is capable of pumping very thick liquids at as much pressure as the tube can handle. It is durable because it is printed at 100% infill at high thicknesses and uses steel ball bearings. It is capable of such strength because it is using a massive 12V DC brushed motor that has a 150:1 gear ratio metal gear box, which means several kilograms of torque.

final product20150708_195726 (Large)during printhalfassembledcad viewcadviewisotranslucent.fwcadviewrotor1cadviewrotor2cadviewsidecadviewtopcircuit large.fwgearmotordisassembled

For design files and more details, please continue reading.

Continue reading

3D Printed Battery Recharge Dock for Parrot Rolling Spider

20150902_222523 (Large)

I got a Parrot Rolling Spider for fun. The batteries are 570mAH and the life is under 10 minutes, plus the reviews often mention that the batteries will lose their capacity quickly. Further research into this problem indicated that charging them slowly will alleviate this problem.

I wanted a few spare batteries and a way to recharge them. I decided to DIY a dock for them. I had a handful of spare parts, such as the MCP73831 and plenty of small perfboards. All I needed to do was 3D print something to hold the batteries in place, and this is what I came up with.

More pictures if you continue reading.
Continue reading

Olsson Block Low Temperature Troubleshooting

In my quest to have the best Ultimaker 2 possible, I have installed a Flex3Drive kit and Olsson Block kit.

Recently I have been having issues with inter-layer adhesion. I tried a speed test and would consistently fail them, either due to jamming or inter-layer splits… This is a story of how somebody more experienced in electrical and software engineering tackles a thermodynamics problem.

Bonus: this article contains a picture of my extra power 400W supply for the Ultimaker 2

Continue reading

Ultimate Ultimaker Upgrades 2015q2

After around 100 hours of printing, the teflon coupler above the nozzle of my Ultimaker2 started to deform under heat, causing friction on the filament. Combined with the relatively weak and not-gear-reduced feeder motor, this resulted in a frustrating amount of underextrusion.

So I decided to buy some replacement parts, and some upgrade parts in the process. Obviously I ordered a replacement teflon coupler. Second, I ordered a Flex3Drive kit. Third, I ordered a Olsson Block. After all of these were installed, I can honestly say my printer is now print-and-forget. In 30 hours and 5 filament swaps, I haven’t had any imperfections at all, and the only failed print was due to bad bed adhesion due to the model curling up. I haven’t had to touch the tuning menu once, and I never had to use my extruder floss. Continue reading to learn more about these upgrades and my experience with them. Continue reading

RoboGames 2015

I went to spectate RoboGames 2015. If you didn’t go, WHY THE HELL NOT?!

I live literally a 10 minute walk away so I went both Saturday and Sunday. Since I walked in, I accidentally walked through the back entrance, so I snuck into the pits without a badge 😀 but I did still pay for a ticket after. I got some pictures in the pits, not stuff I see every day.

I put together a highlights video. Actually probably only missed Friday, and missed 4 matches from Saturday and Sunday, I have about 20 GB of video… I’m putting a few up just as teasers but you should really come check out RoboGames next time or buy their DVD when they release it.

The combat is the only event where I could get good video without raising my arms. There were a ton of other competitions, like minisumo, line following, humanoids, soccer, hockey, etc. It really reminds me of the Canadian National Robot Games back in 2007, which I entered as a highschool student. The Canadian competition has long since been cancelled but it’s amazing how alive the Silicon Valley competition is.

Continue reading for more videos and pictures

Continue reading

SD Card Bootloader by Backdoor Code Injection

For various reasons, I decided to try writing a SD card bootloader for my Ultimaker2.

The project is open source and on my GitHub here.

My goal was to install this new bootloader without having physical access to the circuitry. Thus I cannot use a ISP tool and must be done through the bootloader that is already present on the Ultimaker2. The only way to do this is to partition off a portion of application memory region for a secondary bootloader that executes after the original bootloader. But the ATmega2560 has a restriction that prevents anything in the application memory region from modifying the flash memory at all. Overcoming this restriction is what this hack is all about, continue reading if you are interested in learning more.

Continue reading

PS4 Playing NES Cartridges

Update March 2015

This project won 2nd place in this Reddit contest about functional 3D printed projects. Thank you very much to ToyBuilder Labs for being the sponsor.

Questions and Answers

  • Why not use a bigger 3.5″ drive? They can hold much more and cost much less.
    • I can edit the design anytime I want and 3D print it anytime I want, so I will definitely consider it.
    • But I had a few spare 2.5″ drives laying around.
    • The fake cartridge is a funny idea so I did it for the LULz! (and protects the drives)
    • Please note: 3.5″ drives will require an external 12 volt power supply, while 2.5″ drives only require the 5 volts from the motherboard.
  • What parts are needed?
    • #4-40 thread 0.25″ long countersunk machine screws, for holding the hard drives inside the cartridges
    • #4-40 thread 0.5″ long countersunk machine screws, for holding the dock to the cover
    • 0.5″ long nails to hold the SATA connector in place
    • something like this SATA extender, but note that this isn’t the exact same one I used, so you should measure it yourself and edit my files before printing my files
  • How did you connect the cable to the motherboard?
    • This was actually pretty hard, I ended up gluing a popsicle stick to the connector first, and then used the stick to poke the connector inside and into the motherboard’s connector.
    • This can be improved by some sort of 3D printed dummy drive, but I got tired and wanted to wrap the project up.
  • In the picture of the Ultimaker, why do the plastic look a bit rough?
    • Those are failed prints, I only used them for the picture, specifically because the roughness emphasizes the fact that they are 3D printed.
    • The final good prints are so good that you cannot tell that they are actually 3D printed. The Ultimaker is very high quality.
  • Why didn’t you launch the game?
    • I didn’t connect the system to my network, so the PS4 didn’t let me launch them, since they are all digitally downloaded and thus require authorization first
    • Don’t worry, they all work once connected to the internet.
  • I’ve seen something similar before…
    • Adding a hard drive to the PS4 using SATA extensions isn’t a new idea at all, somebody already added 6 TB to it, using a 3.5″ drive, but he used a external enclosure and a external 12 volt power supply.
    • I went to CES2015 and saw Nyko’s Data Bank. I want to make it clear that I started my design a long time before Christmas, and was not inspired or influenced by Nyko
  • Ask me a question, if it is a popular question, I will answer it here.

You want files? Click Here. I hosted the files on YouMagine, and I provided the STEP file format, which you should be able to open with most 3D modeling software. So if you want to change the design for 3.5″ drives, or chose another cartridge shape, you can!

NOTE: the dimensions of the fake NES cartridge I used are not the same dimensions as genuine NES cartridges, so genuine cartridges will not fit in this project, and the fake cartridges will not fit inside a genuine NES deck.

Ultimaker2 Bearing Spool and Bearing Guide Upgrade

This is an upgrade to the Ultimaker2 3D printer for people who have spools that do not fit the original spool holder, and spools that are too tight and thus do not feed smoothly, causing under-extrusion.

It is composed of two assemblies: a replacement for the filament guide and a replacement for the spool holder. Both utilizes ordinary skateboard bearings to achieve smooth rotation. The conical shape of the spool holder allows for any sized spool to be used, easily swapped because it uses a wing nut.

um2 spool holder upgrade angleum2 spool holder upgrade sideum2 spool holder upgrade cross section

um2 filament guide upgrade angleum2 filament guide upgrade sideum2 filament guide upgrade cross section

Files are available on YouMagine. I want to emphasize that I am sharing the STEP files, not just STL, because STL are harder for people to import and modify than STEP files. SolidWorks files are also provided.

The cross section images shows you how to assemble the upgrade parts. The screw diameters are #6 for the filament guide and 5/16″ for the spool holder. Please figure everything else out from the cross section images.

Weekly Report December 20 2014

I have been using my new Aquarium Computer for a week now. It’s performance is great, but that is subjective, because I built it for my own needs and I feel that it meets them perfectly. The circuit I built for it is having problems, I will investigate further.

But I had to take it out of the tank already. I attempted to implement full drive encryption, which required secure boot to be enabled in the UEFI BIOS. Well… long story short, the UEFI BIOS crashed when I tried to save settings and the motherboard stopped booting. The only fix is to use the CMOS reset jumper on the motherboard. So I drained the mineral oil and did exactly that, and I also connected the jumper to some spare wires so if this happens again, I wouldn’t have to drain the oil again.

In the process, I found out that most of the hot glue has come loose. So now I have no fake plants or rocks anymore. I will rebuild the tank again with decorations, but next time I will use epoxy. (although the tank still looks beautiful without any decorations)

I also picked up a Seek Thermal camera. I have some pictures of the Aquarium Computer. Notice that I can see the hot and cold zones of the radiator, and the hot and cold tubing. The tank itself is pretty much one color only, thermal cameras cannot see through the tank, only the temperature on the surface.

img_thermal-2117189312img_thermal-1112600730img_thermal461972647

The Seek Thermal is neat, I’d say it’s worth it. Apparently it’s not the best sensor, but it is the only one for Android right now. I don’t have any real professional uses for it, it’s just a toy for me.

Back to the Aquarium Computer. I noticed many things about the mineral oil. First, make sure you understand fluid dynamics a bit, you want to make sure you are not making the pump work harder than it is. What I mean is, place the outlet tubing in a shallow depth. The hot and cold oil don’t mix well, you can clearly see the temperature gradient visually because they have different refraction index. This means that the cold oil sinks extremely fast, instead of dispersing into the hot oil. I mention this because originally, I aimed my outlet tubing deep at the power supply, but now that I know this fact, I can have my outlet tubing much shallower and just let the cold oil fall onto the power supply. This made the pump work better because there is less pressure at the outlet. Also, hot oil flows much quicker, I noticed that running the radiator without fans will make the pump work better because hot oil flows better.

Also to the people who thinks that I don’t actually need so much RAM: i really need ram

Aquarium Computer

My trusty laptop is showing its age. 8 GB of RAM is not enough for the amount of 3D stuff I do now, and it can’t run the latest games at all any more. Since I got a full time job now (instead of a constantly travelling student), it’s time to get a desktop PC (first PC build, yay). But the process of building a PC is pretty boring, it’s just an exercise of picking out compatible parts for the right price. I decided to make it slightly more interesting by submerging the entire computer in a fish tank full of mineral oil.

UPDATE March 2015, I added a funny naked HDD activity indicator

Some pictures from the build process

20141214_234026gfx cardradiators under deskpcie risertop coverfirst bootdecorationfans

Animated Loop

Short Story (long story later, technical details and stuff):

Intel i7 4790S, Nvidia GTX 970, H97M chipset, Corsair CX600M. Built onto a polycarbonate tray that is then dipped into a fish tank full of mineral oil. Fancy features like bubbling treasure chest, NeoPixel LED strip, oil pump+radiator, temperature monitoring, removable SSD.

(part list? fine… here… these are not the prices I paid but here it is http://pcpartpicker.com/user/frank26080115/saved/HFDmP6)

Comments and questions are welcome, I would love to chat with you!

Reddit posts, please upvote: http://www.reddit.com/r/battlestations/comments/2pdd3q/aquarium_computer_mineral_oil_submerged_details/ and http://www.reddit.com/r/buildapc/comments/2pdeak/build_complete_aquarium_computer_mineral_oil/

Hi Hack a Day visitors, small correction: there’s 32 GB of RAM, I just didn’t put the same item twice in the part list.

News/Updates will be posted at the bottom of this page

Long Story… Continue reading

Q-Bot Tx Module for Taranis

Most micro (palm sized) quadcopters are RTF and comes with a crappy cheap transmitter, and I really want to use my awesome expensive Taranis. I found out that Q-Bot comes with a tiny transmitter module that I can connect to my Taranis.

I didn’t want some ugly thing dangling off of my Taranis so I decided to 3D print a module that will contain the Q-Bot transmitter circuitry and plug into the Taranis’ module bay, which fits “JR” style transmitter modules.

20141115_110602 (Large)
3d
20141115_110254 (Large)

and here is what it looked like before:
original

The 3D files (SLDPRT, STEP, STL) Continue reading

My First 3D Printed Quadcopter

20141102_144912 (Large)20141101_120057 (Large)

3D printed using my Ultimaker2 and many colors of PLA plastic at 100% in-fill. It is my first design, featuring folding arms, tucked away electronics, and anti-vibration mounted flight controller. It is designed to be friendly with FDM 3D printers, employing some special techniques. The frame is extremely strong.

20141101_120023 (Large)3d_screenshot_23d_screenshot_120141029_202031 (Large)

I need more practice. I need to buy a few more propellers and few more batteries as well so I can practice for longer.

Flight controller is a Continue reading

FrSky X4R-SB Smart Port hack and Naze32

Continuing from my previous FrSky X4R-SB hack (read for some context), I really wanted Smart Port telemetry to work with Naze32. I forked the original baseflight firmware and added two key new functionalities:

  • implemented the Smart Port telemetry protocol
  • GPS can be assigned to any serial port (as opposed to only one port)
    • this is important because we are running out of ports
    • I made it possible for GPS to be connected to software/bitbang serial, to free up a hardware UART

please read my fork’s wiki, at this time, I can only test with my limited hardware, more help testing/coding would be appreciated.

Update 10/26/2014: I was asked to make the same contribution to Cleanflight, which I have done today.

The new forked firmware requires a circuit modification on both the X4R-SB and Naze32, see pictures: Continue reading

FrSky X4R-SB S.BUS anti-invert hack

I am building a quadcopter using a FrSky Taranis X9D radio. It came with a FrSky X8R receiver. I wanted to keep my wiring clean by using the S.BUS feature on the FrSky receivers, I purchased a smaller FrSky X4R-SB receiver. The X8R has 8 PWM channel pins and the X4R-SB has 3 PWM channel pins, but if I use S.BUS (which is serial, not PWM), I can access 16 channels using only 1 pin, on both X8R and X4R-SB. The X4R-SB is much smaller, making it more ideal. (do not confuse the X4R-SB with the D4R-II, this is important, D4R-II uses CPPM, not S.BUS)

(update 10/25/2014: a follow up hack for Smart Port)

I want to use a Naze32 flight controller, which is open source and does have code to interpret S.BUS protocol. S.BUS is UART communication but it is inverted and the Naze32’s UART cannot accept inverted input. Some flight controllers, such as the Pixhawk, has a dedicated inverter just to solve this problem, but the Naze32 does not.

The first option is to buy a “S.BUS to CPPM converter” but CPPM is not a serial bus like S.BUS and thus does not have the advantages of being a serial bus. CPPM uses timing, timing needs to be measured (measuring things = possible error) and the signal edges can be affected by capacitance, noise, etc. Also having such a converter means there will be a tiny bit more latency in the system. These two disadvantages are probably too insignificant to notice performance wise. But I still didn’t want to spend another $13 + tax + shipping just to solve a problem that shouldn’t have existed in the first place.

The second solution is to buy an “inverter cable” which is a cable that has a NOT gate inline and then shrink wrapped. Or I can just buy a NOT gate and make the cable myself. I still didn’t want to spend the money. I opted to hunt down the inverter on the X4R-SB circuit instead, and connect a wire to the input of the inverter (labelled as “A” in the datasheet). This provides me access to the un-inverted signal that I can directly connect to the Naze32.

See the pictures below to understand how this hack was done.

identify_r25indentify_inverterinstructions

And just in case I confused you even more, all you need to do is connect a wire to the “A” pin.

I have tested it with Naze32 Rev5 and firmware f4d556c68876ccd5902bddf1cade32f1bb382c9f. Works like a charm.

It is probably possible to perform the same hack on a X8R but the X8R is constructed using two PCBs and the inverter is covered up by one of them. Separating the two PCBs is very difficult and risky.

The Smart Port (I think it’s also called S.PORT) is another inverted serial bus available on the X4R-SB and X8R but it is bidirectional. Since whatever you want to connect to it will need a bidirectional circuit anyways, it is not worth it to perform another surgery on the Smart Port. Also, the Naze32 can use SoftSerial to transmit in an inverted fashion, so a dedicated inverter isn’t even required. (SoftSerial would not work well for taking inputs, but outputs is OK)