Programming The 6502 One Nibble At A Time

[Quinn Dunki] keeps rolling with her 6502 based computer build. This time around she’s added some memory to store the programs, but needed a way to get that code into the device. Above is her solution, a bank of hex switches used to program the 8-bit command and 16-bit address for each line of machine code.

This is a continuation of her Veronica project. The last time we saw it she had hardwired the logic levels for the data bus, but that’s no fun since nothing can actually be computed. [Quinn] picked up an SRAM chip which will store the program. It’s compatible with the 6502’s memory bus, but needs a bit of extra circuitry for her to be able to hand program it with this switch bank. She used some tri-state buffers to switch between connections to the processor, and to the hex switches. This way, she disconnects the RAM from the processor using the buffers, uses the switches and push button to clock in the program, then patches the RAM back into the computer.

Seeing this process in the video after the break certainly gives you an appreciation for what an improvement the punch-card system was over this technique. Still, seeing this is a delight that we’d like to try! Continue reading “Programming The 6502 One Nibble At A Time”

The International Obfuscated C Code Contest Is Back

The International Obfuscated C Code Contest is back. The stated goals of the IOCCC are to, “Write the most obscure C program, show the importance of programming style (by doing the opposite), stress the preprocessor to the breaking point, and illustrate some subtleties of the C language.” If you think you’re up to the task of abusing your compiler, check out the rules and guidelines for the contest.

There’s nothing quite like having the code for a flight simulator look like a plane, or calculating pi by measuring the area of C code. The submissions to the IOCCC are classic hacks; very clever things that shouldn’t work, but do despite themselves.

There hasn’t been an IOCCC competition since 2006, and no one knows if it will be around next year. We’ve already seen a few potential entries for this year, like piping chars into /dev/audio to generate a song and hyperlinks all the way down. If you’ve got something you’re working on, feel free to send it in.

via /.

Annoy Your Sound Guy Even More

“I can’t hear myself in the mix,” “yeah, man, I’ll be there at 8,” and “dude, we need like four more mics.” Each and every one of these words is documented in actuarial tables and doesn’t bode well for your sound tech’s risk of a stroke. Luckily, there’s an even better way to kill your sound guy and this time, it’s actually pretty clever.

[@dop3j0e] at the Stuttgart hackerspace Shackspace came up with the Noiseplug. It’s a very small build that could almost fit into a quarter-inch jack. It’s all SMD with a tiny (unknown) ATtiny9 microcontroller powered by a watch battery.

The music coming out of the Noiseplug is really interesting. All the code on the microcontroller is a one-liner written in C. Similar ‘algorithmic chiptune’ programs can be run on any PC: check out these three examples.

These potential entries to the International Obfuscated C Code Contest throw chars into an 8-bit PCM stream. Piping the output of these programs to /dev/audio would generate an actual song – written entirely in one line of C.

Of course, [@dop3j0e] could have made his Noiseplug a little less annoying, but sound techs are underappreciated for a reason, right?

Check out the Noiseplug in action after the break along with a few one-liner C songs.

Continue reading “Annoy Your Sound Guy Even More”

Ants Duke It Out In The AI Challenge

All of those orange, cyan, and yellow dots represent digital ants fighting for supremacy. This is a match to see who’s AI code is better in the Google backed programming competition: The AI Challenge. Before you go on to the next story, take a hard look at giving this a try for yourself. It’s set up as a way to get more people interested in AI programming, and they claim you can be up and running in just five minutes.

Possibly the best part of the AI Challenge is the resources they provide. The starter kits offer example code as a jumping off point in 22 different programming languages. And a quick start tutorial will help to get you thinking about the main components involved with Artificial Intelligence coding.

The game consists of ant hills for each team, water as an obstacle, and food collection as a goal. The winner is determined by who destroyed more enemy ant hills, and gathered more resources. It provides some interesting challenges, like how to search for food and enemy ant hills, how to plot a path from one point to another, etc. But if you’re interested in video game programming or robotics, the skills you learn in the process will be of great help later in your hacking exploits.

Program An Arduino Using Your Sound Card

audioino_programming_arduino_with_sound

[Chris] wrote us to share a neat technique he has been using to program the Arduinos he uses in his projects. He likes to build bare bones Arduino clones rather than sacrifice full dev boards, and instead of programming them via traditional means, he is using his computer’s sound card.

He builds a simple dead bug Arduino (which he calls an Audioino) using a handful of resistors, a pair of caps, an LED, a reset switch, and most importantly – an audio jack. After burning a special audio bootloader to the chip, he can connect the Arduino directly into his computer’s speaker port for programming.

Once the microcontroller is connected to his computer, he runs the IDE-generated hex file through a Java app he created, which converts the data into a WAV file. With the Arduino put into programming mode, he simply plays the WAV file with an audio player, and the code is uploaded.

He says that this method of programming comes in handy in certain cases where he builds things for friends, because they can easily update the software on their own without a lot of fuss.

Making The Case For In-circuit Debugging Tools

in_circuit_debugging_of_pic_microcontrollers

If you are in the market for a PIC microcontroller programmer, you may want to consider a model with an In-Circuit Debugger (ICD). [Rajendra] put together a great tutorial on using an ICD when debugging PIC firmware, which makes a pretty convincing argument for owning one.

In his tutorial, he happens to be using a MikroElektronika PICflash2, but he says that there are plenty of other ICDs out there if you are not keen on this particular model. The PICflash2 not only acts as an ICD, but as the name suggests it works as an ICSP as well.

[Rajendra] walks us through a short debugging session using some simple code that reads data from an LM34DZ temperature sensor, displaying the results on an LCD screen. While he isn’t actually hunting for bugs, he does show how easy it is to step through the PIC’s code one statement at a time, evaluating variables and registers along the way.

[Rajendra] does point out that using an ICD does occupy a few I/O pins while running, limiting your resources just a bit. We think that being able to debug code as it runs is pretty reasonable tradeoff if you don’t necessarily need each and every pin available for use.

Official Kinect SDK Released

Microsoft just released the beta of the Kinect for Windows SDK. Although, “Microsoft does not condone the modification of its products” it appears Microsoft have changed their tune and released APIs for C++, C# and Visual Basic seven months after the Kinect was officially hacked.

We’ve seen libraries being developed since the launch of Kinect, culminating in the OpenKinect project. The Microsoft release covers the same ground as the OpenKinect project, and will hopefully improve on attempts to get audio out of the Kinect.

We’ve seen Kinect hacks run the gamut from telepresence, to robotics, to 3D modeling, so the Kinect seems like a great tool in the builder’s arsenal. The Kinect is a wonderful tool, and even though most of the functionality has already been replicated by the open-source community, it’s nice to know there’s official support for all the great projects we’ve seen.