Nunchuk XMEGA Driver

During the development of the Xprotolab, I needed to test the I2C protocol sniffer. I thought that one cool way to do it was using a Wii Nunchuk, I would use one Xprotolab as the controller (running a simple program to read the data), and another Xprotolab to sniff the protocol.

This driver was developed for the XMEGA microcontroller.

Download the files here:

cfile Nunchuk XMEGA Driver

LCD Libraries

A compilation of LCD libraries for different LCD controllers.

Written in C for the AVR microcontrollers, to be compiled with the avr-gcc compiler.

These libraries can be easily ported to other microcontrollers or other programming languages.

cfile SED1335 LCD Library

For an example of the SED1335 library, check out the Xmegalab source code.

cfile SBN0064G LCD Library

cfile S6B0724 LCD Library

cfile KS0108 LCD Library

For an example of the KS0108 library, check out the Xminilab source code.

cfile SH1101A LCD Library

cfile SSD1306 LCD Library

For an example of the SSD1306 library, check out the Xprotolab source code.

Recursive Descent Parser in C

The recursive descent parser is the core module of the calculator application found on the COMA, the XMultiKit and the Xmegalab. It is based on the Visual Basic program Math Expression Evaluator by Michael Combs.

I ported the code to standard C so it can be used on any platform.

To use this module you only need to add parse.c to your project and #include "parse.h" in your code.

Two global variables are used:

extern uint8_t m_error; // different than zero if an error occurred
extern double ans;      // answer

The only function you need to call is

void evaluate(char expression[]); // the expression must end with a space

The function will modify the global variables m_error and ans.

Example:

evaluate("1+1 "); // The expresion must and with a space

ans will equal 2, m_error will equal 0.

 

Download the files here:

cfile Recursive Descent Parser

Here is a calculator demo using the recursive descent parser:

Digital oscilloscopes for hobbyists

This page is aimed to compare all the oscilloscopes available for hobbyists, so I am restricting this page to digital oscilloscopes that you can get for under $500, or oscilloscopes that you can build yourself.

You can filter and sort the elements in the table, click on the headers to have the table sort. Hover over the headers to see a brief description of the parameter. Hover over the instrument name to see it's picture

