[Tim’s] new version of Micronucleus, Micronucleus 2.0, improves upon V-USB by removing the need for interrupts. The original Micronucleus was a very small implementation of V-USB that took up only 2KB. Removing the need for interrupts is a big leap forward for V-USB.
For those of you that do not know, “V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.” One tricky aspect of using V-USB is that the bootloader requires interrupts, which can lead to messy problems within the user program. By removing the need for interrupts, Micronucleus 2.0 reduces the complexity of the bootloader by removing the need to patch the interrupt vector for the user program.
With the added benefit of speeding up the V-USB data transmission, Micronucleus 2.0 is very exciting for those minimal embedded platforms based on V-USB. Go ahead and try out Micronucleus 2.0! Leave a comment and let us know what you think.
If you’d like to play BattleCallSpaceMarine on the Playstation 4 with a keyboard and mouse – and have an unfair advantage over everyone else playing on a console – you’d normally be out of luck. Sony implemented a fair bit of software to make sure only officially licensed controllers are able to talk to the console. It took a while, but [Frank Zhao] has figured out why keyboard and mouse doesn’t work on PS4, and created a device to enable these superior input devices.
Sony engineers decided – or were told – that the PS4 shouldn’t be able to connect to any old USB device. To that end, they made the console issue challenges to a DualShock controller to make sure the official controller is always connected over Bluetooth.
[Frank]’s device solves this problem by taking the USB output from a keyboard and mouse, doing the CRC calculations, and sending them out over Bluetooth. Because the PS4 constantly issues challenges and responses of the authentication procedure, a real DualShock controller needs to be connected to the device at all times. Still, if you want a keyboard and mouse on the PS4, this is the way to do it.
All the sources and layouts are up on [Frank]’s github where you’re free to create your own. This isn’t a finished product quite yet; [Frank] still needs to do a redesign of the circuit. Judging from the response of his earlier attempt at keyboards and mice on the PS4, though, this may be a successful product in the works.
Thanks to V-USB, software-based USB is all the rage now, with a lot of uses for very small and low power microcontrollers.[ZiB] wondered if it would be possible to implement a USB controller on the STM8 microcontroller (Google translation) in software and succeeded.
The STM8 is a bit of a change from the usual 8-bit micros we see like AVRs and PICs. [ZiB] chose the STM8S103F3, although any chip in the STM8 family will work with this project when a 12MHz crystal is attached.
The build began by generating USB signals with the help of a whole lot of NOPs. This code doesn’t take up much space – only 300 bytes, and the receiving code (Google translation) is similarly sized.
The code isn’t quite there yet, but [ZiB] has proven a software-based USB implementation on the STM8 is possible. All the code is available for download (comments in Russian) and a video demoing the project available below. If anyone cares to translate this project to English, we’ll post a link to your work here.
Continue reading “Software USB On The STM8″
Since the Hackaday community started working on our offline password keeper, Mooltipass, we’ve received several similar projects in our tips line. The Final Key may be the most professional looking one yet. Similarly to the Mooltipass, it is based on an Atmel ATMega32U4 but only includes one button and one LED, all enclosed in a 3D printed case.
The Final Key is connected to the host computer via USB and is enumerated as a composite Communication Device / HID Keyboard, requiring windows-based devices to install drivers. AES-256 encrypted passwords are stored on the device and can only be accessed once the button has been pressed and the correct 256 bit password has been presented through the command line interface. Credentials management and access is also done through the latter. Unfortunately, the Arduino source code can’t be found on [cyberstalker]’s website, so if you see interesting features that you would like to be integrated in Mooltipass you may send us a message to our Google Group.
Adding USB functionality to your Arduino projects used to be a pain, but thankfully, the V-USB project came along and gave your ATMEGA328 the ability to control the USB lines directly and mimic simple (low-speed) USB peripherals. [Ray] shows an implementation of the V-USB project by logging the status of the Arduino’s I/O pins to an open Excel spreadsheet
V-USB (Virtual USB) is especially useful for those of us who build standalone Arduino projects with the ATMEGA328. Unlike the Arduino Leonardo and its ATMEGA32U4, the ATMEGA328 does not have a built-in USB controller. The circuit required to tie into the USB lines is made up of just a few basic components, and [Ray] provides a reference schematic and BOM to get you started. The Arduino is programmed to mimic a keyboard, so the datalogging is achieved by allowing the Arduino to ‘type’ the data into an open Excel spreadsheet. In this example, the status of 8 digital pins and all 6 Analog Input pins are logged.
For those of you who prefer the PIC microcontroller and are in a similar position of not having a built-in USB controller, there is the 16FUSB project to help you out.
Looking to interface your Arduino with the PS4 controller? [Kristian] has updated his USB host library with support for the controller. The library makes it easy to read most of the inputs from the controller. Currently the buttons and joysticks work, and support for the light sensor, rumble, and touchpad is on the way.
To get this working, you will need the USB Host Shield for the Arduino and a Bluetooth dongle. Once you have the hardware setup, you can use the library to pair with the controller. When connected, simple function calls will let you read the state of the device.
While this does require some additional hardware to connect, all of the code is open source. If you’re looking to experiment with the PS4 controller yourself, [Kristian]’s work could be a helpful starting point. Of course, all of the source is available on Github, and the example sketch shows how easy it is to roll the PS4 controller into your own Arduino project.
[Ronald] had to scramble to get his submission in, but we’re glad he did. His demo video shows the display of a 1980’s CD player working with Music Player Daemon. It’s really just the original display itself that works, but the project is not yet finished. However, is far enough along to show our URL when a track reaches the 22:00 mark.
The display is driven by an ATmega32 chip which uses a USB connection to receive commands from the computer running MPD. [Ronald] had troubles figuring out how to send int values over USB so he hacked his own protocol that just uses the LSB of each byte coming over the bus. After the break you can see the video, and read the description which he included with his submission. There is also a code package available here.
This is an entry in the Fubarino Contest for a chance at one of the 20 Fubarino SD boards which Microchip has put up as prizes!
Continue reading “Fubarino-Contest: 1980’s CD Player with MPD”