3D Printed Mechanical Keyboard

Tired of buying boring keyboards with almost no customization available? We’ve seen lots of keyboard hacks before, but if you want to take it a step further — why not make it from scratch and have it 3D printed?

Reddit user [Wildpanic] has just finished his first attempt at a 3D printed keyboard and he’s even shared the files to make it over at Thingiverse. The frame is entirely 3D printed, but he’s chosen to use pre-manufactured key switches, which is probably for the best. They are the Cherry MX Green variety, which have these little clips in the side which make them super easy to install — especially on a 3D printed frame.

He’s wired them all using 20ga copper wire (which might be a bit overkill) to a Teensy 2.0 microcontroller. The diodes he chosen to use are 1N4148 which he was able to get fairly inexpensively. Total cost is just a bit over $50. Not bad!

Oh and in case you’re wondering, he’s chosen the style of keyboard that makes use of 4 keys for the space bar — as made popular by the planck style custom keyboards — you know, for people who love symmetry.

For more awesome keyboard hacks, check out this roundup [Adam Fabio] put together in a Hacklet last year!

[via reddit]

Electric Skateboard Rev’ed to Version 2

What’s cooler than a sweet skateboard? A sweet electric skateboard! And the only thing cooler than that is a DIY electric skateboard. [comsa42] has proven to be a DIY electric skateboard aficionado with his new project. It’s a rebuild and upgrade from his electric longboard that has previously been featured on Hackaday.

The most noticeable change is the size of the deck, it was cut down to be 31 inches long to enhance its maneuverability. The electronics are housed in an updated fiberglass compartment that attaches to the bottom of the deck. The old compartment had a large port that had to be removed in order to charge the battery. The new compartment has a plug for easily connecting the charger.

The drive components still consist of a brushless DC motor, RC hobby ESC and a LiPo battery. Previously, an RC transmitter and receiver were used to control the motor. [comsa42] wrote an app for his phone to send throttle signals to a Bluetooth module which controls the ESC as well as relays battery life back to the phone.

We think this project is pretty rad and wouldn’t mind taking this skate for a spin around the block.

Reverse Engineering Lattice’s iCE40 FPGA Bitstream

Unlike microcontroller projects, projects involving FPGAs cannot yet claim to rely on a mature open-source toolchain. Each FPGA will, at some point, need to be configured with a proprietary bitstream produced from a closed source synthesis tool. This lack of a full FPGA toolchain to take your project from Verilog-or-VHDL to an uploadable bitstream is due to many reasons. First, writing such a “compiler” is complicated. It involves intimate knowledge of the resources available on the FPGA that can assimilate the functionality of the intended design. Second, the entire synthesis procedure is closed-source, a “secret sauce” of sorts for each FPGA vendor.

In response, [Alex] and [Clifford] have taken the first step towards an open-source toolchain for one FPGA; they’ve reverse-engineered the bitstream of Latttice Semiconductor’s iCE40 FPGA. The duo didn’t just pick the iCE40 on a whim. This choice was deliberately because that FPGA is available on a development board for a mere $22 so that others could follow in their footsteps without breaking the bank.

In the video below, [Clifford] demos the functionality of this new tool by synthesizing a design from Verilog to a bitstream and then back from a bitstream to Verilog. Given this feature, a staggering amount of work has been done towards developing a polished open-source toolchain for this particular FGPA.

To snag a copy of the latest code, have a look at its documentation page.

Continue reading “Reverse Engineering Lattice’s iCE40 FPGA Bitstream”

