Console Controllers for JAMMA Boards

hat

Back in the day, and by that we mean the late 80s and early 90s, arcade machines started using the JAMMA standard, a means for a single arcade board to be wired in to the controllers, video output, and other ephemera found in arcade cabinets. Since then, quite a few people have amassed a collection of these vintage arcade boards. Putting them to use requires a means of providing power, video output and controller connections. The usual way of wiring in a joystick and buttons is with a wiring harness, but [Mike] and [Jasen] are connecting Xbox 360 and PS3 controllers to their machines with the help of a Raspberry Pi Hat.

[Mike] and [Jasen] created Project Kajitsu to replace the expensive ‘Supergun’ controllers arcade game collectors usually use to play Street Fighter, X-Men, and Battletoads. They’re using the USB ports on a Raspberry Pi B+ to listen to two XBox or PS3 controllers and translate button mashing into something these old games can understand.

The guys are using a custom Linux Kernel that boots in just a few seconds, providing the bare minimum of an OS to support the controllers. The board itself is extremely simple; just a few bus transceivers, caps, resistors, and headers. They have an iPhone-quality vertical video proof of concept video (below), and although they’re still figuring out the best way to simplify the Bluetooth pairing process, they’re well on their way to supporting wireless controllers.

This board only provides controller input. If you have one of these old boards, you will need video output. That’s another project entirely, but very simple if you have an SCART monitor.

[Read more...]

Ask Hackaday: Help NASA With Their High Altitude Problem

image of hackaday logo on box at high altitude

Unless you’ve been living under a high voltage transformer, you’ve probably heard that NASA has grounded the Space Shuttle fleet. This makes getting stuff to and from the International Space Station slightly more difficult. With the growing need to get small experiments back to the surface quickly and safely, NASA is researching an idea they call Small Payload Quick Return, or SPQR (pdf warning). Basically, they toss the experiment out of the window, use drag to slow it down, and then use a High Altitude High Opening (HAHO) self guiding parafoil to steer the thing down to a predefined location on the surface.

Now, what we’re interested in is the self guided parafoil part, as it takes place in known hacker territory – around 100,000 feet. This is the altitude where most high altitude balloon experiments take place. NASA is throwing a bunch of money and brainpower to research this part of the system, but they’re having problems. Lots of problems.

Stick around after the break and see if you can help, and maybe pick up some ideas on how to steer your next High Altitude Balloon project back to the launch pad.

[Read more...]

Sine Waves, Squares Waves, and the Occasional FFT

I became aware of harmonics and the sound of different shaped waveforms early in my electronics career (mid 1970’s) as I was an avid fan of [Emerson Lake and Palmer], [Pink Floyd], [Yes], and the list goes on. I knew every note of [Karn Evil 9] and could hear the sweeping filters and the fundamental wave shapes underneath it.

bil1

I remember coming to the understanding that a square wave, which is a collection of fundamental and (odd) harmonics frequencies, could then be used to give an indication of frequency response. If the high frequencies were missing the sharp edges of the square wave would round off. The opposite was then true, if the low frequencies were missing the square wave couldn’t “hold” its value and the top plateau would start to sag.

[Read more...]

Unreal Line-up and Live Stream of Hackaday’s 10th

10th-Anniversary-Lineup-scaledYeah, check out that line-up poster. We’re so lucky to have an unreal collection of talented people pitching in to make this event happen. This Saturday is going to be Epic! Good thing since we’re celebrating 10-years-of-Hackaday!

What’s that you say? You don’t live in Los Angeles and are going to miss out? We’ll be live-streaming the event on:

Hackervision #1

Hackervision #2

You should put this feed on in the background while you hone your solding skills on that project you’ve been meaning to finish.

We will also be recording and posting the talks so that you may watch at your leisure.

Here’s a quick run-through of all that we have going on:

