Jump to content
IGNORED

Smelly Adventures


cubanismo

Recommended Posts

 Hesitated to post these publicly, but I find posts of this sort interesting to follow, so I figured I'd share in case others do as well. A fellow forum member (Feel free to identify yourself if you please, or remain anonymous) got wind I was looking to build a few Skunkboards of my own, and graciously sent me a pair of spare PCBs he had lying around.  Well, that was exciting enough to halt all my other projects while I put through orders for the other hard-to-find parts I'd already been tracking down.  To hell with getting my more sensible projects done!

 

I got the various obsolete chips from UTSource today, the annoyingly-hard-to-find-in-quantities-of-under-10,000 USB power supply chips direct from TI at double the reasonable price yesterday, and the rest from digikey today, and started populating the boards.  I'd done a few QFP/SMD practice kits no sweat and thought I'd be whipping through it, but working with a real board proved a bit more challenging.  Took me all evening just to get this far, and I may or may not have spent half that time very, very gingerly decoupling and straightening two bent pins on the corner of one of these Xilinx CPLDs that I accidentally jammed together trying to tack the very first pin into place on a board covered in overly-gummy flux ? The resulting soldering is still pretty ugly on both, but at least I managed to get the second one on on the first try without any shorts to clean up afterwards.  I'll be amazed if that first CPLD ends up programmable, but fortunately, as you can see, I have a few spares and invested in a dirt-cheap knockoff 858D hot air reflow solder station to properly solder those TI chips with their annoying thermal pad on the bottom (That was last night's adventure), so I can pop it off and try again if needed.

 

skunk_build01.thumb.jpg.4da8174d3b29b93260c8ec4475ce27ad.jpg

 

skunk_build_02.thumb.jpg.27f0eb6fa2d468fe1d53c1549fc2d8f9.jpg

 

Ultimately I have plans to make a few minor modifications to the PCB layout to add a few features I've been wishing my skunk had, more in the name of improving my applied EE skills than anything else, in which case I'll be able to make use of those extra components.  My other minor practice projects thus far have basically been excuses to practice for that much more involved project, and I'll probably carry on with them to gain more experience before moving forward with a custom skunk.  For now, after tonight's harrowing experience, I'll be happy if I can manage to not f**k up these boards while building them!

 

I'll post updates as I make progress on the build & bringup if I don't get flamed off the forums first for going on and on about another pointless project with the GD imminent ;-)

  • Like 5
Link to comment
Share on other sites

I don't know if one is available, but probably able to get one made from the PCB design that was published, but an SMD stencil will be a godsend for getting the right amount of solder paste onto the pads for use with your heat gun.  I did a few by hand using i thing bit of plastic to apply paste by hand, it was tedious and messy, worked OK for stuff like resistors and caps, but when the pin density got higher I just couldn't get the right amount on pads and got loads of bridges that then took hours to sort out with wick and faff.

Using a stencil I was able to solder QFP32 parts in minutes, even QFN32 too! used a lot less solder paste and so much nicer to work with.  They have their own challenges, but for me at least it gave a better result than trying to hand/drag solder those parts, or manually applying paste.

Good luck with your building whatever approach you go for :)

  • Like 2
Link to comment
Share on other sites

3 hours ago, LinkoVitch said:

I don't know if one is available, but probably able to get one made from the PCB design that was published, but an SMD stencil will be a godsend for getting the right amount of solder paste onto the pads for use with your heat gun.

Yes, there is an existing solder stencil file in the package Tursi released.  I may go that route if I end up building more than two, but it seemed excessive for two (at least, it did before I started trying to do it by hand).  Also, careful observers will note these PCBs are a bit different than the rev.3 boards Tursi released the files for.  Someone beat me to one of my planned modifications and didn't share their work, so I would have had to modify the solder mask just to get started.

 

I did consider doing things with solder paste by hand with the dispenser+tiny needle tip method, but after trying that on the little MSOP, no way.  My experience was quite similar to yours.  Tack & drag FTW!

  • Like 1
Link to comment
Share on other sites

Added the USB microcontroller and flash chips today.

 

skunk_build_03.thumb.jpg.3362c8689f7e20be050e1311efd0f710.jpg

 

Wow, that was rough going.  I thought I had my drag soldering technique down, but these proved me wrong for sure.  I'm getting worried I should have titled this thread "How not to build a Skunkboard."  End result:

 

skunk_build_09.thumb.jpg.d7bd8b66517439917bd52621c158cc08.jpg

 

Brace yourself for the following pictures.  They're downright ugly, and a bit embarrassing if I'm honest.  Right off the bat, I lifted & ripped off a few pads when I got overly aggressive trying to wick away some solder bridges on the Cypress chip

 

skunk_build_04.thumb.jpg.abbaeaa7908c337b6260d95cc219df38.jpg

 

