Parallel Processing Was Never Quite Done Like This

Parallel processing is an idea that will be familiar to most readers. Few of you will not be reading this on a device with only one processor core, and quite a few of you will have experimented with clusters of Raspberry Pi or similar SBCs. Instead of one processor doing tasks sequentially, the idea goes, take a bunch of processors and hand out the tasks to be done simultaneously.

It’s a fair bet though that few of you will have designed and constructed your own parallel processing architecture. [BB] sends us a link which though it’s an old one is interesting enough to bring you today: [Michael] created a massively parallel array of Parallax Propeller microcontrollers back in 2008, and he did so on a breadboard.

The Parallax Propeller is an 8-core RISC microcontroller from the company that had found success in the 1990s with the BASIC Stamp, the PIC-based board that was all the rage before Arduino came into the world. In the last decade it was seen as an extremely exciting prospect, but high price and arcane development tools compared to a new generation of low-cost and easy to code competitors meant that it never quite caught on and remains today something of an intriguing oddity. So today’s value in this project lies not in something that you should run out and do yourselves, but instead in what the work tells us about the nuts and bolts of parallel processing architecture. It involves more than simply hooking up a load of chips and hoping for the best, and we gain some insight into the different strategies involved.

The Propeller certainly wasn’t the first attempt at a massively parallel microcontroller, and we doubt it will be the last. We’re certainly seeing microcontrollers with more than one core becoming more mainstream even in our community, but even with those how many of you have made use of the second core in your dual-core ESP32? Is a multicore microcontroller a solution searching for a problem, or will somebody one day crack it and the world will never be the same again? As always, the comments are below.

Hackaday Links Column Banner

Hackaday Links: October 7, 2018

Ah, crap. We lost a good one, people. [Samm Sheperd] passed away last month. We’ve seen his stuff before, from a plane with a squirrel cage fan, to completely owning a bunch of engineering students by auditing a class. The obit is available as a Google Doc, and there’s a Samm Sheperd Memorial Fund for the Big Lake Youth Camp in Gladstone, Oregon.

FranLab is closing down! Fran is one of the hardware greats, and she’s being evicted. If you’ve got 2000sqft of workshop space in Philly you’d like to spare, you know who to talk to. There will, probably, be a crowdfunding thing going up shortly, and we’ll post a link when it’s up.

The Parallax Propeller is probably one of the most architecturally interesting microcontrollers out there. It’s somewhat famous for being a multi-core chip, and is commonly used in VGA generation, reading keyboards, and other tasks where you need to do multiple real-time operations simultaneously. The Parallax Propeller 2, the next version of this chip, is in the works, and now there’s real silicon. Everything is working as expected, and we might see this out in the wild real soon.

Thought artistic PCBs were just a con thing? Not anymore, I guess. There has been a lot of activity on Tindie with the Shitty Add-Ons with [TwinkleTwinkie] and [Potato Nightmare] releasing a host of very cool badges for your badges. Most of these are Shitty Add-Ons, and there will be an update to the Shitty Add-On spec shortly. It’s going to be backwards-comparable, so don’t worry.

Unnecessary drama!?! In my 3D printing community?!? Yes, it’s true, there was a small tiff over the Midwest RepRap Festival this week. Here’s what went down. You got three guys. John, Sonny, and Steve. Steve owns SeeMeCNC, based in Goshen, Indiana. John worked for SeeMeCNC until this year, and has been the ‘community manager’ for MRRF along with Sonny. Seeing as how the RepRap Festival is the only thing that ever happens in Goshen, Steve wanted to get the ball rolling for next year’s MRRF, so he sent out an email, sending the community into chaos. No, there’s not some gigantic fracture in the 3D printing community, John and Sonny, ‘were just slacking’ (it’s five months out, dudes. plenty of time.), and Steve wanted to get everything rolling. No problem here, just a bunch of unnecessary drama in the 3D printing community. As usual.

The Open, Hackable Electronic Conference Badge

Electronic conference badges have been around for at least a decade now, and they all have the same faults. They’re really only meant to be used for a few days, conference organizers and attendees expect the badge to be cheap, and because of the nature of a conference badge, the code just works, and documentation is sparse.  Surely there’s a better way.

