It can be hard these days to find an excuse to create something for learning purposes. Want a microcontroller board? Why make one when you can buy an Arduino or a Blue Pill for nearly nothing? Want to control a 3D printer? Why write the code when you can just download something that works well like Marlin or Repetier? If you want to learn assembly language, then, it can be hard to figure out something you want to do that isn’t so silly that it demotivates you. If that sounds like you, then you should check out Much Assembly Required.
This is a multi-player game that runs in your Web browser. But before you click close, consider this: the game has you control an autonomous robot using an x86-like assembly language. Your robots have to find resources and build structures so it is sort of a mash up of Minecraft and one of the many modern Hammurabi-inspired games like Civilization.
The robots have a variety of peripherals including: drills, lasers, LiDar, legs, a hologram projector, solar-charged batteries, clocks, and more mundane things such as clocks, floppy drives, and a random number generator. The virtual world simulates day and night, so plan your power management accordingly.
You might wonder if you should even bother learning assembly. While it is true it isn’t as necessary as it once was, understanding what the computer is doing in a very basic way can help form your thinking in surprising ways. There are also those times when you need to optimize something in assembly and that’s the difference between working and not working.
Learning assembly is very important if you want to get a grasp of how a computer truly works under the hood. VisUAL is a very capable ARM emulator for those interested in learning the ARM assembly.
In addition to supporting a large subset of ARM instructions, the CPU is emulated via a series of elaborate and instructive animations that help visualise the flow of data to/from registers, any changes made to flags, and any branches taken. It also packs very useful animations to help grasp some of the more tricky instruction such as shifts and stack manipulations.
As it is was designed specifically to be used as teaching tool at Imperial College London, the GUI is very friendly, all the syntax errors are highlighted, and an example of the correct syntax is also shown.
You can also do the usual things you would expect from any emulator, such as single step through execution, set breakpoints, and view data in different bases. It even warns you of any possible infinite loops!
That being said, lugging such an extravagant GUI comes at a price; programs that consume a few hundred thousand cycles hog far too much RAM should be run in the supported headless mode.
You wake up one morning with The Idea — the one new thing that the world can’t do without. You slave away at it night and day, locked in a garage expending the perspiration that Edison said was 99 percent of your job. You Kickstart, you succeed, you get your prototypes out the door. Orders for the new thing pour in, you get a permanent space in some old factory, and build assembly workstations. You order mountains of parts and arrange them on shiny chrome racks, and you’re ready to go — except for one thing. There’s nobody sitting at those nice new workstations, ready to assemble your product. What’s worse, all your attempts to find qualified people have led nowhere, and you can’t even find someone who knows which end of a soldering iron to hold.
Granted, the soldering iron lesson is usually something that only needs to happen once, but it’s not something the budding entrepreneur needs to waste time on. Finding qualified workers to power a manufacturing operation in the 21st century is no mean feat, as Dr. Danielle Applestone discussed at the 2017 Hackaday Superconference. Dr. Applestone knows whereof she speaks — she was the driving force behind the popular Othermill, serving as CEO for Other Machine Co. and orchestrating its rise to the forefront of the desktop milling field. Now rebranded as Bantam Tools, the company is somewhat unique in that it doesn’t ship its manufacturing off to foreign shores — they assemble their products right in the heart of Berkeley, California. So finding qualified workers is something that’s very much on her mind on a daily basis.
The demoscene is a hotbed of masterful assembly programming, particularly when it comes to platforms long forgotten by the passage of technology and time. There’s a certain thrill to be had in wringing every last drop of performance out of old silicon, particularly if it’s in a less popular machine. It’s that mindset that created Don’t Mess With Texas – a glorious megademo running on the TI-99/4A.
Entered in the oldskool demo contest at Syncrony 2017, the demo took out the win for [DESiRE], a group primarily known for demos on the Amiga – a far more popular platform in the scene. The demo even includes a Boing Ball effect as a cheeky nod to their roots. Like any good megademo, the different personalities and tastes brings a huge variety of effects to the show – there’s a great take on vintage shooters a la Wolfenstein in there too. [jmph] shared a few more details on the development process over on pouet.net.
The TI-99/4A wasn’t the easiest machine to develop for. It’s got a 16-bit CPU hamstrung by an 8-bit bus, and only 256 bytes of general purpose RAM. Despite the group’s best attempts, the common 32K RAM expansion present in the floppy drive controller is a requirement to run the demo. Just to make things harder, the in-built BASIC is too slow for any real use and there’s no function to allow the use of in-line assembly instructions. The group had to resort to a cartridge-based assembler to get the job done.
In the machine’s favour, it has a great sound chip put to brilliant use – the demo’s soundtrack will take you right back to the glory days of chiptune. It’s also got strong graphics capabilities for the era on par with, if not better than, the Commodore 64. The video subsystem in the TI works so hard that it’s the only DIP in the machine that gets a heatsink! The demo does a great job of pushing the machine to its limits in this regard.
We’re used to reflow soldering of our PCBs at the hacker level, for quite a few years people have been reflowing with toaster ovens, skillets, and similar pieces of domestic equipment and equipping them with temperature controllers and timers. We take one or two boards, screen print a layer of solder paste on the pads by using a stencil, and place our surface-mount components with a pair of tweezers before putting them in the oven. It’s a process that requires care and attention, but it’s fairly straightforward once mastered and we can create small runs of high quality boards.
But what about the same process at a professional level, what do you do when your board isn’t a matchbox-sized panel from OSH Park with less than 50 or so parts but a densely-packed multilayer board about the size of a small tablet computer and with many hundreds of parts? In theory the same process of screen print and pick and place applies, but in practice to achieve a succesful result a lot more care and planning has to go into the process.
This is being written the morning after a marathon session encompassing all of the working day and half of the night. I was hand-stuffing a row of large high-density boards with components ranging from 0402 passives to large QFPs and everything else in between. I can’t describe the board in question because it is a commercially sensitive prototype for the industrial customer of the friend I was putting in the day’s work for, but it’s worth going through the minutiae of successfully assembling a small batch of prototypes at this level. Apologies then, any pictures will be rather generic.
As he states in his deeply weird (though in no way wrong) channel intro, when he’s not driving a bus or teaching Israeli dance, he works hard to understand the things around him. Naturally, a mysterious phone number shaped set of digits in a favorite game was a secret worth extracting.
The digits can represent every possible state in the game. It uses a pretty simple decoding and encoding scheme, which he walks through. As he says, it all becomes clear when you can see the source code.
After working through all the quirks he is able to arbitrarily generate any state in the game and handle the exceptions (such as Nintendo USA’s phone number). You can see all his code here and try it out for yourself. Video after the break.
A SCARA (Selective Compliance Assembly Robot Arm) is a type of articulated robot arm first developed in the early ’80s for use in industrial assembly and production applications. All robotics designs have their strengths and their weaknesses, and the SCARA layout was designed to be rigid in the Z axis, while allowing for flexibility in the X and Y axes. This design lends itself well to tasks where quick and flexible horizontal movement is needed, but vertical strength and rigidity is also necessary.
This is in contrast to other designs, such as fully articulated arms (which need to rotate to reach into tight spots) and cartesian overhead-gantry types (like in a CNC mill), which require a lot of rigidity in every axis. SCARA robots are particularly useful for pick-and-place tasks, as well as a wide range of fabrication jobs that aren’t subjected to the stress of side-loading, like plasma cutting or welding. Unfortunately, industrial-quality SCARA arms aren’t exactly cheap or readily available to the hobbyist; but, that might just be changing soon with the Creo Arm. Continue reading “Creo Arm Might be the SCARA You’re Looking For”→