USB category

USB Curve Tracer

A small and inexpensive USB-based curve tracer used for troubleshooting electronics in the style of the Huntron Tracker 2000. by Jason Jones:

This documents a USB-based curve tracer based on the PIC24FV16KM202, which is a modest 16-bit microcontroller. The board uses a PC screen OR an oscilloscope in XY mode as a display and may connect to multimeter probes for functionality.

USB Curve Tracer – [Link]

ICP12 USBSTICK, A New Tool for Signals Control & Monitoring

iCircuit Technologies had produced the iCP12 usbStick, a mini size 28 pin USB PIC IO development board and a good tool for signal monitoring (as oscilloscope), data acquisition and circuit troubleshooting at 1mSec/Samples period.

The iCP12 usbStick is a PIC18F2550 based USB development board that comes preloaded with Microchip’s USB HID bootloader which allows users to upload an application firmware directly through a PC’s USB port without any external programmer. It provides access to its I/O pins through 0.1″ pitch headers. A slide switch is also provided on board to select the operation of the board in Bootloader or Normal mode.

The features of iCP12 are listed as following:

  • Mini size, easy interfacing, high performance and user friendly device
  • Used with PIC18F2553 28-Pin Flash USB PIC MCU
  • Excellent flexibility that allows user to expand the board with plug and play modules
  • Peripheral Features:
    • 13x IO Port (6x 12bit ADC pins, 2x 10 bit PWM/Freq/DAC pins)
    • Serial port emulation (UART Baud Rates: 300 bps to 115.2 kbps)
    • Supported operating systems (32bit/64bit): Windows XP ,Windows Vista, Windows 7, Windows 8, Windows 10, Linux, Mac OS X and Raspberry Pi
    • Maximum Voltage: 5Vdc
    • 100mA current output at VDD pin with over-current protection
    • 20MHz oscillator
    • Green LED – power on indicator
    • 2x LEDs (Green, Red) – status indicator
    • ICSP Connector – on-board PIC programming
    • Switch Mode Selection – Boot or Normal mode

The iCP12 usbStick board is shipped with a preloaded data acquisition firmware that emulates as a virtual COM port to PC. Thereafter, the communication between the PC and usbStick is serial. The firmware also supports basic I/O control and data logging feature. They provide a PC application named SmartDAQ that is specially developed to communicate with the usbStick and control its I/O pins, PWM outputs, and record ADC inputs.

SmartDAQ has a very friendly GUI with real-time waveform displays for 6 analog input channels. The time and voltage axes scales are adjustable. SmartDAQ can log the ADC data in both text and graphic form concurrently. One can utilize this feature to construct a low-cost data acquisition system for monitoring multiple analog sensor outputs such as temperature, accelerometer, gyroscope, magnetic field sensor, etc.

SmartDAQ v1.3 Features:

  • Sampling channel: 6x Analogs (12bits ADC/1mV Resolution) + 7x Digitals (Input/Output)
  • Maximum Sampling rate: 1KHz or 1mSec/Samples
  • Sampling voltage: 0V – 5V (scalable graph) at 5mV Resolution
  • Sampling period:
  • mSec: 1, 2, 5, 10, 20, 50, 100, 200, 500
  • Sec: 1, 2, 5, 10, 20, 30
  • Min: 1, 2, 5, 10, 20, 30, 60
  • Trigger Mode: Larger [>], Smaller [<], Positive edge [↑], Negative edge [↓]
  • Sampling Mode: Continuous, Single
  • Logging Function:
  • Save Format: Text, Graphic, Both
  • Start Time: Normal, Once Trigger, 24-Hour Clock (Auto Run)
  • End Time: Unlimited, Data Size, 24-Hour Clock (Auto Stop)
  • Recorded Data format: Graphic | text | excel

iCP12 is available with the PIC18F2550 for $15, and with the PIC18F2553 for $24.5. You can order it through the official page where you can also get more details about iCP12 and its source files.

You can also see this product preview to know more about its functionality.

Micro Maestro 6-Channel USB Servo Controller

The Micro Maestro is the first of Pololu’s second-generation USB servo controllers. The board supports three control methods — USB for direct connection to a PC, TTL serial for use with embedded systems, and internal scripting for self-contained, host controller-free applications — and channels that can be configured as servo outputs for use with radio control (RC) servos or electronic speed controls (ESCs), digital outputs, or analog inputs. The Micro Maestro is a highly versatile six-channel servo controller and general I/O board in a highly compact (0.85 x 1.20″) package.

The extremely accurate, high-resolution servo pulses have a jitter of less than 200 ns, making this servo controller well suited for high-precision animatronics, and built-in speed and acceleration control make it easy to achieve smooth, seamless movements without requiring the control source to constantly compute and stream intermediate position updates to the Micro Maestro.