Name CH Bits MS/s MHz MO Gain Buffer Logic Display PC AWG Open *Cost $
Analog Discovery 2 14 100 5 1 ? 16000 16 No USB 100 MS/s No 199.00
AVR DSO 1 8 50 10 1.066 1 32000 No No RS232 No Yes 75.00
AVR Scope 1 8 0.015 0.005 1 1, 1/2 100 No 128x64 No No Yes 20.00 ?
Bluetooth Oscilloscope 2 10 2 ? 0.0011 1 ? No No Bluetooth No Yes 20.00 ?
BS50U 1 8 40 70 1 1,2,5 32000 8 No USB 10 MS/s No 475.00
CGR-101 2 10 20 2 1 1,2,5 1000 No No USB 2 MS/s SW 189.00
DPScope 2 8 1 1.3 1 1,2,5 200 No No USB No HW 79.95
DS1052E 2 8 1000 50 1 1,2,5 512000 No 320×234 TFT USB No No 399.00
DSO-2090 2 8 100 40 1 1,2,5 32000 No No USB No No 299.00
DSO-2150 2 8 150 60 1 1,2,5 32000 No No USB No No 399.00
DSO-2810F 2 8 100 40 1 0.1, 1, 10 2000 No No USB No No 249.95
DSO-2810H 2 8 100 40 1 1,2,4 30000 No No USB No No 299.95
DSO-2815H 2 8 150 60 1 1,2,4 30000 No No USB No No 349.95
DSOA Mk3 2 8 20 5 1 1,2,5 1024 No No LPT No Yes 30.00 ?
DSO Nano v2 1 12 2 0.2 0.5 min 1,2,5 4096 No 320x240 TFT No No Yes 89.00
DSO Quad / DSO203 2 8 72 5 0.8 min 1,2,5 4096 2 400x240 TFT USB No No 175.00
ELAB-080 2 8 80 60 1 1,2,5 32000 16 No USB 100 MS/s No 495.00
eOscope 1 8 40 20 0.01 1 512 No 240x128 No No Yes 25.00 ?
DSO 062 1 8 5 1 1 1,2,5 256 No 128x64 No No No 49.00
DSO 082 1 8 50 10 1 1,2,5 16000 No 128x64 USB No No 99.50
DSO 094 2 8 50 10 1 1,2,5 8000 No 128x64 USB No No 149.00
LPTScope 1 8 0.267 ? 0.01 1 1 No No LPT No Yes 6.00 ?
UM202 2 16 1 1 0.85 1,2,5 256000 16 No USB No No 497.04
MSO-19 1 8 200 60 1 1,2,5 ? 8 No USB No No 239.00
Parallax 1 8 1 0.2 1 ? ? No No USB No No 139.99
PDS5022S 2 8 100 25 1 1,2,5 5000 No 640x480 LCD USB No No 269.00
SDS6062 2 8 500 60 1 1,2,5 10000000 No 800x600 LCD USB No No 349.00
SDS7102 2 8 1000 100 1 1,2,5 10000000 No 800x600 TFT USB No No 429.00
PC USB DiSco 2 10 0.2 0.1 1 1,2,5 563 16 No USB No No 169.50
PIC12 Scope 1 8 0.011 ? ? ? 1 1 No No RS232 No Yes 4.00 ?
PIC18 Scope 1 8 0.06 ? ? 1 1 No 128x64 RS232 No Yes 20.00 ?
2104 1 8 50 10 1 1,2,5 8000 No No USB No No 206.25
2105 1 8 100 25 1 1,2,5 24000 No No USB No No 328.35
2203 2 8 40 5 1 1,2,5 4000 No No USB 2 MS/s No 262.35 ?
2204 2 8 100 10 1 1,2,5 8000 No No USB 2 MS/s No 262.35
2205 2 8 200 25 1 1,2,5 16000 No No USB 2 MS/s No 410.85
PoScope 2 2 10 0.2 0.1 1 1,2,5 563 16 No USB No No 78.75
PPM Scope 2 8 1 0.5 0.1 min 1,2,5 128 No No RS232 No Yes 10.00 ?
QA100 2 10 100 25 1 1,2.5,10 2000000 Yes No USB Yes No 350.00
S2X100 2 8 100 50 1 1,2,5 64000 No No USB No No 249.00
SX O'Scope 1 8 0.25 ? ? 1 128 No No LPT No Yes 8.00 ?
USB AVR Scope 2 10 0.015 ? ? 1 ? No No USB No Yes 7.00 ?
USBscope50 1 8 50 75 1 0.1, 1, 10 3000 No No USB No No 295.00
UNI-T UT81B 1 ? 40 8 ? 1,2,5 ? No 160x160 USB No No 200.00
UT 2042 C 2 8 500 40 1 1,2,5 1024000 No 320x240 LCD USB No No 492.64
APS230 2 8 60 30 1 1,2,5 256 No 192x128 RS232 No No 489.95
HPS10 1 8 1 2 1 1,2,5 256 No 128x64 No No No 179.95
HPS40 1 8 5 12 1 1,2,5 256 No 192x112 RS232 No No 329.95
HPS50 1 8 5 12 1 1,2,5 256 No 192x112 USB No No 349.95
PCS100AU 1 8 32 12 1 1,2,5 4096 No No LPT No No 227.60
PCS500AU 2 8 50 50 1 1,2,5 4096 No No LPT No No 299.95
PCSGU250 2 8 25 12 1 1,2,5 4096 No No USB 12.5 MS/s No 249.95
PCSU1000 2 8 50 60 1 1,2,5 4096 No No USB No No 364.95
PPS10 1 8 1 2 1 1,2,5 256 No 128x64 RS232 No No 159.95
VPS10 1 8 1 2 1 1,2,5 256 No 128x64 No No No 197.95
PS40M10 1 10 40 5 ? 1,2,5 ? No No USB No No 238.00
DS1M12 2 12 1 0.25 1 1,2,5 32000 No No USB 10 bit No 220.00
Xprotolab 2 8 2 0.2 1 1,2,4 256 8 128x64 USB 1 MS/s HW 49.00
Xminilab 2 8 2 0.2 1 1,2,4 256 8 128x64 USB 1 MS/s HW 69.00
Xprotolab Portable 2 8 2 0.2 1 1,2,4 256 8 128x64 USB 1 MS/s HW 98.00
Xminilab Portable 2 8 2 0.2 1 1,2,4 256 8 128x64 USB 1 MS/s HW 118.00
Xprotolab Plain 2 8 2 0.2 1 1,2,4 256 8 No USB 1 MS/s HW 20.00


If you find inaccuracies in this page, or know of any other digital oscilloscope, please send me an email.

* You may be able to find cheaper prices than the ones I listed, particulary from asian distributors.