Explorer HAT


#The Explorer HAT and Explorer HAT Pro are the perfect prototyping side-kicks for your Raspberry Pi!

We’ve added a heap of useful input and output options that will take your projects to the next level. Great for driving motors, using analog sensors, interfacing with 5V systems, and touch (even fruit based!) interfaces.

It’s compatible with Raspberry Pi 2, B+, and A+ and comes fully assembled.


  • Four buffered 5V tolerant inputs
  • Four powered 5V outputs (up to 500mA!)
  • Four capacitive touch pads
  • Four capacitive crocodile clip pads
  • Four coloured LEDs
  • PRO ONLY Four analog inputs
  • PRO ONLY Two H-bridge motor drivers
  • PRO ONLY A heap of useful (unprotected) 3v3 goodies from the GPIO
  • A mini breadboard on top!

Learn more, and get yours, on the store page: http://shop.pimoroni.com/products/explorer-hat


Added Analog event binding in a new commit, plus an example to illustrate it in action:


And here’s a simple illustration for using an LDR, which will find its way into the documentation soon!


I wrote a little program to use the circuit above from @gadgetoid
import explorerhat
import time

while True:
  level  = explorerhat.analog.one.read()
  for i in range(0,4):
   if (level > float(i+1)):

It is a very basic light meter, I’ve no idea what sort of LDR this is but using the setup above, for me I get no Explorer lights when I put my hand over it up to all 4 shining a torch on it. Cool!


I’ve just added a ( beta ) Fritzing part into the Explorer HAT GitHub repo. Happy… err diagramming?

And feedback would be appreciated!



I’ve never used Fritzing so I guess this is my chance :)


Fritzing is one of my favorite software tools. I usually export diagrams in svg, and then use Inkscape to add annotations or do any necessary tidying up. Together, fritzing and Inkscape are an awesome combination!


References for Explorerhat in github or your web site are not sufficient. Isn’t there more detailed manual?
I want to connect the Adafruit 16x2 3v3 Character LCD(included in Adventure RPi kit I bought) with ExplorerHat Pro.
I used some other pins instead of the original 17,22,23,24,25,27 pins. But I get error message like
’the channel is already in use.’ when I try to run the py example.
I could adjust LCD brightness with potentiometer. But could not display character.
Of cource I edited the source code. It was like pin_rs=25 -->2, I do not remember clearly.
Please help me to use my LCD and explorerHat together.


Have you seen this document:


Yes… But can I use 5V output to 3.3V LCD?
Can I use original GPIO based library to write to the LCD?
Why do I get “this channel is already in use.” warning.
Those things remain unanswered.
And when I try to use other pins that is not currently used by explorerhat, it still does not work.


I’m not sure I understand what info you are after, so I’ll abstain from offering further help/advice.

… except to say that my understanding is that the breakout part of the Explorer is just that, a breakout board, so as long as the pin(s) you are trying to access is not used by the HAT then I don’t see why you’d have problems doing what you want with the pinout chart available at the git repository.

If a visual representation can help makes things clearer, you can check the following site and choose the Explorer from the drop down at the top right: http://pi.gadgetoid.com/pinout

Also, it could be a cold joint on the breakout that makes your life a misery, but that does not really have to do with the doc question you are raising, although it could explain why you can’t get it to work.


and here is the correspondence of the breakout, which I guess might be what you are after (and yes, I guess it would be good to get that info from the git pinout chart directly):


… if I got that right.


Thanks for your answer. I already saw that chart and connected Mosi ~ Rx to pin_rs,en, db1~4. But still not working. I thought the hat is using these pins internally.
maybe I should try again after I reinstall my OS.
Thanks anyway. Can someone just show the complete procedure of displaying Lcd 16x2 3.3v with exhat?
It would be a very good example for this, I mean exHat, product.


I’m not sure it’s possible with Explorer HAT Pro. The LCD needs 6 pins, and Explorer HAT Pro only exposes 5 ( BCM 8, 9, 10 and 11 and 18 which are CS, MISO, MOSI, SCLK and PWM respectively ).

If you were to move the Explorer HAT Pro off your Pi, you could use the other CS pin ( CE1 ) to gain the 6 connections you need- using BCM 7, 8, 9, 10, 11 and 18- none of which are used by devices on the Explorer HAT Pro.

An LCD with an I2C Backpack would be much easier- since it only requires SDA, SCL, 3v3 and GND.

You can’t use any of Explorer HAT’s outputs to interface an LCD either- since these sink to ground ( when you turn them on they make a connection to ground ) and will, at best, invert your logic making it useless ( unless you modify the library ) and, at worst, damage something which isn’t 5v tolerant.

At a stretch, you might be able to use Output 1, for example, for Pin 4 of the LCD, the Register Select pin, if you either modified the Python library to invert the logic, or used a transistor, and put a suitable voltage divider circuit on your breadboard it might well be possible.

The easiest thing to do is take your Explorer HAT Pro off your Pi- whether you use a Black HAT Hack3r for this, or a handful of jump wires and a breadboard is up to you, but it’ll make your life easier for getting this up and running.

In the mean time, I’ll either attempt this myself, or find out of it’s practical to write up a tutorial- since this isn’t an entirely terrible idea!


Quite a good information. Alas, just one pin short.
This exHat has touchpads and LEDs, it only needs display to become a console.
So that I can give some simple orders to move motors or record video.
I wish you would succeed. I will wait for a good news.
Thank you very much.

This picture is what I intended to achieve. RPi console over Zumo chasis.


I’ve been working on tweaking Explorer HAT’s capacative touch inputs using the knowledge I gained while tinkering with another product which uses the same chip.

I haven’t achieved Banana compatibility, but I’ve made them much more responsive and less prone to errors, weirdness or missed touches.

At the moment these changes are in GitHub, you can try them out by doing the following in Terminal/LXTerminal on your Pi:

git clone https://github.com/pimoroni/explorer-hat
cd explorer-hat/library
sudo ./setup.py install

Also included in this update is a drums.py example which uses this new responsiveness, plus Pygame and some wav drum samples to turn your Pi and Explorer HAT into mean, lean, drum-pad machine.

I have included some public domain drum samples from freesound.org to get you started.


Hi zezeon,

don’t worry, there is a solution. You can connect to the lcd through a shift register 74hc595. Using that, you only need 3 pins from the ExplorerHatPro.
I have done that already, and i’m using the pins Tx, Rx and PCM.
Give me a few days so i can prepare a more detailed description for you.
(And all others, who are interested in that…)


Can you do like this?
Because in 4 bit mode LCD does not use db0~3. Maybe we can just connect pin_rs, pin_en like the yellow lines.
And modify the I2C library to send signal… Just a daydreaming of a begginer?


Hi zezeon,

I started a new blog with raspberry pi informations. It is still under construction, but i published the solution for the LCD as a first page. Take a look here:


This is such a helpful information. Thank you very much.
Until now I could not test it. Because I didn’t have the HC595 chip. Now I acquired one so that I could test it. It works amazing.

ps> You misspelled wiringPiSetupGpio to wiringPiGpioSetup

I have one more question.
HOW can I control servo motors with outputs in Explorerhat pro?