Check this intro video by Pololu to see Micro Maestro in action:

Key Features

  • Three control methods: USB, TTL (5V) serial, and internal scripting
  • 0.25μs output pulse width resolution (corresponds to approximately 0.025° for a typical servo, which is beyond what the servo could resolve)
  • Pulse rate configurable from 33 to 100 Hz
  • Wide pulse range of 64 to 3280 μs when using all six servos with a pulse rate of 50 Hz
  • Individual speed and acceleration control for each channel
  • Channels can also be used as general-purpose digital outputs or analog inputs
  • A simple scripting language lets you program the controller to perform complex actions even after its USB and serial connections are removed
  • Free configuration and control application for Windows makes it easy to:
    • Configure and test your controller
    • Create, run, and save sequences of servo movements for animatronics and walking robots
    • Write, step through, and run scripts stored in the servo controller
  • Virtual COM port makes it easy to create custom applications to send serial commands via USB to the controller
  • TTL serial features:
    • Supports 300 – 250000 kbps in fixed-baud mode
    • Supports 300 – 115200 kbps in autodetect-baud mode
    • Simultaneously supports the Pololu protocol, which gives access to advanced functionality, and the simpler Scott Edwards MiniSSC II protocol (there is no need to configure the device for a particular protocol mode)
    • Can be daisy-chained with other Pololu servo and motor controllers using a single serial transmit line
  • Board can be powered off of USB or a 5 – 16 V battery, and it makes the regulated 5V available to the user
  • Compact size of 0.85″ × 1.20″ (2.16 × 3.05 cm) and light weight of 0.17 oz (4.8 g)
  • Upgradable firmware

The Micro Maestro is the smallest of Pololu’s second-generation USB servo controllers. The Maestros are available in four sizes and can be purchased fully assembled or as partial kits. you can check other products here.

You can get your Micro Maestro for around $20 from the product’s page, and you can also learn more about this product by checking the User’s Guide.

Source: Sparkfun

Using HealthyPi with a PC for ECG,Respiration & SpO2

Ashwin K Whitchurch, Venkatesh Bhat, and Manikandan S @ hackster.io build a PC based ECG,Respiration & SpO2 monitor.

We introduced the HealthyPi as a HAT add-on for the Raspberry Pi, turning it into a full-featured, medical-grade open patient monitor. However, we realized later that people also wanted to use the board standalone with a Windows/Linux/Mac PC. We already had an on-board USB port from the SAMD21 on the board.

Using HealthyPi with a PC for ECG,Respiration & SpO2 – [Link]

Analog Discovery USB isolation

Bob tipped us with his latest article. He writes:

Back when I was developing the PSU burner, I wanted to have the Analog Discovery isolated from the common ground, to avoid noise and other issues. Since I did not have a way to do this, I ended up using a laptop on battery for measurements. But for long term, I needed to have this isolation. Unfortunately, things that can isolate USB at 480Mbps or faster are too expensive to justify.
The solution
The ADUM3160 isolator can provide a magnetically isolated 12 Mbps connection, which proved to be good enough. I grabbed one ready made isolator module from ebay for about $12, cheap enough. Well, it is not perfect: the B0505S DC/DC converter provided can only supply 1W and the Analog Discovery is a hungry beast.

Analog Discovery USB isolation – [Link]

FONA808 USB Interface

Jesus @ jechavarria.com tipped us with his latest project. He writes:

For several months I’m working with FONA808 modules from Adafruit to make a portable, web-based locating system. This modules are based on the SIM808 module from SIMCOM manufacturer, and integrates both GSM and GPS transceivers in one 24x24mm package.  The Adafruit board includes this module and also some electronics for choosing voltage levels, battery connection and charger. Because I need to test and programming some of this modules, I decide to make an specific PCB for it, allowing the programming and debugging via PC, wich is more comfortable that use a microcontroller for all these tasks.

FONA808 USB Interface – [Link]

Installing The Micronucleus Bootloader To An ATtiny Via Arduino

In order to be able to upload Arduino sketches directly to the ATtiny84 over USB without the need to use a programming device, Shawn Hymel, an electrical engineer at Sparkfun Electronics, had published a guide showing how to install the micronucleus bootloader, which supports virtual USB (V-USB), onto an ATtiny84 using Arduino.

The Atmel AVR ATtiny84 is a $3 tiny 8-bit processor with 8K of program space, 12 I/O lines, and 8-channel 10 bit ADC. It will run up to 20MHz with an external crystal and can be programmed in circuit.

To start following the tutorial, you will need these parts:

