welcome: please sign in
location: Diff for "x0xb0x"
Differences between revisions 13 and 14
Revision 13 as of 2011-06-01 03:38:31
Size: 3356
Editor: guest
Comment:
Revision 14 as of 2011-06-01 03:39:55
Size: 3360
Editor: guest
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
avrdude -p atmega2561 -c stk500v2 -P COM3 -b 57600 -e -U flash:w:x0xb0x2.hex ''avrdude -p atmega2561 -c stk500v2 -P COM3 -b 57600 -e -U flash:w:x0xb0x2.hex''

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. The bootloader is the same one used on the Arduino, Boston Android, and other platforms, so you might even be able to use those programs to 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. I have yet to try out direct upload from ARDup, which is a graphical interface for doing the exact same thing. It also nicely installs the various drivers for you as well. Installing Arduino should do this, too.

After the code is uploaded, you must then turn the power off, and restart the x0x in any mode other than bootload mode.

Only 4 files changed in the firmware:

  • makefile - minor mod to change the output file name
  • x0xb0x2.hex - new compiled firmware
  • main.c - mostly timer and tempo fixes
  • main.h - ported internal registers
  • synth.h - ported external pin registers

The fuse settings for this new chip are as follows:

  • JTAG enabled
  • ISP enabled
  • BOOTSZ = 4096 words
  • BOOTRST enabled
  • EESAVE enabled (no overwrite of internal EEPROM (saves last tempo, etc.))
  • SUT/CKSEL = external crystal, 8+ MHZ, 258CK + 65ms
  • LOCK BITS only set for SPM and LPM protection on bootload section

  • FUSE XTEN = 0xFC
  • FUSE HIGH = 0x90
  • FUSE LOW = 0xDE
  • FUSE BOOT = 0xCF

x0xb0x (last edited 2019-04-20 20:20:25 by guest)