FreeSoC, For When You Need 68 I/O Pins

Like many of us, [Jon] began his journey through the magical world of microcontrollers with an Arduino. For a beginner, the Arduino is a wonderful tool, but [Jon] quickly found himself limited by the platform. There are too few pins on the Arduino, and and the platform doesn’t really lend itself to extremely complex projects. To this end, [Jon] designed freeSoC, an Arduino-compatible platform based on the Cypress Semiconductor PSoC 5.

The Cypress PSoC 5 is an extremely capable microcontroller with 60 general purpose I/O pins and 8 special purpose, high current outputs. Every pin on [Jon]’s freeSoC is completely configurable; if you want 24 SPI ports and a dozen 20-bit ADCs, just launch Cypress’ design software and configure the chip graphically. With this many I/O ports, the PSoC 5 is as useful as an FPGA, without all the hassle of actually being and FPGA.

A really neat feature of the freeSoC is its ability to be programmed graphically. Using Cypress’ PSoC Creator IDE, the multitude of I/O pins can be configured to just about anything very easily. Because the PSoC 5 is based on an ARM Cortex-M3, programming the freeSoC is as easy as any one of many ARM dev boards that were recently released.

[Jon] came up with a very, very neat project here, and it’s something we can definitely see the utility of.

Thanks [Dale] for sending this one in.

Stcdude Is Linux Friendly ISP Programming Software For STC 8051 Chips

[Andrew] picked up a handful of these big STC 8051 chips for a song and dance. The problem he has with them is the clunky VB6 programming software that only wants to run on a Windows box. He buckled down and wrote his own programming software called stcdude. As you have probably guessed, it’s meant to perform the same open-source functions that avrdude does for AVR chips. It can be used in conjunction with the Small Device C Compiler (SDCC).

It uses an API which is based on Lua script. We think this is to make it easy to interface your own hardware programmer with the software. The package is still quite early in development but it is working and even implements the ability to poll and identify the type of chip based on its stored hardware database. It sounds like he could use a hand. The stock software must still be used for setting the MCU options. We’re not really familiar with the 8051 family but we’d bet that is akin to setting the fuses on the AVR chips. Please let us know in the comments if we’re wrong about that.

[Limpkin’s] New Business Card

[Limpkin] decided to give the whole embedded business card thing a try. Here is his finished project, a low-profile mass storage business card that doesn’t cost an arm and a leg. Sure, the $6 price tag could score him a hundred paper cards, but those don’t light up like this one does!

The main components on the card include an AVR microcontroller, a flash memory chip, and an ESD protection chip. The latter is to make sure a static shock on the USB connector doesn’t zap the MCU. Speaking of, he went with an AT90USB162 which runs from an external 8 Mhz oscillator. Sure, it’s not the fastest thing out there, but since there’s only 16 Mb of flash on this card we don’t think you’ll notice any data transfer delay. The processor is running the LUFA stack and has two flavors of firmware. One that enumerates as an HID keyboard to automatically use keyboard shortcuts to launch a browser and load up his website. The other implements a mass storage device.

If you don’t like the electronic route, you could always go with some laser cut metal. We’ve heard that [Kevin Mitnick’s] business card has snap-out lock picking tools kind of like these.

LVDS On An FPGA Could Make It Possible To Reuse Laptops LCDs And The Like

Search around the Internet and you’ll find a landfill of forum threads asking how to drive the LCD screen from a dead laptop. The answer is always that there is just no way to do it. That’s because most of them use a Low-Voltage Differential Signalling protocol that just isn’t available through the hardware used in hobby projects. But the appearance of this board could signal that things are about to change. We don’t want to get your hopes up too much. This isn’t an open source project, but it is a piece of hardware that can make LVDS available for the 8, 16, and 32-bit microcontrollers you’re used to working with.

It’s a derivative of a project [Thomas Jespersen] worked on for a customer. It uses an FPGA to implement the LVDS standard used by high-pixel-count LCD displays. It contains enough memory for a full frame-buffer, and includes a Motorola-8080 communication standard. [Thomas] gives a full description of how the setup works in the video after the break. Demonstrations start about 7:30 into the video with an STM32 F4 Discovery board driving the display.

Continue reading “LVDS On An FPGA Could Make It Possible To Reuse Laptops LCDs And The Like”

Finally, An ARM-powered Arduino

Far removed from the legions of 3D printers featured at this year’s Maker Faire in New York was a much smaller, but far more impressive announcement: The ARM-powered Arduino DUE is going to be released later this month.

Instead of the 8-bit AVR microcontrollers usually found in Arduinos, the DUE is powered by an ATSAM3X8E microcontroller, itself based on the ARM Cortex-M3 platform. There are a few very neat features in the DUE, namely a USB On The Go port to allow makers and tinkerers to connect keyboards, mice, smartphones (hey, someone should port IOIO firmware to this thing), and maybe even standard desktop inkjet or laser printers.

The board looks strikingly similar to the already common Arduino Mega. That’s no mistake; the DUE is compatible with existing shields, so connecting a RAMPS board for your 3D printer should be a snap.

Here’s a PDF the Arduino and Atmel guys were handing out at their booth. A few DUE boards have already made it into the hands of important people in the Arduino community, including 3D printer guru [Josef Prusa]. Sadly, the folks at Arduino didn’t think media personalities needed a DUE before its release, so you’ll have to wait until we get our hands on one later this month for a review.

Disassembling And Reprogramming Webkeys

Webkeys are small, inexpensive USB devices which launch a web browser when plugged into a computer. They’re given out as a promotional item, but they can be fun to hack as well. [Brad Antoniewicz] recently got his hands on one and decided to crack it open to see what he could accomplish.

The majority of the device was packaging but it didn’t take him long to get down to the guts seen here. There are two units shown in the image above so that we can get a look at both sides of the circuit board. As you can see, there’s a chip-on-board processor (that black blob) that handles the USB connectivity. But the data which is pushed to a computer is stored in that EEPROM chip at the top. It’s got legs which are just begging to be probed. [Brad] wasn’t able to find the exact datasheet but he got some clues as to the pinout. Using his Bus Pirate he was able to establish communications and sniff the i2c traffic. With that success he went on to overwrite that data. You can see a quick demonstration of it after the break.

[Brad] hopes to do a bit more with the hardware. He thinks those four pads can be used to reprogram the MCU. We’ll keep our eyes out for updates as he moves along on that mission.

Continue reading “Disassembling And Reprogramming Webkeys”

Using A 555 Timer And ADC As A Random Seed

Most toolchains for embedded system include support for random number generation. But if you’ve read the manual you’ll know that this is really just pseudo random number generation (PRNG). When calling this function the same numbers will always return in the same order unless a different random number seed is supplied in advance. [Gardner] put together a simple and cheap solution for deriving better random number seeds. He reads a voltage from a 555 timer using the ADC on the microcontroller. At first glance it may not seem like a great source of randomness, but he performed some testing and the results look quite promising.

The project is aimed at Arduino-based circuits, but any chip with an ADC will work. The 555 timer is used as a free running oscillator. We know that this not be very stable when compared to even the worst of crystal oscillators, but that’s what makes it work so well as a random seed source. Add to this the low parts count and small size of the additional circuitry and you’ve got a winning combination. So keep this in mind when you need a random number but don’t necessarily need rock solid entropy.

[via Reddit and Freetronics]