Looking for collections of old Wiring Boards (2008 to 2010)

Hi -

Would anyone out there happen to have a collection of older Wiring Boards available? I believe anything that is dated as Revision 2 or Revision 3 are what I am looking for.

Some background:

I’m an instructor at the University of British Columbia, and in 2009 we designed a shield for the Wiring Board to be used as part of our “Intro to Robotics” course for 2nd year students. We built our own shield for the Wiring Board, which has been in very good use for us for the past 8 years. Our team added the Wiring Board to the Arduino IDE library a few years ago, and the board continues to work very well for us.

Here is info on our course, and on our custom-built shield:
UBC Engineering Physics - Robot Course for 2nd Year Students
TINAH - shield for Wiring Board

We have many of the TINAH shields, but are running low on Wiring boards that are usable for the course. We designed and built the shield just before the first Arduino Mega boards were made available, otherwise we would have used those. The current teaching team is hoping to use the boards for at least another 2 or 3 years before finding something else for the course.

Unfortunately not the Wiring Board formerly sold by SparkFun, which isn’t pin-compatible with what we have). I could make the newer ones work, but it’s going to be an odd work-around, as we often separate the shield from the board for service repairs as the course goes on.

If you have a collection of these older boards that could use a new home, you can post or message me here, or email me directly too to chat further. Thanks!

jon.nakane@ubc.ca

Supposedly the Wiring S boards are still available for purchase here:

They also say:

if there is enough demand, we can make more.

Wiring S is the board with the ATmega644P, unlike that SparkFun Wiring board which had the ATmega1281.

Unfortunately, the Wiring S boards aren't pin compatible to the shield/breakout board we designed, which is why we're interested in the original, Rev2 or Rev3 versions of the Wiring Boards, as the SparkFun ones have a few of the side pins at different locations.

jon.

we designed a shield for the Wiring Board to be used as part of our "Intro to Robotics" course for 2nd year students.

Really. :o
Then you can easily design a new shield for the new UNOs :wink:

Or

Make up your own compatible UNOs

The port names here
https://projectlab.engphys.ubc.ca/wp-content/uploads/tinah-pinout-reference.pdf
are not Atmega644/1284 names. They look to be 1281/2561 names:

Yes, you're absolutely right, but it is partly a resource issue at the moment - we still have ~60 of the shield boards which work well, and would like to get another 1 or maybe 2 years from these shields as we go and look for funding to design and build another round of boards for future years.

We've tried to find something off-the-shelf which can be as robust as the shields we've been using, but nothing has quite seemed right - open-source 3d printer boards appear to be the closest, but nothing has been as convenient for our uses as what we designed.

About the processor - yes, the boards we have are all originally the ATMega128-16AU chip. They have gotten expensive, so as we blow those processors on the board we’ve been replacing them with the ATMega128A, which can use exactly the same bootloader and fuse bits, no changes required.

I don’t know whether the 1281 or 2561 would work as a replacement.

What else is used on the 128 besides what is seen as being named?
What else is on the Wiring board?

Hmm. I seem to have EAGLE files for the Barragán “v0004” board. Will that help? What if someone could build some for you, using that design?

wiringv4.png

(actually, this is the same design that still downloadable from wiring.org.co, AFAICT)

(hmm. Doesn’t have JTAG like the picture you posted, so may not be pin compatible. But the main connectors seem to be in the same place?)

(The ATmega128A is one of those chips that has become "ridiculously cheap, if you buy them from China." It's a little surprising that the Wiring board hasn't experienced some resurgence as a result.)

(also: what an ugly board.)

Hmm. This feels a bit better…

Wiring0005.png

So, I've created a project over at hackday.io.

I did discover that the "old" wiring board (V0003?) (the one that connects to this "Tinah" board) does NOT have the same connector layout as the published (and still available) v0004 board. The main port connectors are in "almost exactly" the same spots, but the power, ISP, and G2 connectors are in substantially different locations.

