Object Oriented State Machine Operating System Goes Open Source

On a desktop computer, you think of an operating system as a big piece of complex software. For small systems (like an Arduino) you might want something a lot simpler. Object Oriented State Machine Operating System (OOSMOS) is a single-file and highly portable operating system, and it recently went open source.

OOSMOS has a unique approach because it is threadless, which makes it easy to use in memory constrained systems because there is no stack required for threads that don’t exist. The unit of execution is a C++ object (although you can use C) that contains a state machine.

You can read the API documentation online. Just remember that this is not an end user OS like Windows or Linux, but an operating environment for managing multiple tasks. You can, though, use OOSMOS under Windows or Linux as well as many other host systems.

Continue reading “Object Oriented State Machine Operating System Goes Open Source”

Build An AM Radio Transmitter From A CPLD

[Alex Lao] has been playing around with the CPLD-like parts of a PSoC. Which is to say, he’s been implementing simple logic functions “in hardware” in software. And after getting started with the chip by getting accustomed to the different clock sources, he built a simple AM radio that transmits at 24 MHz.

The device that [Alex] is learning on is a Cypress PSoC 5LP, or more specifically their (cheap) prototyping kit for the part. The chip itself is an ARM microprocessor core with a CPLD and some analog tidbits onboard to make interfacing the micro with the outside world a lot easier. [Alex] doesn’t even mess around with the microprocessor, he’s interested in learning the CPLD side of things.

PRS-CircuitHe starts off with a 24 MHz carrier and a 1 kHz tone signal, and combines them with a logical AND function. When the tone is on, the carrier plays through; that’s AM radio at its most elemental. Everything is logic (square waves) so it’s a messy radio signal, but it’ll get the job done.

Adding a multiplexer up front allows [Alex] to play two tones over his “radio” station. Not bad for some simple logic, and a fantastic Hello World project for a CPLD. We can’t wait to see what [Alex] is up to next!

If you’re interested in getting your feet wet with either CPLDs in general or a CPLD + micro system like Cypress’s, the development kit that [Alex] is using looks like a cheap and painless way to start. (Relatively speaking — PSoCs are a step or two up a steep learning curve from the simpler 8-bit micros or an Arduino.) Hackaday’s own [Bil Herd] has a video on getting started with another member of the Cypres PSoC family, so you should also check that out.

An Improvised Synthetic Aperture Radar

[Henrik] is at it again. Another thoroughly detailed radar project has shown up on his blog. This time [Henrik] is making some significant improvements to his previous homemade radar with the addition of Synthetic Aperture Radar (SAR) to his previous Frequency Modulated Continuous Wave (FMCW) system.

[Henrik’s] new design uses an NXP LPC4320 which uniquely combines an ARM Cortex-M4 MCU along with a Cortex-M0 co-processor. The HackRF also uses this micro as it has some specific features that can be taken advantage of here like the Serial GPIO (SGPIO) which can be tediously configured and high-speed USB all for ~$8 in single quantity. The mixed signal design is done in two boards, a 4 layer RF board and 2 layer digital board.

Like the gentleman he is, [Henrik] has included schematics, board files, and his modified source from the HackRF project in his github repo. There is simply too much information in his post to attempt to summarize here, if you need instant gratification check out the pictures after the break.

The write-up on his personal blog is impressive and worth look if you didn’t catch our coverage of his single board Linux computer, or his previous radar design.

Continue reading “An Improvised Synthetic Aperture Radar”

BBC’s Micro:bit Gets Python

The BBC has developed a computer to be used by thousands of students across the UK. While not very powerful in terms of hardware, it comes with an interpreted language that will get students writing their own code and will launch the careers of an entire generation of web developers. This is, of course, the BBC Micro, a computer introduced in 1981, but is still deeply revered by millions of former students.

