Mega Junior,1284

I'm a big fan of the 1284 as I'm using it on a my custom boards for electronic props for compat games.

I like the idea of an Uno or Mega compatible footprint, although most people using 1284 are probably at a stage where they'd be designing a board, or using something like Crossroads Bobuino board. Still, it's a good idea as another option for people into this nice little MCU with the extra resources that will satisfy many larger projects.

I notice that SPI and UART are on incompatible pins than Uno. The Bobuino pinmapping makes these compatible, RXT/TXD on D0/D1 and SPI on D10-D13. You have SPI on D4-D7 and RX0/RX1 on D8/D9.

Surely a standard shield won't work with your pins as is? An SPI shield may do, if it uses the SPI header, rather than pins 10-13, although I believe the Ethernet shield uses Pin 10 for its SS, whereas you have SPI on D4-D7

Major version release? Now, I'm totally lost. The optiboot page authored by Bill
[ie, westfw] gives no indication of a version 5. So ????
Google Code Archive - Long-term storage for Google Code Project Hosting.

The source repository (available via Mercurial, for historic reasons) is updated, but there are not any new .zip file downloads...
I guess I should fix that...

Bobuino has SCL/SDA in the correct place too.

CrossRoads:
Bobuino has SCL/SDA in the correct place too.

Offhand, how did you do this? On the UNO, pins A4,A5 can function either as analog
or I2C [or digital]. Considering the 1284 has 8 ADC channels [on pins 32..40] plus 2
separate pins for I2C [pins 22,23], how could you map these into the A4,A5 positions?

how could you map these into the A4,A5 positions?

Presumably he's talking about the new "R3" SCL/SDA pins to the left of AREF?

tack:
I'm a big fan of the 1284 as I'm using it on a my custom boards for electronic props for compat games.

I like the idea of an Uno or Mega compatible footprint, although most people using 1284 are probably at a stage where they'd be designing a board, or using something like Crossroads Bobuino board. Still, it's a good idea as another option for people into this nice little MCU with the extra resources that will satisfy many larger projects.

I notice that SPI and UART are on incompatible pins than Uno. The Bobuino pinmapping makes these compatible, RXT/TXD on D0/D1 and SPI on D10-D13. You have SPI on D4-D7 and RX0/RX1 on D8/D9.

Surely a standard shield won't work with your pins as is? An SPI shield may do, if it uses the SPI header, rather than pins 10-13, although I believe the Ethernet shield uses Pin 10 for its SS, whereas you have SPI on D4-D7

Please read the 1st post. The board that has been "released" was originally designed to be compatible with the bootloader and pins file from the mighty 1284, the concern was putting data pins in the right locations not any of the secondary (depending on your perspective) functions. The SMD board is much much different and conforms as tightly to arduino spec as I could. But an excellent observation none the less... Thanks!

Bobuino has jumpers that allow A4/A5 to connect to D18/D19, or that allow SCL/SDA to connect to D18/D19. SCL/SDA are also brought to the new SCL/SDA location, and to another set of pins with the other extra pins that the 1284 offers.

Hello jbaum,

jbaum81:
Reserved for Mega Junior, 1284 SMD.

Untested Schematic and board layouts attached.

The zip file for the SMD version is empty. :slight_smile:

Regards,
madhu.

Madhu:
Hello jbaum,

jbaum81:
Reserved for Mega Junior, 1284 SMD.

Untested Schematic and board layouts attached.

The zip file for the SMD version is empty. :slight_smile:

Regards,
madhu.

hmm so it is, sorry about that. I'm at work now give me a few hours and I'll upload the revision A schematic along with the new version 2.0 dip version and revision b of the SMD version. Now both include jumpers for I2c pullup, disconnect jumper for the d13 led, disconnect jumper for DTR/RESET, and jumpers to switch between analog and i2c for better compatibility.

Missing eagle files are up for the SMD Rev A board.

Also uploaded SMD Rev B, and Version 2 of Mega Junior, 1284.

Mega Junior,1284 BB is built and tested.

See updated posts at the top of this thread.

V2 and SMD rev b tested and good to go. I have 4 extra of each right now if anyone want's one. Asking $60 plus shipping which covers my cost on parts.

Below is a reference picture for size, both V2 and SMD have identical dimensions and they are about 10 - 15mm longer than the uno, otherwise the same dimensions as uno.

Hi guys,
I have one question concerning the pins_arduino.h file.

I'm using the mighty1284p boot loader at for an 8MHz Arduino clone running an Atmega1284p as well.
Is the pins_arduino.h file compiled into the bootloader, so I need to recompile the bootloader after modifying, or is pins_arduino.h
used to compile each sketch in the Arduino IDE, so I will see any adjustments made to the file directly.

I have an Arduino close created based on a 44pin ATMega1284p, and of course since the pinout is different, the Blink Demo is not yet blinking.

Has anybody modified the pins_arduino.h already for the 44pin TQFP Version of the chip already?

