The awesome embedded adventures logo goes here!
GO

EMBEDDED ADVENTURES: CONNECT THE WORLD AROUND YOU

Tutorials in this section:

Using DSP-7S04B smart 7 Segment displays
DSP-7S04B firmware updates

The DSP-7S04B is based around the PIC14K50 or PIC13K50 microcontroller, depending on which version you have.

What this means is that we can add new functionality to it over time, based on your feedback!

Of course, you can download the source code as well and make your own changes - you will need a copy of the SourceBoost compiler, which is a great compiler for 8 bit micros.  This is not required if you simply want to update your display with the latest firmware available here.

DSP-7S04B firmware - ea_dsp7s04b_firmware_v1_02.hex

Source code is available in the Pic Pack download section.

To update your firmware, use the Screamer Bootloader.

Using a TTL serial to USB converter, connect the TX from the converter to the RX pin on the DSP-7S04B.  Connect the RX pin from the converter to the TX pin on the DSP-7S04B. Also connect VCC (either 3.3V or 5V, it doesn't mind) and GND.

In the Screamer Bootloader, set your com port to the com port your USB converter appears as, set the baud rate to 115200 and Oscillator to 48Mhz.

Go to the Terminal tab, hit the Open button, and press the enter key a few times in the terminal window to get the ">" prompt from the DSP-7S04B.  This confirms you are communicating correctly with the display.

Now, go back to the setup tab, press an Open button and choose your .hex file (downloaded from above). Press the Download button next to the Open button you used, and it should now transfer the firmware.

All being well, it will switch back to the terminal and display this:

DSP-7S04B
[Firmware: [1.02 15:36:34 May 04 2014]
i2c addr: 0x32
Pull-ups: off

Updates in this version of firmware (1.02)

Selectable pull-ups.

If you want the display to do its own pull-ups for I2C communication, issue the command over the TTL serial port:

pullups on

or, to turn them off:

pullups off

This saves you having to use pull up resistors on some platforms and should make communication with the Rasberry Pi better. Remember, you only need one set of pull-ups (either the DSP-7S04B pull-ups, or separate resistors) per I2C chain of devices.

Selectable I2C address

The DSP-7S04B now boots up and displays the current I2C address over the TTL serial port (115,200bps).  You can change this by issuing the command:

addr 50

Note that the number 50 is decimal, even though the address is displayed in hex upon bootup.  The address will be stored and used from the next boot.

Bug fixes

The raw command did not work correctly when used from the TTL serial port prior to this version.  Issue a 16bit hex string for each digit like this:

raw ffff,505f,ffff,202f