Enter the Hackable Electronic Badge. Ever since Parallax started building electronic conference badges for DEF CON, they’ve gotten a lot of requests to build badges for other conventions. Producing tens of thousands of badges makes Parallax the go-to people for your conference badge needs, but the requests for badges are always constrained by schedules that are too short, price expectations that are too low, and volumes that are unknown.

There’s a market out there for electronic conference badges, and this is Parallax’s solution to a recurring problem. They’re building a badge for all conferences, and a platform that can be (relatively) easily modified while still retaining all its core functionality.

Continue reading “The Open, Hackable Electronic Conference Badge”

Hacklet 73 – Parallax Propeller Projects

In 2006, Parallax, Inc wasn’t new to the electronics business. They’d been around since 1987. Still, for a relatively small company, jumping into custom chips is a big leap. Parallax didn’t just jump into some cookie cutter ASIC, they made their own parallel multi-core microcontroller. Designed by [Chip Gracey], the Parallax Propeller has 8 cores, called cogs. Cogs are connected to I/O pins and other resources by a hub. The Propeller saw commercial success, and continues to have a loyal following. This week’s Hacklet is about some of the best Propeller projects on Hackaday.io!

wozWe start with retrocomputing prop star [Jac Goudsmit] and L-Star: Minimal Propeller/6502 Computer. [Jac] loves the classic 6502 processor. Inspired by [Ben Heckendorn’s] recent Apple I build, [Jac] wanted to see if he could replicate an Apple I with minimal parts. He built upon the success of his Software-Defined 6502 Computer project and created L-Star. The whole thing fits on a Propeller proto board with room to spare. The project uses a 6502, with a Propeller handling just about everything else. The system takes input from a PS-2 keyboard, and outputs via composite video, just like the original Apple I. As you can see from the photo, it’s quite capable of displaying Woz in ASCII. [Jac] has expanded the L-Star to support the Ohio Scientific C1P and CompuKit UK101, both early 6502 based computers.

 

bbotNext up is [Mike H] with B-BOT. B-BOT is a balancing robot. [Mike] used B-BOT to learn about designing with the Propeller and programming in SPIN, the Prop’s built-in interpreted language. While slower than assembler, SPIN was plenty fast enough to solve the classic inverted pendulum problem. B-BOT’s primary sensor is a Pololu AltIMU-10. This module contains a gyro, accelerometer, compass, and altimeter all on one tiny board. Locomotion comes in the form of two stepper motors. Command and control is via X-Bee radio modules. All the parts live on a custom PCB [Mike] milled using his CNC router.

 

xynq[Antti.lukats] created Soft Propeller, his entry in the 2015 Hackaday Prize. Soft Propeller doesn’t use a hardware Propeller at all. The core of the system is a Xilinx Zynq-7 chip, which contains an FPGA and a Dual Core ARM A9+ processor. Back in 2014, Parallax released the Verilog HDL code for the Propeller core. [Antti] has taken this code and ported it over the Zynq-7. With 256Kb of RAM, 16 MB of Flash and an LED, the entire system fits in a DIP package smaller than a stick of gum.

 

pipmanFinally, we have [Christian] with Pipman GPS Watch. There’s just something about the Pip-boy from the Fallout video game series. This Personal Information Processor (PIP) has spawned hundreds of projects from cosplayers and electronics hobbyists alike. [Christian’s] version uses a 4D systems TFT LCD to display those awesome graphics. Input comes through a 5 way navigation switch. A GPS and compass module provide all the navigation data Pipman needs. At the center of it all is a Parallax Propeller programmed in SPIN. [Christian] has a working prototype on his bench. He’s now working on modeling a 3D printed case with Blender.

There are a ton of Propeller projects on Hackaday.io. If you want to see more, check out our Propeller Project list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

Sideways Segway!

The Self-Balancing Sideways Segway

[Jason Dorie] has been hard at work on his two-wheeled, self-balancing skateboard. He calls it the Sideway.

Similar to the Segway, it relies on the user shifting their weight to control the speed at which it will run. A Wii Nunchuk controller is used to steer, which varies each wheels output, which allows for some tight maneuvering!