Thanks for and hints pointing into the right direction,
Michael.

pins_arduino.h is used to compile each sketch in the Arduino IDE.

it does not vary for DIP vs TQFP. D0 is the same port/bit no matter what. might be a different physical pin, the software does not know/care about that.

pins_arduino.h maps a physical mcu pin (ie PB3, PD4) to an "arduino-like" digital pin (Dx) or analog (AIx) pin. There are several variants of the mapping available, of course you may define another one if required..

The other half of the answer is, as far as I can tell, all of the "newer" maniac 1284 variants use
exactly the same optibootloader, and pins_arduino.h is only used when you compile a sketch for
the particular variant. You can verify this by using the different variants to compile sketches
for a chip with optiboot burned in, and checking which pins the signals go to.

In the boards.txt file, the one line shows the bootloader used, and the other indicates the
pins_arduino.h used when building sketches for the variant. The newer variants all use the
same optiboot hex file.

mighty_opt.bootloader.file=optiboot_atmega1284p.hex
mighty_opt.build.variant=standard

avr_developers.bootloader.file=optiboot_atmega1284p.hex
avr_developers.build.variant=avr_developers

bobuino.bootloader.file=optiboot_atmega1284p.hex
bobuino.build.variant=bobuino

Two of the variants use the older bootloader, but they use the standard
pins_arduino.h file.

mighty.bootloader.file=ATmegaBOOT_1284P.hex
mighty.build.variant=standard

mighty8.bootloader.file=ATmegaBOOT_1284P_8MHz.hex
mighty8.build.variant=standard

Hi jbaum81,

i have setuped a 1284P on a BreadBoard for testing.
at the moment i have loaded it with the mighty 1284P optiboot 16MHz
but just out of interest i would love to try the 20MHz version.

i have looked at your version and found that you have lowFuse set to 0xD7
if i have interpreted the atmel datasheet the right way this means:
(table based on datasheet page 298; 27.2 Fuse bits and page 31..; 9. System clock and clock options)

CKDIF8  CKOUT  SUTn  CKSELn   hex    comment
               1 0   3 2 1 0       
1       1      1 1   0 1 1 1   0xF7  Full swing Crystal Oscillator, slowly rising power;  mighty modified;
1       1      0 1   0 1 1 1   0xD7  Full swing Crystal Oscillator, slowly rising power, BOD enabled; <--your version?!
1       1      1 1   1 1 1 1   0xFF  Low Power Crystal Oscillator,  slowly rising power; mighty optiboot;

[edit] corrected - read this message from oric_dan for orig. [/edit]

[original]CKOUT is explained at page 39; 9.10 Clock Output Buffer: if set it will output the CPU-frequenz on the CLKO pin. (overriding normal port io functionality)
so do you using this for something?
or is there some other thinks i don't know about this? (i am new to bootloaders and system clock..)[/original]

and has someone a nice 'tutorial' how to compile the bootloaders self?
or is it to complicated and you have to know to much background infos?
thanks for your time.

sunny greetings stefan

jbaum is using the fix that was discovered on a couple of incredibly long threads about 1284
RX0 problems from back in february 2013. With the fuse bit settings used in the maniac 1284
bootloader files [low power oscillator], chip operation is disrupted because of crosstalk between
RX0 and the crystal pins. Maniacbug still hasn't fixed his files.

That crosstalk is not apparent in all designs.

I use these fuse settings for boards with the Bobuino pinout variant, and I don't see any crosstalk issues.

bobuino.name=Bobuino
bobuino.upload.protocol=arduino
bobuino.upload.maximum_size=130048
bobuino.upload.speed=115200
bobuino.bootloader.low_fuses=0xff
bobuino.bootloader.high_fuses=0xde
bobuino.bootloader.extended_fuses=0xfd
bobuino.bootloader.path=optiboot
bobuino.bootloader.file=optiboot_atmega1284p.hex
bobuino.bootloader.unlock_bits=0x3F
bobuino.bootloader.lock_bits=0x0F
bobuino.build.mcu=atmega1284p
bobuino.build.f_cpu=16000000L
#bobuino.build.core=arduino:arduino
bobuino.build.core=standard
bobuino.build.variant=bobuino

Not even on this wirewrap board, with no ground plane

Yes, I forgot to mention that a couple of us never saw the RX0 problem with our
boards, but a lot of other people did, and changing to full power oscillator is what
seemed to be the key to fixing it.

On the subject of the firmware, I've found an issue with my digital numbering (some typo's) in my pins_arduino.h file while fixing it I discovered the core seems to be ignoring my port numbering for A0-A7 and always wants to make PA0 A0, PA1 A1 and so on. This appears to affect the bobuino similarly . I'm not real strong in C so it may take me a few days to get it all ironed out but if someone wants to chip in and help find a fix it would be appreciated. I think I have A0 - A5 (PA7 - PA2) working correctly once I have that I'll post the contents of the pins file.