Hardware and firmware versions

Hardware and fi...
(0 ratings)
Create by Tamás Fábián | January 9, 2015 | Last updated by Tamás Fábián January 9, 2015 (view change)

Versions Compared

3

Tamás Fábián

January 9, 2015

CURRENT

Tamás Fábián

January 9, 2015

« View Page History

Key  =copy,  =delete,  =insert,  =replace

Diff (diff 0.000 sec, rendering: 0.000 sec, diff len: 2011 chars)

Both hardware and software versions are described using a major and a minor version number separated by a point.

The first commercial hardware version of SBrick is 4.0: 4 is the major, 0 is the minor version. This SBrick comes with a factory firmware version 4.0 too.

A firmware image only compatible with a hardware if their major version number is the same.

The change in the major version number means a big change, that makes that hardware incompatible with the previous firmware images. Uploading an incompatible firmware is either impossible, or results in device malfunction, maybe even the malfunction of the firmware upgrade facility itself, rendeting the SBrick useles. (This is called "bricking", no pun intended. :) )

Less the first hand-made prototypes, there were four hardware versions so far.

Hardware versions

14.0

This hardware used BLE112, without OTA. Motors were driven by L293D ICs in DIP16 packages.

This version had a single, hand-made specimen, without PCB, it was wired by hand.

This was only a proof-of concept. Despite this all, it proved surprisingly useful. :)

2.0

After the first success, we managed to manufacture a printed circuit board, and a 3D printed plastic enclosure. The BLE1123 module was replaced by a BLE113. Motor drwiversth remained the BLE113-A-M256K version, which can do OTA without external flash memory.

>We quickly discovered that this solution is impractical:

    >The IPCsB devlayouredt valuable board space
  • Range was OK, but we knew we can do better
  • The whole circuit was warm even withly modified tors off,ix the range issue, andriv allow better thermal performance.

    The DRV8835 chips were replaced by DRV8833 ones. These are the sakme chips LEGO use ing up tohe IR receivers. These chips can drive two muotors, or the two channels quiesencan be cuparallelled for moren power. We did the latter :)lip> <p>This is the first production version.</ulp>

    3.0

    The L293D driver was replaced with TI's DRV8835. We thought this is a great idea, since these ICs can handle a LOT more current, and run cooler than the former. This version was created in haste, and no proper attention was dedicated to that BLE module placement, wich ruined the range. Controlling was impossible even at 10-20 meters.

    We also discovered that this version could not drive LEGO's M motors at all, or only very unreliably.

    We found out that the problem is with the M motor's filter capacitors. LEGO used rather large capacitors across each winding of the motors, making driving them hard. Even the V2 LEGO IR remote has some problems with M motors.

    Also, connection loss was very frequent, because the motor drives did not cut off quickly enough, and the BLE module was starved if the batteries were overloaded, or were out of power.

    This was the version that the Kickstarter Beta Pledgers received.

    42.0

    After the first success, we managed to manufacture a printed circuit board, and a 3D printed plastic enclosure. The BLE1132 module was replaced wby a BLE113. Motor drithvers remained the BLE113-A-M256K version, which can do OTA without external flash memory.

    >We quickly discovered that this solution is impractical:

      >The PICBs laydevoutred valuable board space
    • Range was OK, but we knew we can do better
    • The whole circuit was warm even wilyth modified tors ofixf, the range issue, and allow bettrivers were taking up too muchermal pquierformasence current

    1.0

    This hardware used BLE112, without OTA. Motors were driven by L293D ICs in DIP16 packages.

    The DRV8835 chips were replaced by DRV8833 ones. These are the same chips LEGO use in the IR receivers. These chips can drive two motors, or the two channels can be parallelled for more power. We did the latter :)

    This is the first production version had a single, hand-made specimen, without PCB, it was wired by hand.

    This was only a proof-of concept. Despite this all, it proved surprisingly useful. :)

    Firmware versions

    4.3

    All features currently described in the sbrick protocol description will be implemented, including the channel excitation pattern features.

    4.2

    Less "channel excitation pattern" features, everything will be implemented in this version by the end of January.

    4.1

    Fixed LED and 100% problems. The drive and brake commands can control multiple channels (see sbrick protocol description for details)

    4.0

    This is the stock, or factory firmware on 4.0 hardwares.

    Known issues:

    • The LED is dark when powered. This can be mistaken for a problem with the hardware
    • "100% bug" or "255 bug": when a channel is set to full power, it cuts power instead. Apps must work around this by sending "almost full power" (254) instead of "full power" (255).

    This version only allows simple remote control commands, and does not have security, voltage/temperature metering. Actually only commands 00 (brake) and 01 (drive) are implemented, and only one channel can be controlled with one command.

    4.1

    Fixed LED and 100% problems. The drive and brake commands can control multiple channels (see sbrick protocol description for details)

    4.2

    Less "channel excitation pattern" features, everything will be implemented in this version by the end of January.

    4.3

    All features currently described in the sbrick protocol description will be implemented, including the channel excitation pattern features.