I thought I was done for right there.  Luckily, after examining the PCB layout, I realized these particular pads aren't connected to anything.  I just pried the pins up and out of the way and moved on.  Beyond a bit of good luck, I suspect the pads being unconnected is likely why they, as opposed to the neighboring useful ones, lifted; they probably couldn't withstand much heat since they had no where to dissipate it to, and I was scrubbing around in there like crazy with hot solder wick.  Lesson learned, right?  Wrong!  We'll revisit this later...

 

After this close call, I managed to solder the remaining two sides of that chip and the same chip on the other board without much incident, though it's ugly, and I did manage to erode away some solder mask somehow in a few other places too:

 

skunk_build_05.thumb.jpg.3a896aaa0a66ac4cd2ac232c8237a2e4.jpg

 

Those were the largest chips.  Hard part done, right?  I figured now that I had once again mastered my drag, I'd sail right through the two-sided, much-easier-to-place flash chips.  Wrong!

 

skunk_build_07.thumb.jpg.324cc458fddaa6932206749f263602df.jpg

 

It seems like every time I touched my iron to these chips it just deposited a big blob of solder bridging several pins.  I spent ages wicking it away, ripping up some more pads in the process, and on the second half of this chip on the second board, I ultimately resorted to soldering each tiny pin individually.  Bleh.  There were even a few shorts I couldn't work out in the end, as it appeared the solder had pooled *behind* the pins and caused a bridge I couldn't get at with my wick.  I ended up solving these by fluxing the front sides of the pins up good and hitting it with the reflow hot air gun for a bit until things flowed around to the front.

 

In the end, at least as far as I can tell, all the lifted pads remained connected to their traces, and to the pins on the flash chip, so there's at least a chance this will still work.  It may take a miracle though.  In retrospect, I think I may have had so much difficulty dragging the flash chips because I lowered my soldering iron temperature by about 30 degrees Fahrenheit to 620 after the issues with the Cypress USB controller chip.  I'd been working at 650 before, which is what I'd always used for drag soldering in the past.  Maybe that caused the solder to solidify too quickly while dragging?  An alternate theory is my iron tip got too dirty and the solder wasn't wetting to it well enough to be dragged along, but I did stop to clean it up several times when it started looking funky.  If you're a soldering expert, let me know if either of these theories makes any sense or if there's something else I could be doing wrong.  I did manage to get a generous-but-not-ridiculous level of flux on everything before starting, and did it for each chip individually as I went to avoid it getting all gummy and causing sticky-chip/PCB problems like I had with the CPLD last time.

 

I dabbed some hot glue over the hanging pins on the brutalized Cypress chip as well as the lifted pads on the flash chips to keep them from getting bent and shorting other pins or just ripped off, and called it a day.

 

skunk_build_08.thumb.jpg.d72de5aca0d7df13facb61635175dc2d.jpg

 

All the hard soldering is done now AFAICT, but hey, I've clearly been overconfident before.  We'll see how it goes from here, and I'm a bit nervous about whether I'll get anything functional out of this after all the mishaps today ? 

  • Like 1
Link to comment
Share on other sites

58 minutes ago, Zerosquare said:

I see you're using lead-free solder. Leaded solder is easier to work with, and melts at a lower temperature. (But don't mix lead-free and leaded solder, or you'll end up with a weird alloy that's not good).

 

Also, what kind of tip do you use for drag soldering?

 

Yes, lead-free.  Pretty much everyone I tell this to tells me I should just use leaded, but meh... trying to be good.

 

Screwdriver tip, Eta tip 0.062”/1.6 mm, only one I have thus far.  It came with the iron:

 

https://www.amazon.com/dp/B077JDGY1J

 

Do you recommend something else?  Different size?  One of those tips with a little solder well on the end perhaps?  The line of tips compatible with my iron doesn't include one of those, unfortunately.

 

I had some spare time tonight after finishing up another project, so I soldered down C1-C13 on one of the boards:

 

skunk_build_10.thumb.jpg.c5190810285858ea5f69561527e94e70.jpg

 

But before I could even get started on that, I found the tip wasn't wetting at all.  Solder would bead on it, if it would melt at all, and if I turned the tip over, it would literally fall off in a little ball on my mat.  This was even worse than earlier, but I believe confirms that the tip was just in bad shape, rather than my basic drag technique suddenly going to hell.  So I got on the tube and looked up videos on cleaning tips and learned a lot.  I've been doing a few things wrong:

  • It's hard to tin tips with lead-free solder, so a well-intentioned but also non-expert-solderer friend steered me towards the little tins of tip-tinner powder, which you can see in a plastic bag in one of my photos above.  These work great, but apparently are filled with acid to dissolve any oxidized material or other contaminants on the tip, and should only be used sparingly when the tip needs a thorough cleaning.  So, I've been relying far too heavily on these to keep my tip shiny and coated for storage.
  • One of the reasons I was struggling so much to tin my tip in general, beyond just lead-free solder fussiness, was that I was tinning it at too high a temperature.  As mentioned, I generally work at around 600-650 degrees Fahrenheit, but it's better to tin the tip at around 500 degrees.
  • My solder station comes with a solder sponge, but it's better to use a dry tip cleaner (Those things that look like coarse brass wool) when working with lead-free solder, as it leaves a bit of the tinning on the tip, helping avoid oxidation.

