Designing Flip-Flops With Python and Migen

migen

Flip-flops are extremely simple electronic circuits, forming the basis of clock circuits, memory circuits, buffers, and shift registers. Through his dilly-dallying with digital logic, [Jeffrey] decided he would build his own. Not with Verilog or VHDL, though, but Migen: the Python-based way to build digital circuits with software.

Migen is an interesting tool that makes traditional FPGA programming a lot easier; instead of Verilog or VHDL, Migen allows an FPGA to be programmed in Python. Yes, it’s the tool you’ve been waiting for, and the tutorials make it look pretty easy. After installing Migen, [Jeff] wrote a class for a D flip-flop in only three lines of code. That’s three readable lines of code, and he was able to simulate the flip-flop with gtkwave in another two lines. Compared to learning the complexities of VHDL or Verilog, Migen makes digital logic and FPGA programming a breeze.

[Jeff] has a great tutorial for building a D flip-flop with Migen, but we’d love to see some more complex examples of what can be done with this very cool tool. If you’re building (or have built) something with Migen, be sure to send it in and relate your experiences.

Ask Hackaday: What’s Up With This Carbon Fiber Printer?

The Hackaday Tip Line has been ringing with submissions about the Mark Forg3D printer, purportedly the, “world’s first 3D printer that can print carbon fiber.”

Right off the bat, we’re going to call that claim a baldfaced lie. Here’s a Kickstarter from a few months ago that put carbon fiber in PLA filament, making every desktop 3D printer one that can print in carbon fiber.

But perhaps there’s something more here. The Mark Forged site gives little in the way of technical details, but from what we can gather from their promo video, here’s what we have: it’s a very impressive-looking aluminum chassis with a build area of 12″x6.25″x6.25″. There are dual extruders, with (I think) one dedicated to PLA and Nylon, and another to the carbon and fiberglass filaments. Layer height is 0.1mm for the PLA and Nylon, 0.2mm for the composites. Connectivity is through Wifi, USB, or an SD card, with a “cloud based” control interface. Here are the full specs, but you’re not going to get much more than the previous few sentences.

Oh, wait, it’s going to be priced at around $5000, which is, “affordable enough for average consumers to afford.” Try to contain your laughter as you click the ‘read more’ link.

Continue reading “Ask Hackaday: What’s Up With This Carbon Fiber Printer?”

Ball Bearing Motor Rolls For Reasons Unknown

[RimstarOrg] has brought us an oldie but goodie this week. He’s built a ball bearing motor, a design which has been causing engineers and scientists to squabble for decades. [RimstarOrg] used a microwave oven transformer with a 70 turn primary coil and a single turn secondary coil to create a low voltage, high current AC power supply. Needless to say, there’s a real risk of fire or electrocution with a setup like this, so be careful if you try this one at home. [RimstarOrg] then built the motor itself. He de-greased two ball bearings then installed them on a metal shaft along with a wooden flywheel. The entire assembly was then mounted on a board so the wheel could spin freely. Two copper straps hold the bearings to the board. Finally, the transformer is wired into the copper straps. In this configuration, the current will flow through the outer race of one bearing, through the balls, and into the inner race. The current then passes down the axle and passes through the other bearing. There is very little resistance in this circuit, so it can only be powered on for a few seconds at a time before things start to melt down.

Continue reading “Ball Bearing Motor Rolls For Reasons Unknown”

Heatsink Tester Shows Thermal Resistance Isn’t Futile

[Bogdan] knows that it’s hard to model the cooling needs of any given project. It’s important to know how much heat a system can dissipate given the housing material, airflow opportunity, and the proximity of neighboring components. Inspired by an aluminium-walled enclosure that allows for mounted transistors, he devised and built a heatsink tester.

He’s using an ATXMEGA32A4U, a temperature sensor, and a IRF540 MOSFET. A specific power is dissipated across the transistor, and the temperature sensor measures the heatsink as close as possible to the transistor. Through the serial connection, he gets back the supply voltage, current, calculated power, DAC set, temperature, and calculated thermal resistance in the terminal.