Micronucleus is a bootloader designed for AVR ATtiny microcontrollers with a minimal usb interface, cross platform libusb-based program upload tool, and a strong emphasis on bootloader compactness. It has a built in V-USB so that you can send compiled firmware over a virtual USB connection.

The process will use an Arduino as a programmer by loading an Arduino ISP to install the micronucleus bootloader on the ATtiny84. The next step is allowing USB programming on ATtiny84 by manually change fuses, then creating a board definition for ATtiny84 and installing any necessary USB drivers.

The hardware components should be connected as shown in the above circuit. At first you have to remove the capacitor and connect a FTDI breakout to the Arduino Pro Mini and upload the Arduino ISP firmware.

Before installing Micronucleus, a 10μF capacitor is added between the RESET and GND pins of the Arduino. It will prevent the Arduino from entering bootloader mode so that it will pass the compiled firmware to the connected ATtiny rather than trying to program itself.

AVRDUDE is used then to change the ATtiny fuses and set them as the following:

  • No clock divider
  • Brown-out detection at 2.7V (not necessary, but useful if running off battery)
  • Self-programming

This tutorial should also work with ATtiny85, ATtiny841, and ATtiny167. You can find the detailed steps with a blink example on the main tutorial page.

MalDuino, The Open Source BadUSB

Firmware is a type of software that provides control, monitoring and data manipulation of engineered products and systems. A USB device firmware hack called BadUSB was presented at Black Hat USA 2014 conference, demonstrating how a USB flash drive microcontroller can be reprogrammed to spoof various other device types in order to take control of a computer, ex-filtrate data, or spy on the user. BadUSB is a critical security flaw that can turn any USB device into a cyber threat. Security experts have released the BadUSB code online, giving hackers access to it.

This project on Indiegogo, MalDuino, is an Arduino-powered BadUSB device which has keyboard injection capabilities. Once plugged in, MalDuino acts as a keyboard, typing previous configured commands at superhuman speeds. You could gain a reverse shell, change the desktop wallpaper, anything is possible. MalDuino is targeting penetration testers, hobbyists and pranksters.

Check the campaign video to know more about the project and to see MalDuino in action:

“MalDuino aims to offer the best BadUSB experience. In terms of software, MalDuino is programmed via the arduino IDE using open source libraries. Scripts written in DuckyScript can easily be converted into code the MalDuino can understand”

Ducky Script is the language of the USB Rubber Ducky, and writing the scripts can be done from any common ascii text editor such as Notepad, vi, emacs, nano, gedit, kedit, TextEdit, etc. Each command resides on a new line and may have options follow.

Source: www.gadgetify.com

MalDuino comes in two editions: Elite and Lite. Elite depends on a SD card to save scripts, thus no need to program the board each time you want to change the script running. With DIP switches provided, you can choose which script to run easily.

The second edition is Lite: a smaller one that can be disguised in most of USB flash disk cases. It has an internal memory of 30 kb to store scripts.

Similar to Arduino Leonardo, you can run MalDuino and operate it anywhere a Leaonardo can run. Some issues were reported by Windows 7 users while running the scripts, but these problems are going to be considered and solved. Another issue is the keyboard different layouts, so if you try to run an English script on a computer with a Spanish keyboard, the wrong characters may be pressed. The English/American keyboards are the only guaranteed up till now

The campaign still has 21 days to go and it has already achieved %1800 of its £500 goal! You can pre-order Lite edition for $16 and Elite for $29. Hardware designs and source codes will be available at Github once the project is launched. More detailed information can be reached at the campaign page.

USB Volume Control and Caps Lock LED

p_leriche @ instructables.com build a USB volume control which is simple, cheap and extensible. Check it out:

I’m not the first person to publish an Instructable for a USB volume control, but I think this one is about as simple and cheap as it gets, and at the same time can be extended at minimal cost to various other functions such as:

  • Mute, Play, Pause and various other media buttons
  • Keyboard LEDs such as Caps Lock, Scroll Lock and Num Lock (a kana LED is also defined for Japanese users)
  • Application launch buttons such as browser, email, calculator etc
  • Browser navigation and other application control buttons
  • Gamepad buttons
  • System buttons for functions such as Sleep, Hibernate, Wake, Power down
  • Mouse buttons and movement

and many more, subject to support being provided by your operating system. Mine implements the volume and mute functions (mute by pressing the knob) and the 3 main keyboard LEDs.

USB Volume Control and Caps Lock LED – [Link]

Designing a simple and cheap temperature logger

pickandplace.wordpress.com writes:

I started with making the TMP102 temperature sensor work. Nothing to say in particular, it’s just an other I2C-small-package-sensor. Or rather SMBus, but apart from the minimum speed clock requirements on the SMBus, the two protocols are alike.

Designing a simple and cheap temperature logger – [Link]