(I've adjusted, and ordered some PCBs and parts...)

@westfw, what are your plans regarding an Arduino IDE boards support package? A while back I made a good start at creating one for Wiring boards but haven’t gotten around to getting it to a publishable state. It references the MightyCore and MegaCore core libraries, which simplifies things quite a bit. I have the boards.txt entries and pins_arduino.h done for Wiring S, Wiring Play Shield, Wiring V1.1 1281, Wiring V1.1 2561, Wiring V1.0/Wiring Mini V1.0 all done but it sounds like there are some older boards I wasn’t aware of. I have a custom Tools menu where you can chose whether to use the original bootloader, Optiboot, or no bootloader.

My thought was that there have to be a bunch of these Wiring boards still out there and since there is no active development on the Wiring IDE I’m sure the people who own these boards would appreciate being able to use them with the Arduino IDE instead. Since this is the first post I can remember ever seeing on this forum about a Wiring board maybe there aren’t as many as I think or else people consider them collector’s items at this point and don’t want to use them.

I figured that a pretty trivial mod to MegaCore would be sufficient. AFAIK, the "6-port" wiring boards (Original versions, plus the sparkfun boards) all have the same pin translations (ports DCABEF, bits 0..7, in order.)

Whee! It BLINKS! (Sort of, anyway. Still working on the "variant/pins_arduino.h" and etc.)

Well I went ahead and pushed my package to GitHub, even though it's still under development. It seems kind of silly for you to duplicate the work I've already done.

I'm in the middle of testing right now. The WiringS and WiringSPlayShield boards/variants/bootloaders are tested but I just started testing on Wiring1/1.1 so there are likely to be a couple changes there in the next few hours. I don't own the ATmega1281 so I won't be able to test that but I do own ATmega644P, ATmega128A, and ATmega2561.

The huge problem I've encountered is with the Wiring bootloader. I am using the bootloaders from the Wiring repository:

I've uploaded many sketches without problems but when I upload this one:

void setup() {
  Serial.begin(9600);
}

void loop() {}

The upload hangs:

C:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -V -patmega128 -cwiring -PCOM9 -b115200 -D -Uflash:w:C:\Users\per\AppData\Local\Temp\arduino_build_279350/wiring_upload_fail.ino.hex:i 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\per\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : COM9
         Using Programmer              : wiring
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega128
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    12    64    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         33     6   128    0 yes    131072  256    512  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Wiring
         Description     : Wiring
         Programmer Model: STK500
         Hardware Version: 15
         Firmware Version Master : 2.10
         Topcard         : Unknown
         Vtarget         : 0.0 V
         SCK period      : 0.5 us
         Varef           : 0.0 V
         Oscillator      : Off

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9702 (probably m128)
avrdude: reading input file "C:\Users\per\AppData\Local\Temp\arduino_build_279350/wiring_upload_fail.ino.hex"
avrdude: writing flash (1450 bytes):

Writing | ################################################## | 100% 0.23s

avrdude: 1450 bytes of flash written
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_ReceiveMessage(): timeout

Here's the end of the -v -v -v -v output:

avrdude: safemode read 3, efuse value: fd
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:D4, L:F7)
avrdude: Send: . [1b] : [3a] . [00] . [03] . [0e] . [11] . [01] . [01] = [3d] 
avrdude: Recv: . [1b] 
avrdude: Recv: : [3a] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [11] 
avrdude: Recv: . [00] 
avrdude: Recv: . [f0] 
avrdude: stk500v2_recv(): checksum error

There are no problems when I use the optiboot bootloader. It makes me think it's something like the Mega bootloader used to have where if your sketch had a string with !!! it would go into "terminal mode". Anyone have any ideas about this? I'd think it would be a common topic in the Wiring forum but there's nothing for that error message.

Of course Optiboot is the better solution but my whole idea is to add support for existing Wiring boards and I'd rather that people could use them as-is instead of needing to burn the bootloader just to get started.

EDIT 2018-03-15:
More details on the Wiring bootloader issue:

So, @Crossroads... You manufacture and sell boards. Just out of curiosity, given an existing open-source HW design that included EAGLE PCB/Schematic, how many (assembled, or perhaps partially assembed) boards would someone have to bulk order for it to be worth your while to build them, assuming that the chances of additional sales were relatively slim?

Follow on orders, or lack there of, is not a problem. OP was looking for 60 boards. 60 would be tedious to assemble by hand, I'd farm the assembly out for that. I'd make some on developing the PL, coordinating it all, to do the work. I do that all the time. Place like Screaming Circuits has on-line quoting system, they'll buy the parts from a supplied PL with Digikey part numbers, buy PCBs from Sunstone I think, and do the assembly. I think they'll also accept your PCBs and supplied parts and do the assembly. price varies for what is to be done. I've had customers buy full up assemblies of boards I've designed.
I never used China for assembling any of my own designs, that'd be another route. Just slower with the overseas shipping, and who knows where parts are coming from.
I've also used a place in CA that will assemble small batches as fill-in kind of work I think. I had to drop ship everything from Digikey and Mouser, they did their own stencil.
So there are a lot of options for getting assembled boards.

Well I went ahead and pushed my package to GitHub

Thanks. Out of curiosity, is there a particular reason you chose to do this as a separate package, rather than merging it into MegaCore?

I proposed just that back in 2016 but MCUdude declined the offer:

That was right around the time when the story about Hernando Barragán, Wiring, and Arduino was getting a lot of publicity and there was more interest in Wiring so it seemed like it would be a good idea to add support for the old Wiring boards if only as a tribute to the roots of Arduino. I did end up adding support for these boards to another package I was helping with and I know I brought it up again when ATmega1281 and ATmega2561 support was added to MegaCore, though I can't find that conversation now.

So I decided to create my own package that just referenced MightyCore and MegaCore. At that time Megacore didn't have ATmega1281 and ATmega2561 support so it was going to be a bigger job than it is now. I didn't own any of the hardware I needed to test with and didn't have hobby funds to spare for parts I had no plans to actually use in a project. So it ended getting put on the backburner even though it was practically finished.

Since that time, some of the pieces have fallen into place with MegaCore adding support for ATmega1281 and ATmega2561 and me having acquired an ATmega644P and one of MCUdude's nice dev boards with an ATmega128A. The board came with some extra bare daughterboards so I bought an ATmega2561 but had been putting it off due to not being confident in my SMT soldering skills on the TQFP-64 package.

Now this thread got me thinking that I really needed to just get the project done and publish it. I have a bad habit of getting distracted at the home stretch of a project and never quite getting it to a "finished" state. I did manage to pull off the soldering without too much trouble!

Unfortunately I've hit this bootloader issue. I got caught back up on work today so I have some time to try to investigate it more tonight. I verified that the same thing happens if I upload the .hex file generated by the Arduino IDE using the avrdude version shipped with Wiring but that if I compile the same sketch in Wiring then there is no problem with the upload.