[Bogdan]’s tester assumes that it is reading the ambient temperature, so the circuit needs to warm up first. He found that an hour is generally long enough to reach this point. He also found that the system exhibits high thermal inertia, so it regulates the DAC output based on the dissipated power.

The Robot Operating System (ROS) 101

Ever heard about the Robot Operating System? It’s a BSD-licensed open-source system for controlling robots, from a variety of hardware. Over the years we’ve shared quite a few projects that run ROS, but nothing on how to actually use ROS. Lucky for us, a robotics company called Clearpath Robotics — who use ROS for everything — have decided to graciously share some tips and tricks on how to get started with ROS 101: An Introduction to the Robot Operating System.

The beauty of the ROS system is that it is made up of a series of independent nodes which communicate with each other using a publish/subscribe messaging model. This means the hardware doesn’t matter. You can use different computers, even different architectures. The example [Ilia Baranov] gives is using an Arduino to publish the messages, a laptop subscribed to them, and even an Android phone used to drive the motors — talk about flexibility!

It appears they will be doing a whole series of these 101 posts, so check it out — they’ve already released numéro 2, ROS 101: A Practical Example. It even includes a ready to go Ubuntu disc image with ROS pre-installed to mess around with on VMWare Player!

And to get you inspired for using ROS, check out this Android controlled robot using it! Or how about a ridiculous wheel-chair-turned-creepy-face-tracking-robot?

Satisfying Way To ‘Build’ Projects

build button 01_27

When you’re writing code for your next big creation, chances are that you build/debug the project 100’s of times a day. Sure, the keyboard hotkey gets the job done, but is it really that satisfying? [Victor] sends in this quick project on turning an Emergency Stop Push button into a ‘Build’ button.

From the looks of it, this project uses a Teensy 2.0, which sports an ATMEGA32U4. Since this part features a USB controller, it is a piece of cake to get it to mimic a keyboard. The circuit is also very simple; the pushbutton contacts are wired from ground to a digital input. On detection of a ‘press’, the Teensy will send out the keyboard combination to build your project: Ctrl-B, F7, etc… If you prefer working within the Arduino IDE, this could upload sketches as well (Ctrl-U).

Adding a little fun to ‘building’ your projects does come at a cost though. Besides forfeiting a Teensy, you also have to give up a precious USB port. [Victor] does mention Bluetooth, but that could break your budget for this sort of project. A possible alternative to the Teensy could be to implement Virtual USB on a low-cost standalone Arduino.

Continue reading “Satisfying Way To ‘Build’ Projects”

Tesla Coil Auto-Winder

tesla winder

Tesla coils are awesome. But if you’ve ever built one, you know how tedious winding the secondary coil is. So [Krux] decided to build a machine to do it for him.

He’s currently working on his first Tesla coil — code-named Project Icarus — he doesn’t have all the logistics ironed out quite yet, but he’s been slowly collecting the components. What he does know is that he wants to use a 4.5″ secondary coil, using 22AWG magnet wire, meaning that’s a lot of turns! Since he’s also a member of a local hackerspace, he decided to make it a modular machine that can wind different sized coils for different sized projects.

Essentially, he’s built his own CNC lathe to accomplish this, well, missing one axis. There’s the main rotary axis, and a wire-guide that moves along it ensuring the coils are wrapped tightly without gaps. It’s an impressive build and you can tell he’s put a lot of thought into the design — He’s even got a semi-flexible 3D printed motor coupler on the wire-guide axis, to help mitigate quick acceleration! The main rotary axis is also driven by a 3D printed herringbone style gear — similar to the style used on Printrbot extruders. The rest of the build is made of plywood and pegboard — allowing for even larger coils to be wound by shuffling around the components. He’s even got a full featured command console with manual/automatic controls and an LCD giving feedback on the coil being wound!

Stick around after the break to see [Krux] explain the fascinating build, and to see a fun time-lapse of an 814-turn Tesla coil winding!

Continue reading “Tesla Coil Auto-Winder”