1 files changed, 188 insertions, 95 deletions
@@ -1,3 +1,6 @@
+This is the firmware for the ThermoHybaid MBS 0.2G MBLK001 issue 2 (short HBMBSG02) thermo-cycler replacement controller board.
+This is the firmware for the thermo-cycler
This firmware template is designed for development boards based around [STM32 F1 series micro-controller](http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031).
@@ -6,41 +9,167 @@ project
-*describe project purpose*
+I bought a HBMBSG02 thermo-cycler, with unknown defect, and wanted to use to make PCR tests.
-*described electronic details*
+I replaced the controller board with custom electronics to be able to operate it again.
+The device did power up.
+After a couple of seconds it shut down the fan and probably waits for further instructions.
+No defect was visible.
+I did not get any software to operate it, or check for errors.
+This is a rather old device, from 2003.
+The manufacturer did not reply to my request for any software or further documentation.
+There are two RJ11 ports, for RS-485 communication.
+No traffic has been seen during boot up (this probably uses a master slave protocol since the devices can be chained).
+I did not get any reply after sending random bytes.
+The device is made out of the following parts.
+The heating (and cooling) bed for 8x12 PCR tubes.
+Made of black anodized aluminium.
+there is a heated lid with two connectors.
+temperature sensor, 12 kOhm NTC thermistor, 3-pin (pin 1 has notch):
+1. thermistor lead 1
+2. thermistor lead 2
+connected to MBLK005.
+heating element, 150 Ohm resistor, 2-pin connector.
+connected to MBLK078.
+this is power by AC 220V, controller by main board.
+I don't recommend to have is on at full power for too long.
+The heating mat gets hot very fast.
+I even blew to inline fuse (196 °C) although I only tried to heat it up to 94 °C.
+I replaced the fuse.
+this board provides power to the controller board and lid.
+power + heater, 2x2 connector:
+1. red, 12V (13-77 V)
+2. black, ground
+3. yellow/red, optocoupler anode for triac controlling the lid heater
+4. yellow/black, optocoupler cathode for triac controlling the lid heater
-The current implementation uses a [core board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#core_board).
+1x2 connector to lid heater, controller by BTA06 triac.
-The underlying template also supports following board:
+it also allows to select between 110 V and 220 V, and provides AC power to the TEC power supply.
-- [Maple Mini](http://leaflabs.com/docs/hardware/maple-mini.html), based on a STM32F103CBT6
-- [System Board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#system_board), based on a STM32F103C8T6
-- [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill), based on a STM32F103C8T6
-- [black pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#black_pill), based on a STM32F103C8T6
-- [core board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#core_board), based on a STM32F103C8T6
-- [ST-LINK V2 mini](https://wiki.cuvoodoo.info/doku.php?id=jtag#mini_st-link_v2), a ST-LINK/V2 clone based on a STM32F101C8T6
-- [USB-Blaster](https://wiki.cuvoodoo.info/doku.php?id=jtag#armjishu_usb-blaster), an Altera USB-Blaster clone based on a STM32F101C8T6
+RS485 adapter board.
+it provides 2 interconnected RJ11 ports.
+this allows to chain thermocyclers.
+1x4 connector, to main board:
+1. yellow, RS-485-2 A (9/Y on MAX489)
+2. green, RS-485-2 B (10/Z on MAX489)
+3. brown, RS-485-1 A (12/A on MAX489)
+4. orange, RS-485-1 B (11/B on MAX489)
+power supply for the TECs (e.g. peltier elements) though yellow/orange cables.
+I think this provides a programmable constant current to operate the TECs efficiently.
+2x5 IDC connector to main board:
+1. IC2 anode
+2. IC2 cathode with R23
+3. IC4 anode through R24
+4. IC4 anode
+5. IC6 collector
+6. IC6 emitter
+7. IC3 anode
+8. IC3 cathode through R15
+9. IC5 anode through R25
+10. IC5 cathode
+by applying any combination on ID2-5 I was not able to have it output power.
+IC6 is active when IC5 gets power, but that's the only reaction I got.
+- T3-8 -- TP9 -- TR4 -- TP8
+- TP8: 38 kHz @ 1V
+- TP9: 38 kHz @ 60V
+- TP10: ground
+- TP11: PWM 38 kHz @ 13V
+- TP12: 6V
+- TP13: 16.6V
+H-bridge module mounted on A4-246
+2. orange wire (H-bridge output)
+3. yellow wire (H-bridge output)
+4. VCC (6V)
+5. IC3 collector
+10. IC6 anode
+12. IC5 collector
+13. IC2 emitter (pulled down)
+14. IC4 emmiter (pulled down)
+1x5 connector, to main board:
+2. play/pause indicator, green LED anode
+3. play/pause indicator, orange LED anode
+4. power indicator, red LED
+5. play/pause button, connected to ground when pressed
-**Which board is used is defined in the Makefile**.
-This is required to map the user LED and button provided on the board
+1x2 connector, to main board:
+1. red: 12V
+2. black: ground
+controls which TECs get power, and how.
+2x3 pin plug (IDC numbering):
+1. red, VCC
+2. red/green, sink to control IC/TR 2/6
+3. red/black, sink to control IC/TR 1/4
+4. red/blue, connected to pin 6
+5. red/brown, sink to control IC/TR 3/5
+6. black, connected to pin 4
-The ST-LINK V2 mini clone has SWD test points on the board.
-Because read protection is enabled, you will first need to remove the protection to be able to flash the firmware.
-To remove the read protection (and erase flash), run `rake remove_protection` while a SWD adapter is connected.
+1x6 conenctor, to TEC and power supply.
-The Altera USB-Blaster clone has a pin header for SWD and UART1 on the board.
-SWD is disabled in the main firmware, and it has read protection.
-To be able to flash using SWD (or the serial port), the BOOT0 pin must be set to 1 to boot the system memory install of the flash memory.
-To set BOOT0 to 1, apply 3.3 V on R11, between the resistor and the reference designator, when powering the device.
-The red LED should stay off while the green LED is on.
-Now you can remove the read protection (and erase flash), run `rake remove_protection` while a SWD adapter is connected.
ST 339 is a quad voltage comparator.
I don't know what it compares.
@@ -61,7 +190,7 @@ one side is connected to REF1, the other to a MAX1247 channel.
- in the top of the tub heating bed, connected to CH0
- in the bottom of the tub heating bed, connected to CH1
-heating block MBLK-008:
+2x7 IDC connector:
03. LN393 OUTPUT-A
@@ -77,87 +206,46 @@ heating block MBLK-008:
14. LN393 OUTPUT-A through 10 kOhm resistor (not sure what this is used for, probably not just to pull)
-heated lid, 12 kOhm NTC thermistor, 3-pin (pin 1 has notch):
-1. thermistor lead 1
-2. thermistor lead 2
+1x6 conenctor to TECs:
+- 1 -- free standing 93 °C fuse -- fuse in heat sink -- 2x top TECs in series -- 2
+- 2 -- 2x middle-top TECs in series -- 3
+- 4 -- 2x middle-bottom TECs in series -- 5
+- 5 -- 2x bottom TECs in series -- 6
-thermocouple (e.g. peltier elements) controller board, MBLK019, 2x3 pin plug (IDC numbering):
-1. red, VCC
-2. red/green, sink to control IC/TR 2/6
-3. red/black, sink to control IC/TR 1/4
-4. red/blue, connected to pin 6
-5. red/brown, sink to control IC/TR 3/5
-6. black, connected to pin 4
+when 3 is + and 1 is -, the top half bed heats up.
+when 6 is + and 4 is -, the bottom half bed heats up.
-front control panel, 1x5 connector:
-2. play/pause indicator, green LED anode
-3. play/pause indicator, orange LED anode
-4. power indicator, red LED
-5. play/pause button, connected to ground when pressed
-1. red: 12V
-2. black: ground
+this is the main controller board.
+it is connected to all other parts through individual connectors, or the card edge connector.
-MBLK-078, power + heater, 2x2 connector:
-1. red, 12V
-2. black, ground
-3. yellow/red, optocoupler anode for triac controlling the lid heater
-4. yellow/black, optocoupler cathode for triac controlling the lid heater
+the 2.4V rechargeable battery was empty and leaking, with spades corroded.
+changing the battery did not change anything: the thermo-cycle goes to sleep after power up.
+I don't know it it hold the calibration data in SRAM and the reason why the device has been sold as defective.
-SSD1306 OLED screen:
+This is replaced by a custom controller board for which this firmware is.
+The MBLK005-replacement board uses a [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill), based on a STM32F103C8T6.
+additional peripherals to operate the thermo cycler:
+SSD1306 OLED screen to show the detailed state:
-power for thermocouples
-use a 12V xA power supply.
+24V 12A power supply replacing the A4-246.
ideally it would be an adjustable constant current supply (probably what the original power supply was), but using PWM on constant voltage is good enough for thermocouples, even if less efficient.
-I created a custom board with:
-- 2 relays to act as h-bridge, allowing to invert the voltage on the thermocouples
-- 1 power MOSFET, to PWM the power
-- 1 optocoupler, to control the MOSFET
-- an IDC 2x5 connector, to re-use to cable
-- COM: thermocouple yellow
-- NC: OUT
-- NO: 12V dedicated power supply
-- VCC: 5V
-- GND: ground
-- IN: IDC pin 3,4
-- COM: thermocouple orange
-- NC: OUT
-- NO: 12V dedicated power supply
-- VCC: 5V
-- GND: ground
-- IN: IDC pin 5,6
-power nMOS (FQP30N06L, 60V 32A):
-- gate: PC817 optocoupler source, pulled low (100 kOhm to ground)
-- drain: OUT from relay
-- source: ground
-IDC 2x5 connector:
-- 1,2: 5V to power the relays and optocoupler
-- 3,4: input to relay 1, active low (when sinking)
-- 5,6: input to relay 2, active low (when sinking)
-- 7,8: input optocoupler controlling MOSFET, active low (when sinking)
-- 9,10: ground
-- source: power nMOS gate
-- drain: 12V dedicated power supply
-- anode: 5V though 330 Ohm
-- cathode: IDC pin 7,8
+12V is not enough to heat the TECs rapidly up to 94 °C.
@@ -225,6 +313,11 @@ thermocouple power supply control board. IDC 2x5:
- 7,8: PB9
- 9,10: ground
+DS18B20 1-Wire temperature sensor, 1x3:
+1. OWD, PB8