Hardware and Firmware Versions EiBotBoard has had
several hardware versions, and also several firmware versions. Here
is a list of the hardware (board) versions: (The board is called
EBB, the firmware is called EBF - EiBotFirmware)
EBB v1.0:
Four channels of stepper driver, with A3967 driver chips
Two high current digital outputs (for solenoids, fans, relays,
etc.)
24 I/O pins, each with power and ground
Alternate power input for using some I/Os as RC servo outputs
CPU is Microchip PIC18F87J50
SPI in and SPI out connectors for daisy-chaining
Firmware never completed - showed four channel stepper motion
and solenoid output, but not much more than that
EBB v1.1:
Two channels of stepper driver, with A3967 driver chips
One high current digital output for solenoid on EggBot Beta
CPU was either Microchip PIC18F45J50 or 18F46J50 (check for
white colored door on SchmalzHaus logo - indicates 46J50)
This version was the one that was shipped with the original
Beta EggBotKits at Maker Faire 2009
All project files
(ZIP) - this includes Eagle board file, schematic, BOM (with
DigiKey parts), Gerbers, Notes.txt (a change list), and
assembly sheets
Firmware Versions
Primary EBB Firmware (EBF)
The firmware versions are not as contiguous as the hardware
versions. The firmware is called EBF (Ei Bot Firmware) and due to
changes in the hardware, there are different builds of each firmware
version for the various hardware versions. At some future point in
time, there might only be one firmware version for all boards, and
there would be some mechanism for the firmware to know which
hardware version it is running on and configure itself
appropriately. (probably by using a block of Flash to store
configuration information)
These firmware versions are based on the UBW code, modified with
extra commands for RC servos, stepper motor motion, etc. In order to
compile these projects, you will need the free MPLAB IDE, the free C18 compiler, and the
free Microchip Applications
Library (latest USB stack, at least v2.6a) all from Microchip.
EBB v1.8 (complete zip
of the project files - including projects for v1.0, v1.1, v1.2
and v1.3 hardware - note that as far as software is concerned,
v1.3 hardware = v1.4 = v1.5 hardware)
EBB v1.8.2 (complete
zip of the project files - including projects for v1.0, v1.1,
v1.2 and v1.3 hardware - note that as far as software is
concerned, v1.3 hardware = v1.4 = v1.5 hardware)
Changes from 1.8 include updating to new Microchip USB Stack
v2.7, new USB PID/VID (and new .ini file - see below), and USB
stack now resides inside project folder
Only difference from 1.9.5 is that the reset and interrupt
vectors below address 0x1000 were removed to make merging with
the bootloader easier. No functional differences.
Added alternate pause button on RB0 so that users can pause
plotting by shorting RB0 to GND (just like PRG button does)
Added QC command to measure voltage at the REF_RA0 net and
V+ net - reports back what the user has set the stepper motor
max current to, as well as the current input voltage to the
board. (The second value is only available on v1.3 and above
board revs.)
Added in SE - Set Engraver - turns engraver (on RB3) on or
off, or set to PWM power level
Added code in init to pre-charge RC7 (USB_SENSE_IO) high
before running rest of code to get around wrong resistor value
on hardware.
Removed Microchip USB stack v2.7, replaced it with v2.8 from
MAL 2010_10_19, also using generic Microchip folder now rather
than re-named one (simpler to update)
Updated code in main.c (and others) to match updates from
latest MAL CDC example
Added third paramter to SP command to use any PortB pin for
servo output
Updated check_and_send_TX_data() to allow unlimited data to
go out without overrunning the output buffer, same as UBW
1.4.7
Fixed PI command to return just a 0 or a 1
Updated to USB stack 2.9a
Created MPLAB X project for this firmware
Added SC,14,<state> to enable/disable solenoid output
on RB4
Fixed bug with S2 command and solenoid command interaction -
we now turn off solenoid output on RB4 if user uses S2 command
to use RB4 for RC servo output
Fixed bug with S2 command where a duration of 0 would not
shut off the PWM channel
Fixed bug in S2 command where <rate> variable was not
being used correctly
Switched default number of S2 channels to 8 (from 7 before)
Please see Release Notes
page for latest information on version changes
EBB Firmware Driver for Windows (XP, Vista 32/64, Windows 7
32/64)
The following zip file contains an INF file. This INF file must be
used the first time the EBB is plugged into a Windows computer. It
tells Windows what driver to use with the board, and it contains
unique strings that identify the board as an EiBotBoard from
SchmalzHaus.
This INI file will work for all versions of EBB Firmware. However,
any version of EBB Firmware 1.8.2 and
above MUST use this custom version of the INF file, not the
generic one that comes from Microchip.
If you ever build your own EBB, or if you need to re-program a part
from scratch, you'll need the bootloader images. Please see the EiBotBoard Bootloader information page
for hex files and more.
Updating Your Firmware
You'll need a Windows PC (XP, Vista and Windows 7 supported, I
believe), a USB cable, a power supply for your EBB (for boards
earlier than v1.3), the latest version of .Net (if you get an error
while bootloading, updating your version of the .Net runtime may be
the cause) a HEX file from above that you want to program into your
EBB, and this program.
Power on your EBB with the power supply, and connect the USB
cable to your PC
Press and hold the PRG button while pressing and releasing the
RST button, then release the PRG button