In-system Design Others Driver

The FabISP is an in-system programmer for AVR microcontrollers, designed for production within a FabLab. That is, it allows you to program the microcontrollers on other boards you make, using nothing but a USB cable and 6-pin IDC to 6-pin IDC cable. It's based on the USBtiny and V-USB firmwares, which allow the ATtiny44 to perform USB communication in software. Programming can be done through avrdude. The schematic (PDF) is super simple: USB connector, ATtiny44, and 6-pin ISP header, with assorted passive components. I started with the Eagle files for the USBtinyISP, although there's almost nothing left of it. Most of the parts for the FabISP are in the FabLab inventory. Exceptions include the Mini-B USB connector (SparkFun, Digi-Key), 12 MHz crystal (Digi-Key), and 18 pF capacitors for the crystal (Digi-Key).

Eagle:fabisp.sch, fabisp.brd
Schematic:fabisp.pdf
PNGs:fabisp.png, fabispdim.png
Firmware:firmware.zip

Intermediate drivers rely on the lowest level drivers to function. The Windows Driver Model (WDM) exists in the intermediate layer. The lowest level drivers are either legacy Windows NT device drivers that control a device directly or can be a PnP hardware bus. These lower level drivers directly control hardware and do not rely on any other. Sep 04, 2014 Each time your printer, scanner, camera or other external device is plugged in, it needs an avenue through which it can communicate with the computer. These avenues are known as device drivers, and they are small-scale software programs that serve as translators between the external hardware and the PC itself. Certificates for Driver EN55015, EN61347-2-13, EN62384, EN61547, EN61000-3-2, EN61000-3-3 Remarks: For reference only, the above figures may vary by driver efficiency and other factors. A device driver usually communicates with the hardware by means of the communications subsystem or computer bus to which the hardware is connected. Device drivers are operating system-specific and hardware-dependent. A device driver acts as a translator between the hardware device and the programs or operating systems that use it.

Hardware Interface

The board connects to the computer using a Mini USB cable. It connects to the target (the board being programmed) with an 6-pin cable on the 2x3 ISP header.

The FabISP board contains two solder jumpers: pairs of adjacent pads with no components mounted on them. These can be closed (connected with solder) to configure the board. They are:

SJ1 (between the crystal and microcontroller)
Close to program the ATtiny44 on the FabISP. (Connects reset on the 2x3 ISP header with reset on the ATtiny44.)
SJ2 (lower right corner of the board)
Close to provide power to the target board being programmed by the FabISP. (Connects VCC on the board with VCC on the ISP header.)

Making the Board

