Arduino Nut

Sorted by Squirrels.

Wednesday, 7 August 2013

Serial #000000000000000001


Thanks to the folks at OSH Park  the first production prototype has been assembled. It's quite one thing to cut the board yourself and quite another to have something so very purple and gold...

As usual, click to embiggen.


With all the handshaking issues worked out I now have a very fast and solid transfer protocol, able to load a 40K program in 300 milliseconds.

Work is now ongoing to develop the utility ROM to enable two virtual disk drives 2: and 3:. Basic support is done but I'd love to be able to boot from an SD drive. Achieving this will be a challenge if I'm to retain 100% support for the various DOS versions available for this fine machine.


Thursday, 20 June 2013

Loading Einstein programs from SD card

Finally it's working!

http://www.youtube.com/watch?v=VA3agKxpm8k

There are still a few issues around some of the timing for handshaking, but I'll apply the logic analyser once I've found a reproducible test case.

Thursday, 13 June 2013

What did _you_ do in your lunch-hour?

As per the previous post - they were out of raspberry and white chocolate muffins, so...

It's amazing what a coat of paint does for a prototype board! This is the result of a careful spraying of Plastikote 'Creme de la creme' - AKA 'Retrocomputer white'. Ignore the bloom in the picture - that's just an artifact of whatever additional compression has been applied to the JPEG. In the flesh, as it were, the board is a gleaming off-white.


And here's the solder side. I can't wait to get stuffing.


If you click to embiggen then you may see the teeny tiny capacitors - 0402s. They'll be the teeniest thing I've ever used.

I treated myself to a fresh etching solution today as I was short of time. This board went from printer to camera in just under an hour. It would have been about half that if there wasn't a 60 way IDC connector and 44 pin CPLD socket on there :D

At least I didn't drill any body parts today.

If you haven't been following (shame on you!) then you have been looking at the second prototype of einSDein - an SD card interface for Tatung Einstein computers.

Today I wrote data from my Einstein to the PIC controller.



The PIC controller is announcing the title, and a small test program on the Einy is writing the ubiquitous string, where it is received and displayed by the PIC.


.module fnMessageToHostW
fnMessageToHostW:
   ld    hl,message-1
   jr    _endtest

_send:
   call  waitByteTaken
   jp    c,reportTimeout
   out   (WRITE),a
   ld    e,a
   push  hl
   DOSCALL(CPM_FUNC_CONSOLE_OUT)
   pop   hl
_endtest:
   inc   hl
   ld    a,(hl)
   and   a
   jr    nz,_send

   ret
.endmodule


The hardware has changed a little since my first stab after finding out to my horror that unless I upgraded the processor to a totally over-the-top type then I wasn't going to be able to use hardware SPI and the parallel master port at the same time. Disaster. Of course I could have used software SPI - like I did in the Acorn Atom version of this board - but that would have been too easy. Instead I chose to stand on the shoulders of a giant and implement the parallel port in the CPLD. My friend Phill had done this for the Dragon and so I've lifted a good portion of his design. Thanks Phill! 

Phill's design has several advantages over the built-in hardware of the PIC. 

1. It's processor agnostic so this design could be used with AVR, ARM, or whatever other chip you have handy.

B. Unlike the PIC the host computer can query the state of the buffers making for a slight increase in speed when polling long operations.

It hasn't been easy, I've spent a couple of days crying into my milk because it wasn't working and I just didn't know why. I added LEDs to make myself feel better. I stripped the implementation back to literally nothing and started again a couple of times. I stared at the code for Einy, PIC and CPLD until I realised my stupid mistake. One part of the design used active low logic, and the other was active high. With that sorted we appear to have lift-off!

Here's some glamour shots. Firstly - the thing in action!


To the left is the Xilinx programmer, to the right is Pickit3. Centre stage is the serial lead, an FTDITTL232. Bet you're really pleased I told you that.


And here she lies, disconnected. Do you like the wiring mess? :D This should sort it out:

Miraculously I've managed to fit this on a single layer which should make things a touch easier.



Next step will be to add the SD card handling to the PIC code. Or making the new board. Or a raspberry and white chocolate muffin. Decisions, decisions.

Sunday, 19 May 2013

It can never be simple

I'd forgotten that I can't run a PIC18F4525 at 3.3V and expect it to work reliably. The minimum recommended volume is 4.2V. I can switch to the low voltage part, but speed decreases with voltage so I'm considering something a little more radical. Brain transplant!



This is a PIC32MX broken out to solder pads. I'll wire it point to point to work out some minimal implementation as I go along porting the code. It pops into the vacated PIC18 socket, hence the strange lop-sided appearance - there are pins on the board that need to be avoided.

This was the 1st chip which I soldered with paste & hot air.

Thursday, 16 May 2013

EinSDein Step 2

Told you I would :D

Now on to the modification of the firmware. I'm going to be using a branch of the AtoMMC firmware which will allow both linear and sector-based access to files. This will allow the use of disk images directly from the FAT filing system.

I haven't decided yet whether to use memory or IO mapped accesses. That's the beauty of using programmable logic.


Saturday, 11 May 2013

EinSDein drei vier!

The board has been very patient waiting for me to have enough time to solder it up. It appears that I have some free time this fine Saturday afternoon so I'm going to heat up the Hakko..!



This is how we do it

MMC (9) acorn atom (7) zx81 (7) arduino (5) Atari 800 (3) c128 (3) sd2iec (3) tatung einstein (3) 6502 (2) Chuckie egg (2) Max6956 (2) QL (2) RCM (2) avr (2) c64 (2) cadsoft eagle (2) eeprom (2) mmbeeb (2) sd card (2) sio2sd (2) spi (2) ufat2 (2) vic20 (2) 6502 second processor (1) 6522 (1) 8255 (1) Acorn BBC Micro (1) Apple 2e (1) Apple ][ 2 two (1) BBC 6502 second processor (1) BBC micro (1) DevicePrint (1) Double Choc Chip Muffins (1) FAT (1) IO (1) Jupiter Ace (1) LED (1) Master 128 (1) PCB (1) PIC (1) POV (1) PROGMEM (1) ST (1) Spectrum 128 (1) antex (1) arcade spinner (1) arduino shield (1) assembler (1) atmel (1) bakewell tart (1) beer (1) bird's nest (1) cake (1) cassette (1) cassette interface (1) compact flash (1) dac (1) de-yellowing (1) efficient (1) einSDein (1) eye strain (1) failosophy (1) filesystem (1) fram (1) french polishing (1) fuse (1) fuses (1) gaming (1) glue (1) google chrome (1) heroic failure (1) high voltage programming (1) hot irons (1) if (1) jiffydos (1) joey beltram (1) lego robot (1) library (1) lying (1) matron (1) microcode (1) mmc interface (1) mmc2iec (1) mmm (1) mouse guts (1) oscilloscopes (1) pcm (1) pic32mx (1) porn (1) proto shield (1) retro computer museum (1) retro hard-on (1) rom box (1) sd (1) sd2mmc (1) seadragon (1) silliness (1) small (1) software master (1) soldering (1) spi software master (1) stray capacitance (1) string (1) techadventure (1) test equipment porn (1) ts1000 (1) turtle cheesecake (1) tweaking (1) vc20 (1) video head (1) video ram replacement (1) weewee (1) wingasm (1) wire library (1) wodges of IO (1) xilinx cpld (1) yellowing (1) zx spectrum (1) zxpander (1)

About Sir Morris

My Photo

Loves: Old computers, Old Techno, Old ladies. Cake.
Hates: New computers.

Unless otherwise stated all of the original work presented here is:

Creative Commons License
Licensed under a Creative Commons Attribution-Noncommercial 2.5 Generic License.

The work of others where referenced will be attributed appropriately. If I've failed to do this please let me know.