Taken together, this would probably explain what was happening to me earlier.  I was starting out with a tip that's more than likely already a bit worn out at this point from being constantly drenched in an acid cleaner, then wiping it off very thoroughly on the solder sponge, and leaving it in the holder for several minutes as I fluxed things/placed chips/etc.  I could tell when I picked it up earlier that it was oxidized in retrospect: It looked so dull it was almost chalky.  Should have stopped right there and cleaned it up properly.  Since the tip wasn't wetting well, the solder would just jump to the first reasonably clean thing it touched, such as my fluxed-up pins and pads, and I'd get a bunch of flux residue on the tip at the same time, making it perform even worse.  Then, I had no hope of pulling any solder back out or further on to other pins with the iron, since the solder basically didn't want to be anywhere near that tip.

 

So, I cleaned the tip one more time in the tip tinner to start, then spent a good 20-30 minutes learning to tin it properly at a low temperature, and letting the flux in the solder clean up the details the tip tinner didn't get to, and being careful to not scrub it too hard on the sponge so that there was still a thin layer on it afterwards.  After that, it was looking much better, and of course performing much better.  The solder flowed onto it nicely again, it was heating pads and components much more quickly, and it would pull a bit of solder off when I touched it to a solder joint like it used to when I was working on some SMD practice boards.  I shudder thinking what I put the board through working with it in the state it was in before.

 

At any rate, I'll carry on building these up.  Even if they end up not working in the end, I'm clearly still learning a lot, which was the main point anyway.  Of course, it's more fun when you get something working out of the effort as well, but if I don't, all the more incentive to hurry up and learn to build my own PCBs ?

Edited by cubanismo
  • Like 2
Link to comment
Share on other sites

27 minutes ago, WAVE 1 GAMES said:

I have a spare skunkboard that the usb port came off of. I dont think a new port can be soldered on because the solder points also came off. You want it?

 

It still works btw

Thanks, that's very generous, but I already have one working skunkboard I got from Zaxon.  When I first got into the Jaguar a few months back, he didn't have any available, and then couldn't ship them to the US because of the pandemic, so I spent that time researching what it would take to build my own.  At that time, I'd never soldered anything, hadn't looked at a circuit diagram since college, had only a passing familiarity with Digi-Key, wasn't aware of Mouser, didn't know you can get any obscure electronic part that had ever existed via eBay+SpeedPak, and didn't know what a gerber file was.  However, I was able to very slowly dig through Tursi's skunk release and understand it enough to realize everything I needed was there if I cared to take the initiative and learn to use it.  I soon after realized I could walk through various useful intermediate steps to learn everything: Build a BJL adapter/cable to learn to do simple soldering, repair a Jaguar CD unit because the one I got on eBay didn't play that well with CD-R's and I had planned on using it to boot to BJL using the BJL CD (And yeah, to play some Blue Lightning ?), BJL mod my Jaguar when I got a bit better at soldering and realized I'd need a machine that could boot to BJL to bootstrap a skunkboard, find some simple Jaguar-related projects that would require building a PCB  to make them generally usable so I could learn to build a PCB and get it fabricated.  So that's what I've been doing.  I initially set out to just write some code to run on the Jaguar and the BJL cable and later Skunkboard were just going to be means to that end, but I found that I really enjoyed working on the hardware stuff in and of itself.  Putting on a podcast or some music and assembling a bunch of tiny components into little devices that do cool stuff is somehow rather meditative and relaxing to me, similar to building some Lego or doing an adult coloring book, so when I was eventually able to buy a Skunk from Zaxon, I just carried on with my plans to work towards building my own anyway.  Relaxing, meditative things I can do in 1-2 hour chunks from my home with minimal equipment were exactly what I needed after long days of working from home at a rather stressful job, and taking care of anxious kids tired of a never-ending pandemic.  Go figure.

Edited by cubanismo
I really should start proof reading before I hit submit instead of right after.
  • Like 1
Link to comment
Share on other sites

I would suggest one of the tips that is flat and angled (looks a bit like a knife point).  The theory I read was that the tip is cooler at the point than the larger portion, so as you drag along the pins keeping the whole flat edge on the pins with the point end being the last to touch the pin as you pass over, the solder is slightly cooled and it distributes evenly.  Obviously dab a LOAD of flux over the unsoldered pins with the part in place, makes a cool popping noise as you solder but helps with the bridges.

 

My drag soldering is a bit naff tho :)

 

 

  • Like 1
Link to comment
Share on other sites

Put almost all the misc. other components on one of the boards tonight:

 