You probably want to mill the circuit board on the Modela, although you could try making a vinyl cut version or ordering a PCB. Check for shorts (i.e. things that shouldn't be connected but are) using the multimeter before soldering the components onto the board.

Design

Soldering the Board

Start with the shorter components. If you haven't soldered before, it's probably good to practice with the smaller components (e.g. resistors and capacitors) before trying the microcontroller. The USB connector is probably the hardest, because the traces are so narrow. Do the ISP header at the end, so it doesn't get in the way when you're trying to solder other components. Most of the components can be oriented either way, with the exception of the microcontroller (the circle marking pin 1 should be in the lower left) and the zener diodes (the lines on the case should align with those in the Eagle board file).

An assembled version of the previous revision of the board. Pin 1 of the 6-pin header was marked with a black dot from a Sharpie.

In-system Design Others Driver Training

Programming the ATtiny44

Before using the FabISP, you need to program the ATtiny44 on it. To do this, you'll need another (programmed) FabISP, some other in-system programmer (like an AVRISP mkII) or serial cable and dasa (level convertor) board. Make sure SJ1 (the solder jumper near the microcontroller) is closed. Connect the 6 pin cable of the other programmer to your FabISP, being sure to orient it correctly (pin 1 to pin 1). You'll also need to provide power to your FabISP. You can do this by connecting it to your computer with a USB cable, or, if you're using another FabISP, by closing the SJ2 jumper on both boards.

Download the firmware.zip file above and unzip it. You'll also need to install the development tools for AVR microcontrollers. The easiest way to do this is with CrossPack on Mac OS X, WinAVR on Windows, and via the avr-gcc, avr-libc, and avrdude packages on Linux.

If you're not using another FabISP to program your FabISP, you'll need to edit the Makefile and modify the line AVRDUDE = avrdude -c usbtiny -p $(DEVICE) for your programmer. For example, to use an AVRISP mkII replace the -c usbtiny with -c avrispmkii -P usb (keeping the -p $(DEVICE)). For serial cable and dasa board, use -c dasa.

Once you've modified the Makefile, run make program from the command line to program the firmware onto the ATtiny44 on the FabISP.

Driver

Once the ATtiny44 is programmed, open the SJ1 solder jumper (disconnect the two pads).

In-system

Using the FabISP

If you connect the FabISP to your computer, it should appear as a USB device that can be seen in the Device Manager on Windows, in the System Profiler on Mac OS X, or in dmesg on Linux. (It will not generate a virtual com port or serial device.) On Mac OS X and Linux, the FabISP should work from avrdude without a driver. On Windows, you'll need the Windows USBtinyISP driver built with libusb v1.12 (usbtinyisp w32 driver v1.12.zip). On the 64-bit version of Windows, try these drivers instead. When you plug in the FabISP, point the Windows add hardware wizard at that folder. To use the FabISP from avrdude, supply usbtiny as the -c parameter. See the tutorial on programming microcontrollers for more information.

Troubleshooting

Please fill in this section based on your experiences.

Created by David A. Mellis

Setup and Installation for the Zebra Receipt/Label Printer Model #�s LP2844 & LP2824:

***NOTE - If you are using the Zebra GC420d printer see the following article here.


  1. Make sure that the correct driver is installed for your version of Windows. After installing the driver*, make sure that the correct label size is selected as the printer�s default paper size. Make sure that the Code 39 Digits bar code font is installed on the computer doing the printing (this font file can be found in the Design Manager directory) or is installed by the Design Manager installation. To check, look for Code 39 Digits under Control Panel, Fonts.

    *Go to the following link to download the driver � Select your Printer Model (LP2844, LP2824) choose the ZebraDesigner Driver under Recommended Drivers.

  2. The following setting must be changed in the Design Manager software if you are printing labels. It is in the Company Information window under Inventory. The �Use Label Printer� box must be checked if you are printing labels.



3. The following setting must be changed in the Design Manager software if you are printing receipts. It is in the Company Information window under POS/Showroom. The �Use Receipt Printer� box must be checked if you are printing receipts.



4. Before printing labels with Design Manager, click the Setup button on the label print window and verify that it is set to the Zebra printer and that the correct label size is selected. Some versions of Windows do not have a default paper size and therefore the Setup button will need to be used every time labels are printed. If the computer that is used to print the labels is also used for other printing then make sure that the correct printer is selected the next time you print a non-label document.


5.Most Important: Print a couple of test labels and then test them with the Bar Code Scanner before printing a large run.


In-system Design Others Drivers

6. Printer Configuration. Please see below for the proper settings needed to print Labels or Receipts. These settings can be changed in the Start menu of your Windows operating system by selecting Printers and Faxes.


  1. Set Speed to 3.25

  2. Set Paper Size to match Width 4.00 x Height 5.00

  3. Set Paper Format to Inch and Portrait



Go to the Advanced Setup tab

  1. Set Media Settings to Direct Thermal

  2. Set Media Type to Continuous

  3. Click OK - Once Complete be sure to right click on the Printer again and choose Printer Properties � choose to Print a Test Page.


In-system Design Others Driver Download


Print a test receipt in Design Manager. If the receipt appears to be off center, make a change to the Printers settings. Go back to Printing Preferences � Options tab. Under the Unprintable Area, change Left: 0.00 to 0.25. Choose OK and then print another test page in the Printer Properties. After the test is complete, go back into DM and print another receipt. If still off center, make further changes and tests to the unprintable area settings until it centers.

In-system Design Others Driver

Note, to switch from Receipt printing to Label printing on the same printer, you must reset the settings by following the steps below:

  1. Click on the Printers and Faxes icon in the Windows Start menu.

  2. Right click on the Zebra printer and select Properties.

  3. Select Printing Preferences and make the appropriate changes to the settings according to the configurations listed on this page. Click Ok to save the changes and completely exit out of the Printers and Faxes window. The settings will be sent to the printer upon exiting that screen.

  4. Now open up the Printers and Faxes window again, load the printer with the proper paper and click on �Print Test Page� to make sure the new settings were initiated.

  1. Set Speed to 3.25

  2. Set Paper Size to match the size of the labels.

    Normally - Width 2.25 x Height 2.00

  3. Set Paper Format to Inch and Portrait



Go to the Advanced Setup tab

In-system Design Others Driver Handbook

  1. Set Media Settings to Direct Thermal

  2. Set Media Type to Label with Gaps

  3. Reverse Sensor should not be Checked (note, if you are having difficulties with the page breaks, try changing this setting to the On position)
  4. Set the Position adjustment � Gap/Mark Height to 0.12 inch
  5. Click OK - Once Complete be sure to right click on Printer again and choose Printer Properties � choose to Print a Test Page.

In-system Design Others Driver Jobs