Under the deck is a pair of 24V 280W (about 1/3HP each) scooter motors which are driven by two 32A Sabertooth speed controllers. They’re run off a pair of 3 cell 5Ah LiPos which get him about 40 minutes of use — not too shabby! To handle the control algorithm for the IMU, he’s using a Parallax Propeller with custom software.

To demonstrate, he takes us of a tour of one of his favorite stores — Michael’s.

Continue reading “The Self-Balancing Sideways Segway”

DIY Punch Card System Despite Hanging Chads

Sometimes you just have parts lying around and want to make something out of them. [Tymkrs] had a robot paper cutter, so naturally they made punch cards. But then, of course, they needed a punch card reader, so they made one of those too. All with stuff lying around the shop.

The Silhouette Portrait paper cutter is meant for scrapbooking, but what evokes memories of the past more than punchcards? To cut out their data, rather than cute kittens or flowers, they wrote some custom code to turn ASCII characters into rows of dots. And the cards are done — you just have to clean up the holes that didn’t completely cut. These are infamously known as hanging chads.

The reader is made up of a block of wood, with a gap for the cards and perpendicular holes drilled for LEDs and photoresistors. This is cabled to a Propeller dev board with some simple firmware. We would have used photodiodes or phototransistors, because that’s what’s in our junk box (and because they have faster reaction time), but when you’ve got lemons, make lemonade.

OK, now that you’ve got a punch card reader and writer, what do you do with it? Password storage comes to mind.

Continue reading “DIY Punch Card System Despite Hanging Chads”

Hacklet 38 – 6502 Projects

The 6502 CPU is probably the most famous of all the 8-bit processors out there, whether in the form of bare chips for homebrew computers, or as slightly modified derivative chips found in everything from the C64, the NES, and the BBC Micro. For this edition of the Hacklet, we’re taking a look at all the 6502-based builds on hackaday.io.


6917521396192751941There aren’t many transistors on a 6502, making it perfect for implementing on an FPGA. [Michael A. Morris] has an Arduino FPGA shield, and his soft-6502 project is called Cameleon. There’s a bunch of SPI Flash and FRAM on board, and the 128kB of (parallel) SRAM on the board is more than enough to handle any computational task you can throw at it.

Since the Cameleon is built on programmable logic, [Michael] thought it would be a good idea to put some of those unused opcodes to use. There are instructions for coprocessor support, and a bunch of instructions specifically designed to make the Forth implementation easier.


4244551421640813832Maybe programmable logic isn’t your thing, and you’d just like a simple computer like the Ohio Scientific or the Apple I. The L-Star is for you. That’s [Jac Goudsmit]’s build featuring a 6502, a Parallax Propeller, and little else.

The Parallax Propeller is a powerful (multi-core!) chip that’s easily capable of handling video out, keyboard in, and serving up the ROM and RAM of a computer. [Jac]’s build does it all beautifully, and if you’re looking for the easiest way to run code on a 6502, this is how you do it.


6502s were found in just about everything, and while poking around at the local e-waste recycler, he stumbled upon something rather interesting. The case badges screamed, “BS medical device”, but after poking around a bit, he figured out this was an MTU-130 system, a machine that was apparently the top of the line in its day.

There’s some weird stuff going on in this machine – 18-bit addressing and 80kB of RAM. So far [Eric] has managed to dump the ROM, and he’s taking a look at the floppy controller board to see if he can figure out how it’s mapped. It’s one thing to figure out what’s broken on an Apple II or C64; those are well documented machines. It’s another thing entirely to figure out a machine very few people have heard of, and we tip our hat to [Eric] and his efforts.


4000511410347834190Here’s a build that both does and doesn’t have a 6502 in it. [BladeRunner]’s SheMachine is a single board computer that has a 65c816 in it. The ‘816 is an interesting beast that operates as a standard 6502 until a bit is flipped in one of its registers. After that, it has a 24-bit address space for addressing 16 Megabytes of memory, 16-bit registers, but is still completely backwards compatible with the 6502. Yes, it does have weird interleaved address pins, but we can only imagine what the world would be like if this chip came out a few years earlier…

[BladeRunner] is designing the SheMachine with 1MB of SRAM – more than enough, really – and is mapping all the memory through a CPLD. That’s how you should do it, anyway.