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.
Rust Programming Langauge has grown by leaps and bounds since it was announced in 2010 by Mozilla. It has since become a very popular language owing to features such as memory safety and its ownership system. And now, news has arrived of an Embedded Devices Working Group for Rust aiming at improving support for microcontrollers.
Rust is quite similar to C++ in terms of syntax, however Rust does not allow for null or dangling pointers which makes for more reliable code in the hands of a newbie. With this new initiative, embedded development across different microcontroller architectures could see a more consistent and standardized experience which will result in code portability out of the box. The proposed improvements include IDE and CLI tools for development and setup code generation. There is also talk of RTOS implementations and protocol stack integration which would take community involvement to a whole new level.
This is something to be really excited about because Rust has the potential to be an alternative to C++ for embedded development as rust code runs with a very minimal runtime. Before Arduino many were afraid of the outcome of a simple piece of code but with rust, it would be possible to write memory-safe code without a significant performance hit. With a little community support, Rust could be a more efficient alternative. We have seen some Rust based efforts on ARM controllers and have covered the basics of Rust programming in the past if you want to get started. Good times ahead for hardware hackers.
If there was one downside to 8-bit computers like the Commodore 64, it’s that they weren’t exactly portable. Even ignoring their physical size, the power requirements would likely have required a prohibitively large power bank of some sort to lug around as well. The problem of portability has been solved since the late ’70s, but if you still want that 8-bit goodness in a more modern package you’ll have to look at something like retrocomputing madman [Jack Eisenmann]’s DUO Travel computer.
The computer is based around the ubiquitous ATmega328 which should make the ease at which it is programmable apparent. Even so, its 14-button keypad makes it programmable even without another computer. While it has slightly less memory than a standard C-64, it’s still enough for most tasks. And, since its powered by a 9-volt battery it doesn’t require any external power sources either.
The most impressive part of the build, however, is the custom programming language specifically tailored for this platform. After all, a 14-button keypad wouldn’t be a great choice if you had to program in Perl or C all the time. There is some example code on the project page for anyone interested in this specific implementation. While it’s not the most minimal computer [Jack] has ever built, it’s certain to be much more practical.
Continue reading “8-bit Computer for On-The-Go Programming”
There’s a lot of times in an average day when you’ll find yourself waiting. Waiting for your morning brew at the cafe, or for an email to show up — it’s often just a few minutes, many times a day. It’s far too short a time to get any real work done, but it adds up at the end of the week.
Enter WaitSuite, a language learning tool developed by MIT’s CSAIL. It’s a language learning tool, which aims to teach users words in a foreign language in these “micromoments” — the short periods of time spent waiting each day. The trick to WaitSuite here is in its ultralightweight design which integrates into other tasks and software on your computer and smartphone. Rather then having to launch a separate app, which takes time and effort, WaitSuite hovers in the background, ready to go when it detects a short period of wait time. Examples given are hitting refresh in Gmail, or waiting for a connection to a WiFi network.
The team behind the project calls this concept wait-learning; you can read the paper here. If you’d like to try it out, use the Chrome extension called WaitChatter. It quizzes you while you’re waiting on a response in GChat. We’d love to see the rest of the WaitSuite released publicly soon.
It’s a tidy piece of software that’s great for those looking for an alternative to compulsively refreshing social media while loitering. It probably won’t help you learn French overnight, but it could be a useful way to pick up some extra vocab without having to carve more time out of your schedule.
We don’t see a whole lot of language learning hacks here, but you might like to check out Adafruit’s take on the Babel Fish.
In the open-source world, there are two main choices for PCB design: KiCad and gEDA. But if you’re tired of the boring Hershey fonts telling you which resistor is which, or if you need to comply with ISO 3098, there’s one clear choice: PCB-RND, the improved fork of gEDA’s PCB tool. Why?
Because PCB-RND now supports osifont, which supports a ridiculous number of languages. In addition to the usual suspects, like Azerbaijani through Vietnamese, support has also been added for legacy users, including those of Middle Earth, who build PCBs that can only be read when the thrush knocks by the setting sun of the last light on Durin’s Day.
And they haven’t stopped there. Looking forward to the Treaty of Organia in 2267, you can now create PCBs that are fully plqaD-HaSta compliant.
We’re glad to see these important steps made toward reaching out to underserved PCB-constructing communities. However, we’re appalled at the continuing lack of support for Rihannsu. This will have to be rectified by anyone who wants to push their projects in the Beta Quadrant.
The Economist is an interesting publication, a British weekly newspaper that looks for all the world like a magazine, and contains pithy insights into world politics and economic movements. It’s one of those rare print news publications that manages to deliver fresh insights even to hardened web news junkies despite its weekly publication date.
It was typical then of their wide-ranging coverage of world industries to publish a piece recently on the world of supercapacitors, with particular focus on Estonia’s Skeleton Technologies. This is an exciting field in which the products are inching their way towards energy density parity with conventional batteries, and news of new manufacturing facilities coming online should be of interest to many Hackaday readers.
Exciting though it may be it was not the news of a new capacitor plant in Germany that provided the impetus for this piece. Instead it was the language used by the Economist writer delicately skirting the distinction between the words “Supercapacitor” and “Ultracapacitor”. Images of flying crimefighters in brightly coloured capes spring instantly to mind, as Captain Ultra and Superman battle an arch-villain who is no doubt idly bouncing a piece of burning Kryptonite against the wall in readiness for the final denouement.
Continue reading “The Comic Book World Of Capacitor Marketing”
We take our mother tongue for granted, a language we learn as young children without realizing the effort involved. It is only when as adults we try to pick up another language that we fully understand how much hard work surrounds each acquired word.
Depending on who you listen to, estimates vary as to the size of a typical native English speaker’s vocabulary. The ballpark figures seem to put most adults under 20 thousand words, while graduates achieve somewhere around 23 thousand words. It’s a subject [Alex Eames] became interested in after reading a BBC article on it, and he decided to write his own software to produce a personal estimate.
His Python script takes the Scrabble word list, and presents the user with a list of words, for each one of which they have to indicate their comprehension. After a hundred words have been presented it calculates an estimate of the size of the user’s vocabulary. [Alex] wrote it on and for the Raspberry Pi, but it should work quite happily on any platform with Python 3. It certainly had no problem with our Ubuntu-based PC.
There is plenty of opportunity for bragging over the size of one’s vocabulary with a script like this one, but it’s something of a statistical leveler in that if you are truthful in your responses it will almost certainly put you exactly where you might expect for your age or level of education. If you want to know the result this script returned for a Hackaday scribe, for example, the answer is 23554.
This subject is a slight departure into software from our usual hardware subject matter, but it’s one of those tests that becomes rather a consuming interest when performed competitively among a group of friends. How well will you fare?