skunk_build_11.thumb.jpg.9606be6fe411516f1eabb7d57b6981cf.jpg

 

Done-enough-to-see-if-it's-alive board:

 

skunk_build_12.thumb.jpg.64d3d42e4c2a85cffbfb6aa6958dcb9e.jpg

 

Luckily, this was all pretty straight forward, as expected.  My soldering tip started acting up again while soldering L1, but I just stopped and cleaned it up properly this time rather than trying to force things.  A few of the solder joints are a bit sloppier than I'd like, but nothing terrible overall.  Took quite a bit of heat to get the solder to wet on those USB connector mounting pads though!

 

Next step: Get it connected to some power and try to program the CPLD.  But what type of power exactly?  @Tursi, the bringup file in your release doesn't mention exactly how much power I should be feeding into this to test it outside of the Jag.  "5V to VCC" (The cartridge header pins I assume, as opposed to the JTAG VCC pin), but how many amps?  I was hoping to hack up an old USB phone charger+cable for this rather than order a dedicated testing power supply, but I think all the ones I have put out between 1 and 2 amps.  Don't want to risk burning anything out if that's way too high.

 

Either way, I'll have to put the project on hold for about a week.  We'll have a visitor in our guest room, which also contains my home office/workstation, so I'll have to wait a bit longer to see if I have a hunk of dead silicon sitting in front of me, or something usable.  The suspense!

  • Like 1
Link to comment
Share on other sites

I'd have thought the CPLD would have been programmed via the JTAG and the voltage supplied by the programmer itself via the JTAG header?

RE amps, it will draw what it needs, you just have to supply enough potential.  IIRC the analogy is imagine the wire as a water pipe, Amps is the diameter of the pipe, voltage is the pressure, so as long as the "pressure" (volts) isn't too high the amps won't matter.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Cool, thanks.  I really should crack my old introductory EE books from college and brush up on the basics.

 

My programmer actually does have a jumper to enable supplying its own power.  However, the VCC pin on the JTAG header doesn't appear to be wired up to the general VCC supply on the board, and I'd like to test a few other things besides the CPLD before plugging the board into my Jag.  I'll take a closer look at the PCB files to see what's going on there before I start cutting into USB cables.

Link to comment
Share on other sites

I couldn't take the suspense!  My alligator clips arrived from Amazon today, so I went ahead with the hacked USB cable and did a little bringup on the kitchen counter:

 

skunk_bringup-kitchen.thumb.jpg.940dfd00cccbd08cb89a061f68a2bcaa.jpg

 

(This is totally the way you're supposed to run your bare PCBs BTW, and if you think otherwise, I don't wanna hear it.  We ran half our computers with hard drives sitting on paper plates, power supplies sitting on the cheap, thick carpet you get in a low-end rental, and repurposed open "cases" with everything inside just caked in dust and bits of junk food in college and nothing bad ever came of it)

 

Connected up VCC and GND, plugged in the USB cable... errors:

Quote

[  847.496833] usb 1-2.4: new full-speed USB device number 16 using xhci-hcd
[  849.172911] usb 1-2.4: device descriptor read/64, error -71
[  850.524960] usb 1-2.4: device descriptor read/64, error -71
[  851.268949] usb 1-2.4: new full-speed USB device number 17 using xhci-hcd
[  851.864990] usb 1-2.4: device descriptor read/64, error -71
[  853.401035] usb 1-2.4: device descriptor read/64, error -71
[  853.509155] usb 1-2-port4: attempt power cycle
[  854.213037] usb 1-2.4: new full-speed USB device number 18 using xhci-hcd
[  859.425209] xhci-hcd xhci-hcd.0.auto: Timeout while waiting for setup device command

 

Didn't work.  OK, OK, don't panic.  We all know what to do in these situations.  Debug it?  No, let's try turning it off and on again!  Same thing.  Let's try some different ground pins, even though I verified they're all connected to the same ground plane earlier.  Same thing.  Let's try the same ground pins again.  SIGNS OF LIFE!

 

Quote

[ 1035.263979] usb 1-2.4: new full-speed USB device number 26 using xhci-hcd
[ 1035.468270] usb 1-2.4: New USB device found, idVendor=04b4, idProduct=7200, bcdDevice= 0.09
[ 1035.468280] usb 1-2.4: New USB device strings: Mfr=1, Product=1, SerialNumber=1
[ 1035.468284] usb 1-2.4: Product: CYPRESS EZ-OTG
[ 1035.468288] usb 1-2.4: Manufacturer: CYPRESS EZ-OTG
[ 1035.468292] usb 1-2.4: SerialNumber: CYPRESS EZ-OTG

 

Is it really there?

 

Quote

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 026: ID 04b4:7200 Cypress Semiconductor Corp.
Bus 001 Device 015: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

Yes.  Yes, it is.

 

