Learn To Optimize Code In Assembly… For Android

When programming a microcontroller, there are some physical limitations that you’ll come across much earlier than programming a modern computer, whether that’s program size or even processor speed. To make the most use of a small chip, we can easily dig into the assembly language to optimize our code. On the other hand, modern processors in everyday computers and smartphones are so fast and have so much memory compared to microcontrollers that this is rarely necessary, but on the off-chance that you really want to dig into the assembly language for ARM, [Uri Shaked] has a tutorial to get you started.

The tutorial starts with a “hello, world” program for Android written entirely in assembly. [Uri] goes into detail on every line of the program, since it looks a little confusing if you’ve never dealt with assembly before. The second half of the program is a walkthrough on how to actually execute this program on your device by using the Android Native Deveolpment Kit (NDK) and using ADB to communicate with the phone. This might be second nature for some of us already, but for those who have never programmed on a handheld device before, it’s worthwhile to notice that there are a lot more steps to go through than you might have on a regular computer.

If you want to skip the assembly language part of all of this and just get started writing programs for Android, you can download an IDE and get started pretty easily, but there’s a huge advantage to knowing assembly once you get deep in the weeds especially if you want to start reverse engineering software or bitbanging communications protocols. And if you don’t have an Android device handy to learn on, you can still learn assembly just by playing a game.

Unlocking Drones With Go

Looking for a first project in a relatively new language that’ll stretch your abilities? [Ron] was, so he hacked a commercially available drone and opened up a lot of its functionality, while writing the client software in Go.

The drone is a DJI Tello, which has some impressive hardware like a 14-core Intel processor and excellent video processing abilities. There’s also a vibrant community and a lot of support, making it the ideal platform for a project like this. It communicates to a base station via WiFi, and using some tools like the Wireshark [Rob] was able to decipher a lot of the communications and create a whole new driver for the drone. While the drone can be controlled in the traditional way, users can also write programs to control the drone as well.

The project is both an impressive feat in reverse engineering an inexpensive drone, and a fun example of programming in the Go language. Because of the fun and excitement of drones, they have become a popular platform on which to hack, from increasing their range to becoming a platform for developing AI.

Kerbal Space Program For The Apple II

[Vince Weaver] tried to use his time machine to jump a few years in the future to get a less buggy version of Kerbal Space Program, but as usual with time travel, nothing went right and he ended up heading to 1987. Finding himself in an alternate timeline where KSP had been released for the Apple II, he brought back a copy.

Well, that’s the narrative proposed by [Vince Weaver] on his YouTube channel. The real story, and hack, being that he wrote a version of KSP for the Apple II in Applesoft Basic. He has used the language for the ridiculous before. You can build a rocket, select a pilot, launch, and if you’re lucky (or skilled), reach orbit.

We loaded up his disk image on an Apple II emulator and gave it a try. We managed to murde—lose a few pilots, but that was about it.  It was hard not to get distracted by the graphics and remember to point the rocket the right direction. Either way, it was a neat bit of fun in retro computing. Video after the break.

Continue reading “Kerbal Space Program For The Apple II”

Minions Turn Your Keyboard Into A Bluetooth Keyboard

Evil geniuses usually have the help of some anonymous henchmen or other accomplices, but for the rest of us these resources are usually out of reach. [Evan], on the other hand, is on his way to a helpful army of minions that will do his bidding: he recently built a USB-powered minion that turns a regular PS/2 mouse and keyboard into a Bluetooth mouse and keyboard.

[Evan] found his minion at a McDonald’s and took out essentially everything inside of it, using the minion as a case for all of the interesting bits. First he scavenged a PS/2 port from an old motherboard. An Arduino Nano is wired to an HC-05 Bluetooth chip to translate the signals from the PS/2 peripherals into Bluetooth. The HC-05 chip is a cheaper alternative to most other Bluetooth chips at around $3 vs. $40 for more traditional ones. The programming here is worth mentioning: [Evan] wrote a non-interrupt based and non-blocking PS/2 library for the Arduino that he open sourced which is the real jewel of this project.

Once all the wiring and programming is done [Evan] can turn essentially any old keyboard and mouse into something that’ll work on any modern device. He also put an NFC tag into the minion’s head so that all he has to do to connect the keyboard and mouse is to swipe his tablet or phone past the minion.

If you’re looking for an interesting case for your next project, this McDonald’s Minion toy seems to be pretty popular. PS/2 keyboards are apparently still everywhere, too, despite their obsolescence due to USB. But there are lots of other ways to get more use out of those, too.

Continue reading “Minions Turn Your Keyboard Into A Bluetooth Keyboard”

Automatic Bluetooth Module Programmer

automatic-bluetooth-programming

Before we dive in don’t be confused by the title. This doesn’t flash firmware to the device. But it does automate the process of setting up the Bluetooth to serial module for use in your projects.

We’re often confused by the lack of a standard way of describing these inexpensive modules. We would look at this can call it an HC-05, but we’re not sure if that’s right or not. [James Daniel] calls it a JY-MCU board. If you have a handle on the differences (or lack of) please let us know in the comments. Either way we know that these boards can be frustrating to work with. They can be found with a wide variety of different firmwares, which can make the configuration process a bit different for each.

[James’] solution connects the device to an Arduino running a sketch that he wrote. Connect the device, launch the terminal monitor in the Arduino IDE, then give it your desired settings. The sketch will poll the Bluetooth module to see what speed it is set to run at. It will then establish which firmware version the board is running, displaying this info in the terminal. It then uses that information to program the board with your desired settings.

In this case [James] is using one of the modules to drive his 3D printer without being tethered to his laptop.

Continue reading “Automatic Bluetooth Module Programmer”

New Dynamic Duo, Arduino And Eclipse

There are a lot of solutions to programing an Arduino: the default avr-g++, Studio, etc. But [Sandeep] let us know about using one of the more powerful IDEs out there, Eclipse, to do the same. We’ve already outlined why Eclipse is a great IDE but now the fact that you can use it in your MCU based projects adds to its usefulness and already large feature list. However, don’t be turned off by [Sandeep’s] tutorial. While it is aimed at people who are completely new to setting up an IDE and working with an AVR, the tips certainly can benefit even the most experienced hacker.

Extra Extra: Now Legal To Jailbreak IPhone

For those living under a rock, the latest ‘greatest’ news to hit hacking front page is the the Copyright Office granting Six Exemptions Regarding the Circumvention of Access-Control Technologies. Of the six the one of the two regarding iPhones is as follows,

“(2) Computer programs that enable wireless telephone handsets to execute software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications, when they have been lawfully obtained, with computer programs on the telephone handset.”

Which (along with section 3) really just means that you can unlock and crack cellphones and companies can no longer fine you $2,500. Not that many ever have but the threat was there. Apple however, can and still will void your warranty if you jailbreak.

The 4 other areas not involving phones are the ability to circumvent DVDs for portions of video, video games in order to better the security of said game, computer programs that require dongles but dongles are no longer available, and literary works that prevent read-aloud or rendering to a specialized format.

One tidbit I keep hearing about in these exemptions is the ability to now break DRM on music, as much as I wish this were true, I can’t seem to find any sources on it, sorry pirates.

Regardless, now that the world is one step closer to an open framework, whats changed? For me, I’ve been jailbroken for years so sadly nothing. If you agree with the ruling, disagree, or just want to tell about your now legal jailbreaking joys, please leave a comment.

Additional Sources: FOXNews and CNNMoney thanks to [Voyagerfan99], [Ryan Knight], and [Steve S.] respectively.

[Image credit: Fr3d.org]