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)

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

1.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 BLE112 module was replaced by a BLE113. Motor drivers remained the same.

We quickly discovered that this solution is impractical:

  • The ICs devoured valuable board space
  • Range was OK, but we knew we can do better
  • The whole circuit was warm even with motors off, the drivers were taking up too much quiesence current

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.

4.0

The BLE113 module was replaced with the BLE113-A-M256K version, which can do OTA without external flash memory.

The PCB layout was heavily modified to fix the range issue, and allow better thermal performance.

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.

Firmware versions

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.

 

« View Page History