my new embedded linux dev board – making “robots n sh!t” #lab
Adding more equipment to the lab – got a Dangerous Prototypes ATX breakout board, which lets you use a PC power supply for generic lab work. The voltages supplied are all standard voltages used in day-to-day development. I had a junk PSU laying around, but it was, in fact, junk and broken. I went out to Fry’s and picked up a cheap PSU for less than $30. Looking forward to using this setup in future projects.
It seems to work well enough. Check it out:
It took me about an hour and some Googling to realize why I couldn’t control any pins on PORTF on my ATMEGA32U4. The chip ships with JTAG fuses enabled from the factory, which means you cannot use PORTF as GPIO until you change the fuse settings. Alternatively, you can disable the JTAG port by modifying bit 7 of the MCU control register (MCUCR). The following excerpt from the datasheet explains how:
Bits 7 – JTD: JTAG Interface Disable
When this bit is zero, the JTAG interface is enabled if the JTAGEN Fuse is programmed. If this
bit is one, the JTAG interface is disabled. In order to avoid unintentional disabling or enabling of
the JTAG interface, a timed sequence must be followed when changing this bit: The application
software must write this bit to the desired value twice within four cycles to change its value.
The ATMEGA32U4 ships with the JTAGEN fuse programmed and the initial value for the JTD bit upon power-up is 0, therefore the JTAG interface is enabled and you cannot control PORTF as general I/O. After setting JTD to 1, you should be able to control PORTF as you wish.
Update: project completed and posted here.
I’ve been working on a small device to let you ‘burn’ your own code to a chip and run it on a Super Nintendo. The main point of the device is to allow me to create customized versions of NBA JAM and play them on SNES hardware. My device replaces the stock ROM chip inside the SNES game cartridge. I just finished the design and sent the files off for the board to be manufactured.
It’s a two-layer board, black soldermask, white silkscreen. Hand routed (meaning I made all the connections by hand rather than letting the computer do it automatically…the auto-router is trash) with a ground pour on the bottom layer, and a 5V pour on the top layer.
I ordered a couple of these LCDs from Adafruit and they came in last night. Even though I have no specific project for them yet, I decided to test one out.
I have an extra TI MSP430 LaunchPad and haven’t really done anything with it either, so I decided to use that to control the LCD. Luckily, someone has created an MSP430 library somewhat similar to LiquidCrystal for the Arduino. This made sending text to the LCD really easy. You can grab the library from the Hive76 hackerspace mailing list posting here: MSP430 LiquidCrystal Library.
To control the RGB LED, 3 GPIO on the MSP430 are used. Simple on/off control of the LEDs was used, which translates to 7 total colors that are available to you. I didn’t feel like setting up PWM to do more detailed color blending. The LCD already has current limiting resistors in place for the LEDs, which is very nice. The LCD needs 5V, which is conveniently available from the USB connector on the LaunchPad. Interestingly enough, the MSP430 is actually running at 3.6V, due to the LaunchPad’s on-board regulator. Luckily, the Adafruit LCD is tolerant of this voltage mismatch and chugs right along.
I don’t have equipment to make a decent looking video, so all I have are some static images. Enjoy!
The LCDs look very good in person!