Microcontrollers are everywhere now, and the BBC is looking to replicate their success with the micro:bit. Unlike the BBC Micro, this isn’t a proper computer with a keyboard and a monitor. Instead, it’s a microcontroller development platform based on an ARM chip. Now, the micro:bit is getting Python, the BASIC of today, and will assuredly be even more useful in UK classrooms.

The initial development for Python on the micro:bit started down the road of using Microsoft’s TouchDevelop as a browser-based IDE that would send C++ code to an mBed cloud compilation service. A hex file would be generated, this would be downloaded to the local file system, and finally the student would simply drag the hex file over to the micro:bit since it appeared on the desktop as a USB storage device. This was a terrible idea, because MicroPython exists. The current way of running Python on the micro:bit is as simple as plugging it in to a USB port, opening a terminal, and writing some code. It’s the closest you’re ever going to get to a computer with BASIC in ROM, and it’s the best device for millions of 11-year-olds to learn how to code.

Thanks [dassheep] for the tip.

Flying High With Zynq

[Aerotenna] recently announced the first successful flight of an unmanned air vehicle (UAV) powered by a Xilinx Zynq processor running ArduPilot. The Zynq is a dual ARM processor with an onboard FPGA that can offload the processor or provide custom I/O devices. They plan to release their code to their OcPoC (Octagonal Pilot on a Chip) project, an open source initiative that partners with Dronecode, an open source UAV platform.

Continue reading “Flying High With Zynq”

Hipster Linux Box Is An 8mm Film Editor

Browsing though the junk store one day [Alec] spotted an old school 8mm film editor. For those who weren’t around, video used to be shot on film and editing it was a mechanical task of cutting (with a sharp implement) and pasting (with special tape) back together. It’s sad to see these in junk stores, but great for [Alec] who thought it begged to have an LCD and a single board computer implanted in it.  Once the editor was in hand, the machine was gutted of its very simple parts: a lamp, some mirrors and a couple of lenses. He took measurements of the hollowed out enclosure and got down to business.

The hunt for a 4:3 aspect ratio LCD was on. Through a little bit of research, an LCD security screen was ordered from Alibaba. For the brains of the build an OLinuXino A13 board was chosen due to its native VGA output perfect for the LCD screen, a decent 1GHz Allwinner CPU, and the physical size which would fit in the editor housing.

With some haggling, Linux was installed on the SBC along with some games and the system was buttoned back up. A neat touch was added to the arms where you would originally place your film reals in the form of some fold out speakers, making the whole thing look like something direct out of a classic Sci-fi film. Check out the name of the project: PCsr, pronounced PC Senior… nice!

We’d love to see some film reels added as speaker grills. Maybe there will be some leftover reels to use after converting all your old film to digital.

Join us after the break for a quick video

Continue reading “Hipster Linux Box Is An 8mm Film Editor”

64bits Of Development Board

Whether we need them or not, we don’t usually shy away from a development board. [Keith] sent us a tip on the DragonBoard 410c after reading our recent coverage of the latest Beagleboard release. Arrow Electronics is manufacturing (and distributing, not surprisingly) the first Qualcomm Snapdragon 400 series based development board. At the time of writing there are two boot images on the 96boards.org site available for download Android 5.1 and an Ubuntu based version of Linux.

The DragonBoard 410c is stuffed with an Arm Cortex-A53 (Arm block diagram after the break) with max speed of 1.2GHz and support for 32bit and 64bit code. It also has on-board GPS, 2.4GHz WiFi, Bluetooth 4.1, full size HDMI connector, a micro USB port that operates in only device mode, two full size USB 2.0 ports for host mode, a micro SD card slot. In the way of GPIO it has a 40 pin low speed connector and a 60 pin high speed connector, there is also an additional 16 pin breakout for analog audio, and the list goes on (follow links above for more info).

For those of you playing buzzword drinking games not to worry, the board can be made Arduino compatible by using the mezzanine connector and there is a plan for the board to be Windows 10 compatible. Better make that a double!

Continue reading “64bits Of Development Board”