Christmas Lights Done the Hard Way

It’s that time of the year again when you gotta start worrying if you’ve been naughty enough to not receive any gifts. Hopefully, Blinky Lights will appease St. Nick. Grab a strip of RGB LEDs, hook them up to an Arduino and a Power supply, slap on some code, and Bob’s your Uncle. But if you want to retain your hacker cred, you best do it the hard way. Which is what [roddersblog] did while building his Christmas Starburst LED Stars this year — and bonus points for being early to the party.

christmas-lights-the-hard-wayFor starters, he got panels (as in PCB panels) of WS2812 boards from eBay. The advantage is it lets you choose your own pitch and strand length. The flip side is, you need to de-panel each board, mount it in a jig, and then solder three lengths of hook up wire to each LED. He planned for an eight sided star with ten LED’s each. And he built three of them. So the wiring was, substantial, to say the least. And he had to deal with silicone sealant that refused to cure and harden. But nothing that some grit and determination couldn’t fix.

For control, he choose the PIC16F1509 microcontroller. This family has a feature that PIC calls the “Configurable Logic Cell” and this Application Note describes how to use CLC to interface the PIC to a WS2811. He noticed processing delays due to C code overheads that caused him some grief. After some experimentation, he re-wrote the entire program in assembly which produced satisfactory results. You can check out his code on the GitHub repository.

Also well worth a look, he’s got a few tricks up his sleeve to improve the quality of his home-brew PCB’s. He’s built his own UV exposure unit with timer, which is an interesting project in itself. The layout is designed in Eagle, with a flood fill to minimize the amount of copper required to be etched away. He takes a laser print of the layout, applies vegetable oil to the paper to make it more translucent to UV, and doubles up the prints to get a nice contrast.

Once the sensitized board has been exposed in the UV unit, he uses a weak but fresh and warm solution of Sodium Hydroxide as a developer to remove the unexposed UV photo-resist. To etch the board, he uses standard Feric Chloride solution, which is kept warm using an aquarium heater, while an aquarium air-pump is used to agitate the solution. He also describes how he fabricates double sided boards using the same technique. The end result is quite satisfying – check out the video after the break.

Continue reading “Christmas Lights Done the Hard Way”

HiFive1: RISC-V In An Arduino Form Factor

The RISC-V ISA has seen an uptick in popularity as of late — almost as if there’s a conference going on right now — thanks to the fact that this instruction set is big-O Open. This openness allows anyone to build their own software and hardware. Of course, getting your hands on a RISC-V chip has until now, been a bit difficult. You could always go over to opencores, grab some VHDL, and run a RISC-V chip on an FPGA. Last week, OnChip released the RISC-V Open-V in real, tangible silicon.

Choice is always a good thing, and now SiFive, a fabless semiconductor company, has released the HiFive1 as a crowdfunding campaign on CrowdSupply. It’s a RISC-V microcontroller, completely open source, and packaged in the ever so convenient Arduino form factor.

The heart of the HiFive1 is SiFive’s FE310 SoC, a 32-bit RISC-V core running at 320+ MHz. As far as peripherals go, the HiFive1 features 19 digital IO pins, one SPI controller, 9 PWM pins, an external 128Megabit Flash, and five volt IO. Performance-wise, the HiFive1 is significantly faster than the Intel Curie-powered Arduino 101, or the ARM Cortex M0+ powered Arduino Zero. According to the crowdfunding campaign, support for the Arduino IDE is included. A single HiFive1 is available for $59 USD.

Since this is an Open Source chip, you would expect everything about it to be available. SiFive has everything from the SDK to the RTL available on GitHub. This is an impressive development in the ecosystem of Open Hardware, and something we’re going to take a look at when these chips make it out into the world.

“Alexa, Make My ESP8266 Do Something”

The Amazon Echo and its diminutive Dot cousin have the handy feature of being able to control some home automation devices. If you own the right manufacturer’s hardware you can bend your home to your will using the power of your voice alone.

The trouble is, if your hardware isn’t on the list of supported devices or if you make your own, you’re out of luck.

[Xose Pérez] had been sidestepping this problem by using a server running a set of scripts emulating a Belkin WeMo device, which Echo supports. The server could issue commands to his microcontrollers, but he wanted more. Why not cut out the middle man to incorporate the WeMo emulation directly on the ESP8266 that did the work?

He took the Fauxmo Python WeMo emulator he had been using, and ported it to an ESP8266 library that can be incorporated in existing code to make it appear to the world as a WeMo device. With the code itself he has provided full instructions on its BitBucket page as well as on the page linked above.

He admits that he is not the first person to have achieved this aim, and points to this earlier project. However his requirement for a library to be incorporated in another piece of software were not satisfied by it, hence his work.

We like this project, but it’s probably worth reminding readers that Alexa does have an SDK in the form of the Alexa Skills Kit. You can use it to do all sorts of clever things with your Echo or Dot… or you can make it the brains of a Big Mouth Billy Bass novelty ornament.

Open-V, The First Open Source RISC-V Microcontroller

Open Source software has been around for decades. Over these decades, Open Source software has been the driving force behind most of the Internet, and all of the top-500 supercomputers. The product of the Open Source software movement is perhaps more important than Gutenberg’s press. But hardware has not yet fully embraced this super-charging effect of openness. Being able to simply buy an open source CPU, free of all proprietary bits and NDAs is impossible.