Apple ][ Disk Emulation

A while ago, [Steve] over at Big Mess ‘O Wires created a device that would emulate old Macintosh disk drives, storing all the data on an SD card. No, it’s not SCSI; the early Apples had a DB-19 connector for connecting 400 and 800kB disk drives. It’s a great piece of hardware for bootstrapping that old Mac you might have sitting around. Apple ][s, IIs, and //s use an extremely similar connector for their disk drives. A few rumors on some forums led [Steve] to experiment with some ancient bromide-stained boxes, and the results are interesting to say the least.

After pulling out an old //e and IIgs from storage, [Steve] found his Macintosh Floppy Emulator didn’t work with the Apples. This was due to the way Apples could daisy chain their disk drives. There’s an extra enable signal on the connector that either brings Drive 1 or Drive 2 into the circuit. Macs don’t care about this signal, but Apples do. Luckily the 800kB drives for the IIgs have an extra board that handles this daisy chain and drive eject circuitry.

After removing this extra board from a IIgs drive and connecting it to the Floppy Emu, everything worked beautifully. With schematics and a working circuit in hand, it’s now a piece of cake to build an adapter board for using the Macintosh Floppy Emu with Apples, or to build that circuit into a future revision of the Floppy Emulator.

Considering how much trouble [Steve] had bootstrapping these Apples without an SD card to Floppy drive emulator, we’re thinking this is great. The current way of making an Apple II useful is ADTPro, a program that uses audio to communicate with Apples over the cassette port. In case you haven’t noticed, microphone and headphone ports on laptops are inexplicably disappearing, making a hardware device like a SD card floppy emulator the best way to bring disk images to 30-year-old hardware.

Resourceful DIY Brushless Hand-held Camera Gimbal

Holding a video camera while shooting video can lead to finished footage that has some serious shakes. Lucky for us there are some solutions to this problem such as a passive steady cam stabilizer or an active motor-driven gimbal. [Oscar] wanted a smooth-operating brushless motor gimbal but didn’t want to spend the big bucks it costs for a consumer setup so he went out and built his own.

[Oscar] didn’t have a CNC machine or 3D printer to help with his build. He made his gimbal with simple hand tools out of plywood and hardware store bracketry. In his build post, he talks about how it is important to keep the pivoting axes of the gimbal in line with the camera lens and what he did to achieve that goal. The alignment of the axes and the lens ensures that the video is stable while the gimbal adjusts to keep the camera’s angle constant.

[Oscar] purchased the brushless motors and motor controller which included a gyro sensor on a separate PCB board. The gyro is mounted to the camera mount and sends tilt information back to the controller that then moves the brushless motors to keep the camera level. The final project worked out pretty good although [Oscar] admits he still would like to tune the PID settings in the controller a little better. Check out the video after the break where the stabilized camera is compared to one that is not.

Continue reading “Resourceful DIY Brushless Hand-held Camera Gimbal”

Arduino IDE Support for the ESP8266

Despite a wealth of tutorials for setting up and writing code for the ESP8266 WiFi module, there has not been much of anything on programming this cheap wireless module with the Arduino IDE. Finally, this has changed. After many months of coding, the Arduino IDE supports the ESP8266 module.

The Arduino IDE support was announced on the ESP8266 community forum. Setup is fairly simple with downloads for Linux, OS X, and Windows. This isn’t an ESP8266 shield, either: you can write code for the ESP module, connect the serial pins, and hit the program button.

The basic functions of the Arduino IDE – pinMode, digitalRead, digitalWrite, and analogRead – are available. Most of the WiFi functions work just like the WiFi shield library.

There are a few things that aren’t written yet; PWM doesn’t work, as the ESP8266 only has one hardware PWM source. SPI and I2C slave mode aren’t done yet, and uploading sketches via WiFi needs a little bit of thought. That said, this is a great introduction to programming the ESP module. If the Arduino IDE isn’t your thing, you could always do it the cool way with [CNLohr]’s programming tutorial we featured last week.

In Which Robots Fight the Console Wars

Though the names have changed over the years, the console wars wage on. [moop] must have been feeling nostalgic for the NES vs. SEGA days when he started his current project, Foobot, which is a tabletop football (soccer) game played by robots that are controlled with classic NES and SEGA controllers.

Each team has two robots that tool around on laser-cut perspex wheels attached directly to 16,000RPM motors. An SN754410 controls the motors, and each robot has an ATtiny2313 brain. They all communicate with a single transmitter over their 433MHz 1402 radio receiver modules. To avoid collisions, [moop] used a packet system, wherein each robot has an ID. The messages all contain a robot ID, message payload, and checksum. The robots ignore messages addressed to others, and any message with an invalid checksum.

[moop] has made everything available on his github, including the PCB layouts and CAD files for the robot chassis and transmitter case. Watch them battle it out after the break. If the Foobots have riled you up about vintage gaming, check out these sweet arcade hacks.

Continue reading “In Which Robots Fight the Console Wars”