You are currently browsing the mark2 tag archives.

The Good, The Bad, The Ugly

Posted 2012.07.12 10.10 in Computers/Internet/Technology

So twelve or fourteen hours into playing with my custom circuit board for the ISEB-6 Mark II, and I’ve been compiling a list of the things I did well, the things I did poorly, and the things that were just plain dumb.

The Good:

  • It ‘works’, more or less. That is, the uC functions, I can upload programs to it, and it accepts and runs them.
  • The screen works. This is more than just a hardware thing, as I had tweaked the library to use hardware SPI rather than software SPI, to get about a 50% bump in speed, and this was the first test of that library mod that wasn’t on a breadboard.
  • The buttons and indicator LEDs work.
  • The LiPo charging circuitry works.

So all in all, there’s some legitimate successes there. On the other hand, there’s some oopses too. Somewhere between submitting the board for fabrication, and actually receiving the boards back, I started to realize my mistakes. Having the board and testing it, confirms some suspicions and adds new problems to the list.

Starting Over from Scratch

Read more »

Testing! Pow!

Posted 2012.07.11 23.58 in Computers/Internet/Technology

All my pent-up impatience just came buzzing out all at once.

With my shiney new circuit board in ┬áhand, I started soldering up the bare minimum for testing – LiPo charging circuitry, voltage regulator, ICSP port and FTDI port. And indicator LEDs.

So far so good, the voltages were good and the LEDs worked ok. Mind you, I didn’t use the good LEDs on this. No, I already knew there’d have to be another revision because I made some mistakes on the boards…

Anyhow, power tests were passed so I added the micro-controller — an Atmel ATMega1284P — and an 8MHz resonator. Tricky soldering – the pins on the micro controller are 0.4mm wide and have 0.8mm centre-to-centre spacing. There’s 11 to a side.

My two biggest concerns at this point were that a) I might have botched up the soldering, and b) I might have totally botched up the circuit board when I laid it out.

So I plugged a programmer into the ICSP port and tested it, and presto! I had communications!

My plan was to continue using the Arduino IDE to program for this, and fortunately there was already a ‘duino based on the 1284p, called the Sanguino. Unfortunately it isn’t up to date with the latest (1.0.1) version of the IDE, and I’ve migrated everything to 1.0.1 so I ended up not using the Sanguino setup.

The only thing I did was take their 1284p bootloader, and modify it to match my board layout. Then I created my own 1284p variant in the IDE and set it to work with my customized bootloader.

I had done all that last week and without any way to test, so my first real test today was to burn my bootloader. This worked (so the microcontroller, resonator, and ICSP were definitely working correctly) but I could not write sketches from the IDE so I wasn’t sure if I had screwed up the FTDI port or not.

Further testing however revealed that my 57600baud bootloader was too ambitious for the 8MHz clock speed. At 19200baud the bootloader runs just fine, albeit slower.

So another passed test! I had working power, a working micro, working ICSP port and working FTDI port.

Next thing was to plug in a screen. That was slightly challenging as my big blunder with this board was laying out the screen at the wrong size – the holes on the board are too narrow for the holes in the screen. And I didn’t want to hook the screen up permanently since the board isn’t final. So I put in some female headers, and bent a few to fit in my misplaced pin holes.

And voilla! The screen works!

Lots of successes for a single night, but I’m not going to continue populating the board. I’ve left off all the sensors as they’re the most expensive parts (gps + compass + humidity + pressure = $85). I have to go back to the ‘drawing board’ and start fixing all the mistakes I made on the board.

I’m also running some additional tests, as I’ve noticed some problems with the ADC readings (analog, eg. temperature and voltage) that shouldn’t be happening, and I have to figure out if they are software or hardware.

Still, not bad for a single night – and it gives me stuff to work on for the next few nights.