welcome: please sign in

Revision 23 as of 2011-06-13 17:09:35

Clear message
location: x0xb0x

x0xb0x

Schematics

Here are revised versions of the x0xb0x schematics in a more readable form. A few part values were changed to match what was actually used in the build, but the components are exactly the same. They have been checked against the board files, and match as well as the original schematics, which means they have the same warnings and errors (except in a few noncritical cases). If anything seems amiss, please let us know.

CPU Upgrade

A CPU Upgrade daughter board for the x0x was designed by textile on the x0x forums. it's a drop-in replacement, with an ATmega2561 processor and another spot for external EEPROM, plus a host of breakout pins for ADCs and such. Linked below are prototype bootloader and firmware code for the new chip (see note below on ISP programming). The bootloader is the same one used on the Arduino, so you can use that platform to program and load with. The only major difference between this firmware and the stock v1.05 is that the tempo knob is sampled rather than run on an interrupt. This was changed due to its lines not being connected to external interrupts on the new CPU.

To bootload the CPU, you will need to install AVRDUDE, which is a free piece of software, and have the the FTDI USB to serial drivers installed. Both of these things are similar to the old method. You must turn off your x0x, and power it back on in bootload mode. You then have 5 minutes to get your code loaded before it aborts. You upload your code by typing at the command line:

avrdude -p atmega2561 -c stk500v2 -P COM3 -b 57600 -e -U flash:w:x0xb0x2.hex

where COM3 is replaced with the COM port that your x0x shows up on. In this example, i have the new firmware (x0xb0x.hex) directly in my C:\ directory, which is also where i execute from. I found this works best, as directories with spaces sometimes confuse it. After the code is uploaded, the x0x will automatically reset itself, so you can just rotate the function knob and test out the new code.

Only 5 files changed in the firmware:

The fuse settings for this new chip are as follows:

If you are interested in using the Arduino platform to program with, you will need to update your boards.txt file to include a new board, the x0x2561. This file is located in arduino-0022\hardware\arduino\boards.txt. Rather than give a completely new file to replace yours with, which would overwrite any other updates made by the Arduino people to this file, merely open the file below and add its lines to your boards.txt file. When you look at the two files, it should be clear how to do this. Also included below is a test file, which should have LEDs respond to button presses in a random fashion.

ISP Programming the Atmega2561

Due to Atmel's migration to the new PDI serial programming interface, the ISP programming pins do NOT go to the usual SPI pins. Instead, the PDO and PDI pins are used. If you are connecting to the x0x2561 upgrade board, here are the DIP header pins to connect to:

ISP pin

x0x pin

1

11

2

40

3

8

4

10

5

9

6

20