I ran in and plugged it into the JTAG programmer, but couldn't do anything with the CPLD.  However, I've been suspecting my JTAG programmer situation isn't up to the job.  I was planning to use the same GQ-4x4 programmer I use to burn BJL and cartridge ROMs since it has a JTAG adapter and claims to support the XC9572XL CPLD used on the skunk, but, well... see this forum post for the issues I ran into before even trying to hook it up to the JTAG header:

 

https://www.mcumall.com/forum/topic.asp?TOPIC_ID=12985

 

As mentioned there, I've ordered this programmer from Amazon and will postpone a verdict on the CPLD until it arrives.  Now I just need to get the ruddy Xilinx Linux drivers to build or find a Win XP install CD in my stack of ancient CD-Rs.

 

Oh, and to follow up on this:

 

On 8/24/2020 at 8:02 AM, cubanismo said:

the VCC pin on the JTAG header doesn't appear to be wired up to the general VCC supply on the board

 

That is not correct.  The VCC and ground pins on the JTAG header are wired up to the main VCC (3.3v) and ground planes in the board.  For the life of me, I can't figure out how this is expressed in the FreePCB file, because when examining that it looks to me like those mounting holes just short the ground plane to the VCC plane, but that can't be the case of course, and the multimeter confirms everything is wired up correctly.  Seems I have a few things to learn about FreePCB before I start tampering with the layout.  Regardless, I don't know how I would have tested the Cypress chip without some other power source, as my current JTAG programmer only provides VCC when it's actually trying to do some programming AFAICT.  I suspect this hacked up USB cable with breadboard pins on the end will come in handy in the future anyway.

  • Like 4
Link to comment
Share on other sites