Now, this is finally changing. OnChip, a startup from a group of doctoral students at the Universidad Industrial de Santander in Colombia, have been working on mRISC-V, an open 32-bit microcontroller based on the RISC-V instruction set. It’s now a crowdfunding campaign, and yes, you can simply buy an open source chip.

We’ve taken a look at onchip’s Open microcontroller project before. The team has made significant progress of moving from something that can run on an FPGA to the tapeout of a real, physical chip. The onchip twitter timeline is a flurry of activity, with real silicon and a prediction that 50% of low-end microcontrollers will be running RISC-V in a decade.

A render of the Open-V dev board

If you want to get your hands on one of these open microcontrollers, the Crowd Supply campaign is actually fairly reasonable, considering this is custom silicon. $49 USD gets you a first-run mRISC-V in a QFN-32 package. $99 gets you the mRISC-V dev board with an SD card slot, USB, regulators, and of course the micro itself.

This chip’s capabilities are almost on par with a low-power ARM Cortex M0. The chip itself runs at 160MHz, has SPI, I2C, SDIO, and JTAG, as well as a 10-bit 10MS/s ADC and a 12-bit DAC. There are 16 GPIO pins on mRISC-V. You won’t be able to build a smartphone or laptop with this chip, but you will be able to build an Internet of Things gizmo.

While OnChip’s efforts won’t result in a completely open source smartphone, there are other projects in the works that will bring an Open Source core to more powerful devices. lowRISC is a project to bring a Linux-capable System on Chip to production, and various people smarter than us have brought GCC, LLVM, and QEMU to the architecture.

Most of the efforts to bring the RISC-V architecture, and indeed most Open Source processors, have focused on the big chips — full CPUs and SoCs. Onchip’s mRISC-V goes the other direction to create a small, open microcontroller. If you’re looking to create an ecosystem of Open processors, this makes a lot of sense; there are more Honda Civics on the road than Lamborghinis, and Microchip and TI ship far more microcontrollers every year than Intel ships CPUs.

Only One Button? No Problem!

Sometimes less is more. This is especially true when dealing with microcontrollers with limited I/O pins. Even if you have lots of I/O, sometimes you are need to pack a lot into a little space. [Hugatry] was inspired by the simple interface found on a lot of flashlights: one button. Push it and it turns on. Push it again, and it switches modes. You cycle through the modes until you finally turn it back off. One button provides mutliple functions. The question is how can you use a power switch as an I/O device? After all, when you turn the power off, the microprocessor stops operating, right?

[Hugatry’s] answer is quite simple. He connects a resistor/capacitor network to an I/O pin (or multiple pins). When the processor turns on initially, the pin will read low and the capacitor will charge up. If you turn the power off, the CPU voltage will fall rapidly to zero, but the voltage on the capacitor will discharge slower. If you wait long enough and turn the power on, there’s no difference from that first power on event. But if you turn the power on quickly, the capacitor voltage will still be high enough to read as a logic one.

What that means is that the processor as part of its start up can detect that it was recently turned off and take some action. If it remembers the previous state in nonvolatile memory, you can have the code cycle through multiple states, just like a flashlight. You can see a video of the setup, below.

Continue reading “Only One Button? No Problem!”

Arduino with a… PIC?

Before the Arduino took over the hobby market (well, at least the 8-bit segment of it), most hackers used PIC processors. They were cheap, easy to program, had a good toolchain, and were at the heart of the Basic Stamp, which was the gateway drug for many microcontroller developers.

[AXR AMR] has been working with the Pinguino, an Arduino processor based on a PIC (granted, an 18F PIC, although you can also use a 32-bit device, too). He shows you how to build a compatible circuit on a breadboard with about a dozen parts. The PIC has built-in USB. Once you flash the right bootloader, you don’t need anything other than a USB cable to program. You can see a video of this below.

You will need a programmer to get the initial bootloader, but there’s plenty of cheap options for that. The IDE is available for Windows, Linux, and the Mac. Of course, you might wonder why you would use a PIC device instead of the more traditional Arduino devices. The answer is: it depends. Every chip has its own set of plusses and minuses from power consumption to I/O devices, to availability and price. These chips might suit you, and they might not. That’s your call.  Of course, the difference between Microchip and Atmel has gotten less lately, too.

We’ve covered Pinguino before with a dedicated board. If you never played with a Basic Stamp, you might enjoy learning more about it. If you’re looking for more power than a PIC 18F can handle, you might consider the Fubarino, a PIC32 board you can use with the Arduino IDE.

Continue reading “Arduino with a… PIC?”

1MHz, 2 Boards, 4 Bits and a Homebrew CPU

[Agp.cooper] saw a vintage 4Kx4 bit RAM chip and decided that it needed a CPU design to match. The TTL design fits on two boards and has a functional front panel.

This custom CPU project has a few interesting bits worth noting. First, it is small enough that you can wrap your head around it pretty easily. And [Agp.cooper] gives  a good account of the instructions set architecture choices he considered and why he settled on the final design.

Continue reading “1MHz, 2 Boards, 4 Bits and a Homebrew CPU”