Category Archives: Project

Car Heads Up Display Using LED Strip

This is the next step in my mission to make my car function 7 years newer and feel like a jet cockpit.

(click here if the above video isn’t loading)

I wanted a HUD, Heads Up Display to my car. The main purpose is to let me keep my eyes on the road and still be aware of my speed without looking down, hence “heads up”. This idea has been used in fighter jets for decades now.

I do not like any of the other ones on the market today, they all try to do “too much”. I wanted something more simple and elegant.

My design is a simple RGB capable individually controllable LED strip that reflect off my windshield.

I used the “DotStar” from Adafruit Industries, which uses APA102 LEDs. The brain is a Teensy 3.2, which is connected to my car’s CAN bus via a OBD-II connector (the diagnostic port that you can read the engine computer from).

It is programmed to have three different modes: voltmeter, tachometer, and speedometer. The mode switching is “context aware”: When the car is moving, the mode changes to speedometer. If I rev the engine Continue reading

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

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

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.

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

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

Ultimaker2 Improved Filament Feeder

The Ultimaker2 3D printer has a problematic filament feeder mechanism assembly. When the filament is stuck and the feeder motor turns, it can grind away the filament, causing a gouge in the filament. The gouge makes the problem worse since the tensioner bearing will force the gouge into the feeder’s knurled wheel more, causing even more grinding. This jam happens frequently because sometimes even if the temperature sensor reports that the print head hot end has heated up, the plastic hasn’t melted yet and can’t move yet.

The Ultimaker2’s feeder design is both beautiful and disappointing. It is beautiful in the sense that is is symmetrical and compact. If you had a dual extruder, you can use the same feeder mechanism for both feeders, cutting down on manufacturing costs. But it is impossible to disassemble without removing the stepper motor because the same 4 screws that holds the feeder together also holds the stepper motor in place. If you attempt to open the feeder mechanism to clear a jam, the motor will fall off. The motor is also covered by a metal casing so you need to remove the casing as well. This is very annoying.

There is no other way to move the tensioner bearing because the design is so compact and the spring is tight. There is no other way to remove the feed tube either.

What I needed was a feeder mechanism that can be opened up without removing the stepper motor, and also allow the tensioner bearing to be moved out of the way easily. I came up with the following design:


3dscreenshot23dscreenshot13dscreenshot3

Continue reading

Keyboard and Mouse for PlayStation 4 Games (second prototype)

Why did you do this?

I like playing shooter games on PC but my laptop is too weak to play them. Game consoles do not support USB keyboards and USB mouse, they only support gamepads. Gamepad controls are not suitable for shooter games, using a keyboard and mouse is much more comfortable for gameplay.

How does it work?

I designed a circuit that features a microcontroller and USB hub. The keyboard and mouse plugs into the USB hub, and then the microcontroller takes the data from the keyboard and mouse, translates them to the data format used by the PlayStation 4. It does the translation in a way as though the mouse was the right thumbstick, and the keys are mapped to buttons (the WASD keys are mapped to the left thumbstick).








If you want to buy one from me, you can’t, I don’t want to sell anything. If you want to buy something similar from somebody else, try the XIM4 (my top choice), CronusMAX, Venom X, etc. (if there’s another product you would like to see on this list, give me one to try out first, and I’ll add it if it works)

Development Story

Latest News – July 20 2014

I wanted to share this story because I am very happy that I finally managed to get this far! Anybody who is attempting this and thought it was impossible to do can now breath a sigh of relief because it definitely can be done.

I have already accomplished a similar project that worked with a PS3 (UsbXlater), something that connected to the PS3 via USB that translated keyboard and mouse data format to gamepad data format.

Once the PS4 launched, I reversed engineered the USB protocol used by the DualShock, and then attempted the same technique. But… Continue reading

UsbXlater Preview

Hi HACKADAY readers, I have some updates: Progress on UsbXlater, DualShock 4 spoofing

This circuit is a STM32F2 chip with a USB host interface and USB device interface. The original goal of this project is to allow me to play Playstation 4 games using a keyboard and mouse (as opposed to using a gamepad, because the PS3/PS4/Xbox360/XboxOne do not support keyboard and mouse directly in games).