OK, time for the climactic chapter: Back in the home office at night, got my imitation Xilinx USB Platform Cable in the mail yesterday, and after much fiddling and massaging, Impact agreed with me that it was indeed plugged in to my computer.  For anyone trying to install Xilinx ISE/Impact 14.7 on modern Linux so they can program ancient FPGAs or CPLDs, don't mess with any of the Xilinx driver install help files or forum posts from Xilinx moderators.  Just go here and get the "alternate" driver.  Or install Cent OS 6 in a VM and *do* follow all Xilinx's advice to the letter, plus create a symlink from your kernel headers to /usr/src/linux (which no one seems to mention anywhere, instead saying "install the kernel source," which doesn't actually help), and pass the USB device through.  Also, don't put a USB extension cable you found buried in your bin-o-parts from who knows when/where between your programmer and your computer.  Bleh.

 

Moving on: Once Impact realized it had a cable, it did indeed find a real, live CPLD on the other end of it!.  After about an hour of final fiddling with drivers and cables today, on top of several hours of fiddling over the past few weeks here and there to get ISE all installed and configured, the programming itself took all off 13 seconds.  Sort of anti-climatic.

 

skunk_build_14.thumb.jpg.d6524c47fb45274e0e837a9ff6670dc8.jpg

 

skunk_build_15.thumb.jpg.78c2715e0ce2d5145d909173882bd161.jpg

 

Exhaled, and held my breath again: It was time to plug this thing into my Jaguar!  Oops, no, not into my Jaguar CD.  Turns out trying to flash the skunk BIOS inside a Jaguar CD makes things unhappy.  So unplug the CD unit, gingerly set that prima donna aside, one more deep breath, plug the skunk into the bare Jaguar.  How'd all that dust get under my CD unit?

 

skunk_build_16.thumb.jpg.0a9d65bac6a22b45430d254199e897ce.jpg

 

I'd read the bringup.txt several times through, so I knew what to do next in theory: start my Jaguar in BJL mode, run bjlSkunkFlash and watch it do things that make my Skunk a Skunk if I'd built it properly.  I had a post-version-3 PCB, so I should flash skunkbios_3.0.1-noverify.COF on it, right?  Err.... no apparently.  Before I even got to that, I'd stupidly not looked closely at what bjlSkunkFlash actually was: A collection of mostly-trivial windows programs that patch files a bit and run the BJL uploader.  But... my only machine with a parallel port runs Linux from a USB 2.0 thumb drive that it takes forever to install an OS on because all the SATA ports are busted and I'm too cheap to get a PCIe SATA controller or NVMe for it.  Hack'n'slash time!  I quickly ported the bjlSkunkFlash BJL harness program to Linux and set it to work on skunkbios 3.0.1:

$ ln -s skunkbios_3.0.1-noverify.COF skunkbios.cof
$ sudo ./bjlSkunkFlash 
Using BIOS file 'skunkbios.cof'
Using command line './lo_inp tmp.cof'
Ensure Jaguar is in BJL receive mode, ensure skunkboard is in machine.
Also check BJL cable is attached! Boot revision 2.0.5

Enter serial number for board in decimal format, 4 digits max (will save as hex): 8500
Writing serial number 8500 to board, using command:
> ./lo_inp tmp.cof
tmp.cof is 19813 bytes long
COFF-Header found ...
start is $80000
transmit-lenght is 19645
uploading... 100 %
cksum = 325d648c
Done flashing board!

The readme.txt in the bjlSkunkFlash directory clearly states I should be seeing a blue screen now if the flash succeeded.  With the CD unit in, I got a red screen.  With the skunk plugged in directly, I got a black screen.  Well, we know how to fix that:  Turn it off and on, try again!  Nope, same thing.  Repeated that several times.  Tried various BJL command line parameters.  Nothing doing.  Also, note bjlSkunkFlash thinks this BIOS is a version 2.0.5 BIOS.  I'm not sure if that's relevant or not, nor whether it's real or a figment of me piecing together some of these logs via a lot of scrolling waaay up and cut+pasting after the fact.  At any rate, I didn't notice that bit until just now.  Hmm.  I remembered there being a forum thread about updated skunk BIOSes at some point in my extensive research.  Was 3.0.1 the latest?  Should I be using a different version?  There are quite a few skunkbios_something_something.cof files in the skunk release archive.  Let's go re-read that thread, specifically this comment:

And this comment:

Key text from @Tursi himself: "Rev 2 boards won't be hurt by the Rev 3 BIOS, though of course they lose the high voltage programming option." and "The most recent version is the Rev 3 BIOS listed above. Rev 2 BIOSes are not different from Rev 3, they run the same code. You can flash it manually as described way above or just use the most recent JCP -u"

 

Did someone try to mod back in the high-speed flash option and make this more like a Rev 2 PCB?  My PCB does seem to have the traces around the USB power regulator thing arranged slightly differently than the Rev 3 PCB layout...  Seems like it shouldn't harm anything to try the latest version 2 BIOS at least.  Worst case, it doesn't work, right?  Here goes nothing:

$ rm skunkbios.cof
$ ln -s skunkbios_2.0.5_noverify.cof skunkbios.cof
$ sudo ./bjlSkunkFlash 
Using BIOS file 'skunkbios.cof'
Using command line './lo_inp tmp.cof'
Ensure Jaguar is in BJL receive mode, ensure skunkboard is in machine.
Also check BJL cable is attached! Boot revision 2.0.5

Enter serial number for board in decimal format, 4 digits max (will save as hex): 8500
Writing serial number 8500 to board, using command:
> ./lo_inp tmp.cof
tmp.cof is 19973 bytes long
COFF-Header found ...
start is $80000
transmit-lenght is 19805
uploading... 100 %
cksum = b1647a00
Done flashing board!

Glorious, vibrant blue!

 

skunk_build_17.thumb.jpg.3af8d5c55d480bb7ff823cc3d9214d01.jpg

 

Pretty excited now.  Reset the Jag, there's the trusty green skunk boot screen.  jcp -s, and it's there on USB.  Looking good!  Why the 2.0.5 BIOS and not the 3.0.1 one?  Don't care right now, 2.0's pretty good.  Let's take this bad boy out for a spin!

 

So I hacked around on the other programs in the bjlSkunkFlash directory: test2.bat became test2.sh.  patchbin was an even easier port (Just had to replace _tmain and TCHAR with main and char), and I wrote up a little program called mkuniv that swaps the univ.bin universal encryption header into ROMs to build the doom.jag and avp.jag files used by the test script.  Time to run the thing:

$ ./test2.sh 
jcp v02.04.01 built on Jun  3 2020

Resetting jaguar...
jcp v02.04.01 built on Jun  3 2020

 XXX         XXX   XXX         XXX  XXXXX        XXX  XXXXX  XXX   XXX  
X   X       X   X X   X       X   X X           X   X X     X   X X   X 
    X       X   X X   X       X   X X           X   X X     X   X X   X 
  XX        X   X X   X       X   X  XXX         XXX   XXX  X   X X   X 
 X          X   X X   X       X   X     X       X   X     X X   X X   X 
X           X   X X   X       X   X X   X       X   X X   X X   X X   X 
XXXXX   XX   XXX   XXX    XX   XXX   XXX         XXX   XXX   XXX   XXX  
.
Dumping the BIOS...
.
jcp v02.04.01 built on Jun  3 2020

COFF File:  Skip 168 bytes, base addr is $10000, length is 1417 bytes
Sending... 
Jag accepted start request at $00010000.
 
Finished in 35 millis, 40KB/second.
 
Starting console...
Opened bios.bin for writing...
Closing file...
Console terminating.
clear serial number
Patched!
Compare to baseline...
jcp v02.04.01 built on Jun  3 2020

Resetting jaguar...
.
Load the zeros file to bank 1...
.
jcp v02.04.01 built on Jun  3 2020

Cart ROM:  Skip 8192 bytes, base addr is $802000, length is 4186112 bytes
Sending... 
..
Waiting for erase to complete (about 18s)..
Sending..................................................................... \
* Unauthorized. You must flash a different rom to proceed.
(Remember to reset the jag with 'jcp -r'!)
jcp v02.04.01 built on Jun  3 2020

Resetting jaguar...

Hmm, not quite what I had been hoping for.  I'm flashing Doom, not *that* ROM.  Additionally, the flashing took FOREVER.  Higher-powered fast-flashing of a Rev 2 board?  No, not at all.  Super-slow non-functional flashing.  Hrm.  Tried the whole turning it off and on again thing a few times, and reread the updated BIOS thread again.  Would it be crazy to try updating the board to the 3.0.2 BIOS now that I could at least talk to it over USB?  Melanie Martinez says all the best people are crazy, and I happen to agree.  Let's go for it!  Seemed to work...

$ jcp -*
jcp v02.04.01 built on Jun  3 2020

 XXX         XXX   XXX         XXX   XXX         XXX  XXXXX  XXX   XXX  
X   X       X   X X   X       X   X X   X       X   X X     X   X X   X 
    X       X   X X   X       X   X     X       X   X X     X   X X   X 
  XX        X   X X   X       X   X   XX         XXX   XXX  X   X X   X 
    X       X   X X   X       X   X  X          X   X     X X   X X   X 
X   X       X   X X   X       X   X X           X   X X   X X   X X   X 
 XXX    XX   XXX   XXX    XX   XXX  XXXXX        XXX   XXX   XXX   XXX 

Let's try re-running test2.sh: Fails right off the bat:  Grr!   Why?  Oh, duh, because it's still trying to compare the BIOS it reads back from the Skunk for verification to the 2.0.5 BIOS of course.  OK, let's just comment that line out... and we're golden:

 

skunk_build_18.thumb.jpg.7fd7c44bc3809a0d602be755a061b829.jpg

 

skunk_build_19.thumb.jpg.07b095c90cbf2fc8a7d33f456dde2e61.jpg

 

skunk_build_20.thumb.jpg.dc1b2ea7e911ee140f6f42594085dd7d.jpg

 

All tests passed.  I ran the whole thing 3 times just to be sure, including after I updated it to pick the BIOS file to verify against based on the output of jcp -s, though I had to use my dumped copy of 3.0.2 as the reference since the skunk release doesn't include a bare copy of that version, just the cof that flashes it after verifying the board supports it.

 

This is great!  One working skunkboard for all my efforts so far.  Now I can solder on the miscellaneous other parts, and finish up the second board and see if it survived as well.  Of the two, the one I tested so far is the one that got the least abuse during the drag soldering fails detailed above.  Still, if this one made it, there's hope for the other one as well.  This is the one where I lifted two pads under the flash chip such that they're just hanging there (since then secured with hot glue alone), but fortunately still connected to the flash chip pins and miraculously not shorted to anything.  The other board looks rougher, but the damage is in less sensitive areas.

 

I'm still not sure why I had to bootstrap with 2.0.5, but then could only flash with 3.0.2, but it doesn't really matter that much to me given the end result is a functional board.  I'm assuming the board is in fact a Rev. 3 PCB afterall, in which case flashing with the 2.0 BIOS may have tried using the high-speed flash method without the corresponding higher voltage?  That theory seems at least plausible, but it doesn't explain why I couldn't bootstrap with the 3.0.1 BIOS.  Regardless, I just put a call to jcp -u in the top of my test2.sh script to compensate in any future builds.

 

I'll clean up my linux-ified bjlSkunkFlash toolset hacks and post it all to github soon in the spirit of keeping all the skunk tools open and public, and I'll update here again when I've tested the second board.

 

Even though this isn't the final chapter, I think it's time to give a big thanks to @Tursi for making the whole skunk design public and documenting the build & bringup process so thoroughly, to the point that even a n00b like me can muddle through building one, thanks to @Clint Thompson once again for sending me the spare PCBs, those of you who chipped in bits of knowledge here and in my other wandering threads about building various odds and ends for the Jaguar, and everyone else who contributed bits of knowledge over the years that made the development of the skunk itself and all the tools used here possible.  The Jaguar community is awesome, and I've had a lot of fun ramping up to get to this point.

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Congratulations! A couple of thoughts...

 

The high voltage line was removed in the Rev 3 board because people were blowing up the flash chips. The high speed programming mode requires a source voltage of 9v or higher - the only way to get that on the Jaguar was the raw, unfiltered 9v line which comes right from the wall jack. If it spiked, or people plugged in a higher voltage power supply expecting the regulator to take care of it, the chip would pop, usually with a visible hole. Therefore, I don't recommend putting it back in. The 3.x BIOS optimizes the byte writes and is pretty close to the 2x's 16-bit writes (in fact I recommend all 2.x boards should make this mod and update the BIOS to the 3.x code).

 

Not sure on the boot strap issues you ran into, but nothing wrong with using the upgrade process. ;)

 