Ticket-buttonThe day will start with three workshops, the first is a tiny-robot build based on [shlonkin's] design. The second is a lockpicking workshop hosted by [datagram] and [Jon King]. And the third is a Lithium charger workshop and build hosted by [Todd Black].

The afternoon brings the mini-conference with major talks by [Ryan '1o57' Clarke], [Steve Collins], [Quinn Dunki], [Jon McPhalen], and [ThunderSqueak]. There will be Lighting Talks by [Tod Kurt] and [Arko], as well as special appearances by Hackaday head editors from the past decade.

In the evening we’ll move into party mode. Music is presented by [The Gentlemen Callers] with interactives by [Deezmaker] and [Two Bit Circus].

Of course there will be a handful of the Hackaday writers in town for the event as well. [Adam Fabio] will be leading the robot workshop, [James Hobson] will be leading a build-off throughout the day, and [Mike Szczys], [Brian Benchoff], and [Bil Herd] will be on hand to do whatever is needed.

If you are interested in attending there may still be tickets available. We have been sold out but we’ve asked anyone who is unable to attend to cancel their ticket so new tickets become available as that happens. Yep, fans of Hackaday are courteous people. Yet another reason to celebrate.

[Poster Art by Joe Kim -- Full Resolution 15.5MB]

Developed on Hackaday: Sometimes, All You Need Is a Few Flags

Mooltipass

The development of the Hackaday community offline password keeper has been going on for a little less than a year now. Since July our beta testers have been hard at work giving us constant suggestions about features they’d like to see implemented and improvements the development team could make. This led up to more than 1100 GitHub commits and ten thousand lines of code. As you can guess, our little 8bit microcontroller’s flash memory was starting to get filled pretty quickly.

One of our contributors, [Miguel], recently discovered one compilation and one linker flags that made us save around 3KB of Flash storage on our 26KB firmware with little added processing overhead. Hold on to your hats, this write-up is going to get technical…

Many coders from all around the globe work at the same time on the Mooltipass firmware. Depending on the functionality they want to implement, a dedicated folder is assigned for them to work in. Logically, the code they produce is split into many C functions depending on the required task. This adds up to many function calls that the GCC compiler usually makes using the CALL assembler instruction.

This particular 8-bit instruction uses a 22-bit long value containing the absolute address of the function to call. Hence, a total of 4 flash bytes are used per function call (without argument passing). However, the AVR instruction set also contains another way to call functions by using relative addressing. This instruction is RCALL and uses an 11-bit long value containing the offset between the current program counter and the function to call. This reduces a function call to 2 bytes and takes one less clock cycle. The -mrelax flag therefore made us save 1KB by having the linker switch CALL with RCALL instructions whenever possible.

Finally, the -mcall-prologues compiler flag freed 2KB of Flash storage. It creates master prologue/epilogue routines that are called at the start and end of program routines. To put things simply, it prepares the AVR stack and registers in a same manner before any function is executed. This will therefore waste a little execution time while saving a lot of code space.

More space saving techniques can be found by clicking this link. Want to stay tuned of the Mooltipass launch date? Subscribe to our official Google Group!

Minicut2d and Omniwheel Robot

minicut1

You’d think we would be done with the World Maker Faire posts by now, but no! We keep looking at our memory cards and finding more awesome projects to write about.

[Renaud Iltis] flew over from France to show off MiniCut2D, his CNC hot wire foam cutter. MiniCut2D uses X, Y, and Z stMINICUT2epper motors much like a 3D printer. Rather than print though, it pulls a heated nichrome wire through styrofoam. Foam cutting is great for crafts, but it really takes off when used for R/C aircraft. [Renaud] was cutting some models out of Depron foam in his booth. [Renaud] has set up FrenchFoam.com as a central location for users to upload and share designs in DXF format.

One of the neater features of MiniCut2D is that it can be loaded with a stack of foam boards to make several cuts at once. Not only is this a time saver when cutting repeating designs like wing ribs, but it also ensures the cut pieces are identical. Hey, even CNCs make mistakes once in a while.

 Omniwheel Robot

vic

In the MakerShed booth, we found [Victor Aprea] showing off Wicked Device’s new product, the Omniwheel Robot. Omniwheel utilizes a holonomic drive with omnidirectional wheels. The kit comes with a Nanode Zero, Wicked Devices’ own Arduino Uno clone, a motor control board, 3 motors, 3 omnidirectional wheels, and a whole list of hardware. The only thing needed to complete the kit is a radio control unit and receiver. Omniwheel may be simple, but we found driving it around to be mesmerizing – and a bit challenging.It’s a good thing [Victor] brought that plexiglass cover, as we bumped it a few times.

We’d love to see one of these little bots with a couple of sensors and autonomous control. If you build one, make sure to post it to Hackaday.io!

Reverse Engineering a Wireless Studio Lighting Remote

Strobe Remote

If you want to take a photograph with a professional look, proper lighting is going to be critical. [Richard] has been using a commercial lighting solution in his studio. His Lencarta UltraPro 300 studio strobes provide adequate lighting and also have the ability to have various settings adjusted remotely. A single remote can control different lights setting each to its own parameters. [Richard] likes to automate as much as possible in his studio, so he thought that maybe he would be able to reverse engineer the remote control so he can more easily control his lighting.

[Richard] started by opening up the remote and taking a look at the radio circuitry. He discovered the circuit uses a nRF24L01+ chip. He had previously picked up a couple of these on eBay, so his first thought was to just promiscuously snoop on the communications over the air. Unfortunately the chips can only listen in on up to six addresses at a time, and with a 40-bit address, this approach may have taken a while.

Not one to give up easily, [Richard] chose a new method of attack. First, he knew that the radio chip communicates to a master microcontroller via SPI. Second, he knew that the radio chip had no built-in memory. Therefore, the microcontroller must save the address in its own memory and then send it to the radio chip via the SPI bus. [Richard] figured if he could snoop on the SPI bus, he could find the address of the remote. With that information, he would be able to build another radio circuit to listen in over the air.

Using an Open Logic Sniffer, [Richard] was able to capture some of the SPI communications. Then, using the datasheet as a reference, he was able to isolate the communications that stored information int the radio chip’s address register. This same technique was used to decipher the radio channel. There was a bit more trial and error involved, as [Richard] later discovered that there were a few other important registers. He also discovered that the remote changed the address when actually transmitting data, so he had to update his receiver code to reflect this.

The receiver was built using another nRF24L01+ chip and an Arduino. Once the address and other registers were configured properly, [Richard's] custom radio was able to pick up the radio commands being sent from the lighting remote. All [Richard] had to do at this point was press each button and record the communications data which resulted. The Arduino code for the receiver is available on the project page.

[Richard] took it an extra step and wrote his own library to talk to the flashes. He has made his library available on github for anyone who is interested.

Follow

Get every new post delivered to your Inbox.

Join 94,586 other followers