20131101_181657 (Large)20131101_181711 (Large)20131101_181722 (Large)20131101_181730 (Large)20131101_181741 (Large)usbxlater

This device has many possible uses…

Continue reading

theWAVE from iDOC360

Please watch the full video (8 minutes), which explains the project in full.

I designed, built, and programmed almost every bit and piece of this project. I did not design light tube and lens assembly. This project involved a broad range of my skills: electronics, wireless communication, mechanical 3D CAD, thermal design, design for manufacturing, etc. I did this project while still studying in university.

Dentists often use head-mounted lamps, but to operate these lamps, they need to remove their gloves first because their gloves is usually covered with saliva and blood. iDOC360 hired me to make a system that is controlled using hand gestures, so the dentists do not need to remove their gloves to operate it.

Continue reading

Const. Current Dummy Load, Digital + USB

A simple adjustable constant current dummy load, with digital readout and USB data logging.

Inspired by the dummy load made by Dave from the EEVBlog. I decided I wanted one because I work with a lot of battery powered designs and it’d be nice to have a simple way of testing a battery or power supply in terms of capability, capacity, and heat. It features a 2 line voltage and current reading, a rotary encoder as the user input to adjust the current setting, and USB data logging (plus bootloading). There are more neat features, please watch the video.

Here are some pretty pictures: (Imgur Album)

Constant Current Dummy Load, Digital & USB

Continue reading

Frank’s Open Source Code Snippets and Libraries Collection

I have many projects, but some of them are just short code libraries and snippets that I don’t want to allocate an entire blog post for. For more information on each, visit the link and read the “readme” provided.

LufaUsbAspLoader, a USB bootloader that combines LUFA and USBaspLoader, so it can be used in low-speed USB devices

Arduino-UsiSerial-Library, written mostly for Trinket, works for all ATtiny microcontrollers with a USI

Adafruit-Trinket-USB, a small collection of libraries that enable USB capabilities for Trinket, and other ATtiny V-USB projects

Bootloader for Adafruit’s Trinket and Gemma

LED Pocket Watch


This is a LED pocket watch. It has 12 LEDs to show the hour, 60 LEDs to show the minute, and 60 LEDs to show the second. The LEDs are arranged in three rings. There is a button on the top to activate the pocket watch, and a button on the back to change modes and settings.


The battery is a rechargable lithium ion coin cell battery and it is charged from a micro USB connector. The battery life depends on how heavily the pocket watch is used, but if you leave it alone, it is estimated to last several months. There is a low battery indication feature. This pocket watch also feature a buzzer and a vibration motor, which are used for the alarm feature, and the motor causes a short “tick” as each second passes by. The pocket watch is constructed of a PCB, two pieces of laser cut clear acrylic plastic, and a 3D printed casing.

Click Me!! More instructions, pictures, animations, and videos.

Nehebkau, Laptop Controlled Keyboard and Mouse

I got my Raspberry Pi. I do not have an ethernet connection or Wifi dongle available, or an extra keyboard. I don’t have any Bluetooth either. I needed a substitute keyboard to use the Raspberry Pi.

For fun, I designed a little USB device, actually it has two USB devices on a small board in the shape of a stick. Two USB capable microcontrollers are on this circuit. One will connect to the Raspberry Pi, and behave like a keyboard and mouse. The other will connect to my laptop. My laptop will run software that captures keystrokes and mouse events. The laptop will tell the microcontroller what to do, so when I press a key on my laptop, the Raspberry Pi thinks the same key is pressed. (and the same with the mouse)

Continue reading

Our Fourth Year Design Project: ARUCI

We turned my phone into a universal remote that uses augmented reality. We can track the location of objects and identify them in real time, so we can overlay an icon representing the object on the video shown on the touchscreen. Simply click on the object to interact with it. It’s all wireless, no base station required.

Actual video is 1080p, I recommend you view it full screen.

Presentation slides: without notes and with notes

Photos:

Our group did circuit and PCB design, we did the soldering, we designed the phone casing, we designed all the IR and RF protocols, we wrote our own firmware and Android app.

Continue reading