We programmed the CPLDs through the JTAG port using a bench power supply for the 3.3v. I had a little piece of perfboard with a set of pogo-pins on it, so I could slide the board under, press the board down onto it, click 'program', and repeat. Nothing fancy at all, not even hinged (just loose on the desk), but it made programming 200 in a sitting a lot easier. ;)

 

 

 

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Jaguar 2000 said:

to a guy like me, all this looks like the manhattan project.

It did to me ~6 months ago as well, which is partially why it's so satisfying to have built one of these things up.  When I was first ramping up on Jag homebrew tools, there was some advice in some forum post: "Read everything." That sums it up pretty well, though it was more like "Read everything.  Then read it all three more times." And still, all I've done so far for the most part is copy the work of others.  No creativity required ?

  • Like 2
Link to comment
Share on other sites

2 hours ago, cubanismo said:

It did to me ~6 months ago as well, which is partially why it's so satisfying to have built one of these things up.  When I was first ramping up on Jag homebrew tools, there was some advice in some forum post: "Read everything." That sums it up pretty well, though it was more like "Read everything.  Then read it all three more times." And still, all I've done so far for the most part is copy the work of others.  No creativity required ?

its very impressive! even more so that you learned to do it on your own 

  • Like 1
Link to comment
Share on other sites

Hell of a night working on this.  I completed the first board:

 

skunk_build_21.thumb.jpg.9bdd9feacb9079d95ba30dae8dbded97.jpg

 

And populated the strictly necessary components on the second board:

 

skunk_build_22.thumb.jpg.5721fc67cd6e06bf318ac5c85f30d6dd.jpg

 

skunk_build_24.thumb.jpg.e8b8088c549bd88c8abfd97500d44edc.jpg

 

Cypress USB showed up after a few tries again, and after I soldered on that JTAG header that I accidentally left sitting there on the mat, the CPLD came up right away too.  However, when I moved on to flash the BIOS, this is what I got:

 

skunk_build_25.thumb.jpg.5fa12c55c92293442ec38c2dfffbc352.jpg

 

Tried several times, it just wasn't having it.  I got out my multimeter and found that I'd apparently missed one remaining short on two of the pins on the flash chip ?  I managed to wick away the solder without further damage, but even after I pried the pins up a bit off the pads, the short between the pads was still there.  Something behind the pads and just about under the chip was bridging them.  I thought I got it once and bent the pins back down, only to find I hadn't quite gotten it, bent them back up, and finally managed to scrape whatever it was out with the point of my tweezers, but one of the pins had taken all that it could, and disaster struck when I tried to nudge it back down:

 

skunk_build_26.thumb.jpg.d943b34b44ffdf1eafc0d16215cf3bc1.jpg

 

skunk_build_27.thumb.jpg.9a8e6b4c84b325f084d3a2bda8e2e6d7.jpg

 

That second-to-the-top+right pin on the flash chip (just visible on the left side of the upper picture) is now missing, and can be seen lying on my silicon mat in the second picture.  Bleh.  I probably should have given up there, but I persisted, and made what I think was a pretty valiant attempt at a repair.  I took a single strand of my general purpose wire:

 

skunk_build_29.thumb.jpg.f9baa2d81d42b8073795f6f0b4cac354.jpg

 

Tinned it up good, and managed to bridge the connection that way:

 

skunk_build_28.thumb.jpg.db7a5671beef35e32e6947b70c7429b5.jpg

 

Unfortunately, in doing so, I reintroduced the short somehow ?  I mucked around with it some more as best I could, but the board had been pushed too far.  I couldn't clear the short until I lifted that pad enough that it didn't appear to be connected to anything anymore.  The short was gone, but the chip still seems to be non-functional.  Red screens whenever I try to flash the BIOS.

 

Oh well.  This board was pretty butchered, as I mentioned.  I didn't have high hopes for it anyway, and I feel like I've truly leveled up my soldering.  I still can't believe I almost got that strand of wire soldered between those pins.  I'm curious, has anyone had to try to repair a snapped-off pin on a package this size?  Any techniques to share in case I run into it again?  I suppose I probably should have stopped when I realized the pin was over-stressed and tried to dab some solder on the point where it was bending to reinforce it a bit, then maybe got a wire or bit of scrap soldered between the pad and the dangling pin rather than trying to bend it back down.  Bleh.

 

I don't think this board is worth trying to salvage at this point, but the exercise lived up to the name of the thread: It downright wreaks of flux in here, and it was quite an adventure!  I'll have to settle for one additional working skunk for now.

Link to comment
Share on other sites

2 hours ago, cubanismo said:

I'm curious, has anyone had to try to repair a snapped-off pin on a package this size?  Any techniques to share in case I run into it again?

You can use a Dremel-like tool to expose the metal inside the plastic package, and solder a wire to it:

Vcf7ipV.jpg

 

But in general, if you have a short you can't clear, it's better not to insist. Instead, desolder the IC (using hot air or low-temperature solder like ChipQuik), clear the short, then resolder it. It's annoying but less risky.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...